LogoLogo
Homepage
  • Documentations for PrestaShop 1.4
  • English documentation 1.4
    • Getting Started
    • Updating PrestaShop
    • User Guide
      • Training
      • Customizing your shop
      • Browsing the front-office
      • Connecting to the PrestaShop back-office
      • Adding Products and Product Categories
      • A Look inside the Catalog
      • Managing Customers
      • Managing Orders
      • Managing Payment Methods
      • Managing Shipping
      • Understanding Statistics
      • Managing Modules
      • Managing Employees
      • Understanding the Preferences
      • Exploring PrestaShop's Tools
      • PrestaShop Support
    • System Administrator Guide
    • Developer Guide
      • Developer tutorials
        • Using the REST webservice
          • Chapter 1 - Creating Access to Back Office
          • Chapter 2 - Discovery - Testing access to the web service with the browser
          • Chapter 3 - First steps - Access the Web service and list client
            • 3.1 - Access the web service
            • 3.2 - Handling errors
            • 3.3 - List clients
          • Chapter 4 - Retrieve Data - Retrieving a Client
          • Chapter 5 - Modification - Update client
          • Chapter 6 - Creation - Remote Online Form
          • Chapter 7 - Removal - Remove customer accounts from the database
          • Chapter 8 - Advanced Use
          • Cheat-sheet - Concepts outlined in this tutorial
        • Understanding and using hooks
        • Synchronization via Hooks
        • Modules, Classes and Controller Override
        • Modules, Override, Web Service
        • Db class good practices for Prestashop 1.4
        • Carrier modules - functions, creation and configuration
        • Creating your own payment module
        • Accelerated Security Course - Episode 1 - Never Trust Foreign Data
        • Accelerated Security Course - Episode 2 - SQL Injections
        • Accelerated Security Course - Episode 3 - XSS
        • Accelerated Security Course - Episode 4 - CSRF
      • Fundamentals
      • Creating a PrestaShop module
      • Development standard
      • Public and overloadable methods
      • Web-service reference
      • How to use the forge to contribute to PrestaShop
      • Rocky's guides
        • PrestaShop 1.4.3 Development Guide
          • Architecture
          • Overriding Files
          • Creating Modules
          • Cookie Structure
          • Database Structure
        • PrestaShop 1.4.3 Performance Guide
    • Designer Guide
      • Coding a theme
      • Design tips
      • Implementing layered navigation in a theme
    • Troubleshooting
    • FAQ
    • User contributions
    • Documentation PDFs
  • Documentation française 1.4
    • Guide de démarrage
    • Mettre à jour PrestaShop
    • Guide de l'utilisateur
      • Formation
      • Personnaliser votre boutique
      • Se connecter au back-office de Prestashop
      • Ajouter des produits et des catégories de produits
      • Un aperçu du catalogue
      • Gérer les clients
      • Gérer les commandes
      • Gérer les méthodes de paiement
      • Gérer le transport
      • Comprendre les statistiques
      • Gérer les modules
      • Gérer les employés
      • Comprendre les préférences
      • Explorer les outils de PrestaShop
      • Obtenir de l'aide
    • Guide de l'administrateur système
    • Guide du développeur
      • Fondamentaux
      • Créer un module PrestaShop
      • Tutoriels pour développeurs
        • Tutoriel Webservice REST
          • Chapitre 1 - Mise en place - Création des accès dans le Back Office
          • Chapitre 2 - Découverte - Tester l'accès au service web avec le navigateur
          • Chapitre 3 - Premiers pas - Accéder au service web et lister les clients
            • 3.1 Accéder au service web
            • 3.2 Gestion des erreurs
            • 3.3 Lister les clients
          • Chapitre 4 - Récuperer des données : Récupérer un client
          • Chapitre 5 - Modification : Mettre à jour un client
          • Chapitre 6 - Création : Formulaire d'ajout à distance
          • Chapitre 7 - Suppression : Retirer des comptes client de la base
          • Chapitre 8 – Utilisation avancée
          • Chapitre 9 - Gestion des images
          • Chapitre 10 - Gestion des prix
          • Mémento : Notions énoncées dans ce tutoriel
        • Mieux comprendre et utiliser les hooks
        • La synchronisation via les Hooks
        • Surcharge et override
        • Modules, surcharge, web service
        • Les bonnes pratiques de la classe Db sur Prestashop 1.4
        • Les modules transporteurs - fonctionnement, création, configuration
        • Cours de sécurité accéléré no. 1 - Never trust foreign data
        • Cours de sécurité accéléré no. 2 - Injections SQL
        • Cours de sécurité accéléré no. 3 - XSS
        • Cours de Sécurité accéléré no. 4 - CSRF
    • Guide du designer
      • Conseils en design
      • Créer un thème
    • Guide du Vendeur
    • Import Wiki FR
      • Dépannage
        • Changer la taille maximum de téléchargement de fichiers
        • Comment ajouter une page à PrestaShop
        • Générer le fichier .htaccess par Prestashop pour avoir des URLs simplifiées
        • Générer un nouveau mot de passe manuellement
        • Import CSV
        • Personnalisation des mails clients
        • Problème d'allocation mémoire chez 1&1
        • Problème pour se connecter après avoir effacé une langue
        • Votre site ne répond plus, une page blanche s’affiche
      • Fidéliser les Clients
      • Gestion des Taxes
      • Installer Un Module
      • Sauvegarder votre Base de Données
    • PDF de la documentation
    • Contributions des utilisateurs
    • Questions fréquentes
  • Documentación española 1.4
    • Introducción
    • Actualización de PrestaShop
    • Guía de Usuario
      • Entrenamiento
      • Personalización de su tienda
      • Exploración del front-office
      • Conexión al back-office PrestaShop
      • Añadir Productos y Categorías de Productos
      • Una Mirada Dentro del Catálogo
      • Gestión de Clientes
      • Gestión de Pedidos
      • Gestión de Métodos de Pago
      • Gestión de Envío
      • Comprensión de las Estadísticas
      • Gestión de Módulos
      • Gestión de Empleados
      • Comprensión de Preferencias
      • Exploración de las herramientas de PrestaShop
      • Soporte PrestaShop
    • Guía del Administrador del Sistema
    • Guía del Desarrollador
      • Aspectos Fundamentales
      • Creación de un módulo de PrestaShop
      • Estándares de desarrollo
      • Manuales de desarrollador
        • Utilización del servicio web REST
          • Capítulo 1 - Creación de Acceso al Back Office
          • Capítulo 2 - Descubrimiento - Pruebas de acceso al servicio web con el navegador
          • Capítulo 3 - Primeros pasos - Acceso al servicio Web y lista de clientes
            • 3.1 - Acceso al servicio web
            • 3.2 - Manejo de errores
            • 3.3 - Enumeración de clientes
          • Capítulo 4 - Recuperación de datos - Recuperación de un cliente
          • Capítulo 5 - Modificación - Actualización de cliente
          • Capítulo 6 - Creación - Formulario En Línea Remoto
          • Capítulo 7 - Eliminación - Eliminar cuentas de clientes de la base de datos
          • Capítulo 8 - Uso avanzado
        • Comprensión y uso de hooks
        • Sincronización a través de Hooks
        • Módulos, Reemplazo, Servicio Web
        • Módulos, Clases y Reemplazo del Controlador
        • Buenas prácticas de Clase DB para Prestashop 1.4
        • Módulos de transportistas - funciones, creación y configuración
        • Curso Acelerado de Seguridad - Episodio 1 - Nunca Confíe en Datos Exteriores
        • Curso Acelerado de Seguridad - Episodio 2 - Inyecciones SQL
        • Curso Acelerado de Seguridad - Episodio 3 - XSS
        • Curso Acelerado de Seguridad - Episodio 4 - CSRF
      • Referencia del servicio web
    • Guía de Diseñador
      • Codificación de un tema
      • Consejos de Diseño
    • Solución de problemas
    • Preguntas Frecuentes
