PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres...

23
Fabien Serny Préface de Bruno Lévêque, fondateur de PrestaShop compatible PrestaShop 1.6 et 1.7 PrestaShop Développez vos propres modules e-commerce

Transcript of PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres...

Page 1: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Presta

Shop

: déve

loppe

z vos

prop

res m

odule

s e-co

mmerc

eF.

Sern

y

PrestaShop Développez vos propres modules e-commerce

29,90 €

Conception de couverture : © Studio Eyrolles© Éditions Eyrolles

Cod

e éd

iteur

: G

1419

2IS

BN

: 97

8-2-

212-

1419

2-4

Fabien Serny est un ancien développeur « cœur » de PrestaShop. Durant ses dix années d’expérience dans le développement web et l’e-commerce, il a travaillé dans plusieurs sociétés d’e-commerce en France ; puis il a créé fin 2010 sa propre société, 23Prod. En 2014, il a lancé Froggy Commerce, une plate-forme qui vend des modules simples et puissants pour PrestaShop.

UN OUVRAGE DE RÉFÉRENCE POUR LES DÉVELOPPEURSCe livre vous apprendra tout ce qu’il faut connaître sur la création de modules PrestaShop. Que vous soyez déjà un expert de ce CMS e-commerce ou que vous le découvriez seulement, vous commencerez par concevoir des modules très simples avant de vous attaquer à ceux plus avancés (module de paiement ou module transporteur). De quoi vous permettre de personnaliser votre boutique au gré de vos envies et de vos besoins !

UNE APPROCHE PÉDAGOGIQUEVous créerez ainsi des modules performants et scalables (évolutifs), qui permettront d’améliorer e�cacement votre boutique. Tout au long de votre lecture, vous serez également confronté à des exemples pratiques de concepts PrestaShop (tels que les « hooks ») sous la forme de tutoriels. Une fois que vous serez familiarisé avec les meilleures pratiques de PrestaShop, vous serez à même de réduire considérablement les éventuels problèmes ou erreurs dans vos futurs modules.

À qui s’adresse cet ouvrage ?• Aux développeurs n’ayant aucune connaissance sur PrestaShop et souhaitant

être initiés.• Aux développeurs déjà initiés voulant approfondir leurs connaissances

sur PrestaShop.• Aux marchands avec des connaissances techniques souhaitant modi� er

leur boutique.

Sur le site www.editions-eyrolles.com • Téléchargez le code source des exemples• Consultez les mises à jour et compléments

Sommaire 

Créer un nouveau module. Ajouter une page et un formulaire de con�guration • Les hooks. Accrocher le module sur des hooks • Changer la position de votre module • Les hooks dynamiques • L’objet Context. La fonction de traduction • Ajouter des CSS et des JS dans votre module • Les mises à jour de module. Créer une table de données à l’installation d’un module • Ajout d’un callback sur les actions de module • FrontController, ObjectModel et Overrides. Utiliser les contrôleurs pour créer de nouvelles pages • Installer des overrides à l’aide d’un module • Utiliser la classe ObjectModel pour rendre votre code scalable • Admin Controllers et hooks. Utiliser les hooks du back offi ce • Module transporteur. Utiliser des webservices • Créer de nouveaux transporteurs • Module de paiement. Créer votre propre statut de commande •Utiliser une API tierce • Le multiboutique. Con�guration • Sécurité, performance et adaptations pour PrestaShop 1.7. Chercher du code malicieux dans des modules • La liste des hooks usuels et dynamiques

Fabien SernyPréface de Bruno Lévêque, fondateur de PrestaShop

Pourquoi acheter et/ou télécharger des modules « tout-faits » pour votre boutique en ligne quand vous pouvez les développer vous-même ? Cet ouvrage vous enseignera justement les meilleures pratiques et vous encouragera à les mettre en œuvre lors des développements de nouvelles fonctionnalités de PrestaShop.

compatible PrestaShop 1.6 et 1.7

PrestaShopDéveloppez vos propresmodules e-commerce

G14192_Prestashop_001.indd 1 04/08/2016 16:48

Page 2: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Presta

Shop

: déve

loppe

z vos

prop

res m

odule

s e-co

mmerc

eF.

Sern

y

PrestaShop Développez vos propres modules e-commerce

Fabien Serny est un ancien développeur « cœur » de PrestaShop. Durant ses dix années d’expérience dans le développement web et l’e-commerce, il a travaillé dans plusieurs sociétés d’e-commerce en France ; puis il a créé fin 2010 sa propre société, 23Prod. En 2014, il a lancé Froggy Commerce, une plate-forme qui vend des modules simples et puissants pour PrestaShop.

UN OUVRAGE DE RÉFÉRENCE POUR LES DÉVELOPPEURSCe livre vous apprendra tout ce qu’il faut connaître sur la création de modules PrestaShop. Que vous soyez déjà un expert de ce CMS e-commerce ou que vous le découvriez seulement, vous commencerez par concevoir des modules très simples avant de vous attaquer à ceux plus avancés (module de paiement ou module transporteur). De quoi vous permettre de personnaliser votre boutique au gré de vos envies et de vos besoins !

