Réserver une pièce unique commandée jusqu’à exécution ou abandonTous les articles

Réserver une pièce unique commandée jusqu’à exécution ou abandon

Entre commande et expédition s’ouvre la fenêtre des doubles ventes. Ce cas montre comment une réservation lie une pièce en stock à une ligne de commande et comment ce lien prend fin.

Publié: 2026-09-12Temps de lecture: 4 minAPI tapinomahub & processus
API & processusLogistique & stockAftermarket automobileAPICommerce de pièces

Un phare est publié sur deux canaux et commandé sur l’un. Des heures passent avant l’emballage. S’il est commandé entre-temps sur le second canal, un acheteur doit essuyer un refus — et cela coûte plus que cette vente.

Réserver une pièce unique commandée jusqu’à exécution ou abandon de la commandeEntrée : une pièce unique est commandée, l’expédition reste à faire 1. Réserver (POST /commerce/v1/inventory/reservations): stockItemId, salesOrderId et orderLineId, expiresAt en option 2. Vérifier l’état (GET /commerce/v1/inventory/reservations/{reservationId}): reservedQuantity, releasedQuantity et consumedQuantity 3. Consommer (POST /commerce/v1/inventory/reservations/{reservationId}/consume): reasonCode fulfilled quand la marchandise part 4. Libérer (POST /commerce/v1/inventory/reservations/{reservationId}/release): reasonCode order_cancelled ou expired si la vente n’aboutit pas 5. Lire le journal (GET /commerce/v1/inventory/ledger): réservation, consommation et libération comme écritures traçables Sortie : une réservation dont les quantités réservées, libérées et consommées sont traçables Consommation et libération portent sur des quantités : une réservation peut être en partie exécutée et en partie libérée.Réserver une pièce unique commandée jusqu’à exécution ouabandon de la commandeEntrée : une pièce unique est commandée, l’expédition reste à faire01RéserverPOST /commerce/v1/inventory/reservationsstockItemId, salesOrderId et orderLineId, expiresAt en option02Vérifier l’étatGET /commerce/v1/inventory/reservations/{reservationId}reservedQuantity, releasedQuantity et consumedQuantity03ConsommerPOST /commerce/v1/inventory/reservations/{reservationId}/consumereasonCode fulfilled quand la marchandise part04LibérerPOST /commerce/v1/inventory/reservations/{reservationId}/releasereasonCode order_cancelled ou expired si la vente n’aboutit pas05Lire le journalGET /commerce/v1/inventory/ledgerréservation, consommation et libération comme écritures traçablesSortie : une réservation dont les quantités réservées, libérées et consommées sont traçablesConsommation et libération portent sur des quantités : une réservation peut être en partie exécutée et en partielibérée.
Cinq appels du lien à l’écriture. Une réservation se termine consommée, libérée ou expirée.

La réservation lie une pièce en stock concrète à une ligne de commande. Elle se termine consommée quand la marchandise part, ou libérée si la vente n’aboutit pas ; state connaît aussi la valeur expired. Les deux portent sur des quantités et figurent au journal.

SurfaceRôles
CommerceCommerce de pièces, Recycleurs automobiles

Ce que ce cas suppose

  • Une commande avec des lignes. La réservation exige salesOrderId et orderLineId ; une réservation sans commande n’est pas prévue.
  • Une pièce en stock plutôt qu’une référence. On réserve un exemplaire concret avec stockItemId.
  • La révision actuelle. Toute modification porte expectedRevision.
  • Un canal qui prend en charge les réservations. Les capacités l’indiquent par canal.

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.

La chaîne d’appels de ce cas d’usage
ÉtapeAppelCe qui existe ensuite
RéserverPOST /commerce/v1/inventory/reservationsstockItemId, salesOrderId et orderLineId, expiresAt en option
Vérifier l’étatGET /commerce/v1/inventory/reservations/{reservationId}reservedQuantity, releasedQuantity et consumedQuantity
ConsommerPOST /commerce/v1/inventory/reservations/{reservationId}/consumereasonCode fulfilled quand la marchandise part
LibérerPOST /commerce/v1/inventory/reservations/{reservationId}/releasereasonCode order_cancelled ou expired si la vente n’aboutit pas
Lire le journalGET /commerce/v1/inventory/ledgerréservation, consommation et libération comme écritures traçables

Pourquoi chaque étape est nécessaire

  1. Réserver. POST /commerce/v1/inventory/reservations prend stockItemId, quantity, salesOrderId, orderLineId, expectedRevision et en option expiresAt. Dès lors, la pièce est liée à cette ligne ; selon le contrat, availableQuantity dans le stock est dérivé en tenant compte des réservations actives.
  2. Vérifier l’état. GET /commerce/v1/inventory/reservations/{reservationId} indique initialQuantity, reservedQuantity, releasedQuantity, consumedQuantity et state. Avec plusieurs pièces, on voit ce qui reste lié.
  3. Consommer. POST /commerce/v1/inventory/reservations/{reservationId}/consume prend quantity, reasonCode — à l’expédition fulfilled — et expectedRevision. On consomme quand la marchandise part, non quand la commande arrive.
  4. Libérer. POST /commerce/v1/inventory/reservations/{reservationId}/release rend des quantités, par exemple avec order_cancelled, order_changed, expired ou manual_review. Une réservation jamais libérée bloque une pièce vendable sans acheteur.
  5. Lire le journal. GET /commerce/v1/inventory/ledger consigne réservation, consommation et libération comme écritures avec reservationId, quantityDelta et balance. Chaque mouvement d’une pièce unique s’explique ainsi plus tard.
Consommer une réservation à l’expédition
curl -X POST \
  -H 'X-Api-Key: <API_KEY>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: reservierung-4711-versand' \
  -d '{"quantity":1,"reasonCode":"fulfilled","expectedRevision":"<revision>"}' \
  'https://commerce-preview.invalid/commerce/v1/inventory/reservations/<reservationId>/consume'

Ce que l’on obtient

Au final, reservedQuantity, releasedQuantity et consumedQuantity montrent quelle quantité reste liée, libérée ou consommée, et state indique l’état de la réservation. Qu’un second acheteur ait encore pu commander la pièce entre-temps dépend de la mise à jour à temps de l’offre sur le second 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 réserver sans commande ?

Non. La réservation exige salesOrderId et orderLineId ; elle lie une pièce à une ligne de commande concrète.

Quand consommer la réservation ?

Quand la marchandise part, avec reasonCode fulfilled. L’arrivée de la commande n’est pas encore une consommation.

Puis-je libérer une réservation en partie ?

Oui. Consommation et libération portent sur des quantités ; l’état montre ce qui est réservé, libéré et consommé.