Le modèle de données PrestaShop se réfère à la structure organisationnelle dans laquelle les informations sont stockées et organisées au sein du système PrestaShop. Il définit comment les données sont stockées, traitées et interconnectées dans le contexte d'un site e-commerce construit avec PrestaShop. Par defaut sur PrestaShop 1.7 il y a 278 tables
La structure de base de données de PrestaShop est organisée de manière à stocker les informations nécessaires pour gérer une boutique en ligne. Voici une vue d'ensemble de la structure de base de la base de données PrestaShop, en se concentrant sur quelques tables clés :
Ces tables représentent une partie de la structure de la base de données de PrestaShop. Chacune d'entre elles est conçue pour stocker des informations spécifiques nécessaires à la gestion complète d'une boutique en ligne. Il est à noter que la structure de la base de données peut varier en fonction des versions spécifiques de PrestaShop et des modules installés.
Lorsqu'un client ajoute des produits à son panier sur le site, une entrée est créée dans la table prefix_cart pour représenter ce panier. Cette entrée est associée au client enregistré.
Lorsque le client décide de finaliser son achat, le contenu du panier est converti en commande. Une nouvelle entrée est créée dans la table prefix_order pour représenter cette commande. Les détails spécifiques tels que le total, l'adresse de livraison, etc., sont enregistrés dans cette table.
Pour maintenir la trace de la relation entre une commande et le panier dont elle est issue, la table prefix_order peut contenir une référence à l'ID du panier associé. Cela permet de retracer la transformation du panier en commande.
Le produit avec l'ID 100 est lié à la catégorie avec l'ID 5.
| ID Produit | Nom Produit |
|---|---|
| 100 | Nom Produit 1 |
| ID Catégorie | Nom Catégorie |
|---|---|
| 5 | Nom Catégorie 1 |
| ID Produit | ID Catégorie |
|---|---|
| 100 | 5 |
La commande #123 est associée au client avec l'ID 10.
| ID Commande | Total |
|---|---|
| 123 | 100.00 |
| ID Client | Nom Client |
|---|---|
| 10 | Nom Client 1 |
La commande #123 inclut le produit avec l'ID 100 (quantité : 2) et le produit avec l'ID 200 (quantité : 1).
| ID Commande | ID Produit | Quantité |
|---|---|---|
| 123 | 100 | 2 |
| 123 | 200 | 1 |
| ID Produit | Nom Produit |
|---|---|
| 100 | Nom Produit 1 |
| 200 | Nom Produit 2 |
Stocke les Informations sur les Retours de Produits.
| ID Bon de Retour | ID Commande |
|---|---|
| 50 | 123 |
Contient des Détails Spécifiques sur les Produits dans Chaque Commande.
| ID Détail Commande | ID Commande | ID Produit | Quantité |
|---|---|---|---|
| 70 | 123 | 100 | 2 |
Stocke les Informations sur les Factures Générées pour les Commandes.
| ID Facture | ID Commande |
|---|---|
| 30 | 123 |
Contient des Détails sur les Paiements Associés aux Commandes.
| ID Paiement | ID Commande |
|---|---|
| 40 | 123 |
Enregistre l'Historique des Changements d'État des Commandes.
| ID Historique | ID Commande | Nouvel État |
|---|---|---|
| 60 | 123 | Expédié |
Stocke les informations générales sur la commande (ID de commande, ID du client, total payé, statut de la commande, etc.).
Contient des détails spécifiques sur les produits inclus dans la commande (ID de produit, quantité, prix unitaire, etc.).
Enregistre l'historique des changements d'état de la commande (ID de commande, nouvel état, date, etc.).
Contient les différents états possibles pour une commande (par exemple, "En attente de paiement", "Expédié", etc.).
Stocke les informations sur les factures générées pour les commandes (ID de la facture, date, montant, etc.).
Contient des détails sur les paiements associés aux commandes (mode de paiement, transaction, montant, etc.).
Stocke des informations spécifiques à l'avoir, telles que l'ID, la date de création, le montant, etc.
Référence à la commande associée à l'avoir.
Peut contenir des informations sur les frais de port, les taxes, etc.
Contient des détails spécifiques sur les produits inclus dans l'avoir.
Référence à l'avoir parent (ID de prefix_order_slip).
Peut être liée à l'avoir, surtout si le remboursement concerne un retour spécifique.
Peut être mise à jour en fonction des informations de retour, telles que les avoirs émis.
Enregistre les changements d'état de la commande, y compris les actions liées aux retours et aux avoirs.
Stocke les informations sur le panier du client, créé lorsqu'il ajoute des produits à son panier.
Associé au client enregistré.
Contient les produits spécifiques ajoutés au panier, liés à la table prefix_cart.
Stocke les informations générales sur le produit telles que l'ID, le nom, la description, le prix, etc.
Peut être impactée si le produit a des attributs spécifiques.
Gère les niveaux de stock disponibles pour chaque produit.
Associe le produit à une ou plusieurs catégories.
Gère les images associées au produit.
Stocke des informations sur le transporteur telles que les frais d'expédition, les délais de livraison, etc.
Peut être impactée pour définir les zones où le transporteur opère.
Peut être utilisée pour spécifier les plages de prix associées au transporteur.
Peut être utilisée pour spécifier les plages de poids associées au transporteur.
Stocke les règles de réduction, telles que le code de réduction, le montant de la réduction, les conditions, etc.
Peut être impactée si la réduction s'applique à des groupes spécifiques de produits.
Peut être utilisée pour définir des combinaisons de règles de réduction.
Peut être affectée si la réduction est liée à des règles spécifiques concernant les produits.
Les produits ont des champs spécifiques tels que le prix, définissant le coût unitaire de l'article.
Les quantités disponibles en stock sont enregistrées pour chaque produit, gérant ainsi la disponibilité.
Les attributs permettent de définir des caractéristiques spécifiques aux produits, tels que la taille, la couleur, etc.
Les clients ont des champs spécifiques pour stocker des informations de contact telles que l'adresse, le numéro de téléphone, etc.
Un historique des commandes est maintenu pour chaque client, répertoriant les achats antérieurs effectués.
Les commandes enregistrent les produits spécifiques inclus dans chaque transaction.
Chaque commande a un statut qui peut changer au fil du processus, par exemple, "En attente de paiement", "Expédié", etc.