Appolline Posted June 14, 2016 Share Posted June 14, 2016 (edited) Bonjour ! Alors voilà j'ai 2 requetes qui fonctionnent très bien avec prestashop 1.6.0.9 mais l'une est complémentaire de l'autre et l'idée c'est d'avoir une seule requête . l'objectif : intégrer les produits qui n'ont pas de déclinaison dans cette requête pour avoir l'état de mon stock au complet : SELECT p.id_product, p.id_category_default, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ";") as categories, pa.reference, pl.name, GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR "; ") as combination, p.price, p.wholesale_price, pq.quantity FROM ps_product p LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product AND pa.id_product_attribute = pq.id_product_attribute) LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute) LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product) LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category) LEFT JOIN ps_category c ON (cp.id_category = c.id_category) WHERE pl.id_lang = 1 AND pal.id_lang = 1 GROUP BY pa.reference ORDER BY p.id_product, pac.id_attribute en effet, cette requête n'extrait les stocks que les produits ayant des déclinaisons moi je voudrais aussi ceux qui n'en n'ont pas Cette 2ème requête additionne toutes les quantités de toutes les déclinaisons du produit de tous les produits (avec et sans déclinaisons) : SELECT p.id_product, p.active, pl.name, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") as categories, p.reference, p.price, p.wholesale_price, p.reference, man.name, qp.quantity, pl.name, qp.quantity FROM ps_product p LEFT JOIN ps_stock_available qp ON (p.id_product = qp.id_product) LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product) LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category) LEFT JOIN ps_category c ON (cp.id_category = c.id_category) LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product) LEFT JOIN ps_manufacturer man ON (man.name = p.id_manufacturer) WHERE pl.id_lang = 1 AND cl.id_lang = 1 AND p.id_shop_default = 1 AND c.id_shop_default = 1 GROUP BY p.id_product merci d'avance pour votre aide ! Appo Edited June 20, 2016 by Appolline (see edit history) 1 Link to comment Share on other sites More sharing options...
Appolline Posted June 15, 2016 Author Share Posted June 15, 2016 Re, alors j'ai avancé avec un ami sur le problème. mais j'ai un nouveau souci. la requête fonctionne très bien depuis Phpmyadmin, par contre l'outil prestashop me renvoit un message d'erreur rouge : "Lorsque plusieurs tables sont utilisées, chaque attribut doit être référencé à l'une de ces tables." Merci d'avance pour votre aide Appo voici la requete en question : SELECT p.id_product, p.id_category_default, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ";") as categories, CASE WHEN pa.reference IS NULL THEN p.reference ELSE pa.reference END as reference, pl.name, CASE WHEN pa.price IS NULL THEN p.price ELSE p.price + pa.price END as price, p.wholesale_price, pq.quantity FROM ps_product p LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product AND (pa.id_product_attribute IS NULL OR pa.id_product_attribute = pq.id_product_attribute) ) LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute) AND pal.id_lang = 1 LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product) LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category) LEFT JOIN ps_category c ON (cp.id_category = c.id_category) WHERE pl.id_lang = 1 GROUP BY reference ORDER BY p.id_product, pac.id_attribute Link to comment Share on other sites More sharing options...
Appolline Posted June 15, 2016 Author Share Posted June 15, 2016 je up j'aurai vraiment besoin d'utiliser cette requête via le backoffice et ne pas aller la faire dans phpmyadmin... Un expert ? Merciiiiiiiiiiiiiiiiii Appo Link to comment Share on other sites More sharing options...
Appolline Posted June 20, 2016 Author Share Posted June 20, 2016 Sujet résolu sur les forums anglophones. Apparemment suivant les versions de prestashop, certains avaient l'erreur, d'autres non dans le backoffice. Alors pour ma part, voici ma solution pour faire un export csv de tous les produits d'un prestashop 1.6.0.0.9 : 1) installer le module gratuit big data 2) pour un fichier csv propre changer SEPARATOR ";" par SEPARATOR "|" Voilà ! et de rien pour la requête c'est cadeau ! 2 Link to comment Share on other sites More sharing options...
Daralala Posted April 13, 2018 Share Posted April 13, 2018 Bonjour, pour ma part, je vous remercie d'avoir trouvé ce module qui m'épargne des fouilles dans la BDD... Bien cordialement, Dara. 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