UNE APPROCHE PÉDAGOGIQUEVous créerez ainsi des modules performants et scalables (évolutifs), qui permettront d’améliorer e�cacement votre boutique. Tout au long de votre lecture, vous serez également confronté à des exemples pratiques de concepts PrestaShop (tels que les « hooks ») sous la forme de tutoriels. Une fois que vous serez familiarisé avec les meilleures pratiques de PrestaShop, vous serez à même de réduire considérablement les éventuels problèmes ou erreurs dans vos futurs modules.

À qui s’adresse cet ouvrage ?• Aux développeurs n’ayant aucune connaissance sur PrestaShop et souhaitant

être initiés.• Aux développeurs déjà initiés voulant approfondir leurs connaissances

sur PrestaShop.• Aux marchands avec des connaissances techniques souhaitant modi� er

leur boutique.

Sur le site www.editions-eyrolles.com • Téléchargez le code source des exemples• Consultez les mises à jour et compléments

Sommaire 

Créer un nouveau module. Ajouter une page et un formulaire de con�guration • Les hooks. Accrocher le module sur des hooks • Changer la position de votre module • Les hooks dynamiques • L’objet Context. La fonction de traduction • Ajouter des CSS et des JS dans votre module • Les mises à jour de module. Créer une table de données à l’installation d’un module • Ajout d’un callback sur les actions de module • FrontController, ObjectModel et Overrides. Utiliser les contrôleurs pour créer de nouvelles pages • Installer des overrides à l’aide d’un module • Utiliser la classe ObjectModel pour rendre votre code scalable • Admin Controllers et hooks. Utiliser les hooks du back offi ce • Module transporteur. Utiliser des webservices • Créer de nouveaux transporteurs • Module de paiement. Créer votre propre statut de commande •Utiliser une API tierce • Le multiboutique. Con�guration • Sécurité, performance et adaptations pour PrestaShop 1.7. Chercher du code malicieux dans des modules • La liste des hooks usuels et dynamiques

Fabien SernyPréface de Bruno Lévêque, fondateur de PrestaShop

Pourquoi acheter et/ou télécharger des modules « tout-faits » pour votre boutique en ligne quand vous pouvez les développer vous-même ? Cet ouvrage vous enseignera justement les meilleures pratiques et vous encouragera à les mettre en œuvre lors des développements de nouvelles fonctionnalités de PrestaShop.

compatible PrestaShop 1.6 et 1.7

PrestaShopDéveloppez vos propresmodules e-commerce

G14192_Prestashop_001.indd 1 04/08/2016 16:48

Page 3: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

PrestaShopDéveloppez vos propresmodules e-commerce

G14192_Prestashop_PDT.indd 1 04/08/2016 17:11

Page 4: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

DANS LA MÊME COLLECTION

R. Hertzog, R. Mas. – Debian 8 Jessie.N°14203, 2016, 538 pages.F-X. Bois, A-L. Benhenni. – Bases de données orientées graphes avec Neo4j.N°13804, 2016, 181 pages.R. Goetter. – CSS 3 Flexbox.N°14363, 2016, 134 pages.C. Blaess. – Solutions temps réel sous Linux.N°14208, 2015, 300 pages.W. McKinney. – Analyse de données en Python.N°14109, 2015, 488 pages.E. Biernat, M. Lutz. – Data science : fondamentaux et études de cas.N°14243, 2015, 312 pages.B. Philibert. – Bootstrap 3 : le framework 100 % web design.N°14132, 2015, 318 pages.C. Camin. – Développer avec Symfony2.N°14131, 2015, 474 pages.S. Pittion, B. Siebman. – Applications mobiles avec Cordova et PhoneGap.N°14052, 2015, 184 pages.H. Giraudel, R. Goetter. – CSS 3 : pratique du design web.N°14023, 2015, 372 pages.C. Delannoy. – Le guide complet du langage C.N°14012, 2014, 844 pages.

SUR LE MÊME THÈME

B. Eben. – e-commerce : tout savoir avant de créer une boutique en ligne !N°14087, 2e édition, 2016, 264 pages.V. Isaksen, T. Tardif. – Joomla et Virtuemart. N°12804, 3e édition, 2012, 356 pages.Texto Alto. – Créez votre boutique en ligne. N°13305, 2011, 158 pages.M. Blanchard. – Magento.N°12515, 2010, 344 pages.

Retrouvez nos bundles (livres papier + e-book) et livres numériques surhttp://izibook.eyrolles.com

Page 5: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Fabien Serny

PrestaShopDéveloppez vos propresmodules e-commerce

G14192_Prestashop_PDT.indd 3 04/08/2016 17:11

Page 6: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage,sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du droit de copie,20, rue des Grands Augustins, 75006 Paris.

