Accueil » Conseils & tutoriels sites internet » Tutos Prestashop » Prestashop : tutoriel pour créer un module de devis

Prestashop : tutoriel pour créer un module de devis

Posté dans : Tutos Prestashop 0

Suite à quelques demandes que j’ai reçues par mon formulaire de contact, et en raison d’un meilleur suivi des webdesigners qui font appel à mes services pour les aider à finaliser leur boutique, voici donc la méthode utilisée pour détourner le module de chèque afin d’en faire un module de devis.

En ce qui concerne Prestashop 1.7, un module de devis entièrement repensé et gratuit est disponible en cliquant ici.

1/ la sécurité de votre code et de votre site

Installez la même version de Prestashop que votre boutique en local, ou si votre boutique est en cours de développement, sauvegardez-la. Ceci est extrêmement important : toutes les précautions doivent être prises afin de ne rien perdre, de ne pas avoir à tout recréer à cause d’une malheureuse ligne de code mal gérée. Dupliquez le module de chèque se trouvant dans le dossier de votre site et placez-le sur le bureau. C’est là-dessus que nous travaillerons.

2/ le contrôleur

Commençons par éditer le fichier payment.php se trouvant dans le dossier controller du module. Il va falloir renommer la class qui correspond dans l’immédiat au chèque.

Les lignes 30, 52 et 53 sont les seules à modifier dans ce cas. Il s’agit là de la déclaration de la class du module en front-office, et des variables assignées à smarty correspondant au système de validation du paiement.  Peu de choses à modifier dans ce cas-ci, et si vous êtes familiarisé avec le php et smarty, vous pourrez aisément ajouter de nouvelles variables en fonction de vos besoins.

Le résultat devrait ressembler à ceci pour les versions 1.5.6 :

payment_php

A présent, passons au fichier validation.php compris dans ce même dossier des contrôleurs. Il va de soir qu’il faut renommer une fois de plus la class ainsi que vous l’avez fait dans le précédent fichier. « class quoteValidationModuleFrontController » est le nom qu’usuellement je choisis, il est souvent préférable de coder en anglais et de gérer ultérieurement les traductions, ce afin d’obtenir une meilleure internationalisation de votre module. Modifions pour l’instant les lignes 42 et 49, à savoir l’autorisation du module de s’exécuter. Comme dans n’importe quelle ligne de code, il va falloir gérer toutes les possibilités (rassurez-vous, il n’y en a pas tant que ça dans notre cas, et le module de chèque gère très bien d’origine de très nombreux cas de figure). Précisez à la ligne 42 le nom de votre module (« quote » si vous avez décidé d’utiliser les mêmes noms que moi), et indiquez à la ligne 49 la phrase qui explique que le module n’est pas exécutable dans la situation actuelle.

Vous devriez obtenir un résultat dans le genre :

validation_php_1

Toujours avec moi ? Parfait ! Le fichier validation.php est très important car c’est lui qui accepte le devis comme moyen de paiement potentiel. Il faut donc faire très attention sur ce fichier.

Les lignes 59 à 60 permettent de valider le panier en fonction du mode de paiement utilisé (dans notre cas, le devis). Certaines lignes sont à supprimer car elles génèrent des erreurs, et nous n’avons pas besoin de toutes les variables dans l’immédiat. C’est ici que se fera la redirection vers la confirmation de l’enregistrement du devis sur votre boutique.

Le résultat doit être similaire à celui-ci (dans le cas encore une fois où vous avez décidé de nommer votre module de la même manière que je l’ai fait !)

validation_php_2

Votre fichier validation.php ressemble à présent à celui-ci :

validation_php_3

Votre module est à présent capable de gérer le devis comme moyen de paiement. Mais afin d’éviter les conflits et pour personnaliser votre création, je vous invite à présent à procéder à l’étape suivante.

3/ le fichier config.xml

Voici le fichier qui détermine le nom, la version, et les informations du module. Il n’y a strictement rien de compliqué dans ce fichier, et les balises parlent d’elles-mêmes.

Les lignes 3 à 7 sont celles que vous devrez personnaliser. En effet, si vous laissez votre module sous le nom « chèque », vous risquez fortement d’avoir de sérieux conflits avec le module déjà présent… La version n’importe pas tant que ça, il s’agit plus d’une indication pour les mises à jour futures. Dans notre cas, vous pouvez très bien laisser la valeur par défaut. En clair (et en images !) voici ce que j’ai effectué sur ce fichier :

config_xml

Plutôt facile, non ?

4/ les fichiers d’installation et de configuration B.O.

