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
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.
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.
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.
549 produits publiés
Chaque produit reprend la photo, le nom et les informations de vente publiés dans 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 ».
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.
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.
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.
| Étape | Usage | Vente et publication |
|---|---|---|
| Référentiel recette | Ingrédient connu, sans offre commerciale | Ni vendu, ni acheté, ni publié |
| À sourcer | Besoin identifié, fournisseur ou conditionnement à trouver | Non vendu et non publié ; achat autorisable mais jamais déclenché automatiquement |
| Pilote | Produit testé dans un parcours fermé | Vendable mais non publié au grand public |
| Actif | Produit autorisé à entrer dans l’offre | Publication possible après conformité catalogue |
| Suspendu | Produit temporairement retiré | Ni vendu, ni acheté, ni publié |
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.
| Politique | Fonctionnement | Disponibilité client |
|---|---|---|
| Stock magasin | Quantité réellement détenue et réservable | Selon stock libre et réservations |
| MTO avec collecte | Achat après commande puis réception au magasin | Après confirmation du partenaire |
| Hybride | Stock d’abord, fournisseur en secours | Selon règle et confirmation |
| Précommande | Demande future sans engagement ferme | Prix et quantité à confirmer |
| Livraison directe | Le partenaire remet réellement au client | Vé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
| Groupe | Champs | Pourquoi |
|---|---|---|
| Fournisseur | Partenaire, référence externe, point de retrait | Identifier l’origine et organiser la collecte |
| Commercial | Prix d’achat, unité, calibre/qualité, quantité | Calculer une proposition comparable |
| Disponibilité | Statut, heure limite, délai de préparation | Éviter une promesse impossible |
| Preuve | API, message, photo, contrôle ; date et auteur | Auditer l’information et résoudre les conflits |
| Fraîcheur | Confirmée à, expire à, prochaine vérification | Faire expirer automatiquement une donnée ancienne |
| Manipulation | Qui pèse, coupe, nettoie, emballe et étiquette | Attribuer la responsabilité par partenaire |
Langage commun
Cinq états communs aux deux orchestrateurs
Preuve valide
Quantité ou statut confirmé dans sa fenêtre de fraîcheur.
Capacité faible
Offre confirmée mais quantité réduite ou proche de l’heure limite.
Refus explicite
Partenaire ou système a confirmé l’absence pour la période.
Aucune preuve actuelle
Ne doit pas être transformé en « disponible » par un agent.
Doute ou conflit
Sources contradictoires, donnée expirée ou réponse ambiguë.
Sources
Arbitrage provisoire sûr
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.
| Source | Force | Limite | Traitement MVP |
|---|---|---|---|
| API fournisseur | Structurée et fréquente | Peut ne pas refléter le rayon réel | Utiliser avec horodatage et durée de validité |
| WhatsApp confirmé | Engagement humain direct | Réponse libre et parfois incomplète | Faire reformuler et confirmer le résumé |
| Photo du matin | Rapide pour un commerce peu équipé | Extraction IA incertaine | Soumettre les données extraites au partenaire |
| Contrôle collecteur | Observation la plus proche de la collecte | Arrive après la promesse initiale | Déclencher exception et correction, pas réécrire l’historique |
Rituel partenaire
Collecte matinale semi-automatique
Solliciter
L’orchestrateur opérationnel demande disponibilités, prix et heures limites selon un modèle court.
Extraire
Une liste ou photo est transformée en lignes structurées avec un niveau de confiance.
Faire confirmer
Le partenaire reçoit un résumé lisible et corrige les erreurs éventuelles.
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.
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.
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.
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.
| Fait | Ce qu’il permet de dire | Ce qu’il ne prouve pas |
|---|---|---|
| Récolte | Période agronomique d’une zone et d’un mode de culture | Stock, prix ou délai du jour |
| Disponibilité commerciale | Période documentée de présence sur un circuit précis | Disponibilité chez un partenaire donné |
| Stockage | Prolongation documentée après récolte | Origine ou fraîcheur d’un lot |
| Importation ou exportation | Fenêtre d’un flux commercial identifié | Saison locale ni disponibilité B2C |
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.
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.