Jump to content

Requête SQL - Integralité des produits AVEC les déclinaisons, leurs prix et leurs références


Recommended Posts

Quote

SELECT p.id_product 'Product ID', pl.name 'Product Name', GROUP_CONCAT(DISTINCT(al.name) SEPARATOR ", ") AS 'Combination', p.ean13 'EAN 13', p.upc 'UPC'
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product and pl.id_lang=1)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product)
LEFT JOIN ps_stock_available s ON (p.id_product = s.id_product and pa.id_product_attribute=s.id_product_attribute)
LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product)
LEFT JOIN ps_product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)
LEFT JOIN ps_attribute_lang al ON (al.id_attribute = pac.id_attribute and al.id_lang=1)
GROUP BY p.id_product,pac.id_product_attribute
order by p.id_product

 

Bonjour, 

Je viens de finir la création d'une boutique en ligne avec beaucoup de produits dont chacun contient pas mal de déclinaisons.

Pour finaliser la boutique et effectuer une dernière vérification avant sa mise en ligne, je souhaiterais fournir à mon client un listing de toutes les déclinaisons de produits, et, pour chacune des déclinaisons, sa référence et son prix. 

J'ai donc trouvé cette requête SQL sur un ancien topic. À mon sens, c'est une bonne base de départ, malheureusement, cette dernière n'intègre, ni les références, ni les prix de ces déclinaisons.

J'ai fouillé dans la base mySQL pour trouver les infos dont j'ai besoin, j'ai identifié les infos dont j'ai besoin. Les prix et références semblent se situer dans la table :

`ps_product_attribute`

respectivement dans les colonnes 

price

 et 

reference

Je ne maîtrise pas bien les requêtes SQL et ne suis pas en mesure d'ajouter ces requêtes dans la requête SQL que j'ai déjà trouvé.

Quelqu'un pourrait-il m'aider à la compléter ? 

Merci par avance. J'essaie d'apprendre le SQL petit à petit mais je ne maîtrise pas encore assez pour pouvoir me débrouiller.

Edited by OuiLudo (see edit history)
Link to comment
Share on other sites

essaye ceci

 

SELECT p.id_product 'Product ID', pac.id_product_attribute 'id_product_attribute', pl.name 'Product Name', pa.reference as 'reference declinaison',  p.reference as 'reference produit', GROUP_CONCAT(DISTINCT(al.name) SEPARATOR ", ") AS 'Combination', p.price 'prix', p.ean13 'EAN 13', p.upc 'UPC'
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product and pl.id_lang=1)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product)
LEFT JOIN ps_stock_available s ON (p.id_product = s.id_product and pa.id_product_attribute=s.id_product_attribute)
LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product)
LEFT JOIN ps_product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)
LEFT JOIN ps_attribute_lang al ON (al.id_attribute = pac.id_attribute and al.id_lang=1)
GROUP BY p.id_product,pac.id_product_attribute
order by p.id_product

 

je ne sais pas si tu connais le module gratuit : 

mais il permet de tester des requetes SQL facilement et même d'avoir les résultats en CSV (fichier exploitable sous excel)

  • Like 1
Link to comment
Share on other sites

Merci beaucoup pour votre aide, j'ai juste rajouter la requête SELECT les termes suivants pour avoir le prix de la déclinaison :

pa.price as 'Prix de la déclinaison', 

C'est parfait, c'est exactement ce que je voulais faire.

Je viens de regarder votre module, il est effectivement très intéressant. Est-il compatible avec la version 1.7 de prestashop ?

Merci encore.
Bonne journée à vous.

Link to comment
Share on other sites

Bon, je suis à nouveau bloqué, après deux heures à étudier les syntaxes de requêtes SQL, je ne trouve pas la solution. Je m'adresse donc à vous. Si vous aviez une piste, je suis preneur.

La requête telle qu'elle est faite maintenant, avec votre aide, est parfaite.

Cependant, j'ai créé un attribut nommé "Colisage", qui possède une cinquantaine de valeurs différentes.
Je souhaiterais ajouter une colonne "Colisage" à mon tableau exporté en CSV dans laquelle la valeur de cet attribut serait indiquée pour chacune de mes déclinaisons. TOUTES mes déclinaisons possèdent une valeur pour cet attribut.

J'ai donc identifié l'ID du groupe d'attribut "Colisage" qui m'intéresse :
• 
Dans la table `ps_attribute_group`, dans la colonne id_attribute_group : 35

Après de multiples essais je peine à trouver la syntaxe correcte pour obtenir cette colonne supplémentaire.

Auriez-vous une piste à me fournir ?
Merci par avance.

Link to comment
Share on other sites

  • 3 years later...

Bonjour,

Merci pour vos posts, ça m'a bien aidé.

Par contre je n'arrive a sortir mes prix en TTC avec cette requête.

J'ai cru comprendre que ça fonctionné avec l'appel des id_tax_rules mais je n'arrive pas à l'implémenter dans la requête.

Vous seriez m'aider par hasard ?

Très bonne journée !

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...