enramos Posted March 17, 2014 Share Posted March 17, 2014 (edited) Estoy intentando realizar una consulta a la base de datos de PrestaShop (versión 1.5.6.2) para exportar los productos incluyendo las características de este, pero no conozco mucho SQL/MySQL y al intervenir tantas tablas se me está haciendo un poco complejo.. Aunque la consulta es exclusiva según las características de cada tienda, supongo que es un caso común el usar características de productos pensando en que al almacenarse en campos independientes en la base de datos posteriormente se pueden consultar/exportar de forma automática, por lo que entiendo que esta consulta/duda no es nueva, pero por más que busco no doy con la solución.. Si alguien sabría un ejemplo de consulta tipo que poder modificar/adaptar sería muy interesante para necesidades como la mía. Si no a unas malas, cuando la consiga sacar os la paso por aquí Saludos cordiales y gracias! Edited March 17, 2014 by enramos (see edit history) Link to comment Share on other sites More sharing options...
enramos Posted March 17, 2014 Author Share Posted March 17, 2014 Creo que ya he conseguido solucionar gran parte del problema.. De momento tengo lo siguiente: SELECT ps_product.reference, ps_product.price, ps_product_lang.name, ps_product_lang.description_short, ps_category_lang.name AS categoría, ps_feature_value_lang.value AS característica1 FROM ps_product LEFT JOIN ps_product_lang ON ps_product.id_product = ps_product_lang.id_product LEFT JOIN ps_feature_product ON ps_feature_product.id_product = ps_product.id_product LEFT JOIN ps_feature_lang ON ps_feature_lang.id_feature = ps_feature_product.id_feature LEFT JOIN ps_feature_value_lang ON ps_feature_value_lang.id_feature_value = ps_feature_product.id_feature_value LEFT JOIN ps_category_lang ON ps_product.id_category_default = ps_category_lang.id_category WHERE ps_feature_lang.id_feature = 1 AND ps_product.active =1 AND ps_product_lang.id_lang =1 GROUP BY ps_product.id_product Con esta consulta exporto la referencia del producto, el precio, el nombre, la descripción corta, la categoría principal y la primera característica del producto. Ahora lo que necesito es extraer el resto de características en la misma consulta pero como cambia la condición (ps_feature_lang.id_feature = X) no se como hacerla.. Link to comment Share on other sites More sharing options...
fdrago2 Posted September 17, 2016 Share Posted September 17, 2016 Creo que ya he conseguido solucionar gran parte del problema.. De momento tengo lo siguiente: SELECT ps_product.reference, ps_product.price, ps_product_lang.name, ps_product_lang.description_short, ps_category_lang.name AS categoría, ps_feature_value_lang.value AS característica1 FROM ps_product LEFT JOIN ps_product_lang ON ps_product.id_product = ps_product_lang.id_product LEFT JOIN ps_feature_product ON ps_feature_product.id_product = ps_product.id_product LEFT JOIN ps_feature_lang ON ps_feature_lang.id_feature = ps_feature_product.id_feature LEFT JOIN ps_feature_value_lang ON ps_feature_value_lang.id_feature_value = ps_feature_product.id_feature_value LEFT JOIN ps_category_lang ON ps_product.id_category_default = ps_category_lang.id_category WHERE ps_feature_lang.id_feature = 1 AND ps_product.active =1 AND ps_product_lang.id_lang =1 GROUP BY ps_product.id_product Con esta consulta exporto la referencia del producto, el precio, el nombre, la descripción corta, la categoría principal y la primera característica del producto. Ahora lo que necesito es extraer el resto de características en la misma consulta pero como cambia la condición (ps_feature_lang.id_feature = X) no se como hacerla.. Tengo esta consulta, cómo agregar entonces el precio al por mayor y el porcentaje del IVA? 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 1 Link to comment Share on other sites More sharing options...
Rodrigo.a87 Posted April 23, 2018 Share Posted April 23, 2018 Llego medio tarde, pero tal vez a alguien más le sea útil la respuesta. Nunca usé la versión 1.5, pero sí la 1.6 y la consulta que realicé para extraer todas las funcionalidades con sus valores fue la siguiente: SELECT p.id_product AS 'ID', pl.name AS 'Nombre', group_concat(cl.name SEPARATOR '&') AS 'Categorias', GROUP_CONCAT(DISTINCT fl.name, ':', fvl.value SEPARATOR '&') AS 'Facetados' FROM ps_product AS p LEFT JOIN ps_product_lang AS pl ON p.id_product = pl.id_product LEFT JOIN ps_feature_product AS fp ON p.id_product = fp.id_product LEFT JOIN ps_feature_lang AS fl ON fp.id_feature = fl.id_feature LEFT JOIN ps_feature_value AS fv ON fp.id_feature = fv.id_feature LEFT JOIN ps_feature_value_lang AS fvl ON fp.id_feature_value = fvl.id_feature_value LEFT JOIN ps_category_product AS c ON p.id_product = c.id_product LEFT JOIN ps_category_lang AS cl ON c.id_category = cl.id_category WHERE p.active = 1 GROUP BY p.id_product Además de eso, la consulta extrae también todas las categorías asociadas a ese ID de producto, y sólo de los IDs de productos activos. El separador de valores múltiples que uso es el "&", pero en SEPARATOR pueden modificarlo por ',' o el que gusten. 1 Link to comment Share on other sites More sharing options...
Jelizp Posted July 1, 2020 Share Posted July 1, 2020 Hola!, buen día para todos! Necesito generar un cvs en prestashop que me muestre referencia de producto, nombre de producto y regla de iva, no tengo mucho conocimiento de SQL, si alguien me puede ayudar con este tema, gracias! Link to comment Share on other sites More sharing options...
Rodrigo.a87 Posted July 1, 2020 Share Posted July 1, 2020 3 hours ago, Jelizp said: Hola!, buen día para todos! Necesito generar un cvs en prestashop que me muestre referencia de producto, nombre de producto y regla de iva, no tengo mucho conocimiento de SQL, si alguien me puede ayudar con este tema, gracias! Buenas, cómo estás? No sé si por regla de IVA te referís al porcentaje de IVA o al ID del IVA, pero te comento las 2 alternativas. Con % de IVA: SELECT p.reference AS 'Referencia', pl.name AS 'Nombre', ROUND(t.rate, 2) AS 'Regla de IVA' FROM ps_product AS p LEFT JOIN ps_product_lang AS pl ON p.id_product = pl.id_product LEFT JOIN ps_tax AS t ON p.id_tax_rules_group = t.id_tax WHERE pl.id_lang = 1 Con ID de IVA: SELECT p.reference AS 'Referencia', pl.name AS 'Nombre', p.id_tax_rules_group AS 'Regla de IVA' FROM ps_product AS p LEFT JOIN ps_product_lang AS pl ON p.id_product = pl.id_product WHERE pl.id_lang = 1 Saludos 1 Link to comment Share on other sites More sharing options...
Jelizp Posted July 2, 2020 Share Posted July 2, 2020 Gracias Rodrigo!, me salió la consulta como la quería, muy amable!! Link to comment Share on other sites More sharing options...
seron Posted October 31, 2022 Share Posted October 31, 2022 Hola, estoy intentando añadir la marca, pero no tengo ni idea como ponerlo, tengo algo así, esta mal. SELECT p.id_product AS 'ID', pl.name AS 'Nombre', p.reference AS 'referencia', m.name AS 'Marca', p.weight AS 'peso' FROM prstshp_product AS p LEFT JOIN prstshp_product_lang AS pl ON p.id_product = pl.id_product LEFT JOIN prstshp_feature_product AS fp ON p.id_product = fp.id_product LEFT JOIN prstshp_feature_lang AS fl ON fp.id_feature = fl.id_feature LEFT JOIN prstshp_manufacturer AS m ON m.id_manufacturer = m.name LEFT JOIN prstshp_feature_value AS fv ON fp.id_feature = fv.id_feature LEFT JOIN prstshp_feature_value_lang AS fvl ON fp.id_feature_value = fvl.id_feature_value LEFT JOIN prstshp_category_product AS c ON p.id_product = c.id_product LEFT JOIN prstshp_category_lang AS cl ON c.id_category = cl.id_category WHERE p.active = 1 GROUP BY p.id_product Link to comment Share on other sites More sharing options...
Nickz Posted October 31, 2022 Share Posted October 31, 2022 43 minutes ago, seron said: Hola, estoy intentando añadir la marca, pero no tengo ni idea como ponerlo, tengo algo así, esta mal. el hilo es de 2014, mucho ha cambiado hasta 2022 Link to comment Share on other sites More sharing options...
seron Posted October 31, 2022 Share Posted October 31, 2022 Funciona, me saca los parámetros bien en el caso de nombre id y alguno que otro más pero la marca del producto como podría sacarla? Link to comment Share on other sites More sharing options...
seron Posted October 31, 2022 Share Posted October 31, 2022 (edited) Tampoco es tan difícil, conseguí lo que quería simplemente añadir: LEFT JOIN prstshp_manufacturer AS m ON p.id_manufacturer = m.id_manufacturer Edited October 31, 2022 by seron (see edit history) 1 Link to comment Share on other sites More sharing options...
seron Posted October 31, 2022 Share Posted October 31, 2022 Si quiero obtener la url de la imagen es más complicado no? estoy mirando por ahí y me dan un CONCAT .... con montón de código pero no me saca nada. Link to comment Share on other sites More sharing options...
seron Posted March 12, 2023 Share Posted March 12, 2023 Alguien sabe como hacer para que el precio de la consulta no salga en plan si el precio del producto es 69,9 sale en la consulta sql 69900000 algo así :S Link to comment Share on other sites More sharing options...
Aldeag Posted March 13, 2023 Share Posted March 13, 2023 Pues a mí me facilitó mucho ese trabajo Prestools, es un script que funciona dentro de Prestashop y tiene muchas funcionalidades, entre otras sacar listados csv con los datos que necesitas, sin hacer consultas sql. Es gratuito en un 95% de sus funciones. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now