Un statut « disponible » prouve seulement qu'une source présente l'article comme commandable au moment observé ; il ne donne pas le nombre d'unités. Une quantité exacte, par exemple 27, apporte une information plus précise, mais ne garantit ni réservation, ni absence de commandes concurrentes, ni livraison. Conservez donc la valeur brute, son type, sa source et son horodatage. Ne convertissez jamais InStock en 1 ou en quantité supposée. Pour acheter, appliquez le minimum et le pas de commande à une quantité numérique récente, puis demandez confirmation si l'enjeu dépasse ce que la donnée prouve.
Cinq formes de stock à ne pas fusionner
Les catalogues utilisent des vocabulaires très différents. Un champ nommé stock peut contenir un entier, true, un texte comme « sous 5 jours », une classe de seuil ou une date de réapprovisionnement. Avant tout calcul, attribuez une catégorie de preuve.
| Type observé | Exemple de forme | Ce qu'il permet | Ce qu'il interdit de conclure |
|---|---|---|---|
| Quantité exacte | entier non négatif | comparer à une quantité demandée | stock réservé ou futur |
| Booléen | vrai/faux, InStock/OutOfStock | filtrer un état déclaré | nombre d'unités |
| Seuil | « plus de 10 », faible/élevé | encadrer partiellement la disponibilité | valeur exacte |
| Délai | expédié sous X jours | estimer un délai annoncé | présence physique immédiate |
| Inconnu | vide, null, absent | rien sans documentation | rupture ou disponibilité |
Schema.org définit ItemAvailability comme une liste d'états possibles associés à une offre, parmi lesquels InStock, OutOfStock, BackOrder ou PreOrder. La page InStock indique simplement que l'article est en stock. Elle ne spécifie pas de quantité. Cette convention est utile pour interpréter une donnée structurée publique, mais elle ne constitue pas une garantie commerciale du fournisseur.
La quantité exacte reste une observation, pas une promesse
Même lorsqu'un fournisseur expose stock_quantity=27, trois questions restent ouvertes : à quelle heure la quantité a-t-elle été calculée, pour quel entrepôt et quelle part est déjà réservée ? Le même nombre peut être global, local, disponible à la vente ou physique avant engagements. La documentation doit donner le périmètre.
Conservez des champs distincts : stock_raw, stock_type, stock_quantity, availability, warehouse_scope, source_generated_at et observed_at. Si la source fournit une quantité exacte mais aucun périmètre d'entrepôt, ne complétez pas ce dernier par une supposition. Une information incomplète peut rester exploitable avec un avertissement ; une information inventée ne l'est pas.
La politique de fraîcheur du prix et du stock doit être appliquée avant tout usage. Une quantité ancienne ne devient pas booléenne : elle reste une quantité historique, marquée périmée pour les actions qui exigent une observation récente.
Quantité achetable, MOQ et pas de commande
Le stock et la quantité commandable ne sont pas la même chose. Supposons, à titre d'exemple hypothétique, qu'une source affiche 27 unités, un minimum de commande de 10 et un pas de 5. Les quantités conformes seraient alors 10, 15, 20 ou 25 dans la limite du stock observé. Une demande de 12 ne respecte pas le pas, et 30 dépasse le stock affiché. Cette logique dépend de la définition contractuelle du MOQ et du pas ; elle ne doit pas être déduite d'un titre ou d'une photo.
Ajoutez le conditionnement : un carton annoncé à six unités peut signifier que stock_quantity=27 compte des cartons ou des unités. Tant que l'unité de la quantité n'est pas documentée, le calcul d'achat doit rester bloqué. La lecture des colonnes du catalogue grossiste permet de relever ces dépendances avant import.
Une règle sûre suit cet ordre :
1. Identifier l'unité de vente. 2. Vérifier le contenu du conditionnement sur une preuve structurée ou contractuelle. 3. Lire le MOQ et le pas comme des champs séparés. 4. Classer le stock selon le niveau de preuve. 5. Appliquer la fraîcheur à l'observation. 6. Calculer les quantités conformes uniquement si les unités sont compatibles. 7. Confirmer au fournisseur juste avant la commande.
Les valeurs vides, zéro et négatives
0 peut raisonnablement représenter une absence de quantité si la documentation du champ le confirme. Une cellule vide n'est pas équivalente : elle peut traduire une information indisponible, un produit non géré ou une erreur. Traitez null, chaîne vide et champ absent comme des états distincts pendant le diagnostic, puis mappez-les uniquement à partir de la documentation.
Une quantité négative peut représenter un reliquat dans un système interne, mais ce n'est pas une quantité disponible à vendre. Rejetez-la du champ stock_quantity exploitable et conservez-la dans la valeur brute avec un motif. De même, une décimale pour un produit vendu à l'unité doit être placée en revue ; pour un produit mesuré au poids, elle peut être légitime. Le contexte de l'unité décide.
Ne masquez jamais un problème en remplaçant toutes les anomalies par zéro. Cette pratique confond l'absence de preuve avec une rupture certaine et fausse les diagnostics de source.
Vérifier un stock sur un lot canari
Un lot canari fournisseur devrait inclure au moins des états variés : produit disponible, rupture, valeur vide, quantité faible, éventuel réapprovisionnement et plusieurs variantes. L'objectif n'est pas d'épuiser le catalogue, mais de confronter le parseur aux cas qui changent la décision.
Pour chaque ligne, comparez la réponse brute, la fiche officielle autorisée et le champ normalisé. Attendez une mise à jour prévue ou effectuez une nouvelle observation à la cadence permise afin de vérifier que les transitions sont gérées. Un produit passant de InStock à OutOfStock ne doit pas conserver une quantité issue d'une collecte précédente.
Checklist de preuve du stock
- La valeur brute est conservée.
- Booléen, quantité, seuil, délai et inconnu sont séparés.
- L'unité de la quantité est documentée.
- L'entrepôt ou le périmètre est indiqué s'il est fourni.
- L'horodatage source n'est pas confondu avec l'heure du script.
- Une valeur vide n'est pas transformée en zéro.
- MOQ, pas de commande et conditionnement sont distincts.
- Une quantité périmée ne déclenche pas une décision silencieuse.
- Une transition de disponibilité efface les dérivés incompatibles.
- La disponibilité est confirmée avant l'achat.
Ce qu'ArbitragePro+ peut automatiser / ce que le vendeur doit vérifier
La spécification proposée controle-stock pourrait typer chaque valeur, empêcher la conversion d'un booléen en quantité, appliquer les règles de fraîcheur et signaler les incohérences avec MOQ, pas ou conditionnement. Le rapport devrait toujours afficher la preuve brute.
Le vendeur doit confirmer le sens contractuel du stock, l'unité, le périmètre d'entrepôt, les réservations éventuelles et la quantité réellement acceptée au moment de la commande.
Contrôler la santé d'une donnée de stock
Ouvrir la santé des sources pour examiner les informations de disponibilité et de collecte disponibles.
Sources officielles
- Schema.org, « ItemAvailability », https://schema.org/ItemAvailability — consulté le 2026-08-17.
- Schema.org, « InStock », https://schema.org/InStock — consulté le 2026-08-17.
- IETF, RFC 9110, « HTTP Semantics », https://www.rfc-editor.org/rfc/rfc9110.html — consulté le 2026-08-17.
