Données produit

Un catalogue commun, des offres toujours sourcées

Odoo doit distinguer ce qui peut être vendu de ce qui est réellement disponible auprès d’un fournisseur à un instant donné.

Boutique Odoo active en testCycle ingrédients déployéSaisonnalité sourcée en pilote

Déployé et vérifié dans l’environnement de test le 01/10/2026

Le Marché s’ouvre sur les produits frais

Le tri par défaut Produits frais d’abord présente les produits non bloqués pour la livraison choisie avant les indisponibles. Dans chaque groupe, il affiche les fruits et légumes, les viandes et volailles, les poissons, puis les autres produits. Les consultations puis le nom départagent les produits d’une même famille.

Le tri Les plus consultés reste disponible séparément. Les choix Prix et Nutri-Score, la recherche, les filtres et le retour depuis une fiche sont conservés.

Ce classement s’appuie sur les catégories existantes du Marché. Il ne change ni les prix, ni la disponibilité, ni les règles d’achat.

Déployé et vérifié dans l’environnement de test le 01/10/2026

Voir d’abord les produits disponibles pour sa livraison

Le tri Les plus consultés du Marché affiche d’abord les produits non bloqués pour le mode de livraison choisi, puis les produits indisponibles. Chaque groupe reste classé selon ses consultations.

Les horaires et les règles Express ou Planifiée sont les mêmes que sur les cartes. Le classement concerne tous les résultats avant leur affichage progressif. Recherche, filtres et tris explicites Prix et Nutri-Score conservent leur fonctionnement.

Un produit indisponible reste consultable selon les règles existantes. Ce classement ne modifie ni le stock, ni les prix, ni les règles d’achat.

Déployé et vérifié dans l’environnement de test le 29/09/2026

Une fiche pour explorer chaque produit

Depuis sa photo ou son nom dans le Marché, ouvrez les informations du produit, ses quantités, ses préparations disponibles et ses actions de panier. Un produit temporairement indisponible reste consultable, avec le motif et les règles de livraison applicables. Les produits retirés du site pour réviser leurs données restent masqués ; leur réactivation conserve le compteur.

Les recettes associées contiennent réellement ce produit dans leur version publiée. Vous pouvez consulter leur fiche puis revenir au produit ; aucune recette n’est inventée pour remplir une liste vide.

Popularité par consultations. Le compteur est cumulatif, avec une seule consultation par produit et session de navigation. Actualiser la fiche ne la compte pas à nouveau dans cette session. Le tri Les plus consultés reste disponible, en conservant vos filtres et votre recherche. Le tri par défaut Produits frais d’abord est décrit ci-dessus. Ce nombre ne représente ni des achats ni des visiteurs uniques.

Les nouveaux compteurs démarrent sans historique fictif. Si leur lecture est indisponible, aucun faux nombre n’est affiché. Les prix, les disponibilités, les données du panier et les compteurs des recettes gardent leurs règles.

Principe directeur

Produit ≠ offre fournisseur

Produit DailyFresh

Ce que le client comprend

Une tomate, un filet de poisson ou un panier de recette possède un nom, une unité, une description et des règles commerciales communes.

Offre fournisseur

Ce qu’un partenaire peut fournir

Une source précise indique prix d’achat, disponibilité, qualité, délai et validité sans être fusionnée anonymement avec les autres.

Plusieurs offres peuvent correspondre au même produit. L’orchestrateur opérationnel prépare une sélection selon des règles explicites ; l’orchestrateur commercial ne présente au client que les informations autorisées. Le fournisseur finalement retenu reste lié à la ligne de commande.

Disponibilité du catalogue de test — 28 septembre 2026. Au contrôle du 28 septembre 2026, les 548 articles publiés étaient disponibles avec un stock de test explicitement autorisé. Les quantités commandées, le mode choisi et le créneau restent vérifiés avant confirmation.

Instantané du 22 septembre 2026