© Groupe Eyrolles, 2016, ISBN : 978-2-212-14192-4

ÉDITIONS EYROLLES61, bd Saint-Germain75240 Paris Cedex 05

www.editions-eyrolles.com

© Packt Publishing 2014.

First published in the English language under the title “PrestaShop Module Development”(9781783280254).

Traduction autorisée de l’ouvrage en langue anglaise intitulé PrestaShop Module Developmentpar Fabien Serny (ISBN : 9781783280254), édité par Packt Publishing.

Traduit et adapté de l’anglais par Fabien Serny.

_Copyright_p3-4_.fm Page IV Monday, August 8, 2016 3:52 PM

Page 7: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Lorsque j’ai fondé PrestaShop il y a neuf ans, j’avais une vision unique et particulière d’unesociété. Je voulais créer une communauté de personnes fascinées par l’e-commerce. Puisantdans la force de l’open source, je voulais démocratiser l’industrie de l’e-commerce grâce àl’appui de cette communauté. Voilà le préambule du logiciel PrestaShop, permettant à tous departiciper à la révolution e-commerce.

À présent, PrestaShop est l’un des plus gros groupes de développement exclusivement dédiésà l’e-commerce. Cette communauté compte un million de membres dans plus de 200 pays.Et 250 000 boutiques e-commerce fonctionnent aujourd’hui sous PrestaShop. Ces nombreschangent chaque jour, mais notre logiciel a été téléchargé plus de 5 millions de fois et traduitdans au moins 65 langues.

Depuis le premier jour, notre communauté a créé un écosystème extraordinaire. Plus de35 000 commits ont été effectués sur GitHub, devenant ainsi l’un des projets open source lesplus actifs à l’échelle mondiale. Nous sommes vraiment fiers de fournir à nos utilisateurs unlogiciel open source, évoluant régulièrement.

Lors de la construction de l’architecture PrestaShop, nous avons œuvré pour un systèmeflexible et modulaire, permettant à chacun d’améliorer les capacités du logiciel en dévelop-pant leurs propres extensions. Celles-ci sont appelées des « modules PrestaShop » et plus de10 000 d’entre elles sont à présent disponibles en téléchargement. Avec des fonctionnalitésdes plus basiques aux plus avancées, les possibilités sont infinies.

Fabien Serny est l’un des développeurs web les plus talentueux que j’ai rencontrés dans macarrière. Nous avons travaillé ensemble pendant plus de cinq ans pour fournir des solutionsaux développeurs souhaitant créer de nouveaux modules PrestaShop. Fabien a personnelle-ment contribué au cœur du logiciel afin de leur permettre de construire leurs propres modulesplus facilement.

Ce livre est vraiment un « must have » pour tout développeur web qui s’intéresse àPrestaShop. Tous les bons conseils et pratiques pour construire de bons modules PrestaShopsont là. Ils ont été intelligemment introduits étape par étape dans ce tutoriel. À présent, c’estvotre tour ! Créez votre premier module, partagez-le et faites ainsi partie de cette incroyablecommunauté.

Bruno Lévêque

Fondateur de PrestaShop

Préface

Serny_prestashop_.book Page V Sunday, August 7, 2016 2:40 PM

Page 8: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Serny_prestashop_.book Page VI Sunday, August 7, 2016 2:40 PM

Page 9: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Table des matières

Avant-propos ................................................................................. 1Structure de l’ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Le matériel nécessaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2À qui s’adresse cet ouvrage ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Introduction à la version 1.7 de PrestaShop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2À propos de l’auteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Compléments web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

CHAPITRE 1Créer un nouveau module ............................................................ 5

Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Choix du nom technique et du nom public . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Début du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Le constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Installation de votre module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Ajouter une page de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Création de la page de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Utilisation des templates Smarty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Créer un formulaire simple de configuration avec Bootstrap . . . . . . . . . . . . . . . . 11Sauvegarder la configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Afficher un message de confirmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

CHAPITRE 2Les hooks...................................................................................... 19

Accrocher le module sur des hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Création de la méthode d’installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Création de la méthode utilisée par le hook . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Changer la position de votre module sur un hook . . . . . . . . . . . . . . . . . . . . . . . . 21Utiliser les hooks pour afficher des templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Enregistrer les commentaires dans la base de données . . . . . . . . . . . . . . . . . . . . . 24

Serny_prestashop_.book Page VII Sunday, August 7, 2016 2:40 PM

Page 10: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

PrestaShop : développez vos propres modules e-commerceVIII

Afficher les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Déclencher un hook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Ajouter un hook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Les hooks dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

CHAPITRE 3L’objet Context ............................................................................ 33

Présentation rapide du Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33La fonction de traduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Ajouter des CSS et des JS dans votre module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Compatibilité et dépendances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Vérification de compatibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Vérification des dépendances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

CHAPITRE 4Les mises à jour de module ........................................................ 45

