🔒
Accès restreint
Préparation entretien — Martin Van Mollekot
← Retour Odoo Prep
Ce que l'entretien teste vraiment
⚠️ Info clé : La job description dit explicitement "Autonomous, Assertive & Proactive" dans les Must Have. L'assertivité ne se teste pas sur papier — elle se teste en te mettant sous pression et en observant si tu tiens ou si tu cèdes.
🤝 Le contexte client quotidien d'un Retail Expert

En tant que BA, tu vas passer des journées chez des clients qui :

  • Contestent tes recommandations ("notre ancien système faisait ça mieux")
  • Te poussent à promettre des choses qu'Odoo ne peut pas faire
  • Changent les specs à mi-projet sans assumer les conséquences
  • Testent si tu connais vraiment ton sujet ou si tu bluffes
  • Réagissent mal quand un déploiement se passe mal (terminal en panne, données manquantes)

Si tu craques en entretien face à un interviewer bienveillant qui joue le rôle difficile, que feront-ils devant un vrai DSI hostile ? L'entretien simule exactement ce contexte.

🧪 Ce qu'ils observent précisément
Stabilité émotionnelle

Est-ce que ta voix change ? Est-ce que tu accélères ou bégaies sous pression ? Est-ce que tu rougis, tu ris nerveusement ?

Conviction vs capitulation

Quand on dit "vous vous trompez", est-ce que tu défends ton raisonnement avec des arguments ou tu cèdes immédiatement ?

Méthode sous chaos

Si le cas change en cours de route, est-ce que tu perds ta structure ou tu t'adaptes de manière organisée ?

Honnêteté vs bluff

Quand tu ne sais pas, est-ce que tu inventes ou tu admets l'incertitude tout en montrant comment tu irais chercher la réponse ?

Gestion du client difficile

Si l'interviewer joue le client en colère, est-ce que tu te démontes, tu t'énerves, ou tu gardes la maîtrise ?

Priorisation sous contrainte

Si le budget ou le délai est coupé de moitié en cours d'exercice, est-ce que tu sais quoi couper et dans quel ordre ?

✅ La bonne nouvelle : Ces techniques sont prévisibles et finies. Il n'y en a pas des dizaines de versions. Une fois que tu les reconnais, tu peux y répondre de manière calme et préparée — ce qui est justement ce qu'ils cherchent.
Les 8 techniques de mise sous pression — apprends à les reconnaître
⚡ Règle d'or : Reconnaître la technique = la moitié du travail. Quand tu la identifies mentalement ("ah, c'est la contradiction frontale"), tu passes de "attaqué" à "observateur" — et ta réponse devient automatiquement plus calme.
1
La Contradiction Frontale
"Non, c'est faux." — L'assertion brute sans argument
🎯 Ce qu'ils font
Après une réponse que tu as bien construite, l'interviewer dit simplement : "Non, vous vous trompez" ou "Ce n'est pas comme ça que ça marche" — souvent sans donner de raison. Parfois accompagné d'un soupir ou d'une expression dubitative.
⚠️ Signal à reconnaître
Si ta réponse était solide et argumentée, la probabilité qu'il ait raison est faible. C'est presque toujours un test. Cherche s'il donne un argument : s'il n'en donne pas, c'est la technique.
❌ Réponse à ne pas avoir
"Ah oui, vous avez raison, je me suis mal exprimé..." / "En fait si on regarde autrement..." → Tu viens de signaler que tu capitules sans combattre. C'est exactement le profil qu'ils veulent éliminer.
✅ Bonne réponse
Marquer une micro-pause. Maintenir le contact visuel. Demander quelle partie est incorrecte. Défendre ton raisonnement point par point. Si tu découvres que tu as effectivement tort, corriger — mais après avoir vérifié.
💬 Script exact
"Je serais heureux de réviser ma position si vous m'indiquez quelle partie vous semble incorrecte. Mon raisonnement était le suivant : [rappel en 2 phrases]. Y a-t-il un point précis qui vous semble inexact ?"