Le contrôle comptait 549 références alimentaires actives dans Odoo et sur le site : 9 avec stock libre suffisant et 540 en approvisionnement « sur commande ». Aucun stock fictif n’est créé. Les prix de 94 références ont été complétés à partir de sources marchandes marocaines ; 56 restent « Prix à confirmer ». La disponibilité fournisseur et les délais doivent être confirmés par l’équipe opérationnelle.

Actif sur le site DEV

Une vraie boutique Odoo, sans produit de démonstration

La photo du citron confit a été retouchée par IA pour montrer le bocal en entier, puis remplacée dans Odoo et reprise automatiquement par le site. Les parties hors cadre sont reconstituées ; le prix et les données produit sont conservés.

Sur l’accueil, les photos des produits sont centrées dans des cadres carrés à fond blanc, avec des marges adaptées à l’écran et sans découpe supplémentaire des images originales.

La page /produits et son API publique lisent une projection bornée des produits autorisés dans Odoo. Elles répondaient en 200 lors de la recette d'activation.

Actif en test

549 produits publiés

Chaque produit reprend la photo, le nom et les informations de vente publiés dans Odoo.

Prix Odoo

Prix TTC en MAD

Le prix client provient d’Odoo. Les prix publics sourcés y sont enregistrés avec leur date et leur conditionnement de référence ; un prix inconnu apparaît « Prix à confirmer ».

Instantané

Disponibilité qualitative

Au contrôle du 22 septembre, 9 produits avaient un stock libre suffisant et 540 relevaient de l’approvisionnement interne. La politique validée depuis impose une disponibilité selon le mode et le délai réalisables, sans libellé client « Sur commande ». Les contrôles de ce lot sont déployés et vérifiés dans l’environnement de test.

Trois langues et un panier produits unique

Les catégories et produits sont disponibles en français, anglais et arabe, avec une interface de droite à gauche en arabe. Le compte connecté choisit la quantité avant l'ajout, avec les minimums et incréments configurés dans Odoo, puis modifie ou retire ses lignes dans un panier unique. Les produits sélectionnés depuis une recette rejoignent ce même panier. Les épices et produits de placard sont proposés en compléments facultatifs. Le chiffrage et le contrôle ponctuel du stock restent sans réservation ni confirmation.

Déployé et vérifié dans l’environnement de test — 29 septembre 2026

Comprendre pourquoi un produit est indisponible

Data cleaning — Déployé et vérifié en test le 29 septembre 2026. Ce motif interne Odoo écarte les doublons, les erreurs d’unité et les fiches que l’équipe ne souhaite plus utiliser. Il masque l’article sur DailyFresh et bloque son achat dans les deux modes jusqu’à une remise à disposition explicite. Le filtre Data cleaning retrouve les fiches conservées avec leur historique. Un article déjà présent dans un panier reste retirable avec un message générique d’indisponibilité. Les autres motifs gardent le produit visible et grisé. L’équipe choisit les articles concernés ; aucun classement automatique.

Libellés client — Déployés et vérifiés en test le 29 septembre 2026. Le produit reste visible dans le marché : sa photo est grisée et un badge indique Hors saison, Rupture de stock ou Temporairement indisponible. Ce dernier libellé couvre le blocage manuel et l’indisponibilité du fournisseur, dont le motif reste interne à Odoo. Un appui explique l’indisponibilité sans mentionner le fournisseur. Son nom, ses informations et son prix connu restent lisibles ; l’ajout aux favoris reste possible.

Le rendu suit le mode de livraison choisi. Après l’heure limite, le badge indique Express terminé aujourd’hui ; en dehors des horaires, Express indisponible. Un produit uniquement fermé en Express après 14 h reste achetable en Planifiée si cette livraison est possible. Le bouton Choisir la livraison planifiée ouvre le sélecteur de livraison. Les libellés et leurs explications gardent le même sens en français, anglais et arabe.