Créer une table de données à l’installation d’un module . . . . . . . . . . . . . . . . . . . . 45Effacer une table de données lors de la désinstallation . . . . . . . . . . . . . . . . . . . . . 49Mettre à jour le module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Mettre à jour le code du module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Ajouter un callback sur les actions de module . . . . . . . . . . . . . . . . . . . . . . . . . . . 55En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

CHAPITRE 5FrontController, ObjectModel et Override ................................ 61

Utiliser les contrôleurs pour créer de nouvelles pages . . . . . . . . . . . . . . . . . . . . . . 62Créer un nouveau FrontController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Maintenir la compatibilité avec l’option des URL simplifiées . . . . . . . . . . . . . . 63Créer un mini-dispatcher pour les actions du module . . . . . . . . . . . . . . . . . . . 64Afficher le nom du produit et les commentaires associés . . . . . . . . . . . . . . . . . 65Inclure des médias CSS et JS dans le contrôleur . . . . . . . . . . . . . . . . . . . . . . . 66Ajouter un système de pagination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Créer des routes pour les contrôleurs d’un module . . . . . . . . . . . . . . . . . . . . . . 69

Installer des overrides à l’aide d’un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Créer un override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Editer le template pour afficher les notes sur la liste produits . . . . . . . . . . . . . . 75Créer une nouvelle méthode pour une classe native . . . . . . . . . . . . . . . . . . . . . 76Overrider un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Utiliser la classe ObjectModel pour rendre votre code scalable . . . . . . . . . . . . . . 77

Serny_prestashop_TOC.fm Page VIII Monday, August 8, 2016 3:53 PM

Page 11: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Table des matières IX

Créer une classe ObjectModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Utilisation dans notre module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Placer toutes les requêtes SQL dans les classes ObjectModel . . . . . . . . . . . . . . 80

Utiliser les HelperForm pour vos formulaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Utiliser des contrôleurs pour vos hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

CHAPITRE 6Admin Controllers et hooks ....................................................... 91

Ajouter un AdminController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Ajouter et installer un nouvel onglet dans votre panneau d’administration . . . . 92Désinstaller l’onglet quand le module est désinstallé . . . . . . . . . . . . . . . . . . . . 94Lister les commentaires dans votre AdminController . . . . . . . . . . . . . . . . . . . 94Améliorer la vue liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Ajouter des actions sur la vue liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Créer le template de type « afficher » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Configurer la vue formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Utiliser les hooks du back office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Attacher votre module au hook de l’administration des produits . . . . . . . . . . 106Afficher les commentaires associés au produit . . . . . . . . . . . . . . . . . . . . . . . . 108Afficher les commentaires associés à un client . . . . . . . . . . . . . . . . . . . . . . . . 112Faire des liens entre les sections d’administration . . . . . . . . . . . . . . . . . . . . . 113

En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

CHAPITRE 7Module transporteur................................................................. 115

Personnaliser votre espace de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Utiliser des webservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Description de l’API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Configuration du module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Créer de nouveaux transporteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Utiliser des webservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Le calcul des frais de port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Gérer la mise à jour des transporteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Afficher les points relais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Associer un point relais au panier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Afficher le choix du client dans le back office . . . . . . . . . . . . . . . . . . . . . . . . 137

En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

Serny_prestashop_.book Page IX Sunday, August 7, 2016 2:40 PM

Page 12: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

PrestaShop : développez vos propres modules e-commerceX

CHAPITRE 8Modules de paiement ............................................................... 139

Première étape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Le parcours de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Créer le contrôleur de paiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Vérifier la devise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Transformer un panier en commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Afficher des informations sur la page de confirmation de commande . . . . . . . 149

Créer votre propre statut de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Les étapes de la création d’un statut de commande . . . . . . . . . . . . . . . . . . . . 150Associer l’envoi d’un e-mail à un statut de commande . . . . . . . . . . . . . . . . . . 152

Utiliser une API tierce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Mettre à jour la configuration de votre module . . . . . . . . . . . . . . . . . . . . . . . 155Afficher la nouvelle méthode de paiement . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Construire le contrôleur de validation de l’API . . . . . . . . . . . . . . . . . . . . . . . 158

En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

CHAPITRE 9Le multiboutique....................................................................... 163

Configuration du multiboutique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Activer le multiboutique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Créer une nouvelle boutique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Mettre à jour votre module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166Mettre à jour la base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166Mettre à jour la classe ObjectModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167L’utilisation du Context dans les méthodes de récupération . . . . . . . . . . . . . . 168Mettre à jour l’AdminController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169Utiliser la classe Configuration avec le multiboutique . . . . . . . . . . . . . . . . . . 170

En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

CHAPITRE 10Sécurité, performance et adaptations pour PrestaShop 1.7.. 171

Le validateur de modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171Sécuriser votre module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