Ou plus directement : "Je maintiens ma proposition pour l'instant — je peux la défendre. Qu'est-ce qui vous pose problème ?"
2
Le Silence Pesant
Tu finis ta réponse. L'interviewer te regarde sans rien dire. 10 secondes. 15 secondes.
🎯 Ce qu'ils font
Après ta réponse, silence total. Regard fixe. Pas de "intéressant", pas de "ok". Juste le silence. C'est inconfortable par design.
⚠️ Signal à reconnaître
La majorité des gens ne supportent pas ce silence et commencent à parler pour le remplir — souvent en se contredisant ou en minimisant ce qu'ils viennent de dire. C'est précisément ce qu'ils attendent de voir.
❌ Réponse à ne pas avoir
"Enfin... je veux dire... c'est une façon de voir les choses... ou peut-être que..." → Tu te sabotes toi-même. Chaque phrase ajoutée sous pression du silence affaiblit la réponse précédente.
✅ Bonne réponse
Assumer le silence. Sourire légèrement. Attendre. Si après 20 secondes il ne dit rien, poser UNE question de clarification et t'arrêter là.
💬 Script exact
[Silence assumé. Regard calme. Après 20s si nécessaire :]
"Est-ce que vous souhaitez que j'approfondisse un point particulier ?"

Et puis silence à nouveau. Ne dis rien de plus jusqu'à ce qu'il parle.
3
L'Information Fausse Injectée
Une donnée erronée glissée dans le cas pour voir si tu la vales
🎯 Ce qu'ils font
En cours de case study, ils glissent une information fausse ou incohérente : un chiffre impossible, une affirmation inexacte sur Odoo, une contradiction avec ce qui a été dit avant. Exemple : "L'IoT Box d'Odoo ne supporte que 1 périphérique à la fois" (faux) ou "Odoo POS ne peut pas fonctionner hors ligne" (faux).
⚠️ Signal à reconnaître
Quelque chose cloche dans ce qu'on vient de te dire. Ça contredit ta préparation ou ton bon sens. Ce n'est pas forcément une erreur de leur part — c'est probablement volontaire.
❌ Réponse à ne pas avoir
Accepter l'information sans la questionner et construire ton analyse dessus → tu montreras à la fin une réponse fondée sur une prémisse fausse. Ou : sur-réagir avec "non c'est faux, j'ai lu la documentation" → arrogant.
✅ Bonne réponse
Signaler poliment l'inconsistance, proposer une vérification. Ne pas traiter l'interviewer d'incompétent. Faire la distinction entre "je ne suis pas sûr" et "j'ai la certitude que c'est différent".
💬 Script exact
"Je veux m'assurer de bien comprendre — ce point me semble différent de ce que j'ai pu lire dans la documentation Odoo. Sur l'IoT Box par exemple, ma compréhension c'est qu'une seule box peut gérer plusieurs périphériques depuis la v13. Est-ce que c'est une contrainte spécifique à votre cas ou est-ce que je dois revoir ma compréhension ?"
4
Le Pivot Brutal
"Oubliez ce qu'on a dit. Maintenant le client veut..."
🎯 Ce qu'ils font
À mi-parcours du case, ils changent une contrainte fondamentale : le budget est divisé par deux, le délai passe de 6 à 3 mois, ou le client "a finalement décidé" d'inclure un nouveau scope complet. En retail : "En fait le client vient de racheter 4 magasins supplémentaires — c'est maintenant 10 magasins, pas 6."
⚠️ Signal à reconnaître
Tu n'es pas en train de faire une erreur — ils te testent sur ta capacité à absorber le changement sans perdre ta structure. C'est un reflet parfait du quotidien projet.
❌ Réponse à ne pas avoir
Paniquer et recommencer de zéro. Ou : continuer comme si rien n'avait changé. Ou : se plaindre que "ça change tout" sans proposer de solution.
✅ Bonne réponse
Prendre 5 secondes. Identifier explicitement ce qui change. Réutiliser au maximum ce qui a déjà été construit. Proposer un ajustement clair et phasé.
💬 Script exact
"OK — 10 magasins au lieu de 6, ça change deux choses principalement : le budget hardware IoT (4 installations supplémentaires) et le délai de déploiement. Mon conseil : on garde le même plan de phase 1 pour les 6 boutiques initiales, on intègre les 4 nouvelles en phase 2 avec le même template de configuration. Ça nous évite de tout repenser et on gagne 6 semaines. Le périmètre fonctionnel reste identique — c'est uniquement un déploiement parallèle. Des questions ?"
5
Le Client en Colère (Role-play)
L'interviewer change de personnage et devient un client furieux
🎯 Ce qu'ils font
Parfois annoncé ("je vais jouer le rôle du client"), parfois sans prévenir. Exemples retail : "Ça fait 3 semaines que vos caisses plantent tous les matins, j'ai perdu des ventes, mes caissières sont à bout — c'est inadmissible !" ou "Vous m'aviez promis que le programme de fidélité serait opérationnel pour les soldes — il ne fonctionne pas !"
⚠️ Signal à reconnaître
Le ton change. L'interviewer devient émotionnel, peut-être légèrement agressif. Tu sens que la dynamique a changé. C'est le signal : switch en mode gestion de crise client.
❌ Réponse à ne pas avoir
Matcher le niveau émotionnel (te défendre, hausser la voix). Sur-apologétiser sans proposer d'action. Promettre ce que tu ne peux pas garantir. Blâmer une autre équipe ou un prestataire externe.
✅ Bonne réponse
De-escalader avec empathie, sans ramollir. Écouter d'abord (30 secondes sans interrompre). Valider la frustration. Proposer une action concrète dans les 24h. Ne pas promettre de résultat final mais une prochaine étape claire.
💬 Script exact
"Je comprends, et la frustration est complètement légitime — des problèmes de caisse pendant 3 semaines, c'est inacceptable pour votre activité. Voici ce que je vais faire : je passe demain matin sur site, on identifie ensemble la cause racine — est-ce le réseau, la configuration IoT Box ou le terminal — et on a un premier diagnostic avant 10h. Est-ce que vous pouvez avoir votre responsable informatique disponible à 9h ?"

