états de commande prestashop
Accueil » Conseils & tutoriels sites internet » Tutos Prestashop » Prestashop : afficher l’état de la commande sur la facture

Prestashop : afficher l’état de la commande sur la facture

Posté dans : Tutos Prestashop 0

Lorsque vous utilisez divers modes de paiement (comme mon module Paiement au magasin ou mon Module de Devis) sur Prestashop, il peut être intéressant de préciser le statut de commande sur la facture plutôt que le mode de paiement. Par exemple, dans le cadre où le client a comme mode de paiement « Devis » ou « Magasin », l’idée est de créer un statut « Paiement par CB » qui sera considéré comme une information utile à fournir à votre comptable (ou toute autre personne analysant vos commandes via les factures de votre site).

Sur Prestashop 1.6.1, les factures ont été décomposées en plusieurs fichiers TPL, disponibles dans le dossier /pdf à la racine de votre site. Les modifier peut ainsi être fastidieux surtout si vous ignorez où regarder. En toute logique, il faudrait également modifier la class qui s’occupe de renvoyer des variables Smarty aux templates, afin d’en ajouter une selon nos besoins.

Cibler la class à modifier

Autant le préciser tout de suite, un override est toujours le bienvenu, pensez-y !

Dans le dossier /class/pdf, vous disposez de toutes les fonctionnalités de génération de PDF. Nous allons travailler sur le fichier HTMLTemplateInvoice.php afin d’y ajouter notre petite variable, renvoyant le statut (ou état) de commande.

Pour chaque commande, nous avons besoin de son identifiant afin d’effectuer une requête à la base de données, pour trouver le texte de l’état de commande. Tapez donc ceci après la ligne 319 :

'custom_status' => Db::getInstance()->getValue("SELECT name FROM "._DB_PREFIX_."order_state_lang WHERE id_order_state = (SELECT current_state FROM "._DB_PREFIX_."orders WHERE id_order = ".$this->order_invoice->id_order.")"),

Nous avons donc créé une variable (custom_status) qui va pouvoir être récupérée sur le template de facture. Notez au passage que l’identifiant de commande est récupéré par ceci : $this->order_invoice->id_order.

Maintenant que la variable est récupérée depuis une requête SQL, ajoutons-là tout bêtement à notre vue !

La vue : le fichier invoice.payment-tab.tpl

Sur Prestashop 1.6.1, le fichier sur lequel nous allons ajouter la variable se nomme invoice.payment-tab.tpl. La construction des factures a été décomposée afin de gérer davantage d’options (la facture étant source de nombreuses demandes).

Editez donc le fichier, vous verrez qu’il est très simple et ne comporte qu’un tableau HTML :

invoice paymennt tab prestashop

Vous pouvez voir sur l’image que j’ai mis en commentaires la ligne 32 (affichage du mode de paiement), pour ajouter la variable d’état de commande avec ceci :

< t d class="right small">{$custom_status} < / t d  >

Enregistrez votre fichier et allez afficher une facture, le résultat est instantané !

Imprimer Imprimer
Suivre Cyssoo:

Développeur - formateur

Je cherche à display errors le monde, vous auriez pas la doc' ? Follow me on Twitter !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.