Odoo gère le motif, les livraisons concernées, une période facultative et les jours et horaires Express en heure du Maroc. Lever une indisponibilité conserve les autres règles. Une saison ou une date de retour n’est jamais inventée. Les paniers existants restent consultables et modifiables pour retirer les produits bloqués ; les règles sont revérifiées avant confirmation.

Dans Catalogue LePanier → Produits, ouvrir la fiche et utiliser Rendre indisponible ou Lever l’indisponibilité. La section Disponibilité DailyFresh règle les horaires Express. Les règles sont désactivées par défaut : l’équipe choisit les produits et les horaires concernés.

Le marché et le panier actualisent le statut toutes les 15 secondes lorsque l’onglet est visible, ainsi qu’au retour sur la page. La recherche, les filtres, les quantités et les préparations choisies sont conservés. Une indisponibilité ou une remise à disposition peut ainsi apparaître sans rechargement manuel.

Déployé sur le site de test

Un marché centré sur les produits

Raccourcis de quantité — Déployé et vérifié en test le 29 septembre 2026. Pour les produits proposés à 250 g, le menu ajoute les raccourcis 1 kg, 1,5 kg et 2 kg aux formats déjà disponibles. Les minimums, les pas de vente et les quantités proposées restent ceux configurés dans Odoo. Le parcours est vérifié sur ordinateur et téléphone.

Plusieurs rayons à la fois — Déployé et vérifié en test. Sur mobile et ordinateur, plusieurs rayons peuvent être sélectionnés et combinés avec la recherche et les notes A–E. Recliquez pour retirer un rayon ; une famille peut être choisie puis affinée par catégorie. Tous les produits efface les rayons, Réinitialiser conserve la recherche et Tout effacer la retire également. Le tri garde un seul classement actif. Les choix sont conservés dans les liens et après connexion ; les produits sont filtrés avant l’affichage par lots de douze.

Photos produits — Déployé dans l’environnement de test. 155 images manquantes ont été complétées et 58 photos existantes harmonisées ou corrigées : fond blanc, cadrage carré et sujet vérifié, dont le bacon, l’amlou et l’absinthe. Les illustrations générées ou retouchées par IA sont conservées dans Odoo avec leur provenance ; elles ne certifient pas une marque, une origine ou une composition réelle. Les prix, stocks et informations nutritionnelles sont préservés.

Accueil et défilement — Déployé dans l’environnement de test. Les cartes produits et recettes de l’accueil reprennent la réglette A–E, les calories et le panneau de détail selon les données disponibles, sans changer leur sélection ni leur ordre. Le marché charge automatiquement les produits suivants au défilement, par lots de 12, avec un compteur discret à la place de « Voir plus ». Recherche, filtres et retours de navigation sont conservés ; le chargement ne déplace pas le focus.

Réglette A–E et filtre — Déployé dans l’environnement de test. Une réglette colorée complète A–E en bas de photo entoure la note validée du produit, sans texte « Nutri-Score » visible. Les produits sans note n’affichent pas de réglette.

Évolution validée, déployée et vérifiée en test. Les lettres A à E sont cumulables et se retirent par un nouveau clic ; sans sélection, tous les produits sont inclus, sans boutons « Toutes » ou « Sans note ». Les boutons Prix et Nutri-Score remplacent la liste de tri et inversent leur sens au clic, avec un seul critère actif. Les valeurs absentes restent en fin de leur tri. Recherche, rayon, notes et tri sont conservés dans les liens et au retour après connexion. Les rayons du panneau mobile deviennent des tuiles illustrées avec légendes, sans retirer de catégorie ; la colonne ordinateur reste en place. Parcourir les produits.

Tri du marché ordinateur illustré — déployé et vérifié en test. Les boutons Prix et Nutri-Score reprennent les illustrations existantes dans un format horizontal compact. Les libellés, la sélection et l’inversion du sens au clic sont conservés ; le panneau mobile et les règles de classement restent inchangés.