Nota bene : remarque comment la réponse (1) valide l'émotion, (2) annonce une action concrète avec un horaire, (3) implique le client dans la solution. Pas de "je suis désolé" répété en boucle.
6
Le Gap Fonctionnel Piège
"Odoo ne sait pas faire X — qu'est-ce que vous faites ?"
🎯 Ce qu'ils font
Ils identifient un besoin client qui sort du standard Odoo (ou qui est dans une zone grise) et observent si tu survendes ("Odoo peut tout faire") ou si tu es honnête et constructif. Exemples retail : gestion des remises centralisées pilotées par une autre application, intégration avec un ERP SAP existant, gestion de casiers de retrait (consignes), RFID avancé.
⚠️ Signal à reconnaître
Ils te poussent vers une réponse "oui Odoo peut faire ça". Résiste à cette tentation si tu n'es pas sûr. La bonne réponse honnête marque toujours plus de points que le bluff.
❌ Réponse à ne pas avoir
"Je crois qu'avec une configuration avancée, on peut y arriver" sans être sûr → bluff détectable. Ou : "Odoo ne peut pas faire ça" sans proposer d'alternative → abandon sans combat.
✅ Bonne réponse
Framework en 3 options : (1) workaround standard Odoo, (2) module communautaire OCA, (3) développement custom. Être honnête sur les délais et coûts de chaque option. Recommander l'une d'elles avec un raisonnement.
💬 Script exact
"En standard Odoo, [fonctionnalité X] n'est pas couverte nativement. On a trois chemins : d'abord, chercher si un contournement fonctionnel dans les modules existants couvre 80% du besoin — c'est souvent suffisant. Ensuite, regarder du côté de l'Odoo Community Association — les modules OCA sont bien maintenus et couvrent beaucoup de besoins avancés sans coût de développement. Enfin, si c'est vraiment critique, un développement custom spécifique — mais c'est le dernier recours, avec un coût et une dette technique à assumer. Mon réflexe : on commence par vérifier le standard en profondeur avant de conclure qu'il y a un gap."
7
La Surcharge Soudaine
3 nouvelles exigences. Deadline inchangée. Budget serré.
🎯 Ce qu'ils font
À mi-case, ils ajoutent plusieurs exigences simultanément : "En fait le client veut aussi l'intégration avec leur système de caisse existant, un reporting BI personnalisé, et la gestion des abonnements — pour la même deadline." L'objectif est de tester ta capacité à prioriser et à cadrer le client, pas à dire oui à tout.
⚠️ Signal à reconnaître
L'addition de nouvelles demandes n'est pas réaliste avec les contraintes annoncées. C'est un signal que tu dois sortir du mode "oui" et entrer dans le mode "counsel" — conseiller, pas exécutant.
❌ Réponse à ne pas avoir
"Oui on peut tout faire" sans soulever le problème de timing et de budget → incompétence en gestion de projet. Ou : paniquer et tout recommencer à zéro.
✅ Bonne réponse
Être le conseiller honnête que le client a besoin. Pointer l'incompatibilité scope/délai/budget. Proposer un phasage. Ne pas promettre l'impossible mais proposer ce qui est réaliste.
💬 Script exact
"Je dois être honnête avec vous : livrer les 3 nouveaux éléments dans le même délai avec le même budget, c'est prendre un risque sur la qualité de tout. Mon rôle n'est pas de vous dire oui pour vous faire plaisir aujourd'hui, c'est de vous livrer un projet réussi. Voilà ce que je propose : on garde le core POS + fidélité en phase 1 comme prévu — c'est le quick win. L'intégration avec votre système externe et le BI passent en phase 2. Les abonnements, c'est à évaluer selon leur priorité business. Si l'intégration est critique pour le go-live, on le met en phase 1 et on pousse le BI. Qu'est-ce qui est non-négociable pour vous ?"
8
Le "Vous Ne Savez Pas" — Domaine inconnu
Une question très précise dans une zone où tu as une lacune
🎯 Ce qu'ils font
Ils posent une question ultra-spécifique sur un point technique ou fonctionnel avancé — souvent en dehors du périmètre normal d'un candidat. Exemples : configuration précise d'une position fiscale dans Odoo pour la TVA en multi-pays, ou un bug connu dans la version 17.0 du module POS. Le but : voir si tu bluffes ou si tu gères l'incertitude avec élégance.
⚠️ Signal à reconnaître
Tu ne sais pas. C'est OK. Ils ne s'attendent pas à ce que tu saches tout. Ils s'attendent à voir comment tu gères de ne pas savoir — et si tu bluffes, ils le sauront.
❌ Réponse à ne pas avoir
Inventer une réponse ou être vague dans l'espoir de passer. → Ils savent la réponse. Tu perds ta crédibilité sur tout le reste.
✅ Bonne réponse
Admettre clairement que tu ne sais pas. Montrer comment tu irais chercher la réponse. Puis rebondir sur ce que tu sais qui est adjacent.
💬 Script exact
"Honnêtement, ce point précis je ne le connais pas par cœur. Ma démarche serait de vérifier dans la documentation officielle Odoo 17 et sur le forum de la communauté — qui est très actif sur ce genre de problème de configuration. Ce que je sais en revanche sur le contexte général [point adjacent que tu maîtrises]..."

