Jump to content

[ASTUCE] Generer automatiquement vos fichiers CSV via requete SQL


epic1110

Recommended Posts

Bonjour à tous,

 

Ma contribution pour l'importation des images et des produits

 

SELECT DISTINCT
ps_product.id_product AS 'id',
ps_product.active AS 'Actif (0.1)',
ps_product_lang.name AS 'Name*',
ps_product.id_category_default AS 'Categories (x,y,z,...)',
ps_product.price AS 'Price tax excl.',
ps_product.id_tax_rules_group AS 'Tax rules id',
ps_product.weight AS 'Weight',
ps_product.quantity AS 'Quantity',
ps_product_lang.description_short AS 'Short description',
ps_product_lang.description AS 'Description',
ps_product_lang.link_rewrite AS 'URL rewritten',
ps_product_lang.meta_description AS 'Meta Description',
ps_product_lang.meta_keywords AS 'Meta Keywords',
ps_product_lang.meta_title AS 'Meta title',
GROUP_CONCAT(CONCAT('http://www.votre-site.fr/img/p/', ps_product.id_product, '-', ps_image.id_image, '.jpg') SEPARATOR ',') AS 'Image URLs (x,y,z,...)'
 
FROM ps_product
 
LEFT OUTER JOIN ps_product_lang
ON ps_product.id_product = ps_product_lang.id_product
 
LEFT OUTER JOIN ps_manufacturer
ON ps_product.id_manufacturer = ps_manufacturer.id_manufacturer
 
LEFT OUTER JOIN ps_specific_price
ON ps_product.id_product = ps_specific_price.id_product
 
LEFT OUTER JOIN ps_supplier
ON ps_product.id_supplier = ps_supplier.id_supplier
 
LEFT OUTER JOIN ps_image
ON ps_product.id_product = ps_image.id_product
 
WHERE
ps_product_lang.id_lang = 2
 
GROUP BY ps_product.id_product

 

 

Et encore un grand merci à tous pour ce super topic ;).

Link to comment
Share on other sites

Bonjour et merci pour tous ces posts qui m'ont bien aidé !

De mon côté, j'avais besoin d'un fichier regroupant uniquement les produits actifs avec : Le Nom du Produit, Sa Référence, Son Prix HT, l'URL de la page du produit et l'URL de l'image du Produit

voici ma requête : 

 

SELECT DISTINCT
ps_product_lang.name AS 'Nom',
ps_product.reference AS 'Reference',
ps_product.price AS 'Prix HT',
GROUP_CONCAT(CONCAT('http://www.monsite.com/' ps_product.id_product, '-', ps_product_lang.link_rewrite, '.html') SEPARATOR ',') AS 'URL Produit',
GROUP_CONCAT(CONCAT('http://www.monsite.com/' ps_image.id_image, '/', ps_product_lang.link_rewrite, '.jpg') SEPARATOR ',') AS 'URL Image'
 
FROM ps_product
 
LEFT OUTER JOIN ps_product_lang
ON ps_product.id_product = ps_product_lang.id_product
 
LEFT OUTER JOIN ps_specific_price
ON ps_product.id_product = ps_specific_price.id_product
 
LEFT OUTER JOIN ps_supplier
ON ps_product.id_supplier = ps_supplier.id_supplier
 
LEFT OUTER JOIN ps_image
ON ps_product.id_product = ps_image.id_product
 
LEFT OUTER JOIN ps_image_type
ON ps_image_type.name= ps_image_type.name
 
WHERE ps_product.active = 1
 
GROUP BY ps_product.id_product
 
 
Mon petit Problème, c'est qu'il me génère 8 fois les mêmes URL (page et image), elles sont correctes mais j'aurais aimer qu'elles apparaissent qu'une seule fois !
J'ai beau chercher, je ne trouve pas la solutions. Si vous avez des suggestions?
Merci.
 
PS : 1.5.5
Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous,

 

Je voudrais faire une requête permettant de récupérer les produits et les promotions par ventes. J'ai fait ma requête mais Prestashop (version 1.6.0.8) m'affiche: La table "(ps_orders)" n'existe pas.

 

Ma requête ci-dessous, je ne vois vraiment pas ou est l'erreur... une aide siouplé :-)

SELECT  id_order, product_name, product_quantity, product_price, product_quantity_in_stock, reduction_percent, reduction_amount, reduction_amount_tax_incl, reduction_amount_tax_excl, discount_quantity_applied, total_price_tax_incl, total_shipping_price_tax_excl,group_reduction, product_quantity_discount FROM ps_order_detail 

LEFT JOIN  (ps_orders)

ON (   
ps_order_detail.reference = ps_orders.detail.reference AND
ps_order_detail.total_discounts_tax_incl = ps_orders.total_discounts_tax_incl AND
ps_order_detail.total_discounts_tax_excl = ps_orders.total_discounts_tax_excl AND
ps_order_detail.total_paid_tax_incl = ps_orders.total_paid_tax_incl AND
ps_order_detail.total_paid_tax_excl = ps_orders.total_paid_tax_excl AND
)

Merci bcp!

Link to comment
Share on other sites

Bonjour

J'aimerais faire une requete permettant de récupérer les id produits, le nom du produit, la quantité en stock et SURTOUT l'emplacement du produit dans la boutique

 

je gère les adresses de stockage et je suis en "gestion des stocks avancées"

je n'y connais guère en requete sql mais prêt à me lancer

 

merci à vous

Link to comment
Share on other sites

  • 3 weeks later...

Pour répondre à "Petit Wapiti' Post 100:

select oi.`id_order_invoice` as Facture, oi.`id_order` as Commande, oi.`date_add` as Date_facture, c.`lastname` as Nom,  c.`firstname` as Prenom,  oi.`total_products` as Total_produits_HT,  (oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`) as TVA, (oi.`total_paid_tax_incl` - oi.`total_shipping_tax_incl`) as Total_produits_TTC, oi.`total_shipping_tax_excl` as Frais_d_expedition, oi.`total_paid_tax_incl` as Total_paye,op.`payment_method`as Methode
from ps_order_invoice oi
left outer join ps_order_invoice_payment oip on oi.`id_order_invoice` =oip.`id_order_invoice`
left outer join ps_order_payment op on oip.`id_order_payment` =op.`id_order_payment`
left outer join ps_orders o on oi.`id_order` = o.`id_order` 
left outer join ps_customer c on o.`id_customer` = c.`id_customer`

order by  oi.`id_order_invoice` DESC
Link to comment
Share on other sites

  • 3 weeks later...

Bonsoir,

Merci pour vos contributions, je me sers perso de raw sql en gratuit pour editer les export (je met le lien ici ) au cas ou ca interresserai qqu'un :=)

 

J'ai récuperé le code mis par "petit Wapiti" amélioré par "Romelik" et je voulais savoir si il était possible d'integrer 4 champs " pays", "email"  "état de la commande" (ce point me permettrait de voir les remboursements etc ...), et référence du produit

 

Merci beaucoup pour votre aide.
FAIT !!! (merci à une aide sur d'autres forum !! )

je mets néanmoins le code au cas ou ca interresse quelqu'un !

select oi.`id_order_invoice` as Facture, oi.`id_order` as Commande, oi.`date_add` as Date_facture, c.`lastname` as Nom,  c.`firstname` as Prenom, c.`email` as Email, oi.`total_products` as Total_produits_HT,  (oi.`total_paid_tax_incl` - oi.`total_paid_tax_excl`) as TVA, (oi.`total_paid_tax_incl` - oi.`total_shipping_tax_incl`) as Total_produits_TTC, oi.`total_shipping_tax_excl` as Frais_d_expedition, oi.`total_paid_tax_incl` as Total_paye, op.`payment_method`as Methode, addrlang.`name` as Pays, statelang.`name` as Etat_commande, refprod.`product_reference` as Ref_Produit  
from ps_order_invoice oi 
left outer join ps_order_invoice_payment oip on oi.`id_order_invoice` =oip.`id_order_invoice` 
left outer join ps_order_payment op on oip.`id_order_payment` =op.`id_order_payment` 
left outer join ps_orders o on oi.`id_order` = o.`id_order` 
left outer join ps_customer c on o.`id_customer` = c.`id_customer` 
left outer join ps_address addr on addr.`id_address` = o.`id_address_delivery` 
left outer join ps_country_lang addrlang on addrlang.`id_country` = addr.`id_country` 
left outer join ps_order_state_lang statelang on statelang.`id_order_state` = o.`current_state` 
left outer join ps_order_detail refprod on refprod.`id_order` = o.`id_order` 

order by  oi.`id_order_invoice` DESC
Edited by calindoudou (see edit history)
Link to comment
Share on other sites

Bonjour,

Du coup je vous poste une autre demande

l'objectif de cette requête est de permettre de vérifier / contrôler que les colis sont livrés en temps et en heure (si retard je génère lettre relance au prestataire)

Donc voila j'ai ce bout de code, mais je voudrais y ajouter 2 Champs : id de commande & état de commande)

j'ai essayé de bidouiller avec le script du dessus mais impossible.

 

Merci par avance de votre aide :)

SELECT O.shipping_number, F.name, C.firstname, C.lastname, O.delivery_date
FROM ps_orders AS O
INNER JOIN ps_customer AS C ON C.Id_Customer = O.Id_Customer
INNER JOIN ps_carrier AS F ON F.Id_Carrier = O.Id_Carrier
ORDER BY O.delivery_date, F.name, C.Firstname, C.LastName
Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...

Bonjour à tous,

 

Ma contribution pour l'importation des images et des produits

 

SELECT DISTINCT
ps_product.id_product AS 'id',
ps_product.active AS 'Actif (0.1)',
ps_product_lang.name AS 'Name*',
ps_product.id_category_default AS 'Categories (x,y,z,...)',
ps_product.price AS 'Price tax excl.',
ps_product.id_tax_rules_group AS 'Tax rules id',
ps_product.weight AS 'Weight',
ps_product.quantity AS 'Quantity',
ps_product_lang.description_short AS 'Short description',
ps_product_lang.description AS 'Description',
ps_product_lang.link_rewrite AS 'URL rewritten',
ps_product_lang.meta_description AS 'Meta Description',
ps_product_lang.meta_keywords AS 'Meta Keywords',
ps_product_lang.meta_title AS 'Meta title',
GROUP_CONCAT(CONCAT('http://www.votre-site.fr/img/p/', ps_product.id_product, '-', ps_image.id_image, '.jpg') SEPARATOR ',') AS 'Image URLs (x,y,z,...)'
 
FROM ps_product
 
LEFT OUTER JOIN ps_product_lang
ON ps_product.id_product = ps_product_lang.id_product
 
LEFT OUTER JOIN ps_manufacturer
ON ps_product.id_manufacturer = ps_manufacturer.id_manufacturer
 
LEFT OUTER JOIN ps_specific_price
ON ps_product.id_product = ps_specific_price.id_product
 
LEFT OUTER JOIN ps_supplier
ON ps_product.id_supplier = ps_supplier.id_supplier
 
LEFT OUTER JOIN ps_image
ON ps_product.id_product = ps_image.id_product
 
WHERE
ps_product_lang.id_lang = 2
 
GROUP BY ps_product.id_product

 

 

Et encore un grand merci à tous pour ce super topic ;).

 

Bonjour,

 

j'ai essayé cette requête sur mon prestashop 1.6.1.1 mais j'ai l'erreur suivante :

Erreur non définie "checkedFrom"

 

Je ne comprends pas ce qui ne va pas ...

 

pouvez-vous m'aider s'il vous plait ?

Je cherche à exporter tous les produits avec leurs images et leur descriptions courte et longue ...

 

merci par avance

Link to comment
Share on other sites

Bonjour,

bon j'ai réussi à sortir une requête qui fonctionne ;-)

 

par contre j'(aimerai récupérer les tag des produits aussi et là je coince ...

 

en fait ilm faudrait utiliser aussi ceci :

ps_product_tag.id_tag 

ps_product_tag.id_product

ps_product_tag.id_lang

et

ps_tag.id_tag

ps_tag.name

ps_tag.id_lang

 

mais là je coince ...

 

j'ai essayé d'ajouter ceci dans la requête :

ps_tag.name AS 'Tags (x,y,z...)',


LEFT OUTER JOIN ps_product_tag
ON ps_product.id_product = ps_product_tag.id_product


LEFT OUTER JOIN ps_tag
ON ps_product_tag.id_tag = ps_tag.id_tag

mais cela ne fonctionne pas ...

 

pouvez-vous m'aider s'il vous plaît ?

 

merci par avance

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

j'ai essayé avec du INNER JOIN ...

SELECT DISTINCT
p.id_product AS 'ID',
p.active AS 'Active (0/1)',
pl.name AS 'Name *',
p.id_category_default AS 'Categories (x,y,z...)',
p.price AS 'Price tax excluded or Price tax included',
p.id_tax_rules_group AS 'Tax rules ID',
p.wholesale_price AS 'Wholesale price',
p.reference AS 'Reference #',
p.supplier_reference AS 'Supplier reference #',
p.id_supplier AS 'Supplier',
p.id_manufacturer AS 'Manufacturer',
p.ean13 AS 'EAN13',
p.upc AS 'UPC',
p.ecotax AS 'Ecotax',
p.width AS 'Width',
p.height AS 'Height',
p.depth AS 'Depth',
p.weight AS 'Weight',
p.quantity AS 'Quantity',
pl.description_short AS 'Short description',
pl.description AS 'Description',
pl.link_rewrite AS 'URL rewritten',
pl.meta_description AS 'Meta Description',
pl.meta_keywords AS 'Meta Keywords',
pl.meta_title AS 'Meta title',
GROUP_CONCAT(CONCAT('http://mcs.centaure-net.com/img/p/', p.id_product, '-', ps_image.id_image, '.jpg') SEPARATOR ',') AS 'Image URLs (x,y,z...)',
GROUP_CONCAT(ps_tag.name SEPARATOR ',') AS 'Tags (x,y,z...)'
 
FROM ps_product p, ps_product_tag, ps_tag
 
LEFT OUTER JOIN ps_product_lang pl
ON p.id_product = pl.id_product
 
LEFT OUTER JOIN ps_manufacturer
ON p.id_manufacturer = ps_manufacturer.id_manufacturer
 
LEFT OUTER JOIN ps_specific_price
ON p.id_product = ps_specific_price.id_product
 
LEFT OUTER JOIN ps_supplier
ON p.id_supplier = ps_supplier.id_supplier
 
LEFT OUTER JOIN ps_image
ON p.id_product = ps_image.id_product

INNER JOIN ps_product_tag ON p.id_product = ps_product_tag.id_product

INNER JOIN ps_tag ON ps_product_tag.id_tag = ps_tag.id_tag

WHERE
pl.id_lang = 2
 
GROUP BY p.id_product

mais ça marche pas non plus ...

j

e sens que je me rapproche mais ...

 

votre aide me serai très utile

merci

Link to comment
Share on other sites

ah ok

 

mais alors comment traduire ceci en SQL dans :

GROUP_CONCAT(CONCAT('http://mcs.centaure-net.com/img/p/', p.id_product, '-', ps_image.id_image, '.jpg') SEPARATOR ',') AS 'Image URLs (x,y,z...)',

il faudrait remplacer

p.id_product, '-', ps_image.id_image

par

 

1er caractère de ps_image.id_image, '/' , 1eme caractère de ps_image.id_image, ps_image.id_image

 

mais je sais pas comment on fait ceci ...

Link to comment
Share on other sites

de plus il y a un autre soucis, le lien vers les images n'est pas bon ...

 

par exemple pour le produit id 1 le lien vers la première image est http://www.monsite.fr/img/p/3/3/33.jpg

 

???

 

à quoi correspondent les 3/3/33 ???

 

merci

Bonjour,

 

Je suis désolé mais je ne vais pas pouvoir vous aider. J'ai fait appel à une agence qui ma donné cette requête et je n'ai personnellement pas les compétence pour y répondre.

 

Désolé et bon courage. 

Link to comment
Share on other sites

  • 1 month later...

Bonjour, j'ai un souci avec cette requette : 

 

SELECT p.id_product, p.active, pl.name, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") as categories, cl.id_category, p.price, p.id_tax_rules_group, p.wholesale_price, p.on_sale, p.reference, p.supplier_reference, p.id_supplier, p.id_manufacturer, p.upc, p.ecotax, p.weight, sa.quantity, pl.description_short, pl.description, pl.meta_title, pl.meta_keywords, pl.meta_description, pl.link_rewrite, pl.available_now, pl.available_later, p.available_for_order, p.date_add, p.show_price, p.online_only, p.condition, p.id_shop_default FROM ps47f_product p LEFT JOIN ps47f_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps47f_category_product cp ON (p.id_product = cp.id_product) LEFT JOIN ps47f_category_lang cl ON (cp.id_category = cl.id_category) LEFT JOIN ps47f_stock_available sa ON (p.id_product = sa.id_product) WHERE pl.id_lang = 2 AND cl.id_lang = 2 GROUP BY p.id_product

 

Lorsque j'exporte la requette, elle fonctionne correctement mais elle exporte seulement 22 produits (j'ai 125 maintenant) Ma question est simple, pourquoi seulement 22 produits de 125? Merci!!

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

 

j'ai essayé cette requête sur mon prestashop 1.6.1.1 mais j'ai l'erreur suivante :

Erreur non définie "checkedFrom"

 

Je ne comprends pas ce qui ne va pas ...

 

pouvez-vous m'aider s'il vous plait ?

Je cherche à exporter tous les produits avec leurs images et leur descriptions courte et longue ...

 

merci par avance

Bonjour à tous, bonjour Centaure,

 

J'ai le même problème que celui que tu as réglé, peux-tu m'expliquer ce que tu as fait pour le corriger.

 

Merci à tous

 

Briac

Link to comment
Share on other sites

  • 4 weeks later...

Bonjour à tous,

 

j'apporte une petite contribution que ce forum m'a aidé à construire, un script pour Prestashop 1.6.1.2 permettant d'exporter tous les produits, calqué sur le tableau d'import Prestashop.

 

Néanmoins il y a un petit hic pour les caractéristiques. J'aimerais récupérer les caractéristiques propres à mon produit, hors cette requête me sort toutes les caractéristiques insérées, même celles qui ne sont pas liées à mon produit. J'ai du mal à comprendre pourquoi vu que je fais bien la jointure avec mon id_product.

 

Donc si quelqu'un a une idée, ce serait génial !!!

 

Sinon, le reste semble marcher nickel (c'est toujours pareil, si vous relevez des erreurs n'hésitez pas, je pense que ça peut servir à tout le monde :) )

SELECT
ps_product.id_product AS 'ID',
ps_product.active AS 'Actif (0/1)',
ps_product_lang.name AS 'Nom',
GROUP_CONCAT(DISTINCT ps_category_lang.name SEPARATOR ',') AS 'Catégories (x,y,z,...)',
ps_product.price AS 'Prix HT OU Prix TTC',
ps_product.id_tax_rules_group AS 'ID règles de taxes',
ps_product.wholesale_price AS 'Prix d\'achat',
ps_product.on_sale AS 'En soldes (0/1)',
ps_specific_price.reduction AS 'Montant de la remise',
ps_specific_price.reduction AS 'Pourcentage de réduction',
ps_specific_price.from AS 'Réduction de (aaaa-mm-jj)',
ps_specific_price.to AS 'Réduction à (aaaa-mm-jj)',
ps_product.reference AS 'Référence',
ps_product.supplier_reference AS 'Référence fournisseur',
ps_supplier.name AS 'Fournisseur',
ps_manufacturer.name AS 'Fabricant',
ps_product.ean13 AS 'EAN13',
ps_product.upc AS 'UPC',
ps_product.ecotax AS 'Éco-participation',
ps_product.width AS 'Largeur',
ps_product.height AS 'Hauteur',
ps_product.depth AS 'Profondeur',
ps_product.weight AS 'Poids',
ps_product.quantity AS 'Quantité',
ps_product.minimal_quantity AS 'Quantité minimale',
ps_product.visibility AS 'Visibilité',
ps_product.additional_shipping_cost AS 'Frais de port supplémentaires',
ps_product.unity AS 'Unité pour le prix unitaire',
ps_product.unit_price_ratio AS 'Prix unitaire',
ps_product_lang.description_short AS 'Résumé',
ps_product_lang.description AS 'Description',
GROUP_CONCAT(DISTINCT ps_tag.name SEPARATOR ',') AS 'Mots-clés (x,y,z...)',

ps_product_lang.meta_title AS 'Balise titre',
ps_product_lang.meta_keywords AS 'Meta mots-clés',
ps_product_lang.meta_description AS 'Meta description',
ps_product_lang.link_rewrite AS 'URL simplifiée',
ps_product_lang.available_now AS 'Texte En stock',

ps_product_lang.available_later AS 'Texte En précommande (si activé)',
ps_product.available_for_order AS 'Disponible à la commande (0/1)',
ps_product.available_date AS 'Date de disponibilité du produit',
ps_product.date_add AS 'Date d\'ajout du produit',
ps_product.show_price AS 'Afficher le prix (0/1)',
GROUP_CONCAT(
    DISTINCT 
    CONCAT(
        'http://',ps_shop_url.domain,
        ifnull(ps_shop_url.physical_uri,'/'), 
        'img/p/',mid(ps_image.id_image,1,1),'/', 
        if (length(ps_image.id_image)>1,concat(mid(ps_image.id_image,2,1),'/'),''),
        if (length(ps_image.id_image)>2,concat(mid(ps_image.id_image,3,1),'/'),''),
        if (length(ps_image.id_image)>3,concat(mid(ps_image.id_image,4,1),'/'),''),
        if (length(ps_image.id_image)>4,concat(mid(ps_image.id_image,5,1),'/'),''), 
        ps_image.id_image, '.jpg') SEPARATOR ','
    ) AS 'URL des images',


 0 as 'Supprimer les images existantes (0/1)',
 
 GROUP_CONCAT(
     DISTINCT 
     CONCAT(
         ps_feature_lang.name,
         ':',
         ps_feature_value_lang.value,
         ':',
         ps_feature.position,
         ':',
         ps_feature_value.custom
     ) SEPARATOR ','
     ) as 'Caractéristique (Nom:Valeur:Position:Personnalisé)',
     
ps_product.online_only AS 'Disponible en ligne uniquement(0/1)',
ps_product.condition AS 'État',
ps_product.customizable AS 'Personnalisable (0/1)',
0 AS 'Fichiers téléchargeables (0/1)',
ps_product.text_fields AS 'Champs texte  (0/1)',
ps_product.out_of_stock AS 'Action en cas de rupture de stock',
ps_product.id_shop_default AS 'ID ou nom de la boutique',
ps_product.advanced_stock_management AS 'Gestion des stocks avancée',
ps_stock_available.depends_on_stock AS 'En fonction du stock',
ps_stock.id_warehouse AS 'Entrepôt'

FROM (ps_product,ps_shop_url)

LEFT OUTER JOIN ps_product_lang
ON ps_product.id_product = ps_product_lang.id_product AND ps_product_lang.id_lang = 1

LEFT OUTER JOIN ps_manufacturer
ON ps_product.id_manufacturer = ps_manufacturer.id_manufacturer

LEFT OUTER JOIN ps_specific_price
ON ps_product.id_product = ps_specific_price.id_product

LEFT OUTER JOIN ps_supplier
ON ps_product.id_supplier = ps_supplier.id_supplier
       
LEFT OUTER JOIN ps_image
ON ps_product.id_product = ps_image.id_product

LEFT OUTER JOIN ps_imgimport
ON ps_product.id_product = ps_imgimport.id_product

LEFT OUTER JOIN ps_category_product
ON ps_category_product.id_product =  ps_product.id_product

LEFT OUTER JOIN ps_category_lang
ON ps_category_lang.id_category = ps_category_product.id_category AND ps_category_lang.id_lang = 1

LEFT OUTER JOIN ps_stock_available
ON ps_product.id_product = ps_stock_available.id_product

LEFT OUTER JOIN ps_stock

ON ps_product.id_product = ps_stock.id_product

LEFT OUTER JOIN ps_product_tag
ON ps_product.id_product = ps_product_tag.id_product

LEFT OUTER JOIN ps_tag
ON ps_tag.id_tag = ps_product_tag.id_tag AND ps_tag.id_lang = 1

LEFT OUTER JOIN ps_feature_product
ON ps_product.id_product = ps_feature_product.id_product

LEFT OUTER JOIN ps_feature
ON ps_feature.id_feature = ps_feature_product.id_feature

LEFT OUTER JOIN ps_feature_lang
ON ps_feature.id_feature = ps_feature_lang.id_feature AND ps_feature_lang.id_lang=1

LEFT OUTER JOIN ps_feature_value
ON ps_feature.id_feature = ps_feature_value.id_feature

LEFT OUTER JOIN ps_feature_value_lang
ON ps_feature_value.id_feature_value = ps_feature_value_lang.id_feature_value AND ps_feature_value_lang.id_lang=1

GROUP BY ps_product.id_product
Link to comment
Share on other sites

  • 3 weeks later...

Bonjour à tous, j'ai un module gratuit que j'aimerais vous faire tester : https://www.prestashop.com/forums/topic/504883-big-data-r%C3%A9cup%C3%A9rer-des-donn%C3%A9es-sql-en-csv-facilement/?p=2249858

Il permet de sauvegarder les requêtes avec une description, d'en ajouter, modifier, supprimer, et le résultat est visible :
- dans un tableau html,
- sous forme sérializée,
- dans un fichier excel.

Merci d'avance pour vos retours ;)

Link to comment
Share on other sites

Merci pour le module

je viens de tester et c'est très intéressant

Reste plus "ka" y mettre ses propres requêtes..... mais là, ce n'est pas dans mes compétences.

 
De rien, oui pour les requêtes il faut soit les créer, soit les récupérer, par exemple pour lister les stocks des produits et déclinaisons pour la boutique "1" : 
 
SELECT sa.id_product, pl.name, GROUP_CONCAT( al.name) as déclinaison, sa.quantity, sa.id_shop, sa.id_product_attribute
FROM _DB_PREFIX_product_lang pl
LEFT JOIN  _DB_PREFIX_stock_available sa ON(pl.id_product = sa.id_product AND pl.id_lang=1)
LEFT JOIN _DB_PREFIX_product_attribute_combination pac ON(pac.id_product_attribute = sa.id_product_attribute)
LEFT JOIN _DB_PREFIX_attribute_lang  al ON(al.id_attribute = pac.id_attribute AND al.id_lang=1)
WHERE pl.id_shop IN (1)
GROUP BY sa.id_product,sa.id_product_attribute 
ORDER BY sa.id_product ASC

Bonjour et merci pour ce module.

Ce dernier est il compatible 1.4.x?

 

j'ai fais les tests sous 1.5. et 1.6 (tout est ok), je viens de tester sous 1.4.9 et non ça n'a pas fonctionné, désolé.
 
Par contre si vous avez des questions sur le module, vaut mieux le faire sur https://www.prestashop.com/forums/topic/504883-big-data-r%C3%A9cup%C3%A9rer-des-donn%C3%A9es-sql-en-csv-facilement/?p=2249858 afin d'éviter de rendre incompréhensible ce sujet.
Link to comment
Share on other sites

  • 2 weeks later...

Bonjour a toute la communauté,

 

Je voudrai savoir comment importer un fichier en csv contentant toute les commandes reçus sur c le marcher vers PrestaShop en passant par une requête sql. Les champs de mon fichier sont les suivant :

 

Enseigne Référence commande /
Order ID Date de commande /
Order date Date de dernière modification /
Last modification date Statut commande /
Order status Mode d'expédition /
Shipping mode Détail produit /
Product details Etat produit /
Product condition Référence vendeur /
Seller reference EAN SKU Cdiscount Statut produit /
Product status Quantité /
Quantity Prix Total (€ TTC) hors frais de traitement /
Unit price (incl. tax) excluded processing fee Montant Frais de livraison (€ TTC) /
Shipping fee (incl. tax) Commission (€ TTC) /
Commission (incl. tax) Rémunération vendeur (€ TTC) /
Seller income (incl. tax) Nom et Adresse de livraison /
Shipping name and address Code postal de livraison /
Shipping ZIP code  Ville de livraison / Shipping city Téléphone livraison 1 /
Shipping phone #1 Téléphone livraison 2 /
Shipping phone #2 Nom et Adresse de facturation /
Billing name and address Code postal de facturation /
Billing ZIP code Ville de facturation /
Billing city    

 

Quelqu'un peut t'il m'aider

Link to comment
Share on other sites

  • 2 months later...

La requete pur exporter les categories ne fonctionne pas chez moi :

 

Erreur :

2 erreurs

Lorsque plusieurs tables sont utilisées, chaque attribut doit être référencé à l'une de ces tables.

Erreur non définie "checkedFrom"

 

SELECT

ps_category.id_category,

ps_category.active,

`Name Category`.`name` AS `Name`,

`Name Parent`.`name` AS Parent,

`Name Category`.description,

`Name Category`.meta_title,

`Name Category`.meta_keywords,

`Name Category`.meta_description,

`Name Category`.link_rewrite

FROM

ps_category

LEFT JOIN ps_category_lang AS `Name Category` ON `Name Category`.id_category = ps_category.id_category

LEFT JOIN ps_category_lang AS `Name Parent` ON `Name Parent`.id_category = ps_category.id_parent

 

Merci

Link to comment
Share on other sites

Cette requete a fonctionné pour l'export

 

select cl.id_category,

cl2.name as parent_name,

cl.name,

cl.description,

cl.link_rewrite,

 

cl.id_lang

from ps_category c

inner join ps_category_lang cl on cl.id_category = c.id_category

inner join ps_category_lang cl2 on cl2.id_category = c.id_parent and cl2.id_lang = cl.id_lang

left join ps_configuration conf on conf.name = 'PS_SHOP_DOMAIN'

order by cl.id_lang, c.level_depth

Link to comment
Share on other sites

  • 3 weeks later...

hello, j'ai essayé de trouver la solution mais sans succès.

je voudrait pouvoir exporter le montant de la tva par produit et si possible avec la tax-rule id pour pouvoir ensuite faire une ventilation de tva par taux. j'ai actuellement une requête qui me permet d'exporter mes commandes avec pleins d'infos, je souhaiterais donc la modifier pour ajouter cela.

je ne suis pas experte en requêtes sql je connais les bases mais là c'est trop compliqué pour moi.

voici ma requête actuelle, quelqu'un pourrait il me dire commen ajouter la tva et le taux, merci d'avance.

SELECT `id_order`, `id_carrier`, `id_customer`, `id_cart`, `payment`,`shipping_number`, `total_discounts`,

`total_discounts_tax_excl`, `total_discounts_tax_incl`, `total_paid`, `total_paid_tax_excl`,

`total_paid_tax_incl`, `total_paid_real`, `total_products`, `total_products_wt`, `total_shipping`,

`total_shipping_tax_excl`, `total_shipping_tax_incl`, `carrier_tax_rate`, `invoice_date`, `delivery_date`,

`valid`, `date_add`, `date_upd` FROM `ps_orders` WHERE `id_order` >=numero de com

 

j'ai essayé ca mais sans succès:

 

SELECT `id_order`, `id_carrier`, `id_customer`, `id_cart`, `payment`,`shipping_number`,

`total_discounts`, `total_discounts_tax_excl`, `total_discounts_tax_incl`, `total_paid`,

`total_paid_tax_excl`, `total_paid_tax_incl`, `total_paid_real`, `total_products`,

`total_products_wt`, `total_shipping`, `total_shipping_tax_excl`, `total_shipping_tax_incl`,

`carrier_tax_rate`, `tax_name`, `tax_rate`, `invoice_date`, `delivery_date`, `valid`, `date_add`, `date_upd`

FROM `ps_orders`, `ps_orders_details` WHERE `id_order` >=

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

  • 4 months later...

 

Bonjour à tous,

 

j'apporte une petite contribution que ce forum m'a aidé à construire, un script pour Prestashop 1.6.1.2 permettant d'exporter tous les produits, calqué sur le tableau d'import Prestashop.

 

Néanmoins il y a un petit hic pour les caractéristiques. J'aimerais récupérer les caractéristiques propres à mon produit, hors cette requête me sort toutes les caractéristiques insérées, même celles qui ne sont pas liées à mon produit. J'ai du mal à comprendre pourquoi vu que je fais bien la jointure avec mon id_product.

 

Donc si quelqu'un a une idée, ce serait génial !!!

 

Sinon, le reste semble marcher nickel (c'est toujours pareil, si vous relevez des erreurs n'hésitez pas, je pense que ça peut servir à tout le monde :) )

SELECT
ps_product.id_product AS 'ID',
ps_product.active AS 'Actif (0/1)',
ps_product_lang.name AS 'Nom',
GROUP_CONCAT(DISTINCT ps_category_lang.name SEPARATOR ',') AS 'Catégories (x,y,z,...)',
ps_product.price AS 'Prix HT OU Prix TTC',
ps_product.id_tax_rules_group AS 'ID règles de taxes',
ps_product.wholesale_price AS 'Prix d\'achat',
ps_product.on_sale AS 'En soldes (0/1)',
ps_specific_price.reduction AS 'Montant de la remise',
ps_specific_price.reduction AS 'Pourcentage de réduction',
ps_specific_price.from AS 'Réduction de (aaaa-mm-jj)',
ps_specific_price.to AS 'Réduction à (aaaa-mm-jj)',
ps_product.reference AS 'Référence',
ps_product.supplier_reference AS 'Référence fournisseur',
ps_supplier.name AS 'Fournisseur',
ps_manufacturer.name AS 'Fabricant',
ps_product.ean13 AS 'EAN13',
ps_product.upc AS 'UPC',
ps_product.ecotax AS 'Éco-participation',
ps_product.width AS 'Largeur',
ps_product.height AS 'Hauteur',
ps_product.depth AS 'Profondeur',
ps_product.weight AS 'Poids',
ps_product.quantity AS 'Quantité',
ps_product.minimal_quantity AS 'Quantité minimale',
ps_product.visibility AS 'Visibilité',
ps_product.additional_shipping_cost AS 'Frais de port supplémentaires',
ps_product.unity AS 'Unité pour le prix unitaire',
ps_product.unit_price_ratio AS 'Prix unitaire',
ps_product_lang.description_short AS 'Résumé',
ps_product_lang.description AS 'Description',
GROUP_CONCAT(DISTINCT ps_tag.name SEPARATOR ',') AS 'Mots-clés (x,y,z...)',

ps_product_lang.meta_title AS 'Balise titre',
ps_product_lang.meta_keywords AS 'Meta mots-clés',
ps_product_lang.meta_description AS 'Meta description',
ps_product_lang.link_rewrite AS 'URL simplifiée',
ps_product_lang.available_now AS 'Texte En stock',

ps_product_lang.available_later AS 'Texte En précommande (si activé)',
ps_product.available_for_order AS 'Disponible à la commande (0/1)',
ps_product.available_date AS 'Date de disponibilité du produit',
ps_product.date_add AS 'Date d\'ajout du produit',
ps_product.show_price AS 'Afficher le prix (0/1)',
GROUP_CONCAT(
    DISTINCT 
    CONCAT(
        'http://',ps_shop_url.domain,
        ifnull(ps_shop_url.physical_uri,'/'), 
        'img/p/',mid(ps_image.id_image,1,1),'/', 
        if (length(ps_image.id_image)>1,concat(mid(ps_image.id_image,2,1),'/'),''),
        if (length(ps_image.id_image)>2,concat(mid(ps_image.id_image,3,1),'/'),''),
        if (length(ps_image.id_image)>3,concat(mid(ps_image.id_image,4,1),'/'),''),
        if (length(ps_image.id_image)>4,concat(mid(ps_image.id_image,5,1),'/'),''), 
        ps_image.id_image, '.jpg') SEPARATOR ','
    ) AS 'URL des images',


 0 as 'Supprimer les images existantes (0/1)',
 
 GROUP_CONCAT(
     DISTINCT 
     CONCAT(
         ps_feature_lang.name,
         ':',
         ps_feature_value_lang.value,
         ':',
         ps_feature.position,
         ':',
         ps_feature_value.custom
     ) SEPARATOR ','
     ) as 'Caractéristique (Nom:Valeur:Position:Personnalisé)',
     
ps_product.online_only AS 'Disponible en ligne uniquement(0/1)',
ps_product.condition AS 'État',
ps_product.customizable AS 'Personnalisable (0/1)',
0 AS 'Fichiers téléchargeables (0/1)',
ps_product.text_fields AS 'Champs texte  (0/1)',
ps_product.out_of_stock AS 'Action en cas de rupture de stock',
ps_product.id_shop_default AS 'ID ou nom de la boutique',
ps_product.advanced_stock_management AS 'Gestion des stocks avancée',
ps_stock_available.depends_on_stock AS 'En fonction du stock',
ps_stock.id_warehouse AS 'Entrepôt'

FROM (ps_product,ps_shop_url)

LEFT OUTER JOIN ps_product_lang
ON ps_product.id_product = ps_product_lang.id_product AND ps_product_lang.id_lang = 1

LEFT OUTER JOIN ps_manufacturer
ON ps_product.id_manufacturer = ps_manufacturer.id_manufacturer

LEFT OUTER JOIN ps_specific_price
ON ps_product.id_product = ps_specific_price.id_product

LEFT OUTER JOIN ps_supplier
ON ps_product.id_supplier = ps_supplier.id_supplier
       
LEFT OUTER JOIN ps_image
ON ps_product.id_product = ps_image.id_product

LEFT OUTER JOIN ps_imgimport
ON ps_product.id_product = ps_imgimport.id_product

LEFT OUTER JOIN ps_category_product
ON ps_category_product.id_product =  ps_product.id_product

LEFT OUTER JOIN ps_category_lang
ON ps_category_lang.id_category = ps_category_product.id_category AND ps_category_lang.id_lang = 1

LEFT OUTER JOIN ps_stock_available
ON ps_product.id_product = ps_stock_available.id_product

LEFT OUTER JOIN ps_stock

ON ps_product.id_product = ps_stock.id_product

LEFT OUTER JOIN ps_product_tag
ON ps_product.id_product = ps_product_tag.id_product

LEFT OUTER JOIN ps_tag
ON ps_tag.id_tag = ps_product_tag.id_tag AND ps_tag.id_lang = 1

LEFT OUTER JOIN ps_feature_product
ON ps_product.id_product = ps_feature_product.id_product

LEFT OUTER JOIN ps_feature
ON ps_feature.id_feature = ps_feature_product.id_feature

LEFT OUTER JOIN ps_feature_lang
ON ps_feature.id_feature = ps_feature_lang.id_feature AND ps_feature_lang.id_lang=1

LEFT OUTER JOIN ps_feature_value
ON ps_feature.id_feature = ps_feature_value.id_feature

LEFT OUTER JOIN ps_feature_value_lang
ON ps_feature_value.id_feature_value = ps_feature_value_lang.id_feature_value AND ps_feature_value_lang.id_lang=1

GROUP BY ps_product.id_product

As-tu réellement testée ta requête dans le gestionnaire SQL car de mon côté, impossible de la faire fonctionner... 

Link to comment
Share on other sites

  • 3 months later...

Bonjour à tous,

juste pour partager la requête qu'un copain m'a écrite.

J'avais besoin d'une liste de mes articles avec leur lieu de stockage, entrepôt et localisation afin de les retrouver facilement.

 

SELECT PP.id_product as 'ID',PP.reference as 'REFERENCE', PPL.name as 'NAME',PW.name as 'Entrepot',PWPL.location FROM `pre42_product` PP , `pre42_product_lang` PPL, `pre42_warehouse` PW, `pre42_warehouse_product_location` PWPL WHERE PP.id_product=PPL.id_product and PPL.id_lang=1 and  PP.id_product=PWPL.id_product and PWPL.id_warehouse=PW.id_warehouse

 

et encore merci pour ce module.

 

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...

Je remonte ce sujet car je désespère de trouver la solution à mon problème qui me bloc pour ma migration depuis plusieurs jours.

 

je souhaite importe les clients de ma base de données mysql vers mon futur site Prestashop, mais il m'est impossible de réussir l'import.

 

En effet, j'ai tout le temps ce message d'erreur :

 

  1. [email protected] (ID: 3) ne peut pas être enregistré
  2. Property Customer->lastname is empty
  3. [email protected] (ID: 5) ne peut pas être enregistré

J'ai essayé de multiples tests, avec des données différents, un format d'encodage différent mais rien y fait. Bien entendu, le nom est bien rempli et la correspondance avec la colonne est bonne.

 

Auriez vous une piste ou une autre solution pour importer mes données, par exemple directement en injection ? Lorsque je fais ceci, je me loggue en tant que client avec un compte crée directement via une requete SQL et il m'est impossible de passer une commande valide. Faut il faire des insert dans d'autres tables que "customer".

 

Petite précision qui j’espère inspirera quelqu'un pour me trouver une solution, j'ai repris exactement le meme CSV qui avait fonctionné lors de mon dernier import. Donc, ça ne vient pas de ce fichier.

 

2ème précision, mon 1er import avait été fait sur un serveur mutualisé, depuis j'ai migré le site vers un serveur dédié.

 

Merci d'avance pour votre aide.

Link to comment
Share on other sites

  • 3 months later...

As-tu réellement testée ta requête dans le gestionnaire SQL car de mon côté, impossible de la faire fonctionner... 

jlweb je confirme en effet que ce code fonctionne parfaitement bien.... 

SAUF QUE, me concernant mes Quantité en STOCK sont toujours à 0 !!!

Je ne comprends pas pourquoi, alors que mes quantités de stock sont parfaitement bien renseignés !

Certains produits ont des déclinaisons, mais pas tous ! en tout cas toute la colonne quantity est à 0. Pas glop ça !

Je ne trouve pas comment regler ce problème.

 

qulq'un pour m'aider ?

Link to comment
Share on other sites

Bonjour Reg1st,

si comme j'avais, on utilise le stock avancé et le stock manuel, les quantités en stock sont dispatchées sur 2 tables :

pre42_stock_available.id_product et pre42_stock_available.id_product (pre42 c'est suivant le nom de vos tables)

 

Si ça peut aider

Cordialement

Alain

Link to comment
Share on other sites

  • 2 months later...
SELECT
ps_product.id_product AS 'ID',
ps_product.active AS 'Actif (0/1)',
ps_product_lang.name AS 'Nom',
GROUP_CONCAT(DISTINCT ps_category_lang.name SEPARATOR ',') AS 'Catégories (x,y,z,...)',
ps_product.price AS 'Prix HT OU Prix TTC',
ps_product.id_tax_rules_group AS 'ID règles de taxes',
ps_product.wholesale_price AS 'Prix d\'achat',
ps_product.on_sale AS 'En soldes (0/1)',
ps_specific_price.reduction AS 'Montant de la remise',
ps_specific_price.reduction AS 'Pourcentage de réduction',
ps_specific_price.from AS 'Réduction de (aaaa-mm-jj)',
ps_specific_price.to AS 'Réduction à (aaaa-mm-jj)',
ps_product.reference AS 'Référence',
ps_product.supplier_reference AS 'Référence fournisseur',
ps_supplier.name AS 'Fournisseur',
ps_manufacturer.name AS 'Fabricant',
ps_product.ean13 AS 'EAN13',
ps_product.upc AS 'UPC',
ps_product.ecotax AS 'Éco-participation',
ps_product.width AS 'Largeur',
ps_product.height AS 'Hauteur',
ps_product.depth AS 'Profondeur',
ps_product.weight AS 'Poids',
ps_product.quantity AS 'Quantité',
ps_product.minimal_quantity AS 'Quantité minimale',
ps_product.visibility AS 'Visibilité',
ps_product.additional_shipping_cost AS 'Frais de port supplémentaires',
ps_product.unity AS 'Unité pour le prix unitaire',
ps_product.unit_price_ratio AS 'Prix unitaire',
ps_product_lang.description_short AS 'Résumé',
ps_product_lang.description AS 'Description',
GROUP_CONCAT(DISTINCT ps_tag.name SEPARATOR ',') AS 'Mots-clés (x,y,z...)',

ps_product_lang.meta_title AS 'Balise titre',
ps_product_lang.meta_keywords AS 'Meta mots-clés',
ps_product_lang.meta_description AS 'Meta description',
ps_product_lang.link_rewrite AS 'URL simplifiée',
ps_product_lang.available_now AS 'Texte En stock',

ps_product_lang.available_later AS 'Texte En précommande (si activé)',
ps_product.available_for_order AS 'Disponible à la commande (0/1)',
ps_product.available_date AS 'Date de disponibilité du produit',
ps_product.date_add AS 'Date d\'ajout du produit',
ps_product.show_price AS 'Afficher le prix (0/1)',
GROUP_CONCAT(
    DISTINCT 
    CONCAT(
        'http://',ps_shop_url.domain,
        ifnull(ps_shop_url.physical_uri,'/'), 
        'img/p/',mid(ps_image.id_image,1,1),'/', 
        if (length(ps_image.id_image)>1,concat(mid(ps_image.id_image,2,1),'/'),''),
        if (length(ps_image.id_image)>2,concat(mid(ps_image.id_image,3,1),'/'),''),
        if (length(ps_image.id_image)>3,concat(mid(ps_image.id_image,4,1),'/'),''),
        if (length(ps_image.id_image)>4,concat(mid(ps_image.id_image,5,1),'/'),''), 
        ps_image.id_image, '.jpg') SEPARATOR ','
    ) AS 'URL des images',


 0 as 'Supprimer les images existantes (0/1)',
 
 GROUP_CONCAT(
     DISTINCT 
     CONCAT(
         ps_feature_lang.name,
         ':',
         ps_feature_value_lang.value,
         ':',
         ps_feature.position,
         ':',
         ps_feature_value.custom
     ) SEPARATOR ','
     ) as 'Caractéristique (Nom:Valeur:Position:Personnalisé)',
     
ps_product.online_only AS 'Disponible en ligne uniquement(0/1)',
ps_product.condition AS 'État',
ps_product.customizable AS 'Personnalisable (0/1)',
0 AS 'Fichiers téléchargeables (0/1)',
ps_product.text_fields AS 'Champs texte  (0/1)',
ps_product.out_of_stock AS 'Action en cas de rupture de stock',
ps_product.id_shop_default AS 'ID ou nom de la boutique',
ps_product.advanced_stock_management AS 'Gestion des stocks avancée',
ps_stock_available.depends_on_stock AS 'En fonction du stock',
ps_stock.id_warehouse AS 'Entrepôt'

FROM (ps_product,ps_shop_url)

LEFT OUTER JOIN ps_product_lang
ON ps_product.id_product = ps_product_lang.id_product AND ps_product_lang.id_lang = 1

LEFT OUTER JOIN ps_manufacturer
ON ps_product.id_manufacturer = ps_manufacturer.id_manufacturer

LEFT OUTER JOIN ps_specific_price
ON ps_product.id_product = ps_specific_price.id_product

LEFT OUTER JOIN ps_supplier
ON ps_product.id_supplier = ps_supplier.id_supplier
       
LEFT OUTER JOIN ps_image
ON ps_product.id_product = ps_image.id_product

LEFT OUTER JOIN ps_imgimport
ON ps_product.id_product = ps_imgimport.id_product

LEFT OUTER JOIN ps_category_product
ON ps_category_product.id_product =  ps_product.id_product

LEFT OUTER JOIN ps_category_lang
ON ps_category_lang.id_category = ps_category_product.id_category AND ps_category_lang.id_lang = 1

LEFT OUTER JOIN ps_stock_available
ON ps_product.id_product = ps_stock_available.id_product

LEFT OUTER JOIN ps_stock

ON ps_product.id_product = ps_stock.id_product

LEFT OUTER JOIN ps_product_tag
ON ps_product.id_product = ps_product_tag.id_product

LEFT OUTER JOIN ps_tag
ON ps_tag.id_tag = ps_product_tag.id_tag AND ps_tag.id_lang = 1

LEFT OUTER JOIN ps_feature_product
ON ps_product.id_product = ps_feature_product.id_product

LEFT OUTER JOIN ps_feature
ON ps_feature.id_feature = ps_feature_product.id_feature

LEFT OUTER JOIN ps_feature_lang
ON ps_feature.id_feature = ps_feature_lang.id_feature AND ps_feature_lang.id_lang=1

LEFT OUTER JOIN ps_feature_value
ON ps_feature.id_feature = ps_feature_value.id_feature

LEFT OUTER JOIN ps_feature_value_lang
ON ps_feature_value.id_feature_value = ps_feature_value_lang.id_feature_value AND ps_feature_value_lang.id_lang=1

GROUP BY ps_product.id_product

Vraiment géniale cette requête merci.

Par contre, je me demande comment limiter la récupération des images à une seule image dans le cas ou un produit contient plusieurs images ???

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 year later...
On 3/4/2019 at 3:44 PM, raphael said:

Bonjour a tous ,

Savez vous la requête SQL pour pouvoir voir la date d'ajout d'un nouveau produits

je voudrais connaitre les produits invendus avant X date et créer avant X date

Merci d'avance 😃

Bonsoir,

Ton bonheur ici : https://marketing301.net/liste-6-fonctions-cachees-back-office-prestashop/

Il s'agit justement de 6 requêtes SQL comme celle que tu recherches.

Link to comment
Share on other sites

  • 11 months later...

Salut ,
@jlweb je suis sur prestashop 1.7.5.2 dans le gestionnaire Sql . Toujours il m'affiche  "FROM" n'existe pas.
une idée svp

SELECT
ps_product.id_product AS 'ID',
ps_product.active AS 'Actif (0/1)',
ps_product_lang.name AS 'Nom',
GROUP_CONCAT(DISTINCT ps_category_lang.name SEPARATOR ',') AS 'Catégories (x,y,z,...)',
ps_product.price AS 'Prix HT OU Prix TTC',
ps_product.id_tax_rules_group AS 'ID règles de taxes',
ps_product.wholesale_price AS 'Prix d'achat',
ps_product.on_sale AS 'En soldes (0/1)',
ps_specific_price.reduction AS 'Montant de la remise',
ps_specific_price.reduction AS 'Pourcentage de réduction',
ps_specific_price.from AS 'Réduction de (aaaa-mm-jj)',
ps_specific_price.to AS 'Réduction à (aaaa-mm-jj)',
ps_product.reference AS 'Référence',
ps_product.supplier_reference AS 'Référence fournisseur',
ps_supplier.name AS 'Fournisseur',
ps_manufacturer.name AS 'Fabricant',
ps_product.ean13 AS 'EAN13',
ps_product.upc AS 'UPC',
ps_product.ecotax AS 'Éco-participation',
ps_product.width AS 'Largeur',
ps_product.height AS 'Hauteur',
ps_product.depth AS 'Profondeur',
ps_product.weight AS 'Poids',
ps_product.quantity AS 'Quantité',
ps_product.minimal_quantity AS 'Quantité minimale',
ps_product.visibility AS 'Visibilité',
ps_product.additional_shipping_cost AS 'Frais de port supplémentaires',
ps_product.unity AS 'Unité pour le prix unitaire',
ps_product.unit_price_ratio AS 'Prix unitaire',
ps_product_lang.description_short AS 'Résumé',
ps_product_lang.description AS 'Description',
GROUP_CONCAT(DISTINCT ps_tag.name SEPARATOR ',') AS 'Mots-clés (x,y,z...)',

ps_product_lang.meta_title AS 'Balise titre',
ps_product_lang.meta_keywords AS 'Meta mots-clés',
ps_product_lang.meta_description AS 'Meta description',
ps_product_lang.link_rewrite AS 'URL simplifiée',
ps_product_lang.available_now AS 'Texte En stock',

ps_product_lang.available_later AS 'Texte En précommande (si activé)',
ps_product.available_for_order AS 'Disponible à la commande (0/1)',
ps_product.available_date AS 'Date de disponibilité du produit',
ps_product.date_add AS 'Date d'ajout du produit',
ps_product.show_price AS 'Afficher le prix (0/1)',
GROUP_CONCAT(
    DISTINCT 
    CONCAT(
        'http://',ps_shop_url.domain,
        ifnull(ps_shop_url.physical_uri,'/'), 
        'img/p/',mid(ps_image.id_image,1,1),'/', 
        if (length(ps_image.id_image)>1,concat(mid(ps_image.id_image,2,1),'/'),''),
        if (length(ps_image.id_image)>2,concat(mid(ps_image.id_image,3,1),'/'),''),
        if (length(ps_image.id_image)>3,concat(mid(ps_image.id_image,4,1),'/'),''),
        if (length(ps_image.id_image)>4,concat(mid(ps_image.id_image,5,1),'/'),''), 
        ps_image.id_image, '.jpg') SEPARATOR ','
    ) AS 'URL des images',


 0 as 'Supprimer les images existantes (0/1)',
 
 GROUP_CONCAT(
     DISTINCT 
     CONCAT(
         ps_feature_lang.name,
         ':',
         ps_feature_value_lang.value,
         ':',
         ps_feature.position,
         ':',
         ps_feature_value.custom
     ) SEPARATOR ','
     ) as 'Caractéristique (Nom:Valeur:Position:Personnalisé)',
     
ps_product.online_only AS 'Disponible en ligne uniquement(0/1)',
ps_product.condition AS 'État',
ps_product.customizable AS 'Personnalisable (0/1)',
0 AS 'Fichiers téléchargeables (0/1)',
ps_product.text_fields AS 'Champs texte  (0/1)',
ps_product.out_of_stock AS 'Action en cas de rupture de stock',
ps_product.id_shop_default AS 'ID ou nom de la boutique',
ps_product.advanced_stock_management AS 'Gestion des stocks avancée',
ps_stock_available.depends_on_stock AS 'En fonction du stock',
ps_stock.id_warehouse AS 'Entrepôt'

FROM (ps_product,ps_shop_url)

LEFT OUTER JOIN ps_product_lang
ON ps_product.id_product = ps_product_lang.id_product AND ps_product_lang.id_lang = 1

LEFT OUTER JOIN ps_manufacturer
ON ps_product.id_manufacturer = ps_manufacturer.id_manufacturer

LEFT OUTER JOIN ps_specific_price
ON ps_product.id_product = ps_specific_price.id_product

LEFT OUTER JOIN ps_supplier
ON ps_product.id_supplier = ps_supplier.id_supplier
       
LEFT OUTER JOIN ps_image
ON ps_product.id_product = ps_image.id_product

LEFT OUTER JOIN ps_imgimport
ON ps_product.id_product = ps_imgimport.id_product

LEFT OUTER JOIN ps_category_product
ON ps_category_product.id_product =  ps_product.id_product

LEFT OUTER JOIN ps_category_lang
ON ps_category_lang.id_category = ps_category_product.id_category AND ps_category_lang.id_lang = 1

LEFT OUTER JOIN ps_stock_available
ON ps_product.id_product = ps_stock_available.id_product

LEFT OUTER JOIN ps_stock

ON ps_product.id_product = ps_stock.id_product

LEFT OUTER JOIN ps_product_tag
ON ps_product.id_product = ps_product_tag.id_product

LEFT OUTER JOIN ps_tag
ON ps_tag.id_tag = ps_product_tag.id_tag AND ps_tag.id_lang = 1

LEFT OUTER JOIN ps_feature_product
ON ps_product.id_product = ps_feature_product.id_product

LEFT OUTER JOIN ps_feature
ON ps_feature.id_feature = ps_feature_product.id_feature

LEFT OUTER JOIN ps_feature_lang
ON ps_feature.id_feature = ps_feature_lang.id_feature AND ps_feature_lang.id_lang=1

LEFT OUTER JOIN ps_feature_value
ON ps_feature.id_feature = ps_feature_value.id_feature

LEFT OUTER JOIN ps_feature_value_lang
ON ps_feature_value.id_feature_value = ps_feature_value_lang.id_feature_value AND ps_feature_value_lang.id_lang=1

GROUP BY ps_product.id_product

nnaire de reqêtes sql j'ai copié la requête 

Link to comment
Share on other sites

  • 7 months later...

Bonjour,

Je reviens sur ce post très intéressant. Je suis Sous PS 1.7, et je cherche un requete pour exporter mes produits avec leur déclinaisons. J'ai testé le module bigdata mais il ne fonctionne pas, et j'ai testé la requete de Pixdream qui ne fonctionne pas non plus sur 1.7.

Merci d'avance de votre aide!

Marilyne

Link to comment
Share on other sites

Merci coes.pro, j'ai réessayé et ça fonctionne effectivement, à part un ligne au début qui n'a pas d'id produit, et donc ça m'avait paru faux directement à l'ouverture du fichier.

Je vois qu'on peut modifier la requete, mais Par contre, je ne sais pas comment ajouter le prix, la référence, si le produit est actif, l'image, la référence de la déclinaison, ean, description, résumé, fabricant

Merci d'avance :)

 

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