---
title: "on_demand_storage"
url: "https://wiki.merchant.mercanto.ch/fr/article/on-demand-storage"
language: "fr"
last_updated: "2025-12-17T06:44:01.802Z"
---

# on_demand_storage

Exemple de fichier dans [gitlab](https://gitlab.com/mercanto/iocanto-spec/-/blob/master/examples/on_demand_storage.iocanto.json).

## Description

Dans les cas où un fournisseur conclut avec un client un accord selon lequel ce client peut prélever une certaine quantité d’un article dans un délai déterminé, et ce à des conditions spéciales, le type de données `on_demand_storage` peut être utilisé.

Il s’applique que :

-   Chaque enregistrement doit contenir un client (`customer_key`), un article (`concrete_sku`) et un numéro de contrat (`contract_reference`).
-   Une durée (`dates`) doit également être indiquée, incluant au minimum une date de début (`start`).
-   Pour chaque unité d’emballage, la quantité totale contractuelle (`amounts/total`) et la quantité restante (`amounts/remaining`) doivent être précisées.
-   Après chaque commande, la quantité restante doit être transmise de nouveau (au début identique à la quantité totale), afin qu’un client voie toujours les quantités actuelles dans Mercanto.
-   Les éventuelles quantités minimales ou intervalles de commande sont définis normalement via `product_concrete`.

## Champs disponibles

| **Champ**  <br>(\* = Obligatoire) | **Description** |
| --- | --- |
| `contract_reference` \*  <br>*String (100)* | Nom ou référence du contrat. |
| `customer_key` \*  <br>*String (100)* | Identifiant unique du client du point de vue du fournisseur. |
| `concrete_sku` \*  <br>*String (100)* | Unité de gestion des stocks de l’article (numéro d’article).  <br>Caractères autorisés : chiffres `0-9`, lettres `A-Z a-z`, tirets `–`, traits de soulignement `_`, parenthèses `()`, points `.`. |
| `packaging` \*  <br>*String (enum)* | Unité de vente de l’article.   <br>Valeurs autorisées : [https://my.mercanto.ch/fr/valeurs-definies#unitedemballage](https://my.mercanto.ch/fr/valeurs-definies#unitedemballage) et [https://my.mercanto.ch/fr/valeurs-definies#unite](https://my.mercanto.ch/fr/valeurs-definies#unite) |
| `allow_backorders`  <br>*boolean (true, false)* | Définit s'il est autorisé pour le client de commander plus que la quantité restante.   <br>défaut = `false` |
| `allow_orders_ without_contract`  <br>*boolean (true, false)* | Définit s'il est autorisé pour le client de commander l’article en dehors du contrat, même si la quantité restante est épuisée.   <br>défaut = `false` |
| `amounts/total` \*  <br>*Integer (0, 1000000000)* | Quantité totale contractuellement définie. |
| `amounts/remaining` \*  <br>*Integer (0, 1000000000)* | Quantité restante disponible dans le cadre du contrat. |
| `dates/start` \*  <br>*String (YYYY-MM-DD)* | Date de début du contrat. |
| `dates/end`  <br>*String (YYYY-MM-DD)* | Date de fin du contrat. |