Se protéger contre le Directory listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Interdire l’accès direct aux fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174Protéger votre code contre des injections SQL . . . . . . . . . . . . . . . . . . . . . . . 175Protéger votre template contre les failles XSS . . . . . . . . . . . . . . . . . . . . . . . . 176Vérifier les données à l’aide d’un hash md5 . . . . . . . . . . . . . . . . . . . . . . . . . . 178

Chercher du code malicieux dans des modules . . . . . . . . . . . . . . . . . . . . . . . . . . 181Chercher d’inhabituels envois d’e-mails . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

Serny_prestashop_.book Page X Sunday, August 7, 2016 2:40 PM

Page 13: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Table des matières XI

Chercher d’étranges appels d’URL extérieures . . . . . . . . . . . . . . . . . . . . . . . . 181Chercher la présence de la fonction eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Chercher la présence de backquotes ou de fonctions system et exec . . . . . . . . 182Chercher la présence de la méthode base64_decode . . . . . . . . . . . . . . . . . . . 182Résumé de cette section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

Performance et optimisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183Utiliser l’option Combiner, Compresser et mise en Cache (CCC) . . . . . . . . . 183Utiliser le système de cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184Utiliser le cache Smarty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Adaptations pour PrestaShop 1.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Adaptations de mymodcomments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Adaptations de mymodcarrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Adaptations de mymodpayment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Autres points techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

Annexe ....................................................................................... 195La liste des hooks usuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

145 hooks usuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196La liste des hooks dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

Intérêt des hooks dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215Définitions des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215Les 15 hooks dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

Index........................................................................................... 219

Serny_prestashop_TOC.fm Page XI Monday, August 8, 2016 3:55 PM

Page 14: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Serny_prestashop_.book Page XII Sunday, August 7, 2016 2:40 PM

Page 15: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Structure de l’ouvrage• Le chapitre 1 couvre les premières étapes de la création d’un module. Vous y trouverez un

exemple de module avec un formulaire de configuration simple.• Le chapitre 2 présente le concept des points d’accroche (appelés « hooks ») dans

PrestaShop. Il explique leur fonctionnement et comment ils peuvent être employés pourinteragir avec le logiciel. L’utilisation de la classe de base de données est également abor-dée à l’aide de quelques exemples pratiques.

• Le chapitre 3 liste quelques-unes des principales (et nombreuses) fonctions disponiblesdans PrestaShop, telles que les fonctions de traduction pour le multilangue ou encore legestionnaire des fichiers JS/CSS.

• Le chapitre 4 est une introduction au système natif de mises à jour des modules. Quelquesfonctions supplémentaires (et peu connues) seront également révélées.

• Le chapitre 5 présente l’architecture principale de PrestaShop et explique comment construireun module bien organisé.

• Le chapitre 6 montre comment créer de nouveaux outils d’administration, comment utili-ser les « helpers » pour construire des listes ou des formulaires, ainsi que les hooks dispo-nibles dans le panneau d’administration.

• Le chapitre 7 traite de la création de modules transporteurs. Certaines fonctionnalités avan-cées, telles que la gestion des points relais, seront expliquées.

Avant-propos

Dans cet ouvrage, vous allez apprendre à développer différents modules pour PrestaShop 1.6. Il vousenseignera les meilleures pratiques, et il vous encouragera à les utiliser lors des développements desdifférentes fonctionnalités dans PrestaShop. Vous pourrez ainsi créer des modules performants etscalables (évolutifs), qui permettront d’améliorer efficacement votre boutique.Tout au long de votre lecture, vous serez également confronté à des exemples pratiques de conceptsPrestaShop (tels que les « hooks » ou points d’accroche) sous la forme de tutoriels. Une fois que vousserez familiarisé avec les meilleures pratiques de PrestaShop, vous serez à même de résoudreconsidérablement les éventuels problèmes ou erreurs dans vos futurs modules.

Serny_prestashop_.book Page 1 Sunday, August 7, 2016 2:40 PM

Page 16: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

PrestaShop : développez vos propres modules e-commerce2

• Le chapitre 8 illustre la création de modules de paiement. Vous y trouverez notammentun exemple d’une API de paiement.

• Le chapitre 9 couvre les principales grandes lignes pour rendre votre module compatibleavec la fonctionnalité de multiboutique native dans PrestaShop.

• Le chapitre 10 détaille les bonnes pratiques pour sécuriser votre module et le rendre plusperformant.

• Enfin, l’annexe donne une description de tous les hooks que PrestaShop propose native-ment dans PrestaShop 1.6 (certains hooks ont été ajoutés dans PrestaShop 1.7).

Le matériel nécessaireLes modules codés dans les chapitres du livre reposent tous sur PrestaShop 1.6 (testés sur laversion 1.6.1 de PrestaShop pour être précis). Vous aurez donc besoin de ce qui est indiquédans la liste des prérequis standards pour PrestaShop, disponible sur : http://doc.prestashop.com/display/PS16/Ce+dont+vous+avez+besoin. Il vous faudra la configuration minimale suivante :• PHP v5.2 ou supérieur ;• MySQL v5.0 ou supérieur ;• il est fortement conseillé de le faire fonctionner sur un hébergement Unix, Apache Web