Powered by GitBook
On this page
  • Fondamentaux
  • Concepts
  • Architecture technique de PrestaShop
  • Qu'est qu'un module PrestaShop
  • Principes techniques d'un module
  • Une liste des points d'accroche de PrestaShop

Was this helpful?

  1. Documentation française 1.4
  2. Guide du développeur

Fondamentaux

PreviousGuide du développeurNextCréer un module PrestaShop

Last updated 4 years ago

Was this helpful?

Table des matières

Fondamentaux

Concepts

Avant de vous lancer dans la création d'un module, il est préférable que vous maîtrisiez déjà la programmation orientée Objet avec PHP.

PrestaShop a été conçu pour que des modules tiers puissent facilement être construits sur ses fondations, ce qui en fait une solution e-commerce particulièrement personnalisable.

Un module est une extension à PrestaShop qui permet à n'importe quel développeur de :

  • ajouter des fonctionnalités à PrestaShop ;

  • afficher de nouvelles informations sur le site (sélection de produits, etc.) ;

  • communiquer avec d'autres acteurs e-commerce (guides d'achat, plates-formes de paiement, plates-formes logistiques...)

  • etc.

La société qui développe PrestaShop fournit plus de 100 modules gratuitement avec la solution elle-même, vous permettant de lancer rapidement et gratuitement votre boutique en ligne.

