Cobra · Catalogue produits Odoo
Catalogue Davis → Odoo : extraction tarif + brief de création (Krypton & Ariane)
Contexte / le besoin
On veut faire entrer une nouvelle marque d'enceintes, Davis Acoustics, dans Odoo 18 — uniquement les gammes Krypton et Ariane, à partir du tarif fournisseur Tarif_Cobra_Mai_2026.xlsx. Marque = Davis, fournisseur = Davis. En toile de fond : roder un process de création produit en masse réutilisable.
Contrainte structurante : depuis claude.ai, pas d'accès direct à l'instance Odoo (le XML-RPC et les credentials vivent côté Claude Code). D'où une répartition nette — claude.ai prépare la logique et les données, Claude Code exécute après avoir lu l'existant.
Ce qui a été fait
- Lu le tarif (onglet Dmax Ariane Krypton Courbet), isolé Krypton + Ariane, écarté le reste (Courbet, D-Max, dream/heritage).
- Extrait une structure propre : 11 modèles → 36 variantes couleur (Krypton 15, Ariane 21), 36 EAN tous uniques, aucun doublon. Livrable :
davis_extraction.xlsx, une ligne par variante. - Cartographié la cible Odoo : 1
product.templatepar modèle, 1product.productpar couleur via un attribut « Couleur »,barcode= EAN-13 porté par la variante, code fournisseur surproduct.supplierinfo. - Rédigé le brief Claude Code
CLAUDE-mission-davis-creation.md: inspection read-only d'une marque existante → rapport de mapping → STOP validation → création. - Tranché le mapping couleur FR.
Décisions et alternatives écartées
- Référence de style = Dynaudio Emit. Marque d'enceintes déjà en base, même typologie (colonne / compacte / centrale) et finitions bois/noir/blanc → analogue parfait pour calquer nom, SKU, attribut couleur, modèle paire/pièce, lignes fournisseur. (Écarté : se baser sur un Davis existant — Davis n'existe pas encore en base.)
- Couleurs en français : garder la partie FR, jeter l'anglais ; bi-tons gardés en FR. Krypton → blanc / noyer / noir (écarté : les noms de finition Davis Nordik/Classik/Technik). Ariane → chêne clair, noyer américain, noir, vert-chêne, bleu-noyer. Ariane 1 noyer / walnut / blanche arbitré en bi-ton noyer / blanc. Total : 8 valeurs d'attribut, noir partagé entre gammes, noyer (Krypton) ≠ noyer américain (Ariane).
- Garde-fous création :
DRAFTet hors Shopify d'abord ; idempotence sur lebarcode; toujours au niveau variante (product.product) ; EAN viastr(int(x)).zfill(13);env.cr.commit(). - Méthode : bloc « Règle d'or » en tête du brief — comprendre Odoo avant d'agir, poser toutes les questions, ne rien créer sans feu vert écrit, proposer des améliorations.
Galères et comment on a réglé
- Prix d'achat ambigus : intitulés divergents entre les deux onglets (Krypton « achat stock/drop au carton » vs Ariane « par palette / au carton ») + mention « au carton » alors qu'une colonne = 2 cartons. Non tranché au pif → reporté à l'inspection Dynaudio (structure
supplierinforéelle). - Paire vs pièce : colonnes/compactes vendues à la paire, centrales à la pièce, et PPI Ariane étiqueté ambigu. Même traitement : calé sur l'existant plutôt que deviné.
- Pas d'Odoo live depuis claude.ai : on a basculé toute l'inspection/lecture sur Claude Code et écrit noir sur blanc qu'il doit comprendre l'instance avant toute écriture.
- Donnée douteuse Ariane 1 : arbitrée (noyer / blanc) au lieu d'être comblée au hasard.
Résultat
Deux livrables prêts pour ~/Cobra : davis_extraction.xlsx (36 variantes, colonne Couleur_FR entièrement résolue) et CLAUDE-mission-davis-creation.md (brief avec Règle d'or et séquence verrouillée). Mapping couleur 100 % résolu. Rien créé en base — c'est voulu : l'écriture attend l'inspection Odoo et le feu vert.
Suite
- Descendre les 2 fichiers dans Claude Code, lancer l'inspection Odoo sur Dynaudio Emit (fallback Evoke / autre marque à la paire si Emit peu peuplé).
- Claude Code tranche les 3 points structurels restants (paire/pièce, prix d'achat stock vs drop, format SKU) depuis l'existant, propose ses améliorations, pose ses questions → STOP.
- Après feu vert écrit : création des 36 variantes en draft, revue, puis activation Shopify.
- Plus large : l'agent de création produit en masse — dashboard + CDC — qui généralise ce déroulé fait l'objet d'une entrée dédiée.