Un négociant exporte chaque mois son stock d’articles depuis l’ERP en CSV. Aucune intégration API n’est prévue, et elle serait excessive pour ce rythme. Le risque est ailleurs : une colonne décalée dans un fichier de dix mille lignes transforme des prix en références.
Le transfert de catalogue traite donc le fichier comme une synchronisation : d’abord un aperçu avec compteurs et remarques, puis une décision sur cet aperçu précis. Selon le contrat, le transfert est créé dans le modèle Commerce canonique ; le contrat ne précise pas si le contrôle diffère selon le format.
| Surface | Rôles |
|---|---|
| Commerce | Commerce de pièces, Commerce automobile, Éditeur de logiciels |
Ce que ce cas suppose
- Un fichier téléversé avec son jeton. Le transfert renvoie au fichier par
artifactToken; le jeton est seulement écrit, jamais renvoyé. - Le bon format.
serializationconnaîtcsv,xmletjson. - En option, une connexion.
connectionIdest facultatif et renvoie à une connexion ; le contrat ne décrit pas son effet sur le transfert. - Quelqu’un qui lit les remarques. La validation ne vaut que par le contrôle qui la précède.
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 |
|---|---|---|
| Créer le transfert | POST /commerce/v1/catalog-transfers | direction import ou export, serialization csv, xml ou json |
| Lire l’état | GET /commerce/v1/catalog-transfers/{transferId} | state et counts avec read, changed, rejected et conflicted |
| Lire les remarques | GET /commerce/v1/catalog-transfers/{transferId}/issues | severity, code, pointer et, s’il est présent, recordNumber par remarque |
| Décider | POST /commerce/v1/catalog-transfers/{transferId}/approval | decision approve ou reject face à la previewRevision contrôlée |
| Récupérer le fichier résultat | GET /commerce/v1/catalog-transfers/{transferId}/artifact | artifactToken, checksum et expiresAt |
Pourquoi chaque étape est nécessaire
- Créer le transfert.
POST /commerce/v1/catalog-transfersprenddirectionavecimportouexport,serializationetartifactToken. La réponse portetransferId,stateet les premierscounts— rien n’est encore repris. - Lire l’état.
GET /commerce/v1/catalog-transfers/{transferId}renvoiestateetcountsavecread,changed,rejectedetconflicted. Ces quatre chiffres sont le premier contrôle de vraisemblance : dix mille lus et dix mille modifiés est rarement juste pour un fichier mensuel. - Lire les remarques.
GET /commerce/v1/catalog-transfers/{transferId}/issuesliste par remarqueseverity,code,message,pointeret, s’il est présent,recordNumber. AvecrecordNumber, on retrouve la ligne dans son propre fichier au lieu d’interpréter un message d’erreur. - Décider.
POST /commerce/v1/catalog-transfers/{transferId}/approvalprenddecisionavecapproveoureject, ainsi quepreviewRevisionetexpectedRevision. On valide l’aperçu contrôlé — si l’état a changé entre-temps, la révision ne correspond plus. - Récupérer le fichier résultat.
GET /commerce/v1/catalog-transfers/{transferId}/artifactrenvoieartifactToken,checksumetexpiresAt.checksumest une chaîne de 64 caractères hexadécimaux ; le contrat ne précise ni l’algorithme ni sur quoi elle est calculée.expiresAtindique l’heure d’expiration.
curl -X POST \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: katalog-import-2026-09' \
-d '{"direction":"import","serialization":"csv","artifactToken":"<artifactToken>","connectionId":"<connectionId>"}' \
'https://commerce-preview.invalid/commerce/v1/catalog-transfers'Ce que l’on obtient
Il reste un catalogue repris seulement après validation de l’aperçu contrôlé, et un fichier résultat avec checksum. Le contrat n’impose pas que quelqu’un ait lu compteurs et remarques avant la validation ; il exige previewRevision et expectedRevision — c’est pourquoi quelqu’un qui lit les remarques figure parmi les prérequis. Une colonne décalée peut se remarquer avant la validation si les compteurs ou les remarques de l’aperçu la révèlent.
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
Quels formats de fichier sont acceptés ?
csv, xml et json — les valeurs de serialization.
Le fichier est-il repris immédiatement ?
Non. Compteurs et remarques sont produits d’abord ; la reprise n’a lieu qu’après validation de l’aperçu contrôlé.
Comment trouver la ligne fautive ?
Par recordNumber dans la remarque, s’il est présent. Il renvoie à l’enregistrement de votre fichier.