Architecture technique de PrestaShop

  • Objet/données. L'accès à la base de données se fait par le biais des fichiers du dossier /classes.

  • Contrôle des données. Le contenu envoyé à l'utilisateur est vérifié par les fichiers du dossier racine.

  • Apparence. Tous les fichiers du thème sont dans le dossier /themes.

Il s'agit du même principe que pour l'architecture MVC (Modèle-Vue-Contrôleur), en plus simple et plus accessible.

Notre équipe de développeurs a 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 bibliothèques génériques ajoutées.

Une architecture 3-tiers a de nombreux avantages :

  • Il est plus facile de lire le code du logiciel.

  • Les développeurs peuvent ajouter et corriger le code plus rapidement.

  • Les designers et intégrateurs HTML peuvent travailler en toute sécurité dans le dossier /themes sans avoir à comprendre ou même lire une seule ligne de code PHP.

  • Les développeurs peuvent travailler sur des données et modules supplémentaires que les intégrateurs HTML peuvent exploiter.

Schéma SQL

Qu'est qu'un module PrestaShop

L'extensibilité de PrestaShop est basé sur les modules, qui sont de petits programmes qui exploitent les fonctionnalités de PrestaShop et peuvent les modifier et les remplacer afin d'obtenir un PrestaShop plus utile ou plus personnalisé.

Principes techniques d'un module

Un module PrestaShop consiste en :

  • un dossier racine, nommé d'après 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'après le module, placé dans le dossier racine. Ce fichier PHP aura le même nom que son dossier racine ;

  • un fichier d'icône, nommé logo.gif, représentant ce module ;

  • facultatif : des fichiers .tpl, contenant le thème du module ;

  • facultatif : des fichiers de langue, si le module ou son thème a du texte à afficher (et donc, qui devrait être traduisible) ;

  • facultatif : dans un dossier /themes/modules, un dossier avec le même nom que le module, contenant des fichiers .tpl et de langue si nécessaire. 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 gérer l'affichage du module de manière très variées, en fonction du thème 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...). Spécifiquement, un hook est un raccourci vers les différentes méthodes disponibles au sein de l'objet Module, telles qu'assignées à ce hook.

Une liste des points d'accroche de PrestaShop

Voici un schéma de l'architecture de PrestaShop :

Quand une page du site est chargée, le moteur de PrestaShop vérifie quels sont les modules à appeler 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

Nom

Emplacement du fichier

Visible

Description

header

header.php

Non

Est appelé entre les balises HEAD de la page. Idéal pour charger vos fichiers JavaScript et CSS.

top

header.php

Oui

Est appelé dans l'en-tête de la page.

leftColumn

header.php

Oui

Est appelé lors du chargement de la colonne de gauche.

rightColumn

footer.php

Oui

Est appelé lors du chargement de la colonne de droite.

footer

footer.php

Oui

Est appelé dans le pied de page.

home

index.php

Oui

Est appelé au centre de la page d'accueil.

Fiche produit

Nom

Emplacement du fichier

Visible

Description

extraLeft

product.php

