Catalogue
Capacité catalog.read. Faits exigés au bonjour : mirrorableFields et deltaExport.
product.upserted
Une ligne par article vendable. Il n'y a pas de déclinaisons dans le protocole : une déclinaison
est un produit avec son propre productId (le code de la déclinaison sur Sylius ou Shopify), et son
variantName.
| Champ | Type | Obligatoire | Sens |
|---|---|---|---|
productId | identifiant | oui | votre identifiant de l'article vendable |
name | texte | oui | |
variantName | texte | non | « Pistache », à côté du nom du produit |
reference | texte | non | ce qui relie l'article à un article du commerce, voir plus bas |
barcode | texte | non | EAN-13 |
priceCents | entier | oui | le prix payé par un client aujourd'hui, TTC |
costExclVatCents | entier | non | le prix d'achat HT, supérieur à 0 ; absent quand vous ne le connaissez pas |
quantity | entier | non | ce qui peut se vendre maintenant |
stockManaged | booléen | non, true par défaut | false : jamais compté, aucune lecture de stock attendue |
active | booléen | oui | |
availableForOrder | booléen | non | |
kind | simple, pack | non, simple par défaut | |
imageUrl | URL HTTPS | non | |
categoryIds | identifiants | non | |
suppliers | objets | non | les fournisseurs de l'article et leur prix HT |
updatedAt | instant | oui |
La référence
Kult Lab rapproche un article vendable d'un article qui existe déjà par sa référence, comparée sans les espaces autour et sans la casse, et rien de plus : un mauvais rapprochement fusionnerait le stock de deux produits.
Si votre application rejoint un commerce qui compte déjà ces produits (une caisse, une autre
boutique), reference est donc la référence du commerce, et votre propre code reste dans
productId.
product.deleted
{ "productId": "NOZA-CEND0210" }
category.upserted
{ "categoryId": "graines", "parentId": null, "name": "Graines", "position": 2, "active": true }
Une déclaration complète : sans parentId, la catégorie est à la racine, sans position, elle
est en position 0. Les catégories racines sont votre premier niveau.
category.deleted
{ "categoryId": "graines" }
Le parcours complet
À l'activation, Kult Lab parcourt tout votre catalogue par la commande
catalog.export. Un parcours complet retire de Kult Lab ce qu'il n'a pas
vu ; un parcours interrompu ne retire rien.