Förbered mutationsinmatningen
Att beräkna en landed cost via GraphQL API involverar flera steg; vi har organiserat dessa steg i arbetsflöden. I slutet kommer du att ha allt du behöver för att göra ett samtal för att få en landed cost baserat på fraktdestinationen, artiklarna i kundvagnen och frakten.
Varje arbetsflöde behöver specifik indata. GraphQL tillåter dig att inkludera mer information än vad som krävs; vänligen hänvisa till vår fullständiga API-referens för att se alla möjliga fält. Obligatoriska fält är markerade som sådana i vår API-referens, men denna markering gäller endast fält som är nödvändiga för funktionalitet. Några ytterligare fält krävs när du använder vår garanti.
Nedan har vi listat alla obligatoriska fält för att beräkna en garanterad landed cost. Se till att du har denna information redo.
Obligatoriska inmatningar för garanterade beräkningar
partyCreateWorkflowInput
partyCreateWorkflowInput
identifierar de involverade parterna och deras platser. Se hela schemat i vår GraphQL API referens. Obligatoriska fält är:
location
administrativeAreaCode
: Koden för delstat eller provins, i två bokstäver. Endast nödvändigt för CA och BR.countryCode
: Den två-bokstäver ISO-koden för landet.line1
: Den första raden av adressen.postalCode
: Postnumret eller zip-koden för adressen.
person
email
: E-postadressen till personen.firstName
: Förnamnet på personen.lastName
: Efternamnet på personen.phone
: Telefonnummer till personen.
type
DESTINATION
:location
&person
information för fraktdestinationen.ORIGIN
:location
information för fraktursprunget.person
kopplad till fraktursprunget är inte nödvändig.
itemCreateWorkflowInput
itemCreateWorkflowInput
listar artiklarna i kundvagnen. Det finns många valfria fält (se alla möjligheter i vår API-referens), men fälten nedan är obligatoriska.
amount
: Priset på artikeln.currencyCode
: Valutakoden för artikelbeloppet.quantity
: Antalet av artikeln.- Ett av följande (vad som än är inställt som din artikelnyckelpreferens. Din artikelnyckel kopplar information som lagras i Katalog till artikeln i kundvagnen och används vid etikett skapande.)
productId
: Artikelns produkt-ID.sku
: Artikelns SKU.
measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
) är endast obligatoriska om du vill kartongisera dina artiklar när du får en fraktbedömning.
shipmentRatingCreateWorkflowInput
Detta arbetsflöde används när du redan känner till fraktservicen och kostnaden; om du vill att Zonos ska beräkna dessa kostnader för tjänster du har aktiverat, byt ut detta arbetsflöde och använd istället shipmentRatingCalculateWorkflow
.
shipmentRatingCreateWorkflowInput
kommunicerar fraktkostnaden. Se hela schemat i vår GraphQL API referens. Obligatoriska fält är:
amount
: Fraktkostnaden.currencyCode
: Valutakoden för fraktkostnaden.serviceLevelCode
: Koden som anger fraktservicenivån som används i fraktbedömningen.
landedCostWorkflowInput
landedCostWorkflowInput
dikterar preferenser för beräkningen av landed cost. Se hela schemat i vår GraphQL API referens. Obligatoriska fält är:
calculationMethod
: Anger din preferens för hur du planerar att frakta: DDP (förbetalda avgifter och skatter) eller DAP (antingen avgifter och skatter betalas vid leverans, eller om ett remitteringssystem gäller, de remitteras via ett skatte-ID).- Om du använder vår landed cost garanti, bör detta värde alltid vara
DDP_PREFERRED
, vilket ger en DDP-offert när det är möjligt och en DAP-offert om en DDP inte är tillåten. Att användaDAP
istället kan resultera i att landed costs inte längre garanteras, eftersom detta vanligtvis resulterar i avgifter och skatter som betalas vid leverans.
- Om du använder vår landed cost garanti, bör detta värde alltid vara
endUse
: Anger om varorna säljs till ett annat företag (FOR_RESALE
) eller för slutbruk med en konsument (NOT_FOR_RESALE
).tariffRate
: Anger metoden som Zonos bör använda för att beräkna tullsatserna för denna offert, i händelse av att det finns ett intervall av tullsatser som kan tillämpas. *När du använder vår landed cost garanti, bör detta alltid varaZONOS_PREFERRED
.
Lägg till beräknad frakt: Om du vill att Zonos ska beräkna fraktkostnaden för dig, ersätt
shipmentRatingCreateWorkflow
medshipmentRatingCalculateWorkflow
. Lägg tillcartonizeWorkflow
om du vill att Zonos ska sortera dina artiklar i kartonger innan fraktkostnaden beräknas (används för dimensionell vikt).
Alternativ vid beräkning av en landed cost
GraphQL ger dig flexibiliteten att anpassa begäran efter dina önskemål. Det finns ett par alternativ för hur du inkluderar HS-koder och fraktkostnader i begäran.
HS-koder
HS-koder påverkar tullsatser och är därför nödvändiga. Du kan ange HS-koden för varje artikel eller låta Classify generera dem.
Zonos rekommenderar starkt att använda produkt-specifika HS-koder eftersom det leder till en mer exakt landed cost offert. Om du känner till dina HS-koder, ange hsCode
för varje item
under itemCreateWorkflow
.
Om du anger en HS-kod kommer Zonos att validera den i realtid när du får en landed cost offert. Om HS-koden du angav är ogiltig (vilket betyder att den inte existerar), kommer Zonos att re-classify din artikel i realtid och använda den nya, giltiga HS-koden istället för den du angav.
Om du behöver hjälp med att generera HS-koder för dina produkter, lär dig om Zonos Classify och hur du begär en klassificering.
Om du inte anger Zonos en hsCode
, kommer vi först att kontrollera Zonos Katalog för att se om du har en HS-kod lagrad för din artikel. Om du inte har det, kommer vi att kalla på Classify för att generera en klassificering som driver din landed cost beräkning baserat på följande itemCreateWorkflow
produktdetaljfält: description
, category
, och material
. Om dina produktdetaljfält inte är tillräckligt detaljerade för att generera en klassificering baserat på Classify's confidence scoring, kommer den standard HS-kod som tilldelats din butik att användas.
Som standard, om du inte tillhandahåller en hsCode
och vi kallar på Classify, kommer den hsCode
som genereras av Classify inte att returneras i svaret eftersom den endast kommer att användas internt för att generera din landed cost. Men om du har en Classify prenumeration, kommer vi att returnera Classify's HS-kod i din landed cost respons.
Fraktkostnad
Både fraktservicenivån och dess kostnad påverkar tullar, skatter och avgifter och är därför nödvändiga. Zonos kan beräkna frakt eller så kan du skicka detta till oss.
För att låta Zonos beräkna fraktkostnader, använd shipmentRatingCalculateWorkflow
. Fraktalternativen som returneras i den beräknade fraktsvaret kommer att korrelera med de serviceLevels
du har tilldelat fraktprofiler i Dashboard.
Felsökning: Om du förväntar dig en
serviceLevel
i svaret men den inte visas, vänligen säkerställ attserviceLevel
är aktiverad och stöds av denmethod
du valt.
Lägg till cartonizeWorkflow
(som inte har några indata) om du vill att Zonos ska sortera dina artiklar i kartonger innan fraktkostnaden beräknas (används för dimensionell vikt.
Om du känner till serviceLevel
och amount
för en försändelse, kan du ange dessa i shipmentRatingCreateWorkflow
delen av begäran. Vi kommer att använda dessa värden för att beräkna eventuella associerade fraktavgifter och returnera dessa i svaret.
Skicka mutation
När du har den nödvändiga indata, skicka GraphQL-mutation till API-slutpunkten med hjälp av ditt valda klientbibliotek eller verktyg. Här är några exempel på hur du kan strukturera mutation.
Mutation
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
}
}
}
Svar
{
"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"
}
]
}
]
}
}
Beräkna en landed cost
Beräkna avgifter, skatter och avgifter med GraphQL.GraphQL
Zonos beräknar den totala landed cost för försändelser, vilket inkluderar avgifter, skatter och eventuella ytterligare avgifter som tull, mäklare eller fraktföretag kan ta ut. Vi garanterar ofta dessa beräkningar genom att betala avgiften, skatten och avgiftsräkningen själva medan vi debiterar dig exakt vad vi beräknar. I sällsynta fall kan våra beräkningar användas utan vår garanti, där du tar på dig eventuell skillnad mellan vår beräkning och avgifts- och skatteräkningen.