Oui

Est appelé juste au-dessus du lien "Imprimer", sous la photo.

extraRight

product.php

Oui

Est appelé en dessous du bloc contenant le bouton "Ajouter au panier".

productActions

product.php

Oui

Est appelé à l'intérieur du bloc contenant le bouton "Ajouter au panier", sous ce bouton.

productOutOfStock

product.php

Oui

Est appelé à l'intérieur du bloc contenant le bouton "Ajouter au panier", en dessous de l'information "Disponibilité :".

productfooter

product.php

Oui

Est appelé au-dessus des onglets.

productTab

product.php

Oui

Est appelé dans la liste des onglets tels que "En savoir plus", "Caractéristiques", "Accessoires Idéal pour ajouter un onglet supplémentaire dont le contenu sera géré par le hook productTabContent.

productTabContent

product.php

Oui

Est appelé lorsque l'un des onglets est cliqué, idéal pour afficher du contenu correspondant à un onglet que vous auriez ajouté avec le hook productTab.

Panier

Nom

Emplacement du fichier

Visible

Description

cart

Class: Cart.php

Non

Est appelé juste après la création ou la mise à jour d'un panier.

shoppingCart

order.php

Oui

Est appelé en dessous du tableau listant les produits contenus dans le panier.

shoppingCartExtra

order.php

Oui

Est appelé en dessous du tableau listant les produits contenus dans le panier, en dessous des boutons de navigation.

createAccountTop

authentication.php

Oui

Est appelé dans le formulaire de création d'un compte client, au-dessus du bloc "Vos informations personnelles".

createAccountForm

authentication.php

Oui

Est appelé dans le formulaire de création d'un compte client, au-dessus du bouton "S'inscrire".

createAccount

authentication.php

Non

Est appelé juste après la création d'un compte client.

customerAccount

my-account.php

Oui

Est appelé sur l'accueil du compte client, en bas de la liste des liens disponibles. Idéal pour ajouter un lien au sein de cette liste.

myAccountBlock

Module: blockmyaccount.php

Oui

Est appelé dans le bloc "Mon compte" en colonne de gauche, en bas de la liste des liens disponibles. Idéal pour ajouter un lien au sein de cette liste.

authentication

authentication.php

Non

Est appelé juste après l'identification d'un client, uniquement si l'identification est validée (adresse e-mail et mot de passe OK).

Recherche

Nom

Emplacement du fichier

Visible

Description

search

Class: Search.php

Non

Est appelé après chaque recherche. Idéal pour analyser et/ou exploiter les recherches (et résultats de recherche) effectué es par vos clients.

Choix du transporteur

Nom

Emplacement du fichier

Visible

Description

extraCarrier

order.php

Oui

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

Paiement

Nom

Emplacement du fichier

Visible

Description

payment

order.php

Oui

Est appelé pour constituer la liste des moyens de paiements disponibles lors du processus de commande. Idéal pour permettre le choix d'un module de paiement que vous auriez développé.

paymentReturn

order-confirmation.php

Oui

Est appelé lors du retour sur la boutique après paiement. Idéal pour afficher un message de confirmation et/ou des précisions relatives au paiement.

orderConfirmation

order-confirmation.php

Oui

Identique à paymentReturn (doublon).

backBeforePayment

order.php

Non

Est appelé lors de l'affichage de la liste des moyens de paiement disponibles. Idéal pour rediriger l'acheteur au lieu de lui afficher cette liste (Exemple : Checkout 1-click PayPal).

Retour marchandise

Nom

Emplacement du fichier

Visible

Description

orderReturn

order-follow.php

Non

Est appelé lorsqu'une demande de retour de marchandises est effectuée par le client, uniquement si aucune erreur n'est rencontrée.

PDFInvoice

Class: PDF.php

Oui

Est appelé lors de l'affichage d'une facture au format PDF. Idéal pour afficher du contenu dynamique ou statique au sein de cette facture.

Back-office

Général

Nom

Emplacement du fichier

Visible

Description

backOfficeTop

header.inc.php

Oui

Est appelé dans l'en-tête, au-dessus des onglets.

backOfficeHeader

header.inc.php