Nutrition compacte — Déployé dans l’environnement de test. Les calories disponibles apparaissent en gras sous le nom, avec /100 g discret et une icône d’information. Le clic ouvre les détails à droite sur ordinateur ou depuis le bas sur mobile, sans déplier la carte ; prix et actions restent alignés. Un zéro connu reste affiché ; sans calories renseignées, le bouton « Nutrition » donne accès aux autres valeurs disponibles. Aucun bloc ne s’affiche sans nutrition valide. La réglette A–E et les filtres sont conservés. Les sources nutritionnelles ne sont plus affichées sur le site ; elles restent conservées dans Odoo.

La nouvelle présentation donne la priorité à la recherche, aux rayons et aux produits. Le titre « Le marché » remplace le grand bloc introductif ; les résultats suivent la saisie sans bouton de recherche séparé.

Rayons compacts

Sur mobile, une rangée de raccourcis et un panneau depuis le bas de l’écran donnent accès aux rayons sans éloigner les produits. Sur ordinateur, une colonne compacte présente les familles et leurs sous-rayons.

Un prix lisible

Chaque carte réunit photo, nom, prix de la quantité choisie et prix de comparaison. Un seul sélecteur ajuste la quantité et son montant avant l’ajout au panier.

Des quantités simples

Les quantités minimales et les pas configurés dans Odoo sont appliqués par les commandes. Les mentions techniques « Minimum » et « Par » ne se répètent plus sur les cartes ; les conditionnements affichés restent ceux réellement vendus.

Le nombre de résultats et le tri restent proches de la grille. Les catégories répétées sur chaque produit, le filtre par unité et les badges « Disponible » systématiques sont retirés. Le lot initial conservait « Sur commande » et « Prix à confirmer ». La nouvelle décision retire « Sur commande » des badges, filtres et messages côté client, tout en conservant l’approvisionnement dans Odoo. « Prix à confirmer » reste distinct d’un stock ou d’un délai. Déployé et vérifié dans l’environnement de test.

État : déployé et vérifié

Les parcours sont contrôlés sur ordinateur et mobile en français, anglais et arabe. Cette évolution concerne la présentation et les commandes de l’interface. Les prix, stocks, règles de vente et photos Odoo sont conservés. Aucun badge de promotion, origine ou qualité n’est ajouté sans donnée produit correspondante ; les photos manquantes restent à compléter.

Données de référence

Fiche produit minimale

Identité

  • Nom multilingue
  • Description client
  • Catégorie et images
  • Statut de publication

Vente

  • Unité ou poids variable
  • Quantité minimale
  • Substitutions autorisées
  • Conditionnement proposé

Qualité

  • Origine lorsqu’elle est connue
  • Conservation
  • Allergènes applicables
  • Règles de préparation

Saisonnalité

  • Permanent ou saisonnier
  • Périodes de référence
  • Région marocaine
  • Statut à valider

Recettes

  • Famille d’ingrédient
  • Équivalences possibles
  • Facteur de portion
  • Perte de préparation

Pilotage

  • Marge ou règle de prix
  • Priorité de commercialisation
  • Restrictions horaires
  • Motif d’indisponibilité

Du besoin recette à la vente

Cinq étapes sans achat automatique

Un ingrédient peut être utile à une recette avant d’être disponible dans l’offre DailyFresh. Son étape commerciale décrit une progression contrôlée ; elle ne fabrique ni fournisseur, ni prix, ni stock.

Étapes commerciales applicables aux produits utilisés comme ingrédients
ÉtapeUsageVente et publication
Référentiel recetteIngrédient connu, sans offre commercialeNi vendu, ni acheté, ni publié
À sourcerBesoin identifié, fournisseur ou conditionnement à trouverNon vendu et non publié ; achat autorisable mais jamais déclenché automatiquement
PiloteProduit testé dans un parcours ferméVendable mais non publié au grand public
ActifProduit autorisé à entrer dans l’offrePublication possible après conformité catalogue
SuspenduProduit temporairement retiréNi vendu, ni acheté, ni publié
Décision humaine et traçable

