Guida ai casi d'uso dell'API Gestito dal venditore v0
Crea applicazioni per consentire ai venditori di acquistare la spedizione per ordini non Prime e Prime utilizzando i Buy Shipping Services di Amazon.
Versione API: v0
Cos'è l'API Gestito dal venditore?
Utilizza l'API Merchant Fulfillment per creare applicazioni per consentire ai venditori di utilizzare i servizi Buy Shipping di Amazon per acquistare la spedizione per ordini non Prime e Prime.
Puoi creare applicazioni in grado di:
- Visualizzare l'anteprima delle offerte dei servizi di spedizione in base ai requisiti di spedizione, come la data di spedizione, la data di arrivo prevista, le dimensioni, il peso del pacco e altro ancora.
- Crea spedizioni in base alle offerte dei servizi di spedizione selezionate dal venditore.
- Paga automaticamente la spedizione tramite il servizio API.
- Ricevi e stampa le etichette di spedizione.
Controlla i ruoli che hai collegato al tuo profilo
Il tuo accesso ai dati SP-API Amazon dipende dai ruoli che hai collegato al tuo profilo sviluppatore e alla tua applicazione. Per ulteriori informazioni, consulta Ruoli nell'API per i partner di vendita.
Terminologia
Termine | Definizione |
---|---|
Servizio di spedizione | Il servizio di spedizione di un corriere, come UPS Ground o FedEx Standard Overnight. Identificato con un ShippingServiceId valore, che viene restituito da getEligibleShipmentServices operazione. |
Offerta del servizio di spedizione | Un'offerta di servizio di spedizione fatta da un corriere. È rappresentato dal ShippingService tipo di dati e identificato con un ShippingServiceOfferId valore, che viene restituito da getEligibleShipmentServices operazione. |
Pacchetto | Un pacco che desideri venga spedito da un corriere. Il parametro del pacchetto include metadati, come dimensioni, peso e contenuto dell'articolo. |
Spedizione | Un pacco e un'etichetta di spedizione. È identificato con un valore ShipmentId . |
Input aggiuntivi del venditore | Informazioni aggiuntive fornite dal venditore necessarie per acquistare determinati servizi di spedizione. Puoi chiamare il getAdditionalSellerInputs operazione per scoprire quali input aggiuntivi sono richiesti dal venditore per uno specifico servizio di spedizione. Dopo aver ricevuto questi input aggiuntivi dal venditore, puoi utilizzare gli input per createShipment operazione per l'acquisto del servizio di spedizione. |
Vantaggi | Un oggetto che contiene un elenco dei vantaggi Amazon inclusi e un elenco dei vantaggi Amazon esclusi da un'offerta di servizio di spedizione. Ogni vantaggio escluso ha un elenco di codici di motivo per cui è stato escluso. |
Tutorial 1: gestisci gli ordini Prime e non Prime gestiti dal venditore
Amazon consiglia di utilizzare questo flusso di lavoro del servizio Merchant Fulfillment per evadere gli ordini Prime gestiti dal venditore. Questo flusso di lavoro è pensato per integrare un sistema di evasione degli ordini. Il sistema di evasione degli ordini recupera i report sugli ordini pianificati che utilizzano il servizio Reports. Gli ordini in arrivo che non vengono evasi utilizzando il flusso di lavoro qui descritto devono essere evasi dal venditore utilizzando un metodo diverso.
Prerequisiti
Per completare questo tutorial, hai bisogno di:
- Autorizzazione dal partner di vendita per il quale stai effettuando chiamate. Per ulteriori informazioni, vedi Autorizzazione delle applicazioni API per i partner di vendita.
- Approvazione per il Ruolo di spedizione diretta al consumatore (con restrizioni) nel tuo profilo sviluppatore.
- Il ruolo Spedizione diretta al consumatore (con restrizioni) selezionato nella pagina di registrazione dell'app per la tua applicazione.
- I venditori che utilizzano un'applicazione sviluppata in base a questo flusso di lavoro devono aggiungere queste colonne ai report sugli ordini. Possono utilizzare l'area delle colonne opzionali di Add or remove order report columns in Seller Central.
Importante
I report sugli ordini XML in arrivo devono contenere
IsPrime
eLatestShipDate
. I report sugli ordini in formato flat file in arrivo devono contenereis-prime
elatest-ship-date
.
Fase 1. Identifica gli ordini e recupera le informazioni
Identifica nuovi ordini monitorando ORDER_CHANGE
notifiche. Per abbonarsi alle notifiche MFN, consulta Tutorial 5: iscriviti alle notifiche MFN. In alternativa, puoi identificare i nuovi ordini dai report sugli ordini in entrata.
Recupera le informazioni sull'ordine tramite l'API Orders. Gli ordini Prime hanno IsPrime
attributo contrassegnato come true
. Assicurarsi che FulfillmentChannels
l'attributo è MFN
.
Non usare l'attributo FulfillmentServiceLevel
o la colonna ship-service-level
nei report sugli ordini per identificare gli ordini Prime.
Esempio di codice:
Passaggio 2. Determina l'ultima data di spedizione per gli ordini Prime
Usa l'attributo LatestShipDate
o la colonna latest-ship-date
da un report sugli ordini in formato file di testo per determinare la data entro la quale gli ordini Prime devono essere spediti.
Passaggio 3. Controlla l'inventario e convalida l'ordine
Controlla il numero di inventario e assicurati che l'ordine ricevuto sia pronto per essere gestito.
Esempio di codice:
Passaggio 4. Ricevi offerte per i servizi di spedizione
Chiama il getEligibleShipmentServices
operazione per ottenere le offerte di servizi di spedizione per gli ordini identificati in Fase 1, quindi selezionane uno che corrisponde alle tue priorità (ad esempio, il più economico o il più veloce).
Cose da fare e da non fare nell'evasione degli ordini Prime e non Prime gestiti dal venditore
- Usa il
LatestShipDate
attributo dall'API Orders o dallatest-ship-date
valore dal rapporto sugli ordini perShipDate
parametro.- Non specificare il parametro
MustArriveByDate
, in quanto ciò limiterà inutilmente il numero di offerte per i servizi di spedizione che vengono riportate.- Salva il
ShippingServiceId
valore derivante da ciascuna offerta di servizi di spedizione restituita. Lo utilizzerai per le successive chiamate alcreateShipment
operazione quando si creano spedizioni per offerte di servizi di spedizione specifici.- Controlla gli elementi inclusi ed esclusi
Benefits
prima di selezionare un'offerta di servizio di spedizione.
Esempi di codice:
Fase 5. (Facoltativo) Dichiarare merci pericolose
Se il tuo ordine contiene merci pericolose, queste devono essere dichiarate in modo che possano essere gestite correttamente. Gli attributi relativi alle merci pericolose vengono raccolti su ogni articolo. In qualità di spedizioniere, devi fornire questi attributi. Amazon non fornisce un modo per trovare questi attributi per il tuo articolo.
Nota
Alcuni corrieri hanno requisiti aggiuntivi per la spedizione di merci pericolose. Rivolgiti al corriere per assicurarti che le tue spedizioni soddisfino i suoi requisiti.
Richiesta
L'esempio seguente è una richiesta per Amazon Shipping che include gli attributi relativi alle merci pericolose. Per ulteriori informazioni su ciascun attributo, consulta la Riferimento alla Merchant Fulfillment API v0.
Esempio di richiesta
{
"ShipmentRequestDetails": {
"AmazonOrderId": "903-3489051-5871062",
"ItemList": [{
"OrderItemId": "6220427528165",
"Quantity": 1,
"IsHazmat": true,
"LiquidVolume": {
"Unit": "C",
"Value": 3
},
"DangerousGoodsDetails": {
"UnitedNationsRegulatoryId": "UN1090",
"TransportationRegulatoryClass": "3",
"PackingGroup": "III",
"PackingInstruction": "PI965_SECTION_IA"
}
}],
"ShipFromAddress": {
"Name": "John Doe",
"AddressLine1": "300 Turnbull Ave",
"Email": "jdoeasdfllkj@yahoo.com",
"City": "Detroit",
"StateOrProvinceCode": "MI",
"PostalCode": "48123",
"CountryCode": "US",
"Phone": "7132341234"
},
"PackageDimensions": {
"Length": 10.25,
"Width": 10.25,
"Height": 10.25,
"Unit": "inches"
},
"Weight": {
"Value": 10.25,
"Unit": "oz"
},
"ShippingServiceOptions": {
"DeliveryExperience": "DeliveryConfirmationWithoutSignature",
"CarrierWillPickUp": false,
"CarrierWillPickUpOption": "NoPreference"
}
}
}
Fase 6. Crea una spedizione
Dopo aver scelto il servizio di spedizione più adatto al tuo caso d'uso, chiama il createShipment
operazione per una delle offerte di servizi di spedizione restituite nella fase precedente.
Utilizza i seguenti valori dei parametri:
ShipmentRequestDetails
: Usa gli stessi valori che hai incluso nel tuogetEligibleShipmentServices
chiama Fase 4.
Importante
Assicurati di includere gli attributi relativi alle merci pericolose per il tuo articolo (consulta Fase 5). È necessario dichiarare le merci pericolose in modo che possano essere gestite correttamente.
ShippingServiceId
: Utilizza il valore associato a questa offerta di servizi di spedizione.
Le createShipment
l'operazione avvia la procedura di pagamento per la spedizione, che detrae dall'account venditore Amazon del venditore e conferma la spedizione.
Salva l'elenco degli articoli e l'ID di spedizione
Salva il
ShipmentId
valore restituito dacreateShipment
operazione. Se il venditore desidera stampare una nuova etichetta, annullare una spedizione o controllare lo stato della spedizione in un secondo momento,ShipmentId
viene utilizzato per identificare la spedizione. Salva l'elenco degli articoli insieme a ciascun ID di spedizione.
Esempio di codice:
Fase 7. Estrarre e stampare l'etichetta di spedizione
Estrarre l'etichetta di spedizione dal Label
attributo restituito da createShipment
operazione. Stampa o conserva l'etichetta di spedizione.
Per ulteriori informazioni, fare riferimento a Tutorial 3: Manipolare le etichette di spedizione.
Esempi di codice:
Fase 8. Crea spedizioni per gli ordini rimanenti
Ripetere Fasi 3 attraverso 5 fino a quando non avrai creato le spedizioni per gli ordini identificati in Fase 1.
Tutorial 2: Annullare una spedizione
Questo tutorial mostra come aggiungere funzionalità al flusso di lavoro descritto in Come gestire gli ordini Prime gestiti dal venditore.
Passaggio 1. Chiama l'operazione cancelShipment
cancelShipment
Chiama il cancelShipment
operazione e specificare ShipmentId
valore della spedizione che desideri annullare.
Ciò restituisce i dettagli di una spedizione, che include lo stato della spedizione. Potrebbe anche restituire uno o più errori imprevisti verificatisi durante il cancelShipment
operazione.
Passaggio 2. (Opzionale) Verifica lo stato della spedizione annullata
- Chiama il
getShipment
operazione e specificareShipmentId
valore per la spedizione annullata. - Ottieni lo stato di annullamento dall'elemento di stato restituito da
getShipment
operazione.
Errori
Il servizio restituisce
LabelCancelWindowExpired
errore se il periodo di tempo assegnato per l'annullamento di un'etichetta è scaduto. Fare riferimento a Codici di errore.
Tutorial 3: Manipolare le etichette di spedizione
Le createShipment
e getShipment
le operazioni restituiscono un file di etichetta di spedizione in formato PDF, PNG o ZPL, a seconda del corriere. Amazon comprime i dati del documento prima di restituirli come stringa con codifica Base64.
Estrai i dati del documento da un file compresso
- Decodifica la stringa con codifica Base64.
- Salva la stringa decodificata con un
.gzip
estensione. - Estrai il file PDF, PNG o ZPL dal file GZIP.
createShipment
e getShipment
restituisce anche un hash MD5 con codifica Base64 per convalidare i dati del documento.
Ristampa un'etichetta di spedizione
- Chiama il
getShipment
funzionamento e includereShipmentId
per la spedizione che richiede l'etichetta di spedizione. - Estrarre e stampare l'etichetta di spedizione dal
FileContents
elemento che viene restituito dagetShipment
operazione.
Tutorial 4: Includi dati di input aggiuntivi per il venditore
Le getAdditionalSellerInputs
l'operazione restituisce un elenco di input aggiuntivi richiesti al venditore per acquistare la spedizione per alcuni servizi di spedizione. È richiesto solo per i servizi di spedizione che richiedono input aggiuntivi da parte del venditore.
Passaggio 1. Determina se il servizio di spedizione richiede input aggiuntivi da parte del venditore
- Chiama l'operazione
getEligibleShipmentServices
. - Recupera l'elenco dei
ShippingServices
restituito dall'operazione. - Verificare la presenza di
RequiresAdditionalSellerInputs
attributo. - Se
RequiresAdditionalSellerInputs
ètrue
, significa che il servizio di spedizione richiede input aggiuntivi da parte del venditore.
Passaggio 2. Chiama l'operazione getAdditionalSellerInputs
getAdditionalSellerInputs
Se il servizio di spedizione richiede ulteriori input da parte del venditore, chiama il getAdditionalSellerInputs
funzionamento e includono tutti i parametri richiesti. La risposta include un elenco di parametri obbligatori che un venditore deve includere se desidera acquistare servizi di spedizione.
Passaggio 3. Rivedi gli input aggiuntivi richiesti dal venditore
- Esamina la risposta del
getAdditionalSellerInputs
operazione. - Identifica gli input aggiuntivi specifici richiesti dal venditore.
Passaggio 4. Fornisci gli input richiesti dal venditore
- Raccogli le informazioni necessarie in base agli input aggiuntivi del venditore identificati nella risposta.
- Assicurati che le informazioni fornite soddisfino i requisiti di sintassi specificati nella risposta.
- Prepara gli input richiesti dal venditore per il passaggio successivo.
Passaggio 5. Crea la spedizione
- Se gli input richiesti dal venditore vengono raccolti e preparati, chiama il
createShipment
operazione. - Utilizza i parametri necessari e gli input del venditore con
createShipment
operazione. - Segui i requisiti di sintassi appropriati per gli input del venditore nel
getAdditionalSellerInputs
risposta.
Passaggio 6. (Opzionale) Recupera i valori salvati
Le getAdditionalSellerInputs
l'operazione restituisce valori salvati precedentemente forniti ad Amazon. Per accedere a questi valori salvati, esamina la risposta di getAdditionalSellerInputs
operazione.
Tutorial 5: Iscriversi alle notifiche della Rete logistica del venditore
Puoi usare API per le notifiche dei partner di vendita per iscriversi alle notifiche pertinenti all'attività di un partner di vendita. Con questa API, puoi creare una destinazione per ricevere, sottoscrivere ed eliminare le sottoscrizioni alle notifiche. Invece di richiedere informazioni, la tua applicazione può ricevere informazioni direttamente da Amazon quando un evento attiva una notifica a cui sei iscritto.
Importante
I venditori possono abbonarsi al
ORDER_CHANGE
notifica, che viene inviata ogni volta che si verifica una modifica dello stato di disponibilità dell'ordine.Le
MFN_ORDER_STATUS_CHANGE
eORDER_STATUS_CHANGE
i tipi di notifica sono stati rimossi. Aggiorna le tue applicazioni per utilizzare ilORDER_CHANGE
notifica. [ORDER_CHANGE
] (https://developer-docs.amazon.com/sp-api/docs/notifications-api-v1-use-case-guide#order_change) invia un payload a livello di ordine ogni volta che c'è una modifica importante nell'ordine. Le modifiche importanti includono le modifiche allo stato dell'ordine e le cancellazioni richieste dall'acquirente. Per informazioni dettagliate sulle date di obsolescenza delle SP-API, consulta la tabella delle deprezzazioni.
Fase 1. Abbonati al ORDER_CHANGE
notifica
ORDER_CHANGE
notificaPer configurare e abbonarsi al ORDER_CHANGE
notifica, segui il Tutorial SQS sull'API delle notifiche. La figura seguente fornisce una panoramica illustrata del tutorial.
Passaggio 2. Esegui il polling della coda per recuperare gli ultimi ORDER_CHANGE
messaggi
ORDER_CHANGE
messaggi- Recupera l'URL della coda: Connettiti al servizio SQS e recupera l'URL della coda che riceve il
ORDER_CHANGE
messaggi. Questo URL identifica in modo univoco la coda e viene utilizzato per interagire con essa. - Configurare i parametri di polling: Rivedi i parametri di polling per determinare con quale frequenza e quanti messaggi recuperare alla volta. Ciò include il tempo di attesa tra i successivi tentativi di polling e il numero massimo di messaggi da recuperare in ogni richiesta.
- Sondate la coda: Per interrogare la coda, invia le richieste per recuperare i messaggi. Usa il
ReceiveMessage
operazione per recuperare i messaggi dalla coda. Quando si chiama questa operazione, è possibile specificare l'URL della coda, il numero massimo di messaggi da recuperare e altri parametri opzionali, come il timeout di visibilità.
In alternativa, puoi configurare mappatura della sorgente degli eventi per richiamare automaticamente una funzione Lambda quando arrivano nuovi messaggi nella coda SQS. Per ulteriori informazioni sulla mappatura delle sorgenti degli eventi, fare riferimento a Tutorial: Usare Lambda con Amazon SQS.
4. Elabora i messaggi: Quando ricevi i messaggi, puoi elaborarli in base ai requisiti della tua applicazione. Nel caso di ORDER_CHANGE
messaggi dall'SP-API, è possibile estrarre le informazioni pertinenti, come l'ID dell'ordine, i dettagli della modifica dello stato e i timestamp.
5. Elimina i messaggi elaborati: Dopo che ogni messaggio è stato elaborato con successo, assicurati di eliminarlo dalla coda con il DeleteMessage
operazione fornita da SQS. Questo passaggio garantisce che i messaggi elaborati vengano rimossi dalla coda e non vengano recuperati nuovamente nei successivi tentativi di polling.
Passaggio 3. Elabora le informazioni sull'ordine e chiama i servizi di spedizione
La notifica ORDER_CHANGE
riporta informazioni di alto livello relative all'ordine, come OrderId
, OrderItemId
e il OrderStatus
. Per saperne di più sugli attributi che possono essere riportati, consulta le notifiche ORDER_CHANGE
.
Per automatizzare il processo di evasione degli ordini, devi:
- Controllare i messaggi di notifica che hanno un
OrderStatus
diUpComing
,Pending
oUnshipped
e verificare cheMFN
sia all'interno dell'attributoFulfillmentChannel
. - Recuperare le informazioni sull'ordine e sulla spedizione tramite l'operazione
getOrder
. - Trasmettere queste informazioni all'operazione
getEligibileShipmentServices
e seguire i passaggi nel Tutorial 1.
Codici di errore
La tabella seguente descrive i codici di errore Merchant Fulfillment.
Codice di errore | Codice di stato HTTP. | Descrizione |
---|---|---|
InsufficientFunds | 400 | L'acquisto dell'etichetta di spedizione richiesta è stato rifiutato a causa di fondi insufficienti nell'account del venditore. |
InvalidRequest | 400 | La richiesta contiene parametri mancanti o non validi e non può essere analizzata. |
InvalidShipFromAddress | 400 | Il valore ShipFromAddress specificato non è valido. Specifica un indirizzo valido. |
InvalidShippingServiceOfferId | 400 | Il specificato ShippingServiceOfferId il valore non è valido. Specificare un ShippingServiceOfferId valore restituito da una precedente chiamata a getEligibleShipmentServices operazione. |
LabelCancelWindowExpired | 400 | Il periodo di annullamento per richiedere il rimborso dell'etichetta è scaduto. Le politiche di cancellazione variano a seconda del corriere. Per ulteriori informazioni sulle politiche di cancellazione del corriere, consulta l'Help Hub di Seller Central per il tuo mercato. |
LabelFormatNotSupported | 400 | Il richiesto LabelFormat non corrisponde ai formati disponibili. |
ShipmentAlreadyExists | 400 | Uno o più elementi specificati in una chiamata al createShipment le operazioni sono già state spedite. Specifica solo gli articoli non spediti. A ShipmentId viene restituito in Message elemento del messaggio di errore per ogni articolo specificato che è già stato spedito. |
ShipmentRequestDetailsTooRestrictive | 400 | Il specificato ShipmentRequestDetails e ShippingServiceI i valori sono così restrittivi che non è disponibile alcuna offerta di servizi di spedizione in grado di soddisfare la richiesta. Prova a chiamare il createShipment operazione nuovamente con valori meno restrittivi, oppure chiama prima il getEligibleShipmentServices operazione per verificare se sono disponibili offerte di servizi di spedizione corrispondenti a ShipmentRequestDetails e ShippingServiceId valori specificati dall'utente. |
ShippingServiceOfferNotAvailable | 400 | Il specificato ShippingServiceOfferId il valore non è più valido. Ciò potrebbe essere dovuto al fatto che la tariffa di spedizione è cambiata da quando hai ricevuto il ShippingServiceOfferId valore con una precedente chiamata al getEligibleShipmentServices operazione. Chiama il getEligibleShipmentServices operazione nuovamente per ottenerne una nuova ShippingServiceOfferId valore. |
InvalidState | 404 | La richiesta non può essere applicata alla spedizione nel suo stato attuale. Ad esempio, una spedizione nello stato RefundApplied non può essere cancellata. |
ItemsNotInOrder | 404 | Elementi specificati in una chiamata al createShipment le operazioni non fanno parte dell'ordine specificato nella stessa chiamata. |
RegionNotSupported | 404 | L'ordine specificato proviene da un marketplace in cui il servizio Gestito dal venditore non è supportato. |
ResourceNotFound | 404 | La risorsa specificata (come ShipmentId o AmazonOrderId ) non esiste. |
ShippingServiceNotAvailable | 404 | Il servizio di spedizione specificato non esiste o non è disponibile per i parametri specificati (ad esempio, Peso). |
Updated about 24 hours ago