Prepara l'input della mutazione
Calcolare un landed cost tramite l'API GraphQL comporta più passaggi; abbiamo organizzato questi passaggi in flussi di lavoro. Alla fine, avrai tutto il necessario per effettuare una chiamata per ottenere un landed cost in base alla destinazione di spedizione, agli articoli nel carrello e alla spedizione.
Ogni flusso di lavoro richiede dati di input specifici. GraphQL ti consente di includere più informazioni di quelle richieste; ti preghiamo di fare riferimento alla nostra documentazione API per vedere tutti i campi possibili. I campi richiesti sono contrassegnati come tali nella nostra documentazione API, ma questo contrassegno si applica solo ai campi necessari per la funzionalità. Alcuni campi aggiuntivi sono richiesti quando si utilizza la nostra garanzia.
Di seguito, abbiamo elencato tutti i campi richiesti per calcolare un garantito landed cost. Assicurati di avere queste informazioni pronte.
Input richiesti per calcoli garantiti
partyCreateWorkflowInput
Il partyCreateWorkflowInput
identifica le parti coinvolte e le loro posizioni. Visualizza lo schema completo nella nostra documentazione API GraphQL riferimento. I campi richiesti sono:
location
administrativeAreaCode
: Il codice dello stato o della provincia, in due lettere. Richiesto solo per CA e BR.countryCode
: Il codice ISO a due lettere del paese.line1
: La prima riga dell'indirizzo.postalCode
: Il codice postale o il CAP dell'indirizzo.
person
email
: L'indirizzo email della persona.firstName
: Il nome della persona.lastName
: Il cognome della persona.phone
: Il numero di telefono della persona.
type
DESTINATION
: Le informazioni sulocation
&person
per la destinazione di spedizione.ORIGIN
: Le informazioni sulocation
per l'origine della spedizione. Laperson
associata all'origine della spedizione non è richiesta.
itemCreateWorkflowInput
Il itemCreateWorkflowInput
elenca gli articoli nel carrello. Ci sono molti campi opzionali (vedi tutte le possibilità nella nostra documentazione API), ma i campi di seguito sono richiesti.
amount
: Il prezzo dell'articolo.currencyCode
: Il codice della valuta per l'importo dell'articolo.quantity
: La quantità dell'articolo.- Uno dei seguenti (quello impostato come tua preferenza per la chiave dell'articolo. La tua chiave dell'articolo collega le informazioni memorizzate nel Catalogo all'articolo nel carrello e viene utilizzata durante la creazione dell'etichetta.)
productId
: L'ID del prodotto dell'articolo.sku
: Lo SKU dell'articolo.
Le measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
) sono richieste solo se desideri cartonizzare i tuoi articoli quando ottieni una valutazione di spedizione.
shipmentRatingCreateWorkflowInput
Questo flusso di lavoro viene utilizzato quando conosci già il servizio di spedizione e il costo; se desideri che Zonos calcoli questi costi per i servizi che hai abilitato, sostituisci questo flusso di lavoro e utilizza invece il shipmentRatingCalculateWorkflow
.
Il shipmentRatingCreateWorkflowInput
comunica il costo di spedizione. Visualizza lo schema completo nella nostra documentazione API GraphQL riferimento. I campi richiesti sono:
amount
: Il costo di spedizione.currencyCode
: Il codice della valuta del costo di spedizione.serviceLevelCode
: Il codice che indica il livello di servizio di spedizione utilizzato nella valutazione di spedizione.
landedCostWorkflowInput
Il landedCostWorkflowInput
determina le preferenze per il calcolo del landed cost. Visualizza lo schema completo nella nostra documentazione API GraphQL riferimento. I campi richiesti sono:
calculationMethod
: Indica la tua preferenza per come intendi spedire: DDP (dazi e tasse prepagati) o DAP (i dazi e le tasse sono pagati alla consegna, o se si applica uno schema di rimborso, vengono rimborsati tramite un codice fiscale).- Se utilizzi la nostra garanzia di landed cost, questo valore dovrebbe sempre essere
DDP_PREFERRED
, che fornirà un preventivo DDP quando possibile e un preventivo DAP se non è consentito un DDP. Utilizzare inveceDAP
potrebbe comportare che i costi di sbarco non siano più garantiti, poiché ciò comporta tipicamente dazi e tasse pagati alla consegna.
- Se utilizzi la nostra garanzia di landed cost, questo valore dovrebbe sempre essere
endUse
: Indica se le merci sono vendute a un'altra azienda (FOR_RESALE
) o per uso finale con un consumatore (NOT_FOR_RESALE
).tariffRate
: Indica il metodo che Zonos dovrebbe utilizzare per calcolare le tariffe doganali per questo preventivo, nel caso ci sia un intervallo di tariffe doganali che potrebbero essere applicate. *Quando si utilizza la nostra garanzia di landed cost, questo dovrebbe sempre essereZONOS_PREFERRED
.
Aggiungi spedizione calcolata: Se desideri che Zonos calcoli il costo di spedizione per te, sostituisci il
shipmentRatingCreateWorkflow
con ilshipmentRatingCalculateWorkflow
. Aggiungi ilcartonizeWorkflow
se desideri che Zonos ordini i tuoi articoli in cartoni prima di trovare il costo di spedizione (utilizzato per il peso dimensionale).
Opzioni quando si calcola un landed cost
GraphQL ti offre la flessibilità di personalizzare la richiesta secondo le tue preferenze. Ci sono un paio di opzioni su come includere codici HS e costi di spedizione nella richiesta.
Codici HS
I codici HS influenzano le tariffe doganali e sono quindi richiesti. Puoi passare il codice HS per ciascun articolo o lasciare che Classify li generi.
Zonos raccomanda vivamente di utilizzare codici HS specifici per prodotto poiché ciò porta a una quotazione più accurata di landed cost. Se conosci i tuoi codici HS, passa l'hsCode
per ciascun item
durante il itemCreateWorkflow
.
Se passi un codice HS, Zonos lo convaliderà al volo quando otterrai una quotazione di landed cost. Se il codice HS fornito è non valido (significa che non esiste), Zonos ri-classify il tuo articolo al volo e utilizzerà il nuovo codice HS valido invece di quello fornito.
Se hai bisogno di aiuto per generare codici HS per i tuoi prodotti, scopri di più su Zonos Classify e su come richiedere una classificazione.
Se non passi a Zonos un hsCode
, controlleremo prima il Zonos Catalog per vedere se hai un codice HS memorizzato per il tuo articolo. Se non ce l'hai, chiameremo Classify per generare una classificazione per alimentare il tuo calcolo di landed cost basato sui seguenti campi di dettaglio del prodotto del itemCreateWorkflow
: description
, category
e material
. Se i tuoi campi di dettaglio del prodotto non sono sufficientemente dettagliati per generare una classificazione basata sul punteggio di fiducia di Classify's, verrà utilizzato il codice HS predefinito assegnato al tuo negozio.
Per impostazione predefinita, se non fornisci un hsCode
e chiamiamo Classify, il hsCode
generato da Classify non verrà restituito nella risposta poiché sarà utilizzato solo internamente per generare il tuo landed cost. Tuttavia, se hai un abbonamento a Classify, restituiremo il codice HS di Classify's nella tua risposta di landed cost.
Costo di spedizione
Sia il livello di servizio di spedizione che il suo costo influenzano i dazi, le tasse e le spese e sono quindi richiesti. Zonos può calcolare la spedizione o puoi passarci queste informazioni.
Per far calcolare a Zonos i costi di spedizione, utilizza il shipmentRatingCalculateWorkflow
. Le opzioni di spedizione restituite nella risposta di spedizione calcolata corrisponderanno ai serviceLevels
che hai assegnato ai profili di spedizione nel Dashboard.
Risoluzione dei problemi: Se ti aspetti un
serviceLevel
nella risposta ma non appare, assicurati che ilserviceLevel
sia abilitato e sia supportato dalmethod
che hai selezionato.
Aggiungi il cartonizeWorkflow
(che non ha input) se desideri che Zonos ordini i tuoi articoli in cartoni prima di trovare il costo di spedizione (utilizzato per peso dimensionale.
Se conosci il serviceLevel
e l'amount
per una spedizione, puoi passarli nella porzione shipmentRatingCreateWorkflow
della richiesta. Utilizzeremo quei valori per calcolare eventuali spese associate al corriere e restituirle nella risposta.
Invia la mutazione
Una volta che hai i dati di input richiesti, invia la mutazione GraphQL all'endpoint API utilizzando la libreria o lo strumento client scelto. Ecco alcuni esempi di come puoi strutturare la mutazione.
Mutazione
mutation {
partyCreateWorkflow(
input: [
{
location: {
administrativeArea: "Utah"
administrativeAreaCode: "UT"
countryCode: US
line1: "345 N 2450 E"
line2: "#151"
locality: "St George"
postalCode: "84790"
}
type: ORIGIN
}
{
location: {
administrativeArea: "BC"
administrativeAreaCode: "BC"
countryCode: CA
line1: "27 Sussex Dr."
locality: "Victoria"
postalCode: "V8T 2V9"
}
person: {
email: "test@gmail.com"
firstName: "firstName"
lastName: "lastName"
phone: "5022303021"
companyName: "goProTest"
metadata: { key: "key", value: "value" }
}
type: DESTINATION
}
{
type: PAYOR
location: {
administrativeArea: "ON"
administrativeAreaCode: "ON"
countryCode: CA
latitude: 1.2
line1: "asdf"
line2: "asdf"
locality: "locality"
longitude: 3423.2
postalCode: "M4C 1A1"
}
person: {
email: "test@gmail.com"
firstName: "firstName"
lastName: "lastName"
phone: "5022303021"
companyName: "goProTest"
metadata: { key: "key", value: "value" }
}
}
]
) {
type
id
organization
}
itemCreateWorkflow(
input: [
{
amount: 69
currencyCode: USD
countryOfOrigin: US
quantity: 1
productId: "productId"
hsCode: "1006.30"
description: "description"
measurements: [
{ type: WIDTH, value: 2, unitOfMeasure: CENTIMETER }
{ type: WEIGHT, value: 2, unitOfMeasure: POUND }
]
}
{
amount: 62
currencyCode: CAD
countryOfOrigin: US
hsCode: "1006.30"
quantity: 1
productId: "productId2"
description: "description2"
measurements: [
{ type: WIDTH, value: 2, unitOfMeasure: CENTIMETER }
{ type: WEIGHT, value: 2, unitOfMeasure: POUND }
]
}
]
) {
id
amount
}
cartonizeWorkflow {
id
type
items {
item {
id
}
}
}
shipmentRatingCalculateWorkflow {
id
amount
}
landedCostCalculateWorkflow(
input: { endUse: FOR_RESALE, method: DAP, tariffRate: ZONOS_PREFERRED }
) {
id
duties {
amount
currency
}
taxes {
amount
currency
}
fees {
amount
currency
}
}
}
Risposta
{
"data": {
"partyCreateWorkflow": [
{
"type": "ORIGIN",
"id": "party_749959ae-b9ff-4de4-b4ac-59cc990c53ba",
"organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
},
{
"type": "DESTINATION",
"id": "party_cd7ff245-76b6-464f-a7bf-151ebe1f8833",
"organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
},
{
"type": "PAYOR",
"id": "party_00e63a9e-9735-44d9-b129-3b3e76c5df25",
"organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
}
],
"itemCreateWorkflow": [
{
"id": "item_eb27f071-de8b-4578-9db9-ae69aaf9be3e",
"amount": 69
},
{
"id": "item_fffa8ba8-cc8d-4e13-bed6-55044a71c115",
"amount": 62
}
],
"cartonizeWorkflow": [
{
"id": "carton_b34b29c1-ce27-464b-b91b-df8e4a696312",
"type": "PACKAGE",
"items": [
{
"item": {
"id": "item_eb27f071-de8b-4578-9db9-ae69aaf9be3e"
}
},
{
"item": {
"id": "item_fffa8ba8-cc8d-4e13-bed6-55044a71c115"
}
}
]
}
],
"shipmentRatingCalculateWorkflow": [
{
"id": "shipment_rating_96787309-9510-43cc-b4fa-c341ff80f4cc",
"amount": 173.2
},
{
"id": "shipment_rating_b0ccb109-7794-4c7c-b5cc-e2cfbbc5c8ac",
"amount": 190.1
}
],
"landedCostCalculateWorkflow": [
{
"id": "landed_cost_74d3ce11-bff2-4326-9e6f-368e03ac88b4",
"duties": [
{
"amount": 0.0,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
}
],
"taxes": [
{
"amount": 3.45,
"currency": "USD"
},
{
"amount": 3.1,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
}
],
"fees": [
{
"amount": 0.13,
"currency": "USD"
},
{
"amount": 1.44,
"currency": "USD"
}
]
},
{
"id": "landed_cost_7bbfd354-028c-457f-8c8e-c81bb8fa09a0",
"duties": [
{
"amount": 0.0,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
}
],
"taxes": [
{
"amount": 3.45,
"currency": "USD"
},
{
"amount": 3.1,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
}
],
"fees": [
{
"amount": 0.13,
"currency": "USD"
},
{
"amount": 1.44,
"currency": "USD"
}
]
}
]
}
}
Calcola un landed cost
Calcola dazi, tasse e commissioni con GraphQL.GraphQL
Zonos calcola il totale del landed cost per le spedizioni, che include dazi, tasse e eventuali commissioni aggiuntive che le dogane, i broker o i vettori di spedizione possono addebitare. Spesso garantiamo questi calcoli pagando noi stessi la bolletta di dazi, tasse e commissioni, addebitandoti esattamente ciò che calcoliamo. In rari casi, i nostri calcoli possono essere utilizzati senza la nostra garanzia, dove ti assumi qualsiasi differenza tra il nostro calcolo e la bolletta di dazi e tasse.