Modélisation des données : produits, catégories et commandes

Créez les modèles de données pour les produits, catégories, commandes et lignes de commande dans Strapi.

3 min read

Contexte et objectifs

Dans un projet e-commerce moderne, la structure des données est cruciale pour garantir la fiabilité, la maintenabilité et la performance de votre application. Ce module vous guide pas à pas dans la modélisation des entités clés de votre back-office Strapi 5 : produits, catégories, commandes et lignes de commande. Vous allez découvrir comment tirer parti du système de Content Types de Strapi pour définir des schémas clairs et évolutifs, tout en préparant votre API à s’intégrer parfaitement avec votre frontend Remix.

Pourquoi bien modéliser vos données ?

  • Cohérence des informations
    Une bonne modélisation évite les redondances et les incohérences (prix obsolète, stock mal géré, etc.).
  • Évolutivité
    Vos besoins métier changeront : nouvelles remises, options produit, statuts de commande… Un schéma flexible vous fera gagner un temps précieux.
  • Performance et requêtes optimisées
    Les relations bien définies (one-to-many, many-to-many…) facilitent les requêtes GraphQL/REST et réduisent la charge sur la base de données.
  • Sécurité et permissions
    En isolant clairement chaque collection, vous pouvez affiner les rôles et permissions via Users & Permissions de Strapi.

Plan du module

1. Définir la collection “Produit”

  • Attributs essentiels : nom, description, prix, image, slug
  • Gestion du stock et intégration Stripe (devStripeProductId, stripeProductId)
  • Relation many-to-many vers “Catégorie de produit”

2. Créer la collection “Catégorie de produit”

  • Champ name pour l’intitulé
  • Relation bidirectionnelle avec la collection “Produit”

3. Mettre en place les commandes

  • Collection “Commande” avec le total, l’utilisateur (via plugin::users-permissions.user) et le statut (en attente de paiement vs payé)
  • Relation one-to-many vers “Ligne de commande”

4. Structurer les lignes de commande

  • Liaison one-to-one vers “Produit”
  • Quantité et prix unitaire
  • Publication en mode draft & publish

Outils et références

  • Strapi 5 – Modélisation et relations
  • Remix – Data loading API
  • React Router – Gestion des routes côté client
  • Stripe – Synchronisation des produits et prix via l’API
  • Git & GitHub – Versionnez vos schémas et migrations

Dans les sections suivantes, nous détaillerons chaque Content Type avec des extraits JSON, vous verrez comment personnaliser les options draftAndPublish, définir des énumérations pour le statut de commande et paramétrer correctement les relations afin de générer une API REST et GraphQL cohérente et prête à l’emploi.