PrestaShop Guide Du Developpeur

  • Published on
    25-Jul-2015

  • View
    265

  • Download
    7

Embed Size (px)

Transcript

Guide du dveloppeur PrestaShopCette documentation est actuellement en cours de mise jour. Certains aspects peuvent ne pas tre totalement jour. N'hsitez pas nous contacter si vous y trouvez des erreurs.

FondamentauxConceptsAvant de vous lancer dans la cration d'un module, il est prfrable que vous matrisiez dj la programmation oriente Objet avec PHP. PrestaShop a t conu pour que des modules tiers puissent facilement construire sur ses fondations, ce qui en fait une solution e-commerce particulirement personnalisable. Un module est une extension PrestaShop qui permet n'importe quel dveloppeur de :

ajouter des fonctionnalits PrestaShop ; afficher de nouvelles informations sur le site (slection de produits, etc.) ; communiquer avec d'autres acteurs e-commerce (guides d'achat, plate-forme de paiement, plate-formes logistiques...) etc.

La socit qui dveloppe PrestaShop fournit plus de 100 modules gratuitement avec la solution elle-mme, vous permettant de lancer rapidement et gratuitement votre boutique en ligne. Plus de 750 modules sont galement disponibles sur le site officiel. Ces modules additionnels, ont t conus par la socit PrestaShop ou par des membres de la communaut de PrestaShop, et sont vendus des prix abordables. En tant que dveloppeurs, vous pouvez vous aussi vendre vos modules sur ce site, et recevoir 70% des ventes lies votre cration. Inscrivezvous !

Architecture technique de PrestaShopPrestaShop est bas sur une architecture 3-tiers :

Object/donnes. L'accs la base de donnes se fait par le biais des fichiers du dossier /classes. Contrle des donnes. Le contenu envoy l'utilisateur est vrifi par les fichiers du dossier racine. Apparence. Tous les fichiers du thmes sont dans le dossier /themes.

Il s'agit du mme principe que pour l'architecture MVC (Modle-VueContrleur), en plus simple et plus accessible. Notre quipe de dveloppeur choisi de ne pas utiliser de framework PHP, tel que Zend Framework, Symfony ou CakePHP, afin d'obtenir une meilleure lisibilit du code, et donc de permettre des modifications plus rapides. Cela permet galement d'obtenir de meilleures performances, tant donn que le logiciel n'est fait que de lignes de code qu'il utilise effectivement, et qu'il ne contient pas un lit de bibliothques gnriques ajoutes. Une architecture 3-tiers a de nombreux avantages :

Il est plus facile de lire le code du logiciel. Les dveloppeurs peuvent ajouter et corriger le code plus rapidement. Les designers et intgrateurs HTML peuvent travailler en tout scurit dans le dossier /themes sans avoir comprendre ou mme lire une seule ligne de code PHP. Les dveloppeurs peuvent travailler sur des donnes et modules supplmentaires que les intgrateurs HTML peuvent exploiter.

Qu'est qu'un module PrestaShopL'extensibilit de PrestaShop est bas sur les modules, qui sont de petits programmes qui exploitent les fonctionnalits de PrestaShop et peuvent les modifier et les remplacer afin d'obtenir un PrestaShop plus utile ou plus personnalis.

Principes techniques d'un moduleUn module PrestaShop consiste en :

un dossier racine, nomm d'aprs le module, qui contiendra tous les fichiers du module, et sera plac dans le dossier /modules de votre PrestaShop ; un fichier PHP principal, nomm d'aprs le module, plac dans le dossier racine. Ce fichier PHP aura le mme nom que son dossier racine ; un fichier d'icne, nomm logo.gif, reprsentant ce module ; facultatif : des fichiers .tpl, contenant le thme du module ; facultatif : des fichiers de langue, si le module ou son thme a du texte affiche (et donc, qui devrait tre traduisible) ; facultatif : dans un dossier /themes/modules, un dossier avec le mme nom que le module, contenant des fichiers .tpl et de langue si ncessaire. Ce dernier dossier est essentiel pendant la modification des modules existants, afin que vous puissiez le modifier sans devoir toucher ses fichiers originaux. Notamment, il vous permet de grer l'affichage du module de manire trs varies, en fonction du thme courant.

Voyons par exemple le module PrestaShop blockuserinfo :

N'importe quel module PrestaShop, une fois install sur une boutique en ligne, peut interagir avec un ou plusieurs "hooks", ou points d'accroche, la Vue courant au moment de l'analyse du code (par exemple, lors de l'affichage du panier ou de la fiche produit, lors de l'affichage du stock

actuel...). Spcifiquement, un hook est un raccourci vers les diffrentes mthodes disponibles au sein de l'objet Module, telles qu'assignes ce hook.

Une liste des points d'accroche de PrestaShopVoici un schma de l'architecture de PrestaShop :