Server 1.3 ou supérieur, avec au minimum 64 MB de RAM dédié à PHP.

À qui s’adresse cet ouvrage ?Ce livre est destiné aux développeurs d’applications web pour PrestaShop qui veulent amé-liorer leur boutique. Nous supposons ici que vous avez une certaine expérience avec PHP etque vous êtes familiarisé avec les méthodes de POO (Programmation orientée objet).

Introduction à la version 1.7 de PrestaShopLa version de PrestaShop 1.7 stable n’est pas prévue pour tout de suite, mais voici ce que l’onsait déjà (et ce qui est visible dans les versions alpha ainsi que sur le compte GitHub dePrestaShop).

Le framework Symfony2 ainsi que son moteur de template Twig ont été inclus, mais la tran-sition va se faire en douceur. Pour l’instant, seules les pages d’administration des modules etde la fiche produit les utilisent. Smarty continuera d’être employé en parallèle sur le reste dupanneau d’administration (visible à la figure 0-2).

Figure 0–1PrestaShop 1.7

AvantPropos-MEP.fm Page 2 Wednesday, August 10, 2016 4:35 PM

Page 17: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Avant-propos 3

Les modules pour PrestaShop 1.6 seront donc, a priori, compatibles avec PrestaShop 1.7,moyennant quelques modifications à réaliser (décrites ci-dessous). Seuls les thèmes ne serontpas rétrocompatibles entre PrestaShop 1.6 et 1.7. Si vous avez décidé de travailler sur unthème sur PrestaShop 1.6, gardez à l’esprit que vous aurez un gros travail d’adaptation à faireau moment de la migration. Le nouveau thème a été entièrement repensé : nouveaux tem-plates, nouvelle organisation du répertoire, nettoyage du code (moins de JS), un seul parcoursde commande en One Page Checkout, etc.

À propos de l’auteurFabien Serny est un ancien développeur cœur de PrestaShop. Durant ses dix années d’expé-rience dans le développement web et l’e-commerce, il a travaillé dans plusieurs grossessociétés d’e-commerce en France avant de créer sa propre société nommée 23Prod fin 2010.En 2014, avec deux autres anciens développeurs cœur de PrestaShop (Alain Folletete et Gré-goire Poulain), il a lancé Froggy Commerce, une plate-forme qui vend des modules simples etpuissants pour PrestaShop basés sur les besoins de vrais e-commerçants.

Vous pouvez visiter ces sites Internet : http://www.23prod.com et http://www.froggy-commerce.com.

Figure 0–2Aperçu de l’administration des modules sur PrestaShop 1.7

Adaptations pour PrestaShop 1.7

Ce livre couvre le développement de modules pour PrestaShop 1.6. Il a été traduit et adapté durant ledéveloppement de la version 1.7 de PrestaShop. Les modules présentés ici ont tous été testés sur cettenouvelle version et fonctionnent moyennant quelques légères modifications.Les captures d’écran présentes dans ce livre correspondent à la version 1.6 de PrestaShop. C'est pour-quoi, pour une lecture plus facile, je vous invite à travailler avec la version 1.6 du logiciel (même si la 1.7est sortie entre-temps), puis à adapter votre module à la version 1.7. Ne vous inquiétez pas, les change-ments sont relativement mineurs pour les modules entre ces deux versions.PrestaShop 1.7 étant encore en cours de développement, il se peut que certains passages de ce livre nesoient plus tout à fait exacts à la sortie de la version stable. Si cela était le cas, je vous invite à suivre moncompte GitHub https://github.com/fabienserny où je mettrai à jour les modules pour PrestaShop 1.7 dès sasortie officielle. N'hésitez pas non plus à me contacter sur mon twitter @FabienSerny pour toute question.

Serny_prestashop_.book Page 3 Sunday, August 7, 2016 2:40 PM

Page 18: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

PrestaShop : développez vos propres modules e-commerce4

RemerciementsJe souhaite remercier mon adorable épouse Camille, qui m’a encouragé et poussé dans l’écri-ture de ce livre, mais également ma fille Irène, qui a su me maintenir éveillé le soir pour que jepuisse le terminer.

Je souhaite également remercier mes collègues de 23Prod et Froggy Commerce : GrégoirePoulain et Alain Folletete ; Bruno Lévêque, fondateur de PrestaShop, qui m’a également encou-ragé à écrire ce livre ; et certains de mes anciens collègues de PrestaShop : Franck (le sage),Raphaël, Vincent, François, Sabrina, Cécile, Mareva, Julien, Tony, et le reste de la société.