L'honnêteté + la méthode = bien plus de points que le bluff.
Les règles mentales pour garder le calme
💡 Principe : Le calme n'est pas l'absence d'émotion. C'est la capacité à agir de manière efficace malgré elle. Ces règles te donnent des ancres mentales pour y revenir en temps réel.
🐢
Règle 1 — "Ralentis, tu as le temps"
La pression fait accélérer — la voix, la pensée, le débit. C'est contre-productif. Prends une inspiration visible. Parle 20% plus lentement que tu ne le ferais naturellement. Un candidat calme et lent inspire plus confiance qu'un candidat rapide et nerveux. Si tu te retrouves à parler vite, pose-toi mentalement ce mot : Ralentis.
🏷️
Règle 2 — "Nomme ce qui se passe"
Si une question est difficile ou un silence est long, tu peux le nommer à voix haute : "C'est une bonne question — laissez-moi y réfléchir 10 secondes." ou "Ce cas est plus complexe que le précédent — je veux être sûr de bien structurer ma réponse." Nommer l'inconfort le neutralise partiellement. Ça montre aussi de la méta-conscience, ce que les bons BAs ont.
🧱
Règle 3 — "Reviens à ta méthode"
Quand le cas part dans tous les sens, reviens à ton framework de base : Contexte → Processus → Pain points → Modules → Gaps → Phasage. Si tu es perdu, dis : "Je veux m'assurer de rester structuré — reprenons du contexte." La méthode est ton ancre. Tant que tu l'as, tu n'es pas perdu.
⚖️
Règle 4 — "Assertivité ≠ Arrogance"
Défendre ta position avec des arguments, c'est exactement ce qu'ils cherchent. Ce n'est pas être arrogant. La distinction : l'assertivité est basée sur des faits et reste ouverte ("Mon raisonnement est X parce que Y — si vous voyez les choses différemment, dites-moi pourquoi"). L'arrogance ferme la discussion. Tu peux être ferme ET ouvert en même temps.
🎭
Règle 5 — "C'est un jeu de rôles — pas une attaque personnelle"
Quand l'interviewer joue le client difficile ou te contredit, ce n'est pas lui qui te juge — c'est lui qui joue un rôle. Rappelle-toi mentalement : "Il teste ma réaction, pas ma personne." Cette dissociation réduit la charge émotionnelle de moitié. Traite l'intervieweur comme un partenaire qui t'aide à démontrer ce que tu sais faire.
🚫
Règle 6 — "Ne remplis pas les silences vides"
Chaque phrase ajoutée sous la pression du silence risque d'affaiblir la réponse précédente. Une bonne réponse suivie de silence est une bonne réponse. Une bonne réponse suivie de 3 phrases hésitantes devient une réponse douteuse. Dis ce que tu as à dire. Arrête-toi. Supporte le silence.
🔍
Règle 7 — "Quand tu ne sais pas, montre comment tu saurais"
La valeur d'un BA n'est pas de tout savoir — c'est de savoir comment trouver ce qu'il ne sait pas, et de le dire clairement. "Je ne connais pas la réponse par cœur, mais voici comment je l'obtiendrais : documentation Odoo → forum OCA → escalade vers un expert technique." C'est une réponse de BA mature.
Exercices pratiques — entraîne-toi avant le jour J
⚡ Principe : Lire les techniques ne suffit pas. Le cerveau doit les avoir vécues au moins une fois pour y répondre automatiquement sous stress. Ces exercices simulent les situations réelles.
🪞 Exercice 1 — Le miroir + chrono (15 min)

