Jump to content

Exportar productos con url de su dirección web sql consulta


Recommended Posts

Buenas. Estoy intentan crear una consulta sql para poder obtener las dirección url de todos los productos que tengo en mi web. Tengo las lista de productos y referencias que se puede obtener desde Catálogo--> productos. Ahora me falta la consulta sql... Select..... from .... where.... y no hay manera. He hecho consultas a infinidad de tablas y no encuentro las urls. Tengo que obtener a mano más de 500 productos y debe existir alguna manera de obtener esas direcciones.

 

Un saludo. 

Link to comment
Share on other sites

Buenas, no puedes hacer una consulta directa porque eso no está almacenado, la estructura es así:

Dominio/idioma/categoría principal/rewrite del producto

 

El Rewrite está en ps_product_lang

 

Otra opción, es coger los enlaces que te genera el Sitemap

 

Saludos!

Link to comment
Share on other sites

Buenas, te facilitaré el trabajo:

1.Pones el dominio

2.Concatenas la categoría que tiene por defecto, su campo rewrite según las normas de reescritura que tengas en Preferencias > SEO&URL

3.Concatenas el producto, su campo rewrite según las normas de reescritura que tengas en Preferencias > SEO&URL (Y que no sean combinaciones)

 

Así podrías hacerlo con consultas SQL y un Excel.

 

Saludos

Link to comment
Share on other sites

Algo asi te deberia de valer

SELECT CONCAT(  'http://midominio.com/', l.`iso_code` ,  '/', cl.`link_rewrite` ,  '/', pl.`link_rewrite` ,  '-', p.`id_product` ,  '.html' ) AS ProductURL
FROM  `ps_product` p
LEFT JOIN  `ps_product_lang` pl ON pl.`id_product` = p.`id_product` 
LEFT JOIN  `ps_lang` l ON l.`id_lang` = pl.`id_lang` 
LEFT JOIN  `ps_category_lang` cl ON cl.`id_category` = p.`id_category_default` 
WHERE pl.`id_lang` =1

Revisa que los prefijos de las tablas sean iguales a los que estas utilizando y cambiando el id_lang del final por el del lenguaje en el que quieras seleccionar los enlaces o editando el WHERE por ejemplo a 

WHERE p.`active` =1

para obtener todos los enlaces de los productos activados

Link to comment
Share on other sites

Muchas gracias a los dos. Al final los he hecho con dos consultas sql por separado y haciendo las concatenaciones con excel juntando columnas en una sola hoja. No pensaba que iba a tener respuestas tan rápidas. Os lo agradezco mucho. Os debo un favor a ambos. 

 

Un saludo. 

Link to comment
Share on other sites

  • 2 months later...

Estoy intentando hacer una exportación con elmodulo csvexport y resulta que aliportar a la nueva web me da erro por que los campos descripciones son largos.

Quisiera saber como hacer una consulta sql en php my admin que exporte todo todo lo referente a un producto.Gracias

Link to comment
Share on other sites

  • 1 month later...

Hola, compañero yo lo acabo de hacer y he sacado la url de todas las imagenes,

dónde esta la consulta  en productos e y donde esta la consulta  sql tambien hay un boton si pasa el raton que pone exportar le das clic y a mi me sale la url imagenes (a,b,z) o algo así y tiene la url completa de las imagenes.

 

saludos

yo lo tengo peor tengo la consulta sql y me salen las imagenes pero me faltan dos campos importates para añadir a la consulta y no se como añadirlos que son losde:   descripcion corta  y descripción

 

 

Link to comment
Share on other sites

Hola,  haber si alguien me puede ayudar, necesito sacar los productos de una tienda que me han vendido y resulta que el hosting o raíz lo tiene el que me ha la vendido el webmaster, yo solo tengo el blackofficer de Prestashop 1.6 y cada vez que me hace algo me cobra 40€  y hay cosas que se hacer yo y le tengo que pagar al webmaster porque el es el que tiene los archivos una putada no? y necesito sacar los producto para otra que estoy montando para que no me arruine, y lo tengo que sacar  con  código sql  ya que con  un módulo que tengo guarda los archivos csv una carpeta raíz, y el código sql  qué  genera prestashop  para exportar  los producto es el  que necesito solo que me faltan  algunos campos que se tienen que añadir campos,  algunos campos que no me salen. cómo,  Descripción corta y descripción, y me salen otros muchos que no me sirven para nada,  que en este código no sale: y se puede hacer porque tengo otra consulta  sql y saca las descripciones pero no me saca las categorías lo que tiene una consulta no lo tiene la otra, por eso quiero usar  esta que tiene menos campos que la otra que es más completa que esta

 