Enfin, j’aimerais remercier ma famille (ma mère, Claude, Philou, BreeBree, Greg, Milo,Ludovic, Oliver la botte, Astrid, Enzo, mon père, ma grand-mère, Urban, et tous les autres)ainsi que mes amis (Nico, Sophie, Caro, Romain (the « Master »), Élodie, Tom, Alain, Seb,Mélo, Micka, Elo Homard, Gaël, Gégé, Louise, Aurélie, Romain le roux, Ludo, Béré,Jérôme, et tous les autres). Je souhaiterais pouvoir citer tout le monde mais cela représenteraitune trop longue liste. J’aimerais ne pas remercier le grand Caravan qui m’a fait dormir durantles moments où je devais travailler sur ce livre.

Je remercie tout spécialement mes éditeurs anglais Joanne, Arun et Humera, qui ont réaliséun incroyable travail ; Alexandre Habian des éditions Eyrolles qui a su être très patient sur lesrendus ; et mes relecteurs Romain, Altaf, Sandeep, Ratko, Tom et Bart.

Compléments webLes codes sources associés à cet ouvrage peuvent être téléchargés sur le site des éditionsEyrolles : http://www.editions-eyrolles.com/dl/0014192.

Serny_prestashop_.book Page 4 Sunday, August 7, 2016 2:40 PM

Page 19: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Pour apprendre à coder un module PrestaShop, il est toujours plus simple de travailler sur uncas pratique. De ce fait, au cours des prochains chapitres, nous allons développer ensemble unmodule qui permettra aux clients de noter et commenter des produits.

Dans ce premier chapitre, nous abordons les points suivants :• créer l’architecture d’un module ;• ajouter un formulaire de configuration au module en utilisant les templates Smarty ;• enregistrer la configuration du module dans une base de données.

Premiers pas

Choix du nom technique et du nom publicTout d’abord, nous devons choisir un nom public et un nom technique pour notre module.

Vous pouvez opter pour les noms que vous souhaitez tant que vous vous y tenez tout au longdu livre. Le nom technique doit être en minuscules, ne contenir que des lettres et des chiffres,et commencer par une lettre. Il sert, notamment, à nommer le répertoire. Ainsi, vous nepourrez pas avoir deux modules avec le même nom technique dans PrestaShop. Il est doncimportant que celui-ci soit unique, surtout si vous souhaitez vendre votre module sur la placede marché officielle de PrestaShop. Une astuce consiste à préfixer vos modules avec le nom devotre société (dans mon cas, ma société est 23Prod et le site de vente de modules que nousavons créé est Froggy Commerce ; nous avons donc préfixé tous nos modules avec froggy).

1Créer un nouveau module

Serny_prestashop_.book Page 5 Sunday, August 7, 2016 2:40 PM

Page 20: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

PrestaShop : développez vos propres modules e-commerce6

En revanche, le nom public n’a aucune restriction. Vous pouvez donc écrire ce que vousvoulez pour l’affichage du marchand.

Nommons le module publiquement « Mon module de commentaires produits » et technique-ment mymodcomments.

Début du codeÀ présent, nous allons commencer la création de notre premier module.

Ouvrez le répertoire modules à la racine de votre PrestaShop, créez-y un nouveau répertoire etdonnez-lui le nom technique choisi précédemment : mymodcomments.

Dans ce nouveau répertoire, créez un fichier PHP vide et attribuez-lui également le nomtechnique (dans notre cas, mymodcomments.php). C’est le fichier principal de notre module. Lafigure 1-1 montre le fichier et la structure complète du dossier modules.

Maintenant, ouvrez le fichier mymodcomments.php et écrivez-y la classe de votre module.

Vous devez donner à cette classe le nom technique que vous avez choisi. Et, pour le rendreplus lisible, nous vous encourageons à employer la notation CamelCase. Cette classe doitétendre la classe Module de PrestaShop. Elle contient toutes les méthodes permettant à unmodule de fonctionner ; sans elle, il ne sera pas utilisable. Dans notre cas, la classe du modulesera :

Le constructeurAfin d’avoir un module fonctionnel, nous avons simplement ajouté la méthode __construct.Dans cette fonction, vous devez obligatoirement écrire les trois lignes suivantes.

Figure 1–1Architecture du dossier

<?php class MyModComments extends Module { }

Télécharger les exemples de code

Vous pouvez télécharger les exemples de code directement depuis les dépôts Git qui sont accessibles surGitHub aux adresses suivantes : • https://github.com/FabienSerny/mymodcomments ;• https://github.com/FabienSerny/mymodcarrier ;• https://github.com/FabienSerny/mymodpayment.

Serny_prestashop_.book Page 6 Sunday, August 7, 2016 2:40 PM

Page 21: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Créer un nouveau moduleCHAPITRE 1

7

• Le nom technique : sans lui, le module ne sera pas installable. Cette variable est utiliséepar PrestaShop pour construire les méthodes install et uninstall ainsi que les liens deconfiguration du module :

• Le nom public : cette ligne est utilisée pour afficher le nom du module pour le marchanddans la liste des modules du panneau d’administration :

