Tradotta dall'inglese. In caso di differenze fa fede la pagina in inglese. Leggi in inglese
Catalogo eventi
Ogni tipo di evento, quando viene emesso e cosa contiene data.object.
| Evento | Emesso quando | data.object |
|---|---|---|
order.created | Un nuovo ordine viene acquisito da qualsiasi canale (poller o webhook del canale). Esattamente uno per ordine del canale, qualunque sia il numero di righe (sono tutte nel payload) | Ordine |
order.status_changed | Cambia lo status normalizzato di un ordine (es. awaiting_shipment → shipped, → canceled). Un evento per ogni cambio: un nuovo tracking, un dettaglio di evasione o il solo source_status non lo inviano (rileggi l'ordine se ti servono) | Ordine. data.status è lo stato dopo il cambio, data.previous_status quello precedente; sono sempre diversi |
product.updated | Il contenuto di un prodotto cambia dalla dashboard, dall'API o da una modifica lato canale sincronizzata | Prodotto |
product.deleted | Un prodotto viene eliminato | { "id": … } |
inventory.updated | La quantità o il prezzo di una variante cambiano per una vendita su qualsiasi canale (data.source: "order", un evento per riga d'ordine, con data.channel, data.order_id_on_channel, il data.variant_id / data.sku venduto e data.quantity_change, es. -1) o dall'API (data.source: "api"). L'annullamento di un ordine di questo tipo prima della spedizione restituisce le unità (data.source: "order", data.reason: "order_canceled", data.quantity_change positivo). Le modifiche di quantità fatte dalla dashboard o direttamente su un canale non lo inviano ancora: rileggi GET /products se ti servono | Prodotto (con variants[] aggiornate) |
listing.status_changed | Un'inserzione raggiunge un nuovo stato definitivo: listed, imported, error o delisted. Un evento per ogni cambio, mai per una scrittura che mantiene lo stato. ongoing (pubblicazione o rimozione in corso) non viene notificato: lo traccia l'operazione | Inserzione (solo quella che è cambiata). data.status è il nuovo stato, data.previous_status l'ultimo notificato, quindi gli eventi consecutivi si concatenano sempre (listed → delisted → listed). null solo sul primo evento di un'inserzione |
operation.completed | Un'operazione asincrona termina (succeeded, partial o failed). Iscriviti a questo evento invece di fare polling su /operations | Operazione |
channel_account.updated | Cambiano le impostazioni di un account canale, dalla dashboard o dall'API (un evento per ogni account modificato). data.source è dashboard o api; data.previous_attributes contiene i valori precedenti. Reimpostali con una PATCH per annullare | Account canale |
channel_account.connected | Un account canale collegato tramite l'API ha completato il collegamento (data.connection_id) | Account canale |
channel_account.disconnected | Un account canale è stato scollegato, dalla dashboard o dall'API (data.source) | Account canale (id + canale, status: disconnected) |
Nuovi tipi di evento vengono aggiunti nel tempo. Chi li riceve deve accettare valori di
type sconosciuti (registrali nei log e conferma la ricezione).
Quali eventi mi servono?
- Sincronizzare gli ordini nel tuo sistema →
order.created+order.status_changed. - Sincronizzare le scorte verso il tuo sistema →
inventory.updated(emesso per le vendite su qualsiasi canale; è così che tieni sincronizzato un magazzino esterno). - "Il mio prodotto è online?" →
listing.status_changed(oppureoperation.completeddopo una pubblicazione). - Scritture fire-and-forget →
operation.completedper ottenere l'esito per canale senza polling. - Audit / annullamento delle impostazioni dei canali →
channel_account.updated. - Sapere quando un venditore ha finito di collegare un canale →
channel_account.connected(echannel_account.disconnected).
Ultimo aggiornamento il 20 ottobre 2026