Jump to content

Créer une picking list facilement (Gratuit - PS 1.5)


Joseph90

Recommended Posts

Bonjour à tous,

 

avec un volume croissant de commandes sur ma boutique, je souhaitais installer un module capable de m'éditer la liste produits à expédier. Rien ne correspondait exactement à mes besoins, j'ai donc créé une requête SQL facilement avec le gestionnaire SQL des paramètres avancés de Prestashop 1.5.

SELECT o.id_order AS Cmd, o.reference AS Ref, c.firstname AS Prenom, c.lastname AS Nom, od.product_quantity AS Qte, od.product_name AS Produits_commandes, cm.message AS Message_cmd
FROM ps_order_detail od
LEFT JOIN ps_orders o ON (od.id_order = o.id_order)
LEFT JOIN ps_customer c ON (o.id_customer = c.id_customer)
LEFT JOIN ps_customer_thread ct ON (od.id_order = ct.id_order)
LEFT JOIN ps_customer_message cm ON (ct.id_customer_thread = cm.id_customer_thread)
WHERE o.current_state = 2
OR o.current_state = 3
ORDER BY o.id_order

Cette requête affiche simplement les commandes, le nom du client associé, la quantité de chaque produit et les éventuels messages de la part du client (pratique si un client vous rappelle de lui expédier un produit en bleu comme vous lui avez promis au téléphone).

Les commandes affichées sont à l'état "paiement accepté" (2 chez moi) ou "préparation en cours" (3 chez moi). Libre à vous de l'adapter !

 

Pour les plus exigeants, j'ai amélioré ma requête avec la gestion des images produits

SELECT o.id_order AS Cmd, o.reference AS Ref, c.firstname AS Prenom, c.lastname AS Nom, od.product_quantity AS Qte, od.product_name AS Produits_commandes,
CONCAT('<img src="/', p.id_product, '-', il.id_image,'-small_retina/', pl.link_rewrite, '.jpg" width="64" height="64"/> ') AS Image, cm.message AS Message_cmd
FROM ps_order_detail od
LEFT JOIN ps_orders o ON (od.id_order = o.id_order)
LEFT JOIN ps_product p ON (od.product_id = p.id_product)
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_image i ON (od.product_id = i.id_product)
LEFT JOIN ps_image_lang il ON (i.id_image = il.id_image)
LEFT JOIN ps_customer c ON (o.id_customer = c.id_customer)
LEFT JOIN ps_customer_thread ct ON (od.id_order = ct.id_order)
LEFT JOIN ps_customer_message cm ON (ct.id_customer_thread = cm.id_customer_thread)
WHERE il.id_lang = 2
AND pl.id_lang = 2
AND i.cover = 1
AND (o.current_state = 2 OR o.current_state = 3)
ORDER BY o.id_order DESC

Seules quelques images ne s'affiche pas chez moi sans que je n'ai trouvé pourquoi... Il m'a également fallu inscrire cette seconde requête directement dans la BDD car prestashop supprime le contenu de la fonction CONCAT() sans raison.

 

 

Voila, parfois les modules ne sont pas nécessaires et Prestashop offre déjà des outils adaptables.

 

 

Testé sur Prestashop 1.5.6.2

Edited by Joseph90 (see edit history)
  • Like 1
Link to comment
Share on other sites

Small_retina est un format d'image perso en effet.

 

Il vous suffit de changer "small_retina" par le nom d'une taille d'image que vous trouverez dans "Préférences  > Images" dans le back office. Cela devrait marcher.

Link to comment
Share on other sites

merci, j'ai du fairte quelques autres modif et au final ça fonctionne avec ça :

 

SELECT o.id_order AS Cmd, o.reference AS Ref, c.firstname AS Prenom, c.lastname AS Nom, od.product_quantity AS Qte, od.product_name AS Produits_commandes,
CONCAT('<img src="/boutique/', il.id_image,'-medium/', pl.link_rewrite, '.jpg" width="90" height="75"/> ') AS Image, cm.message AS Message_cmd
FROM shop_order_detail od
LEFT JOIN shop_orders o ON (od.id_order = o.id_order)
LEFT JOIN shop_product p ON (od.product_id = p.id_product)
LEFT JOIN shop_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN shop_image i ON (od.product_id = i.id_product)
LEFT JOIN shop_image_lang il ON (i.id_image = il.id_image)
LEFT JOIN shop_customer c ON (o.id_customer = c.id_customer)
LEFT JOIN shop_customer_thread ct ON (od.id_order = ct.id_order)
LEFT JOIN shop_customer_message cm ON (ct.id_customer_thread = cm.id_customer_thread)
WHERE il.id_lang = 2
AND pl.id_lang = 2
AND i.cover = 1
AND (o.current_state = 2 OR o.current_state = 3)
ORDER BY o.id_order DESC

 

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