Non

Est appelé entre les balises HEAD de la page. Idéal pour charger vos fichiers JavaScript et CSS.

backOfficeFooter

footer.inc.php

Oui

Est appelé dans le pied de page, au-dessus de la mention "Powered By PrestaShop".

backOfficeHome

index.php

Oui

Est appelé au centre de la page d'accueil.

Commandes et détail de commandes

Nom

Emplacement du fichier

Visible

Description

newOrder

Class: PaymentModule.php

Non

Est appelé lors du processus de création d'une nouvelle commande, juste après la création elle-même.

paymentConfirm

Class: Hook.php

Non

Est appelé lorsque l'état d'une commande passe à "Payement accepté".

updateOrderStatus

Class: OrderHistory.php

Non

Est appelé lorsque l'état d'une commande est changé, juste avant le changement effectif.

postUpdateOrderStatus

Class: OrderHistory.php

Non

Est appelé lorsque l'état d'une commande est changé, juste après le changement effectif.

cancelProduct

AdminOrders.php

Non

Est appelé lorsqu'un élément est supprimé d'une commande, juste après cette suppression.

invoice

AdminOrders.php

Oui

Est appelé lorsque les détails d'une commande sont affichés, au-dessus du bloc "Information client".

adminOrder

AdminOrders.php

Oui

Est appelé lorsque les détails d'une commande sont affichés, en-dessous du bloc "Information client".

orderSlip

AdminOrders.php

Non

Est appelé lors de la création d'un bon d'achat, juste après sa création.

Produits

Nom

Emplacement du fichier

Visible

Description

Nom

Emplacement du fichier

Visible

Description

addproduct

AdminProducts.php

Non

Est appelé lorsqu'un produit est créé ou dupliqué, après la création/duplication.

updateproduct

AdminProducts.php

Non

Est appelé lorsqu'un produit est mis à jour avec l'ajout d'une nouvelle photo, après la mise à jour.

deleteproduct

Class: Product.php

Non

Est appelé lorsqu'un produit est supprimé, avant la suppression.

updateQuantity

Class: PaymentModule.php

Non

Est appelé lors de la validation d'une commande dont le statut n'est pas "Annulé" ou "Erreur de paiement", pour chaque produit de la commande.

updateProductAttribute

Class: Product.php

Non

Est appelé lors de la mise à jour d'une déclinaison de produit, après la mise à jour.

watermark

AdminProducts.php

Non

Est appelé lors de l'ajout d'une image sur un produit, après l'ajout.

Statistiques

Nom

Emplacement du fichier

Visible

Description

GraphEngine

Class: ModuleGraph.php

Oui

Est appelé lors de l'affichage d'un graphique de statistiques.

GridEngine

Module: GridEngine.php

Oui

Est appelé lors de l'affichage d'une liste de données statistiques.

AdminStatsModules

AdminStatsTab.php

Oui

Est appelé lors de l'affichage de la liste des modules de statistiques.

Clients

Nom

Emplacement du fichier

Visible

Description

adminCustomers

AdminCustomers.php

Oui

Est appelé sur le détail d'un client, après la liste des groupes de clients auxquels il appartient.

Transporteurs

Nom

Emplacement du fichier

Visible

Description

updateCarrier

AdminCarriers.php

Non

Est appelé lors de la mise à jour d'un transporteur, après la mise à jour.

Plus de 750 modules sont également disponibles sur le . Ces modules additionnels, ont été conçus par la société PrestaShop ou par des membres de la communauté de PrestaShop, et sont vendus à des prix abordables. En tant que développeurs, vous pouvez vous aussi vendre vos modules sur ce site, et recevoir 70% des ventes liées à votre création. !

PrestaShop est basé sur une :

Vous pouvez télécharger le schéma de PrestaShop 1.4.7.2 (8 Mo), ou (vous devrez télécharger pour le lire).

Fondamentaux
Concepts
Architecture technique de PrestaShop
Qu'est qu'un module PrestaShop
Principes techniques d'un module
Une liste des points d'accroche de PrestaShop
site officiel
Inscrivez-vous
architecture 3-tiers
au format PNG
au format original
MySQL Workbench