esta es la consulta de producto de prestashop

SELECT

                                                                                                                             a.`id_product`, b.`name` AS `name`, `reference`, a.`price` AS `price`, sa.`active` AS `active`

                                               , shop.`name` AS `shopname`, a.`id_shop_default`, image_shop.`id_image` AS `id_image`, cl.`name` AS `name_category`, sa.`price`, 0 AS `price_final`, a.`is_virtual`, pd.`nb_downloadable`, sav.`quantity` AS `sav_quantity`, sa.`active`, IF(sav.`quantity`<=0, 1, 0) AS `badge_danger`

                                               FROM `ps_product` a

                                               LEFT JOIN `ps_product_lang` b ON (b.`id_product` = a.`id_product` AND b.`id_lang` = 3 AND b.`id_shop` = 1)

                                              

                               LEFT JOIN `ps_stock_available` sav ON (sav.`id_product` = a.`id_product` AND sav.`id_product_attribute` = 0

                                AND sav.id_shop = 1  AND sav.id_shop_group = 0 )  JOIN `ps_product_shop` sa ON (a.`id_product` = sa.`id_product` AND sa.id_shop = a.id_shop_default)

                                                               LEFT JOIN `ps_category_lang` cl ON (sa.`id_category_default` = cl.`id_category` AND b.`id_lang` = cl.`id_lang` AND cl.id_shop = a.id_shop_default)

                                                               LEFT JOIN `ps_shop` shop ON (shop.id_shop = a.id_shop_default)

                                                               LEFT JOIN `ps_image_shop` image_shop ON (image_shop.`id_product` = a.`id_product` AND image_shop.`cover` = 1 AND image_shop.id_shop = a.id_shop_default)

                                                               LEFT JOIN `ps_image` i ON (i.`id_image` = image_shop.`id_image`)

                                                               LEFT JOIN `ps_product_download` pd ON (pd.`id_product` = a.`id_product`)

                                                WHERE 1 

                                                

                                                ORDER BY a.`id_product` ASC

y lo que quiero es añadir estos  campos ; descripción corta, descripción y keyswords  pero no se cómo hacerlo.

alguna sugerencia o ayudita

gracias

Link to comment
Share on other sites

Si has leido el post yo tambien tengo un modulo, para que me sirbe el módulo si el webmaster tiene configurado prestashop para que no intale los ningun modulo que no sea comprado en la página que se abre cuando intentas importar un módulo no te deja te manda a una web para comprarlo, a parte he comentado que no tengo el directorio, lo tiene el webmaster en un hosting compartido de prestashop que solo puede entrar él, y me cobra 40€ por cada cosa que me hace, y yo a ese tio no le doy ni un euro más, y  solo puedo sacar los productos con una consulta, los módulos no me sirven. la web ya la tengo montada en un hosting de mi propiedad

 

saludos

Link to comment
Share on other sites

  • 5 years later...
  • 7 months later...
On 4/9/2016 at 4:43 PM, ventura said:

Algo asi te deberia de valer

SELECT CONCAT(  'http://midominio.com/', l.`iso_code` ,  '/', cl.`link_rewrite` ,  '/', pl.`link_rewrite` ,  '-', p.`id_product` ,  '.html' ) AS ProductURL
FROM  `ps_product` p
LEFT JOIN  `ps_product_lang` pl ON pl.`id_product` = p.`id_product` 
LEFT JOIN  `ps_lang` l ON l.`id_lang` = pl.`id_lang` 
LEFT JOIN  `ps_category_lang` cl ON cl.`id_category` = p.`id_category_default` 
WHERE pl.`id_lang` =1

Revisa que los prefijos de las tablas sean iguales a los que estas utilizando y cambiando el id_lang del final por el del lenguaje en el que quieras seleccionar los enlaces o editando el WHERE por ejemplo a 

WHERE p.`active` =1

para obtener todos los enlaces de los productos activados

Hola, me ha servido de mucho tu respuesta. ¿Hay alguna forma de indicar que se te genere el orden de los links de los productos del más reciente al más antiguo? De esta forma podré adjuntarlos al orden en que Prestashop me ha descargardo el listado de productos.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...