• Appeler la méthode parent __construct : de nombreuses initialisations importantes sonteffectuées par cette fonction ; cette ligne est donc obligatoire :

Il est également conseillé d’ajouter les lignes optionnelles suivantes afin d’afficher des infor-mations supplémentaires concernant le module.

• La catégorie du module : elle permet de faciliter sa recherche. Si vous ne la précisez pasou si vous y mettez une valeur erronée, le module sera automatiquement associé à la caté-gorie others. Vous devez remplir cette variable avec l’une des valeurs du tableau suivant.

Ces valeurs sont associées aux filtres de recherche par catégorie de module dans lepanneau d’administration de PrestaShop.

• La version du module : cette variable ne sera pas seulement utilisée pour l’affichage de laversion dans la liste des modules. Elle servira également à vérifier si des mises à jour devos modules sont disponibles (nous verrons en détail leur fonctionnement un peu plus loindans le livre) :

$this->name = 'mymodcomments';

$this->displayName = 'Mon module de commentaires produits';

parent::__construct();

Tableau 1–1 Liste des catégories du module

administration advertising_marketing analytics_stats

billing_invoicing checkout content_management

dashboard emailing export

front_office_features i18n_localization market_place

merchandizing migration_tools mobile

payments_gateways payment_security pricing_promotion

search_filter seo shipping_logistics

social_networks slideshows smart_shopping

quick_bulk_update others

$this->tab = 'front_office_features';

$this->version = '0.1.0';

Serny_prestashop_.book Page 7 Sunday, August 7, 2016 2:40 PM

Page 22: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

PrestaShop : développez vos propres modules e-commerce8

• Le nom de l’auteur : cette ligne est utilisée pour afficher le nom de l’auteur pour le mar-chand dans la liste des modules du panneau d’administration. Elle sert également àrechercher des modules par auteur :

• La description du module : cette variable aide le marchand à comprendre l’utilité dumodule :

Voici à quoi devrait ressembler à présent le code de votre module :

Dès maintenant, vous devriez avoir votre module dans la liste des modules de votre panneaud’administration (voir figure 1-2).

$this->author = 'Fabien Serny';

$this->description = 'Avec ce module, vos clients pourront noter et commenter vos produits !';

<?php class MyModComments extends Module { public function __construct() { $this->name = 'mymodcomments'; $this->tab = 'front_office_features'; $this->version = '0.1.0'; $this->author = 'Fabien Serny'; $this->displayName = 'Mon module de commentaires produits'; $this->description = 'Avec ce module, vos clients pourront noter et commenter vos produits !'; parent::__construct(); } }

Figure 1–2Aperçu de votre module dans le panneau d’administration

À propos de l’icône point d’interrogation

Cette icône est le logo par défaut de tous les modules. Si vous voulez utiliser un pictogramme personna-lisé, vous devez tout simplement ajouter une image logo.png de 32 × 32 pixels et une autre logo.gifde 16 × 16 pixels (si vous souhaitez être compatible avec PrestaShop 1.4) à la racine du répertoire devotre module.

Serny_prestashop_.book Page 8 Sunday, August 7, 2016 2:40 PM

Page 23: PrestaShop : développez vos propres modules e-commerce · PrestaShop : développez vos propres modules e-commerce F. S e r PrestaShop ny Développez vos propres modules e-commerce

Créer un nouveau moduleCHAPITRE 1

9

Installation de votre moduleVotre module est à présent « fonctionnel » ; vous pouvez l’installer en cliquant sur le bouton Installer.

Le message d’alerte de la figure 1-3 s’affiche alors (uniquement depuis PrestaShop 1.6).

Il s’agit d’un simple message d’avertissement à l’attention du marchand lui indiquant que lemodule n’est pas connu et « vérifié » par PrestaShop. Cela n’affectera pas son bon fonctionne-ment. Le seul moyen de le faire disparaître est de distribuer votre module via la plate-formeofficielle de PrestaShop Addons.

Si vous cliquez sur le bouton Continuer l’installation, le module s’installe et un message de con-firmation s’affiche (voir figure 1-4).

Pour le moment, votre module ne fait rien et ne possède pas d’options de configuration. Lesseules actions disponibles sont les suivantes.• Désinstaller : pour désinstaller le module et effacer ses configurations spécifiques (s’il y en a).• Désactiver : une alternative à la désinstallation qui permet de conserver les configurations

du module. Ce dernier reste installé, mais sera « ignoré » par PrestaShop.• Réinitialiser : pour désinstaller puis réinstaller le module.• Supprimer : pour désinstaller le module puis effacer ses fichiers.

Toutes ces fonctions sont gérées par la classe Module et peuvent être surchargées par le modulelui-même (nous verrons comment un peu plus loin).

Figure 1–3Alerte s’affichant avant l’installation d’un module non présent sur Addons

Figure 1–4Message de confirmation après l’installation d’un module

Serny_prestashop_.book Page 9 Sunday, August 7, 2016 2:40 PM