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

Modifier un produit : ce qui atteint vraiment les canaux

Votre PATCH met toujours à jour Nembol ; ce qui se propage vers chaque canal dépend des paramètres de synchronisation du vendeur.

PATCH /products/{id} (et les endpoints de variantes/d'inventaire) mettent toujours à jour Nembol, de façon synchrone, et la réponse le reflète. Que la modification atteigne ensuite chaque canal est une autre question, régie par les paramètres de synchronisation par canal du vendeur dans le tableau de bord Nembol.

Les nouveaux comptes démarrent avec toutes les options désactivées

Sur chaque canal, un compte nouvellement connecté a toutes ses options de synchronisation désactivées (false), via l'API comme dans le tableau de bord. Activez celles que le marchand souhaite avec PATCH /channel_accounts/{id} (voir ci-dessous).

L'option « Envoyer les mises à jour vers (canal) » (par canal)

Chaque connexion de canal possède un réglage Envoyer les mises à jour vers (canal). Quand le canal d'une annonce l'a :

  • ACTIVÉ : la modification se propage entièrement : contenu, prix et quantité sont envoyés au canal.
  • DÉSACTIVÉ : Nembol envoie uniquement la quantité (le canal garde son propre contenu et son propre prix ; petites nuances selon le canal : OnBuy envoie quand même prix+stock, Google Merchant Center uniquement la disponibilité).

C'est un choix du vendeur, pas une erreur : beaucoup de marchands soignent leur contenu directement sur un canal et utilisent Nembol uniquement pour le stock.

Pourquoi c'est important pour votre intégration

Vous pouvez modifier un titre par PATCH, obtenir un 200, voir l'opération réussir, et voir encore l'ancien titre sur le canal, parce que la tâche a légitimement envoyé la quantité seule. Si une modification de contenu « n'a pas pris » sur un canal :

  1. Ne relancez pas. L'API a fait exactement ce que le vendeur a configuré.
  2. Demandez au marchand de vérifier Canaux → (canal) → Envoyer les mises à jour vers (canal) dans son tableau de bord.
  3. Une fois l'option activée, forcez un nouvel envoi avec PATCH /listings/{id} et un corps vide (une simple resynchronisation).

Les modifications peuvent aussi aller dans l'autre sens

Les vendeurs peuvent désigner un canal (Shopify ou WooCommerce) comme canal leader du contenu : les modifications faites sur ce canal remontent dans Nembol, puis de là vers les autres canaux. Si c'est activé, le contenu écrit par votre intégration peut être légitimement écrasé par les modifications du vendeur côté canal. Pour le stock, les modifications de quantité côté canal et les ventes remontent dans Nembol selon leurs propres options par canal.

Règle générale : Nembol est le hub, mais le vendeur décide du sens de chaque flux. Si votre intégration suppose qu'elle est la seule à écrire, convenez avec le marchand des options qui restent désactivées.

Textes par canal

Une annonce peut avoir son propre titre et sa propre description (overrides sur l'annonce ; chaque annonce importée démarre avec les textes du canal). Le canal reçoit le texte de l'annonce quand il est défini, celui du produit sinon (voir Listing.content).

  • PATCH /products/{id} modifie les textes du produit. Sur un produit avec une seule annonce, cette annonce suit ; avec plusieurs, les annonces qui ont leur propre texte le gardent.
  • PATCH /listings/{id} avec overrides.title / overrides.description définit les textes d'un canal ; null lui fait reprendre ceux du produit.
  • Un canal leader du contenu remplace les textes du produit et les textes propres de chaque annonce. Pour ne pas toucher au contenu d'un canal, désactivez Envoyer les mises à jour vers (canal) sur ce canal (le prix et le stock restent synchronisés).

Pièges à éviter

  • Les prix peuvent être transformés à l'envoi. Les règles de prix par canal (ajustements en pourcentage/fixes) s'appliquent à l'envoi : un prix sur le canal différent de votre PATCH est donc normal quand des règles sont définies.
  • La quantité se synchronise toujours (c'est la seule chose que chaque mode envoie). Si même la quantité ne bouge pas, c'est une vraie erreur : vérifiez les issues[] de l'annonce et l'opération.
  • Ces réglages sont propres à chaque compte de canal. Un compte eBay peut être en synchronisation complète et un second en quantité seule.

Lire les options depuis l'API

Inutile de demander au marchand : chaque entrée de GET /channel_accounts contient les options :

{
  "id": "chac_66a1f09b2",
  "channel": "ebay",
  "sync": {
    // Nembol pushes content + price + quantity to this channel.
    // false = quantity only; the channel keeps its own content and
    // price (two exceptions: OnBuy still gets price+stock, Google
    // Merchant Center only availability).
    "product_edits": true,

    // Sales on this channel adjust stock everywhere.
    "quantity_from_orders": true,

    // Quantity edited directly ON the channel flows back into Nembol.
    // null = the switch isn't there (channel doesn't have it, or an older
    // account never stored it): it behaves as off. New accounts start false.
    "quantity_from_channel_edits": null,

    // true would make this channel the CONTENT LEADER: its edits
    // overwrite Nembol content (at most one channel per store).
    "content_from_channel_edits": null,

    // Orders received here are transferred to the store's fulfillment
    // channel (at most one channel per store).
    "transfer_orders": null
  },

  // Price rule applied when Nembol pushes prices to this channel:
  // here every price goes out +10%, rounded to .99. This is why the
  // channel price can legitimately differ from what you PATCH.
  "pricing": {"mode": "percentage", "value": 10, "rounding": true},

  // Quantity cap: the channel shows at most 5 units even with 40 on
  // hand. (On Google Merchant Center, which only gets availability, the
  // threshold is a MINIMUM: in stock only while quantity >= threshold.)
  "inventory": {"control": true, "threshold": 5},

  // What can be changed on THIS account with PATCH (varies by channel).
  "writable": ["sync.product_edits", "sync.quantity_from_orders", "pricing.mode", "…"]
}

Les modifier depuis l'API

Avec une clé qui a le scope channels:write, PATCH /channel_accounts/{id} modifie les mêmes options que le marchand voit dans le tableau de bord, avec les mêmes effets. N'envoyez que ce que vous modifiez :

curl -X PATCH https://api.nembol.com/rest/v1/channel_accounts/chac_66a1f09b2 \
  -H "Authorization: Bearer $NEMBOL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pricing": {"mode": "percentage", "value": 10, "rounding": true},
       "inventory": {"control": true, "threshold": 5}}'
  • Tout ce qui ne figure pas dans le writable du compte échoue avec 422 setting_not_supported.
  • content_from_channel_edits et transfer_orders sont exclusifs par boutique : en activer un sur un compte le désactive sur tous les autres.
  • Les valeurs par défaut du canal (Business Policies eBay, profils d'expédition et politiques de retour Etsy, collection Shopify) vont dans defaults, avec des id issus de GET .../policies et GET .../collections. Sur eBay, policy_validation vous indique si eBay accepte les politiques choisies.

Annuler n'importe quelle modification

Chaque modification, depuis l'API ou depuis le tableau de bord, émet un événement channel_account.updated. Son previous_attributes contient l'ancienne valeur de chaque champ modifié ; renvoyez-le tel quel pour annuler :

// event data
{
  "object": { "id": "chac_66a1f09b2", "…": "…" },
  "source": "api",
  "previous_attributes": {"pricing": {"mode": "off", "value": null}}
}
// undo
PATCH /channel_accounts/chac_66a1f09b2
{"pricing": {"mode": "off", "value": null}}

Ces options décident à qui appartient le contenu d'un canal : si vous les modifiez pour le compte d'un marchand, prévenez-le. Détails champ par champ dans le modèle Channel account.

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