Votre module est configuré pour accepter le paiement en tant que devis, mais dans l’état actuel des choses il s’installe en tant que module de chèque, quand bien même vous avez modifié le fichier config.xml.

Il faut donc préciser au système que notre module est donc différent. Pas de panique, les fichiers à la racine sont là pour ça. Editez les fichiers payment.php, cheque.php et validation qui se situent exactement à la racine de votre module (et non dans les contrôleurs).

Payment.php initialise le contrôleur et précise au système que le module est un système de paiement. Vous n’aurez qu’à modifier la ligne 41 pour y indiquer le nom de votre module (en l’occurence, « quote »).

Renommez cheque.php en quote.php, et modifiez en conséquent tous les termes CHEQUE en QUOTE. Les lignes 115 à 132 correspondent à l’affichage en back-office du formulaire d’informations de l’entreprise dont vous administrez ou développez le site. Avec un peu d’huile de coude, vous pouvez bien évidemment désactiver les champs obligatoires, mais il peut être intéressant de les conserver afin d’améliorer un affichage front-office. A vous de voir, j’ai personnellement préféré les conserver (on gagne du temps en développement, et dans l’éventualité où on aurait besoin plus tard de ces informations, elles seront toujours stockées dans un coin de votre site). Faites TRÈS attention à l’utilisation de majuscules ou de minuscules, la casse est essentielle pour tout bon codeur. Entrez également les informations de description aux lignes 39 à 71, et le tour est rapidement joué. Voici le résultat en quelques images :

quote_php1

quote_php2

quote_php3

quote_php4

quote_php5

quote_php6

Dernière étape de la configuration du module : le fichier validation.php situé à la racine. Même combat : renommez cheque en quote aux lignes 35, 41, 42, 47, 63 et 65. Un petit utilitaire du type « rechercher/remplacer » permet dans tous les cas de gagner du temps, mais je vous conseille de vérifier après cceci qu’aucun espace ne s’est inséré, et qu’il n’y a aucune faute.

Votre module est à présent prêt à être installé ! Il va falloir maintenant s’occuper de la partie front-office pour optimiser l’affichage client.

5/ le front-office

Cette fois-ci, c’est dans le dossier « Viexs » que nous allons travailler. Une solide connaissance des variables Smarty vous aidera à rendre l’affichage de votre module plus performant et plus en relation avec le but recherché. C’est donc ici que votre créativité prendra tout son sens. Le tout doit être ergonomique, clair, facile d’utilisation et répondre à tous vos critères de qualité.

Le fichier payment.tpl correspond tout simplement au bloc qui s’affiche lors du choix du mode de paiement. payment_execution.tpl est la demande de confirmation du choix de création de devis, et payment_return confirme que le devis a bien été enregistré. Grosso-modo, si vous souhaitez gagner du temps, contentez-vous de changer les chemins vers les images afin d’afficher les votres, et de traduire les textes de la façon qui vous correspond le mieux. Vous pourrez bien évidemment tricher en modifiant les traductions du module dans l’onglet localisation/traductions de votre back-office, mais tant qu’on bidouille dans ces fichiers, autant le faire manuellement. Il ne faut que très peu de temps pour obtenir le résultat suivant :

Payment.tpl

payment_tpl

payment_execution.tpl

payment_execution_tpl

payment_return.tpl

payment_return_tpl

Le conseil que je peux vous donner afin d’améliorer la rapidité de création du devis par le client, et de simuler un affichage en smarty du panier dans une mise en page correspondant à celle de vos factures, afin que l’on puisse l’imprimer dès la page payment_execution.tpl. Le javascript print() peut être une idée rapide à mettre en place, mais dans ce cas précis il est fort probable qu’une fois le devis imprimé, le client ne validera pas son devis et il ne sera disponible qu’uniquement dans son panier (vous ne le verrez donc pas en back-office dans l’onglet commandes). Mais vous aurez gagné un chargement de page, et de nombreux clics et hésitations en moins.

Félicitations ! Votre module est prêt cette fois-ci ! A vous de décider si vous préférez le zipper ou l’envoyer en direct via le ftp. Les modifications des templates peuvent également être actualisées en fonction des demandes de vos clients, ou de l’entrepreneur qui vous aura demandé un tel système.

Si vous êtes un flemmard et que comme beaucoup vous souhaitez uniquement tester, améliorer ou simplement installer le module sur votre site, rendez-vous sur notre page de téléchargement ! Vous y trouverez une version pour Prestashop 1.7 ainsi qu’une version pour Prestashop 1.6, et un statut « devis » créé dès la configuration du module en back-office.

Retrouvez également le module de devis très complet de Opart en cliquant ici !

Imprimer Imprimer

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.