Un négociant vend via une marketplace et tient un ERP en parallèle. Les deux systèmes se croient de référence. Qui l’a vécu connaît le résultat : des stocks qui oscillent, des prix redevenus anciens une nuit plus tard, et une pièce unique vendue deux fois.
Le contrat Commerce place donc volontairement une étape avant le transfert : avant toute écriture, un plan de synchronisation consigne qui écrit ; au plus une affectation d’écriture active est admise par compte de vente, zone de marché, offre facultative et flux métier. Ensuite vient un aperçu, et seule une validation explicite en fait une modification.
| Surface | Rôles |
|---|---|
| Commerce | Commerce de pièces, Plateforme et marketplace, Éditeur de logiciels |
Ce que ce cas suppose
- Un compte de vente autorisé. La connexion est créée avec une preuve d’autorisation ; les accès du canal ne sont ni divulgués ni transmis.
- Une décision sur le système de référence. Cette question est commerciale, non technique. Le contrat impose seulement qu’on y réponde.
- La volonté de lire l’essai à blanc. Un aperçu que personne ne regarde renonce à la seule occasion d’échouer sans conséquence.
- Une clé d’idempotence par appel écrivain. Un appel répété ne doit pas produire un second effet.
Le déroulement
Le tableau indique pour chaque étape l’appel compétent et ce qui existe ensuite. La justification de l’étape figure en dessous.
| Étape | Appel | Ce qui existe ensuite |
|---|---|---|
| Lire les capacités | GET /commerce/v1/capabilities | Par canal : supportLevel, flows et prise en charge des réservations |
| Créer la connexion | POST /commerce/v1/connections | authorizationProof et ownershipMode ; les accès ne sont jamais divulgués |
| Attribuer l’autorité | POST /commerce/v1/sync-plans | writerAssignments : au plus une affectation d’écriture active par compte de vente, zone de marché, offre facultative et flow ; conflictPolicy règle les conflits |
| Faire un essai à blanc | POST /commerce/v1/sync-runs | mode en aperçu ; counts donne read, changed, rejected et conflicted |
| Approuver | POST /commerce/v1/sync-runs/{syncRunId}/approval | decision, previewRevision et expectedRevision — on approuve l’aperçu contrôlé, rien d’autre |
Pourquoi chaque étape est nécessaire
- Lire les capacités.
GET /commerce/v1/capabilitiesindique par canalsupportLevel,flowset la prise en charge des réservations. Cette étape établit avant tout travail ce que le canal sait faire — sinon un raccordement sur une fonction non prise en charge échoue tard et cher. - Créer la connexion.
POST /commerce/v1/connectionsprendchannelId,channelAccountReference,marketAreaReference,authorizationProofetownershipMode. Les détails liés au canal restent derrière une frontière de traduction privée ; les identifiants publics sont opaques. - Fixer la responsabilité.
POST /commerce/v1/sync-plansest l’étape décisive :writerAssignmentsadmet au plus une affectation d’écriture active par compte de vente, zone de marché, offre facultative etflow,conflictPolicyrègle le litige, etdryRunRequiredpeut rendre l’essai à blanc obligatoire. - Faire un essai à blanc.
POST /commerce/v1/sync-runsen mode aperçu renvoiecountsavecread,changed,rejectedetconflicted. Quatre chiffres qui disent, avant la première écriture réelle, ce qui se passerait. - Valider.
POST /commerce/v1/sync-runs/{syncRunId}/approvalprenddecision,previewRevisionetexpectedRevision; les trois champs sont obligatoires. On valide donc exactement l’aperçu contrôlé — non un état entre-temps modifié.
curl -X POST \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: lauf-2026-09-12-01' \
-d '{"syncPlanId":"<syncPlanId>","mode":"preview"}' \
'https://commerce-preview.invalid/commerce/v1/sync-runs'Ce que l’on obtient
Il reste une connexion où le plan consigne qui écrit, et un premier transfert lu en aperçu avant validation. Le contrat ne garantit pas que le stock cesse d’osciller pour autant : il ne peut empêcher un travail manuel à côté dans le canal.
Où cela figure dans la documentation
Les listes de champs contractuelles, les codes d’erreur et les réponses d’exemple se trouvent dans le contrat OpenAPI de cette surface, à l’adresse docs.tapinomahub.com (tapinoma-commerce). Tous les cas d’usage classés par surface et par rôle : aperçu des cas d’usage.
Sources et références juridiques
Questions fréquentes
Puis-je laisser deux systèmes écrire s’ils se coordonnent ?
Le plan n’admet qu’une affectation d’écriture active par compte de vente, zone de marché, offre facultative et flux. Ce qui doit se coordonner peut se répartir sur des flux distincts — stock ici, prix là, par exemple.
Dois-je toujours faire un essai à blanc ?
Le plan comporte un champ pour cela. Le définir rend l’essai obligatoire ; c’est conseillé pour un premier raccordement et après une modification du plan.
Mes accès marketplace sont-ils transmis ?
Non. La connexion est créée avec une preuve d’autorisation, et les détails liés au canal restent derrière une frontière privée.
