Traduite de l'anglais. En cas de différence, la page en anglais fait foi. Lire en anglais
Publier un produit
Créez un produit, ajoutez-lui des images, publiez-le sur un canal et sachez quand il est vraiment en ligne.
Toute la boucle tient en deux écritures et une attente.
1. Créer le produit
curl -X POST https://api.nembol.com/rest/v1/products \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: create-VDJ-001" \
-d '{
"title": "Vintage denim jacket",
"description": "<p>Classic 90s denim jacket.</p>",
"brand": "Acme",
"price": "49.90", "quantity": 3, "sku": "VDJ-M-001",
"images": [{"url": "https://your-cdn.com/jacket.jpg"}]
}'La réponse est le produit, de façon synchrone. Récupérez l'id et les id des
images.
2. Le publier
curl -X POST https://api.nembol.com/rest/v1/listings \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: publish-VDJ-001-shopify" \
-d '{"product_id": "prod_…", "channel_account_id": "chac_…"}'202 avec status: "ongoing". La publication passe par les workers de canal
de Nembol. Récupérez le channel_account_id avec GET /channel_accounts.
3. Savoir quand il est en ligne
Abonnez-vous au webhook listing.status_changed
(recommandé), ou interrogez GET /listings/{id} jusqu'à ce que status soit
listed. Vous obtiendrez id_on_channel et url_on_channel. Sur un canal qui
fonctionne bien, cela prend quelques secondes, pas des minutes.
Si le canal la rejette, vous obtenez status: "error" et le message du canal
lui-même dans issues[]. Voir Gérer les erreurs.
Pièges à éviter
- Les images d'abord. Les canaux rejettent les annonces sans image : une
publication sans images échoue donc d'emblée avec
photo_required_for_channel. - Les URL des images doivent être publiques. Nembol télécharge chaque
urlune fois et stocke sa propre copie. Si vos images ne sont pas accessibles depuis internet (un ERP local, un bucket privé), envoyez-les plutôt sous la forme{"base64": "…"}(10 Mo max chacune). Faites pointerurlsur le fichier image lui-même, pas sur une page qui l'affiche : Nembol vérifie les octets, donc une URL qui renvoie une page HTML obtient422 unsupported_file_type, et une URL impossible à télécharger obtient422 image_unreachable, chacune avec l'image dansparam. Rien n'est créé dans les deux cas. - Texte alternatif. Donnez à chaque image un
alt(accessibilité, SEO), jusqu'à 512 caractères. Il atteint Shopify, WooCommerce, Etsy, Wix, Squarespace et le Storefront quand les images sont envoyées : à la publication, et lors d'une modification quand l'option d'envoi des mises à jour du compte est activée. Etsy garde les 500 premiers caractères, Squarespace les 200 premiers. Un import depuis ces canaux récupère leur texte alternatif. eBay, Amazon, TikTok Shop, Google Merchant Center et Meta n'ont pas de texte alternatif pour les images, ils ne le reçoivent donc pas. Modifiez-le plus tard en renvoyant l'image paridavec un nouvelalt(""l'efface) ; les vendeurs peuvent aussi le modifier dans le tableau de bord (onglet Médias, sous chaque image). - Les variantes doivent former une matrice complète. Avec
options(par exemple Couleur × Taille), chaque combinaison a besoin d'une variante. Les canaux génèrent toute la matrice : un ensemble incomplet est donc rejeté avec422au lieu de publier des variantes cassées. - Les devises ne sont pas converties. Les prix sont dans la devise de la
boutique (
GET /store→currency) et Nembol publie le nombre tel quel : 19.90 sur une boutique en EUR donne 19.90 USD sur une boutique Shopify américaine. Chaque compte de canal indique la devise dans laquelle il vend (currency) et, quand elle diffère de celle de la boutique, un avertissementcurrency_mismatch(sur le compte danswarnings, sur ses annonces dansissues). Corrigez-le avec une règle de prix sur ce compte (PATCH /channel_accounts/{id}avecpricing), ou connectez une boutique dans la devise de la boutique Nembol. - Le prix sur le canal peut différer du vôtre. Les vendeurs peuvent configurer des règles de prix par canal dans Nembol (ajustement en pourcentage ou fixe) : ne considérez donc pas un prix différent sur le canal comme un bug.
- WooCommerce peut publier en brouillon. Si le vendeur a défini Statut du
produit : brouillon dans les paramètres du canal sur Nembol, l'annonce est
listedmais l'URL du produit n'est pas publique tant qu'il ne l'a pas publiée dans WooCommerce. - La publication est idempotente par
(product_id, channel_account_id): refaire le POST renvoie l'annonce existante. Si l'annonce est en erreur, refaire le POST relance la publication.
Après la publication
- Modifications de prix et de texte :
PATCH /products/{id}. Elles atteignent le canal quand l'optionsync.product_editsdu compte est activée (elle démarre désactivée) : voir Modifier un produit. - Stock depuis votre système :
POST /inventory/batchpar SKU, voir Synchroniser stock et prix en masse. - Ventes et expédition : webhooks
order.created, puisPOST /orders/{id}/fulfillment, voir Expédier les commandes.
Dernière mise à jour le 20 octobre 2026
Besoin d'aide ?
Écrivez-nous et une personne vous répond, généralement sous un jour ouvré.