Seul un responsable catalogue change l’étape. Le changement est journalisé et rouvre la revue d’une fiche déjà approuvée. Les futurs signaux de demande aideront à prioriser le sourcing, sans déclencher eux-mêmes une commande fournisseur.

Stock et achat

Stockable et MTO ne sont pas contradictoires

Stockable indique que le bien physique est suivi par Odoo. MTO indique que l’approvisionnement répond à la commande client, sous les validations d’achat prévues. La viande ou le poisson collecté puis consolidé peut donc être stockable et MTO. « Sur commande » reste une règle interne pour les produits non stockés, jamais un statut à afficher au client selon la décision validée. Un produit n’est proposé que si l’approvisionnement permet de tenir le mode choisi ; l’absence de stock propre ne suffit pas à le refuser et retirer le libellé ne suffit pas à le rendre disponible. ADR-040 — déployé et vérifié en test.

Politiques d’approvisionnement proposées pour les produits DailyFresh
PolitiqueFonctionnementDisponibilité client
Stock magasinQuantité réellement détenue et réservableSelon stock libre et réservations
MTO avec collecteAchat après commande puis réception au magasinAprès confirmation du partenaire
HybrideStock d’abord, fournisseur en secoursSelon règle et confirmation
PrécommandeDemande future sans engagement fermePrix et quantité à confirmer
Livraison directeLe partenaire remet réellement au clientVéritable dropshipping uniquement

Après 15 h, la vérification auprès du poissonnier peut attendre la prochaine ouverture. Ce circuit interne ne devient pas un badge « Sur commande » sur le site. La livraison planifiée respecte au moins 24 heures complètes après la commande, selon le créneau et la capacité ; aucun prix ne doit être inventé avant confirmation.

Donnée volatile

Chaque offre conserve sa provenance

Champs nécessaires à une offre fournisseur
GroupeChampsPourquoi
FournisseurPartenaire, référence externe, point de retraitIdentifier l’origine et organiser la collecte
CommercialPrix d’achat, unité, calibre/qualité, quantitéCalculer une proposition comparable
DisponibilitéStatut, heure limite, délai de préparationÉviter une promesse impossible
PreuveAPI, message, photo, contrôle ; date et auteurAuditer l’information et résoudre les conflits
FraîcheurConfirmée à, expire à, prochaine vérificationFaire expirer automatiquement une donnée ancienne
ManipulationQui pèse, coupe, nettoie, emballe et étiquetteAttribuer la responsabilité par partenaire

Langage commun

Cinq états communs aux deux orchestrateurs

Disponible

Preuve valide

Quantité ou statut confirmé dans sa fenêtre de fraîcheur.

Limité

Capacité faible

Offre confirmée mais quantité réduite ou proche de l’heure limite.

Indisponible

Refus explicite

Partenaire ou système a confirmé l’absence pour la période.

Inconnu

Aucune preuve actuelle

Ne doit pas être transformé en « disponible » par un agent.

Confirmation requise

Doute ou conflit

Sources contradictoires, donnée expirée ou réponse ambiguë.

Sources

Arbitrage provisoire sûr

La priorité finale reste à décider

API, confirmation WhatsApp, photo du matin et contrôle du collecteur peuvent se contredire. En attendant la règle, aucun automatisme ne doit choisir silencieusement.

Forces et limites des sources de disponibilité
SourceForceLimiteTraitement MVP
API fournisseurStructurée et fréquentePeut ne pas refléter le rayon réelUtiliser avec horodatage et durée de validité
WhatsApp confirméEngagement humain directRéponse libre et parfois incomplèteFaire reformuler et confirmer le résumé
Photo du matinRapide pour un commerce peu équipéExtraction IA incertaineSoumettre les données extraites au partenaire
Contrôle collecteurObservation la plus proche de la collecteArrive après la promesse initialeDéclencher exception et correction, pas réécrire l’historique