Place-toi devant un miroir. Prépare une réponse à la question "Pourquoi pas un candidat avec 5 ans de retail direct ?". Donne ta réponse à voix haute. Observe : est-ce que ton regard fuit ? Est-ce que tu te penches en arrière ? Est-ce que ta voix monte ?

Recommence jusqu'à ce que le langage corporel soit stable. Ça prend 3 à 5 répétitions.

"Ma légitimité ne vient pas d'un historique de caissier — elle vient de ma capacité à comprendre les deux mondes : la mécanique business commerciale d'un côté, et la complexité technique d'un déploiement hardware de l'autre. C'est précisément la combinaison que la recruteuse a identifiée comme rare pour ce rôle."
🤝 Exercice 2 — La contradiction avec un proche (20 min)

Demande à un ami ou à un proche de jouer l'interviewer. Donne-lui une seule consigne : après chaque réponse que tu donnes, il dit simplement "Non, c'est faux" ou "Je ne suis pas d'accord" — même si ta réponse était correcte. Pas d'argument de sa part. Juste la contradiction.

Ton objectif : ne jamais capituler sans avoir demandé sur quoi porte le désaccord. Répète 5 fois avec des questions différentes.

⏱️ Exercice 3 — Le silence — 15 secondes (10 min)

Donne une réponse à voix haute à une question quelconque. Dès que tu as fini, démarre un chrono. Regarde devant toi en silence. 15 secondes. Ne dis rien.

Répète 5 fois. L'objectif est d'apprendre à être à l'aise dans le silence qui suit tes réponses — sans ressentir l'urgence de le remplir. C'est inconfortable les premières fois. Ça passe.

🔥 Exercice 4 — Le role-play client en colère (15 min)

Demande à quelqu'un de jouer un client retail furieux. Script suggéré pour lui :

"Ça fait 3 semaines que vos caisses plantent tous les matins pendant la mise en route. J'ai perdu des ventes, mes équipes sont épuisées, et vous n'êtes jamais disponible quand j'appelle. Je commence à regretter sérieusement d'avoir choisi Odoo."

Ta mission : de-escalader en moins de 60 secondes, sans sur-apologétiser, sans promettre l'impossible, et en proposant une action concrète dans les 24h.

🗂️ Exercice 5 — Le pivot à mi-case (solo, 20 min)

Prends le Cas Retail 1 (chaîne de prêt-à-porter, 6 boutiques). Commence à le résoudre à l'oral pendant 5 minutes. Puis arrête-toi et dis à voix haute :

"En fait le client vient de m'informer que son budget hardware est réduit de 40% et qu'ils veulent go-live dans 6 semaines au lieu de 3 mois."

