Traduite de l'anglais. En cas de différence, la page en anglais fait foi. Lire en anglais

Expédier les commandes

Récupérez les commandes avec l'adresse de livraison complète, marquez-les comme expédiées, ajoutez le suivi et informez la marketplace.

La boucle des commandes pour une intégration WMS/ERP (nécessite orders:read + orders:write) :

Chaque commande contient number, le numéro que le marchand voit sur le canal (Shopify « #1011 » → "1011") : recherchez et affichez les commandes avec ce numéro. Quand le canal le fournit, la commande contient aussi le détail des montants : subtotal, shipping, discount, tax, tax_remitted_by (marketplace quand le canal collecte et reverse la taxe) et le total du canal, les mêmes chiffres que dans l'export des commandes. Comptabilisez l'expédition, les remises et les taxes à partir de ces champs ; quand ils sont null, le canal n'a fourni aucun détail et total est la somme des lignes.

1. Recevoir les commandes dès leur arrivée

Abonnez-vous à order.created, ou interrogez l'API :

curl "https://api.nembol.com/rest/v1/orders?limit=50" \
  -H "Authorization: Bearer $NEMBOL_API_KEY"

Chaque commande est normalisée dans un format unique quel que soit le canal : status, fulfillment_status, lines[], tracking, et buyer avec l'adresse de livraison (buyer.address).

2. L'expédier

curl -X POST https://api.nembol.com/rest/v1/orders/{id}/fulfillment \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: ship-EBAY-12345" \
  -d '{
    "mark_shipped": true,
    "tracking": {"number": "1Z999...", "carrier": "UPS", "url": "https://..."}
  }'

Quand un suivi est présent, Nembol informe aussi la marketplace d'origine par défaut (eBay, Etsy, Shopify, WooCommerce, Amazon, TikTok Shop, OnBuy, Square, Squarespace), et l'acheteur reçoit la notification d'expédition du canal lui-même. Désactivez-la avec "notify_channel": false.

Stock et annulations

Quand une commande est annulée sur son canal avant l'expédition et que sa vente avait retiré les unités du stock Nembol, Nembol les remet en stock, une fois par ligne de commande, et envoie la nouvelle quantité à chaque canal où se trouve le produit (comme pour une vente). Vous recevez inventory.updated avec data.source: "order", data.reason: "order_canceled", data.channel, data.order_id_on_channel, data.variant_id, data.sku et un data.quantity_change positif.

Aucune remise en stock n'a lieu quand :

  • la vente n'a pas modifié le stock Nembol : « quantité depuis les commandes » (sync.quantity_from_orders) était désactivé pour ce compte, la commande provenait du premier import des commandes passées, ou elle a été expédiée par Amazon (FBA) ;
  • la commande était déjà expédiée ou livrée ;
  • les variations de quantité propres au canal se synchronisent dans Nembol (sync.quantity_from_channel_edits activé : Shopify, WooCommerce, Amazon) : la remise en stock du canal arrive par cette synchronisation, et l'ajouter à nouveau compterait les unités deux fois ;
  • la commande est seulement remboursée : un remboursement n'indique pas que la marchandise est revenue. Ajustez le stock vous-même (POST /inventory/batch) quand un retour arrive.

Les commandes reçues avant le 2026-10-17 ne sont pas remises en stock automatiquement.

Pièges à éviter

  • Une commande par commande du canal. Une commande avec plusieurs lignes est une seule commande (toutes ses lines, le total complet) ; l'expédition expédie toutes ses lignes.
  • Pas de suivi, pas de notification. mark_shipped seul ne met à jour que Nembol. Envoyez le suivi (maintenant ou plus tard) pour informer la marketplace.
  • Un suivi ne peut pas être corrigé via Nembol une fois que la marketplace en a un : le nouveau numéro est enregistré dans Nembol et la réponse indique channel_already_notified. Corrigez-le sur la marketplace.
  • Renvoyer est sans risque. Le même suivi renvoyé n'envoie rien (un seul e-mail à l'acheteur, jamais plus) : la réponse indique attempted: false, already_notified_same_tracking. Les champs omis gardent leur valeur.
  • url doit être une URL http(s), sinon l'appel répond 422.
  • Les champs de suivi qui dépassent leur limite sont refusés (number et carrier 64, url 512 caractères), jamais tronqués.
  • Les annulations faites sur le canal arrivent en moins de 10 minutes (statut canceled, order.status_changed).
  • La notification à la marketplace est unique par commande, avec une idempotence stricte. Relancer l'appel ne notifie (ni n'envoie d'e-mail à) l'acheteur jamais deux fois.
  • Les commandes à l'état final refusent l'expédition : les commandes annulées/remboursées renvoient 422 order_not_fulfillable.
  • Les données de l'acheteur sont des données personnelles. Elles sont protégées par orders:read ; traitez-les conformément à la loi et ne stockez que le nécessaire.
  • channel_notification dans la réponse vous dit exactement ce qui s'est passé : {attempted, delivered, error}.

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é.

Sur cette page