Edit a product: what actually reaches the channels
Your PATCH always updates Nembol; what propagates to each channel is governed by the seller's sync settings.
PATCH /products/{id} (and the variant/inventory endpoints) always update
Nembol, synchronously, and the response reflects it. Whether the change
then reaches each channel is a different question, governed by the
seller's per-channel sync settings in the Nembol dashboard.
New accounts start with every switch off
On every channel, a newly connected account has all its sync switches off
(false), through the API as in the dashboard. Turn on the ones the
merchant wants with PATCH /channel_accounts/{id} (see below).
The "Push updates to (channel)" switch (per channel)
Every channel connection has a Push updates to (channel) setting. When a listing's channel has it:
- ON: the edit propagates fully: content, price and quantity are pushed to the channel.
- OFF: Nembol pushes only the quantity (the channel keeps its own content and price; minor per-channel nuances: OnBuy still pushes price+stock, Google Merchant Center only availability).
This is a seller choice, not an error: many merchants curate content directly on a channel and use Nembol for stock only.
Why this matters to your integration
You can PATCH a title, get a 200, watch the operation succeed, and
still see the old title on the channel, because the job legitimately pushed
quantity only. If a content edit "didn't take" on one channel:
- Don't retry. The API did exactly what the seller configured.
- Ask the merchant to check Channels → (channel) → Push updates to (channel) in their dashboard.
- Once enabled, force a re-push with
PATCH /listings/{id}and an empty body (a plain re-sync).
Edits can also flow the other way
Sellers can elect one channel (Shopify or WooCommerce) as their content leader: edits made on that channel flow into Nembol, and from there to the other channels. If that's on, content your integration writes can be legitimately overwritten by the seller's channel-side edits. For stock, channel-side quantity edits and sales flow into Nembol according to their own per-channel switches.
Rule of thumb: Nembol is the hub, but the seller decides the direction of each pipe. If your integration assumes it's the only writer, agree with the merchant on which switches stay off.
Per-channel texts
A listing can have its own title and description (overrides on the
listing; every imported listing starts with the channel's texts). The
channel receives the listing's text where set, the product's otherwise
(see Listing.content).
PATCH /products/{id}changes the product's texts. On a product with one listing that listing follows; with several, listings with their own text keep it.PATCH /listings/{id}withoverrides.title/overrides.descriptionsets one channel's texts;nullmakes it use the product's again.- A content leader channel replaces the product's texts and every listing's own texts. To keep one channel's content untouched, turn off Push updates to (channel) on that channel (price and stock still sync).
Gotchas
- Prices can be transformed on the way out. Per-channel price rules (percentage/fixed adjustments) apply when pushing, so the channel price differing from your PATCH is expected when rules are set.
- Quantity always syncs (it's the one thing every mode pushes). If
even quantity doesn't move, that's a real error: check the listing's
issues[]and the operation. - These settings are per channel account. One eBay account can be full-sync while a second one is quantity-only.
Read the switches from the API
You don't have to ask the merchant: every entry of
GET /channel_accounts carries the
switches:
{
"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", "…"]
}Change them from the API
With a key that has the channels:write scope,
PATCH /channel_accounts/{id}
changes the same switches the merchant sees in the dashboard, with the
same effects. Send only what you change:
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}}'- Anything not in the account's
writablefails with422 setting_not_supported. content_from_channel_editsandtransfer_ordersare exclusive per store: turning one on turns it off on every other account.- Channel defaults (eBay business policies, Etsy shipping profiles and
return policies, Shopify collection) go in
defaults, with ids fromGET .../policiesandGET .../collections. On eBay,policy_validationtells you whether eBay accepts the chosen policies.
Undo any change
Every change, from the API or from the dashboard, emits a
channel_account.updated event. Its previous_attributes holds the old
value of each changed field; send it back as-is to undo:
// 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}}These switches decide who owns a channel's content: if you change them on behalf of a merchant, tell them. Field-by-field details in the Channel account model.
Last updated on October 20, 2026
Need help?
Email us and a human replies, usually within one business day.