Continue ta résolution en tenant compte de ce changement, sans recommencer de zéro. Objectif : réutiliser au maximum ce que tu avais déjà construit et proposer un phasage réaliste.

🎥 Exercice 6 — L'enregistrement vidéo (30 min)

Configure ta webcam. Fais le Cas Retail 3 (franchise sport, 12 magasins) en 20 minutes, comme si tu étais en entretien. Enregistre-toi.

Regarde la vidéo et observe : le rythme de parole (trop vite ?), les silences hésitants ("euh...", "donc..."), la posture (te penches-tu en arrière sous pression ?), et si tu maintiens le fil de ta structure sous les contraintes auto-imposées.

C'est l'exercice le plus efficace et le plus inconfortable. Fais-le au moins une fois.

🗄️ Data Modelling — l'exercice surprise du final interview
⚠️ Confirmé par des candidats : Le final interview Odoo BA inclut parfois un exercice de data modelling — typiquement "modéliser les objets et relations d'un cas business dans Odoo". Ce n'est pas du SQL avancé, mais une compréhension structurelle des entités Odoo.
📐 Ce qu'ils attendent

Ils te donnent un scénario business et te demandent d'identifier les entités (objets) clés, leurs relations, et comment elles se mappent aux objets Odoo. Pas besoin de code — mais tu dois pouvoir dessiner ou décrire :

  • Quels sont les objets principaux du cas (Client, Produit, Commande, Session POS...)
  • Quelles sont leurs relations (1-N, N-N)
  • Comment ils se mappent aux modèles Odoo (res.partner, product.product, pos.order...)
  • Quels champs importants sont portés par chaque objet
🛒 Objets Odoo Retail à connaître
res.partner
Client / Fournisseur / Contact. Champs clés : name, email, phone, customer_rank, pricelist_id, loyalty_card_ids.
product.template / product.product
Produit (template = gabarit, product = variante). Champs : name, list_price, standard_price, categ_id, available_in_pos, taxes_id.
pos.session
Session de caisse. Liée à pos.config (config du POS). Champs : state (opening/opened/closing/closed), opening_notes, cash_register_balance_start/end.
pos.order / pos.order.line
Commande POS. Liée à la session, au partenaire (optionnel), aux lignes produits. Champs : amount_total, state, payment_ids, partner_id.
loyalty.program / loyalty.card
Programme de fidélité et carte client. Liés via res.partner. La carte porte le solde de points / e-wallet courant du client.
product.pricelist
Liste de prix. Liée au partenaire ou sélectionnable sur commande. Contient des règles (pricelist.item) avec conditions (quantité, catégorie, dates).
stock.quant / stock.move
Stock en temps réel (quant) et mouvements de stock (move). Chaque vente POS génère un stock.move négatif. Liés à stock.location (entrepôt/magasin).
account.move / account.move.line
Écriture comptable générée à la clôture de session. Chaque vente POS → compte de produit, TVA, mode de paiement. Clôture session = journal entry validée.
📊 Exercice type — Modélise ce cas

Scénario : Une boutique de sport veut gérer en Odoo : des clients avec un programme de fidélité, des ventes en magasin via POS, et des commandes en ligne récupérées en Click & Collect. Les clients accumulent des points sur toutes leurs commandes (POS + web).

Entités à identifier et relier :

res.partner (client)   → loyalty.card (1 carte par client par programme)   → pos.order[] (commandes POS historiques)   → sale.order[] (commandes web / click & collect)
pos.order   → pos.session (session de caisse du jour)   → pos.order.line[] (lignes produits)     → product.product (variante exacte vendue)   → pos.payment[] (espèces, carte, e-wallet)
sale.order (click & collect)   → delivery_type = "pickup" (retrait en magasin)   → stock.picking (bon de préparation)     → stock.move.line (articles à préparer)
loyalty.program   → loyalty.rule[] (conditions de gain de points)   → loyalty.reward[] (récompenses disponibles)   → s'applique sur : pos.order + sale.order (cross-canal)
✅ Ce qu'ils veulent voir : Que tu comprends que res.partner est le pivot central, que la fidélité est cross-canal (POS + web), et que la vente génère des mouvements de stock ET des écritures comptables. Pas besoin de nommer les champs exactement — la structure suffit.