Quand une page du site est charge, le moteur de PrestaShop vrifie quels sont les modules appel pour chacun des points d'accroche qui composent la page. Voici une liste de 53 points d'accroche parmi les plus courants. Front-office Page d'accueil et contour du site Emplacement Nom Visible du fichier header header.php Non

Description Est appel entre les balises HEAD de la page. Idal pour charger vos fichiers Javascript et CSS.

top leftColumn

header.php header.php

Oui Oui Oui Oui Oui

rightColumn footer.php footer home footer.php index.php

Est appel dans l'en-tte de la page. Est appel lors du chargement de la colonne de gauche. Est appel lors du chargement de la colonne de droite. Est appel dans le pied de page. Est appel au centre de la page d'accueil.

Fiche produit Nom extraLeft extraRight Emplacement Visible du fichier product.php product.php Oui Oui Description Est appel juste au-dessus du lien "Imprimer", sous la photo. Est appel en dessous du bloc contenant le bouton "Ajouter au panier". Est appel l'intrieur du bloc contenant le bouton "Ajouter au panier", sous ce bouton. Est appel l'intrieur du bloc contenant le bouton "Ajouter au panier", en dessous de l'information "Disponibilit :". Est appel au-dessus des onglets. Est appel dans la liste des onglets tels que "En savoir plus", "Caractristiques", "Accessoires Idal pour ajouter un onglet supplmentaire dont le contenu sera gr par le hook productTabContent. Est appel lorsque l'un des onglets est cliqu, idal pour afficher du contenu correspondant un onglet que vous auriez ajout avec le hook productTab.

productActions

product.php

Oui

productOutOfStock product.php

Oui

productfooter

product.php

Oui

productTab

product.php

Oui

productTabContent product.php

Oui

Panier Nom cart Emplacement du Visible Description fichier Class: Cart.php Non Est appel juste aprs la

shoppingCart

order.php

Oui

shoppingCartExtra order.php

Oui

createAccountTop authentication.php

Oui

createAccountForm authentication.php

Oui

createAccount

authentication.php

Non

customerAccount

my-account.php

Oui

myAccountBlock

Module: Oui blockmyaccount.php

authentication

authentication.php

Non

cration ou la mise jour d'un panier. Est appel en dessous du tableau listant les produits contenus dans le panier. Est appel en dessous du tableau listant les produits contenus dans le panier, en dessous des boutons de navigation. Est appel dans le formulaire de cration d'un compte client, audessus du bloc "Vos informations personnelles". Est appel dans le formulaire de cration d'un compte client, audessus du bouton "S'inscrire". Est appel juste aprs la cration d'un compte client. Est appel sur l'accueil du compte client, en bas de la liste des liens disponibles. Idal pour ajouter un lien au sein de cette liste. Est appel dans le bloc "Mon compte" en colonne de gauche, en bas de la liste des liens disponibles. Idal pour ajouter un lien au sein de cette liste. Est appel juste aprs l'identification d'un client, uniquement si l'identification est valide (adresse e-mail et mot de passe OK).

Recherche Emplacement Nom Visible du fichier search Class: Search.php Non

Description Est appel aprs chaque recherche. Idal pour analyser et/ou exploiter les recherches (et rsultats de recherche) effectu es par vos clients.

Choix du transporteur Emplacement Nom Visible du fichier

Description Est appel en dessous de la liste des transporteurs disponibles lors du processus de commande. Idal pour ajouter un transporteur ayant t dvelopp sous la forme d'un module (exemple : Transporteur relais colis).

extraCarrier order.php

Oui

Paiement Nom Emplacement Visible du fichier Description Est appel pour constituer la liste des moyens de paiements disponibles lors du processus de commande. Idal pour permettre le choix d'un module de paiement que vous auriez dvelopp. Est appel lors du retour sur la boutique aprs paiement. Idal pour afficher un message de confirmation et/ou des prcisions relatives au paiement. Identique paymentReturn (doublon). Est appel lors de l'affichage de la liste des moyens de paiement disponibles. Idal pour rediriger l'acheteur au lieu de lui afficher cette liste (Exemple : Checkout 1-click PayPal).

payment

order.php

Oui

paymentReturn

orderOui confirmation.php

orderConfirmation

orderOui confirmation.php

backBeforePayment order.php

Non

Retour marchandise Emplacement Nom Visible du fichier orderReturn order-follow.php Non

Description Est appel lorsqu'une demande de retour de marchandises est effectue par le client, uniquement si aucune erreur n'est rencontre. Est appel lors de l'affichage d'une facture au format PDF. Idal pour afficher du contenu dynamique ou statique au sein de cette facture.

PDFInvoice Class: PDF.php

Oui

Back-office Gnral Nom backOfficeTop Emplacement Visible du fichier header.inc.php Oui Description Es