Tradotta dall'inglese. In caso di differenze fa fede la pagina in inglese. Leggi in inglese
Concetti chiave
Prodotti, inserzioni, canali, ordini e operazioni: come Nembol modella la vendita multicanale.
Cinque oggetti spiegano l'intera API.
Prodotto
L'elemento centrale del catalogo, di proprietà di Nembol. Contiene tutti i dati
di vendita: titolo, descrizione (l'unico testo che ogni canale pubblica, HTML
consentito; short_description è solo un suo alias deprecato), marca, category, tag,
mpn, vat_rate, weight/dimensions, images[] (fino a 20) e
variants[] (ognuna con SKU, prezzo, msrp (prezzo barrato sui canali
che lo supportano), quantità, codice a barre, grams (peso di spedizione per variante)
e images specifiche della variante). I prezzi sono stringhe decimali nella valuta
di base del negozio (GET /store → currency).
Le varianti con options (es. Colore/Taglia) devono coprire ogni combinazione
dei valori delle opzioni. I canali generano la matrice completa, quindi gli insiemi incompleti vengono
rifiutati subito invece di pubblicare inserzioni rotte.
Un prodotto può esistere localmente senza essere su alcun canale, anche senza immagini (resta una bozza locale finché non viene pubblicato).
Inserzione
La proiezione di un prodotto su un account canale. È una risorsa
a tutti gli effetti, con il proprio id (list_…), status (listed, imported,
ongoing, error, delisted), id_on_channel, url_on_channel e
issues[], che riporta il messaggio di errore del canale quando qualcosa non va.
POST /rest/v1/listings {product_id, channel_account_id} # publish
PATCH /rest/v1/listings/{id} {} # re-sync
DELETE /rest/v1/listings/{id} # delistLa pubblicazione è idempotente per coppia (product_id, channel_account_id), e
GET /listings?status=error è la query che dovrebbe eseguire la tua logica di retry.
Due comportamenti lato canale da conoscere: alcuni venditori configurano per canale
delle regole di prezzo (una maggiorazione percentuale o fissa), quindi il prezzo sul
canale può legittimamente differire dal prezzo del prodotto; e su WooCommerce
il venditore può aver scelto di creare i prodotti come bozze, nel qual caso un'inserzione
listed esiste sul negozio ma il suo URL non è ancora pubblico.
Account canale
Un account collegato su una piattaforma di vendita. GET /channel_accounts li elenca
con id stabili e opachi (chac_…). Se un venditore ha due account eBay, ognuno
è un account canale a sé, e un id non punta mai a un account diverso.
L'id resta lo stesso quando si ricollega un login scaduto (channel_account_id).
Scollegare l'account lo rimuove: collegando di nuovo quell'account si ottiene un nuovo id,
quello vecchio risponde 404 channel_account_not_found, e le inserzioni che aveva
ora riportano il nuovo id in channel_account_id (le inserzioni appartengono alla
posizione dell'account, non all'id). Salva gli id, e su channel_account.connected
rileggi GET /channel_accounts e le tue inserzioni. Il campo channel indica
la piattaforma di base (shopify, amazon, ebay, etsy, woocommerce,
tiktok, …). Ne compaiono di nuove man mano che Nembol aggiunge integrazioni, quindi accetta
valori sconosciuti.
Ordine
Un ordine normalizzato acquisito da qualsiasi canale: currency per ordine,
status e fulfillment_status normalizzati, tracking, righe d'ordine e dati
dell'acquirente, incluso l'indirizzo di spedizione completo (dietro il permesso orders:read).
Con orders:write, POST /orders/{id}/fulfillment lo segna come spedito,
allega il tracking e (per impostazione predefinita, quando il tracking è presente) notifica il
marketplace di origine.
Operazione
Il tracker del lavoro asincrono sui canali. La cosa fondamentale da capire sulle scritture in Nembol:
- La scrittura locale è sincrona.
POST/PATCHrestituiscono subito la risorsa aggiornata, quindi ciò che hai scritto è ciò che ricevi indietro. - La propagazione ai canali è asincrona. Passa dai worker di canale di Nembol,
che rispettano i limiti di richieste di ogni canale. Il blocco
syncdella risposta ti fornisce unoperation_id;GET /operations/{id}riporta iresults[]per canale (succeeded,failed,channel_rate_limited,simulated), e un'operazione può terminare comepartial.
Invece di fare polling delle operazioni, iscriviti al webhook
operation.completed.
Come funziona la sincronizzazione
- Le scritture dall'API vengono accodate dopo gli aggiornamenti generati dagli ordini e le azioni dalla dashboard, quindi un'integrazione non può mai bloccare la sincronizzazione degli ordini.
- Quando un canale limita le richieste, Nembol rallenta e riprova; nel frattempo l'operazione mostra
channel_rate_limited. - Eliminare un prodotto non tocca mai i canali: finché è ancora online su
uno di essi,
DELETE /products/{id}risponde422 product_still_listed, quindi rimuovi prima ogni inserzione dai canali (se una rimozione è ancora in corso risponde409 listing_operation_in_progress: attendi che finisca, poi elimina). Un prodotto eliminato si può ripristinare conPOST /products/{id}/restore; le sue foto vengono conservate per 30 giorni, dopodiché torna senza. Vedi Rimuovi dai canali e fai pulizia.
Ultimo aggiornamento il 22 ottobre 2026