Rituel partenaire

Collecte matinale semi-automatique

1

Solliciter

L’orchestrateur opérationnel demande disponibilités, prix et heures limites selon un modèle court.

2

Extraire

Une liste ou photo est transformée en lignes structurées avec un niveau de confiance.

3

Faire confirmer

Le partenaire reçoit un résumé lisible et corrige les erreurs éventuelles.

4

Publier

Odoo enregistre la source, l’heure de confirmation et l’expiration prévue.

Une application mobile partenaire ne devient nécessaire que si le parcours WhatsApp ne fournit pas assez de structure, de rapidité ou de traçabilité pendant le pilote.

RAG et données du jour

Retrouver une connaissance n’est pas confirmer une disponibilité

Corpus approuvé

OCA Knowledge gouverne recettes, politiques, saisonnalité et conseils avec leurs révisions. Leur recherche vectorielle par les agents n’est pas encore disponible.

Faits volatils

Prix, quantité, disponibilité et délai viennent d’une API ou d’une confirmation horodatée avec expiration.

Vérification non engageante

Avant la commande ferme, l’orchestrateur opérationnel peut demander une confirmation ou une mise de côté prévue par la convention partenaire. Durée, coût éventuel et responsabilité d’une annulation doivent être définis par partenaire. Au MVP, l’achat n’est préparé qu’en brouillon et reste validé par un humain après l’accord final du client.

Saisonnalité

Un référentiel marocain sourcé, pas un calendrier standard inventé

Les publications disponibles décrivent des cultures, des zones, des variétés et des modes de production différents. DailyFresh ne peut donc pas attribuer une saison nationale unique à chaque fruit ou légume. Le socle Odoo qui sépare denrées, zones agronomiques, régions administratives et types de fenêtre est maintenant déployé. Le premier lot réconcilie les 178 SKU fruits, légumes, herbes et salades et conserve seulement six fenêtres pilotes dont le passage officiel a été localisé. Elles couvrent directement 14 SKU, soit 7,9 % du périmètre ; 11 correspondances produit restent en revue. Elles sont proposées, non importées et non utilisables pour promettre un produit au client.

Structure en production, données encore en revue

Les douze régions marocaines et les garde-fous de validation sont disponibles dans Odoo. Aucune denrée, zone métier ou saison du pilote n’a été importée automatiquement.

Absence de donnée = information inconnue

Un mois sans fenêtre ne signifie ni « hors saison » ni « indisponible ». Une indisponibilité exige une information actuelle de l’API, du partenaire ou du collecteur.

Faits de saisonnalité conservés séparément dans le référentiel DailyFresh
FaitCe qu’il permet de direCe qu’il ne prouve pas
RécoltePériode agronomique d’une zone et d’un mode de cultureStock, prix ou délai du jour
Disponibilité commercialePériode documentée de présence sur un circuit précisDisponibilité chez un partenaire donné
StockageProlongation documentée après récolteOrigine ou fraîcheur d’un lot
Importation ou exportationFenêtre d’un flux commercial identifiéSaison locale ni disponibilité B2C
Pilote en revue

Source, page et empreinte

Chaque fenêtre doit citer l’organisme, l’année, la page ou le tableau, la zone, la méthode de preuve et l’empreinte du document.

Aucun import

Suggestion puis validation

Une recherche web ou IA crée seulement une proposition. Une règle approuvée devient immuable et toute correction passe par une nouvelle version.

Les guides techniques de l’Office national du conseil agricole constituent la source principale du pilote. Le jeu gouvernemental de production végétale 2010–2022 confirme des productions annuelles, mais ne fournit aucun mois et ne peut donc pas créer une fenêtre saisonnière.