Förbered förfrågan
Att beräkna en landed cost API kräver flera indata, som vi har organiserat i arbetsflöden. När du är klar kan du göra en enda förfrågan för att returnera en landed cost baserat på leveransdestination, artiklar i kundvagnen och fraktinformation.
Varje arbetsflöde har sina egna nödvändiga indata. GraphQL tillåter dig att skicka mer data än nödvändigt, men endast vissa fält är obligatoriska för att returnera en landed cost. Dessa är tydligt markerade i vår API-referens för att se alla möjliga fält.
Observera att vissa fält är villkorligt obligatoriska om du vill att din beräkning ska vara garanterad.
Nedan har vi sammanställt alla fält som krävs för att beräkna en garanterad landed cost. Se till att denna information ingår innan du gör din förfrågan.
Obligatoriska indata för garanterade beräkningar
partyCreateWorkflowInputpartyCreateWorkflowInput identifierar de involverade parterna och deras platser. Se hela schemat i vår GraphQL API referens. Obligatoriska fält är:
locationadministrativeAreaCode: Koden för delstat eller provins, i två bokstäver. Endast obligatorisk 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 postkoden för adressen.
personemail: E-postadressen till personen.firstName: Förnamnet på personen.lastName: Efternamnet på personen.phone: Telefonnummer till personen.
typeDESTINATION: Informationen omlocation&personför leveransdestinationen.ORIGIN: Informationen omlocationför avsändningsursprunget.personkopplad till avsändningsursprunget är inte obligatorisk.
itemCreateWorkflowInputitemCreateWorkflowInput 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: Värdet av en enhet av produkten som skickas, innan den multipliceras med kvantitet. Observera att detta skiljer sig från den postala definitionen av en post. Om artikelnsquantityär 1, är detta den totala kostnaden för artikeln. Om artikelnsquantityär >1, kommer API:et att multiplicera artikelnsamountmed artikelnsquantityför att få den totala kostnaden för linjeartikeln. Sätt inte det totala priset för alla enheter av artikeln iamount.currencyCode: Valutakoden för artikelns belopp.quantity: Antalet av artikeln. API:et kommer att multiplicera artikelnsamountmed artikelnsquantityför att få den totala kostnaden för linjeartikeln.countryOfOrigin: Landet där artikeln tillverkades.- Ett av följande (vilket som helst som ställts in 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.
cartonsCreateWorkflowInputcartonsCreateWorkflowInput kräver endast själva indata. Se hela schemat i vår GraphQL API referens för att se alla värden som kan skickas. Det är viktigt att ange dimensionerna och vikten av kartongen om Zonos beräknar fraktkostnaden.
shipmentRatingCreateWorkflowInputDetta arbetsflöde används när du redan känner till fraktjänsten 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 fraktjänstens servicenivå som används i fraktbedömningen.
landedCostWorkFlowInputlandedCostWorkFlowInput dikterar preferenser för landed cost beräkningen. Se hela schemat i vår GraphQL API referens. Obligatoriska fält är:
calculationMethod: Anger din preferens för hur du planerar att skicka: DDP (förbetalda avgifter och skatter) eller DAP (antingen avgifter och skatter betalas vid leverans, eller om ett remitteringssystem gäller, betalas de 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ändaDAPistä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, om 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
shipmentRatingCreateWorkflowmedshipmentRatingCalculateWorkflow. Lägg tillcartonizeWorkflowom du vill att Zonos ska sortera dina artiklar i kartonger innan du hittar fraktkostnaden (används för dimensionell vikt).
HS-kod och fraktalternativ
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 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.
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 ange detta till oss.
För att låta Zonos beräkna fraktkostnader, använd shipmentRatingCalculateWorkflow. Fraktalternativen som returneras i det beräknade fraktsvaret kommer att korrelera med de serviceLevels du har tilldelat fraktprofiler i Dashboard.
Felsökning: Om du förväntar dig en
serviceLeveli svaret men den inte visas, vänligen säkerställ attserviceLevelär aktiverad och stöds av denmethoddu 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 dimensional weight.
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.
Begär en landed cost via API
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.
Använd denna begäran när du låter Zonos beräkna fraktkostnaden som en del av Landed Cost begäran. Vi kommer då att beräkna tullar och skatter på frakt om de bedöms av destinationslandet.
Mutation
mutation CalculateLandedCost(
$parties: [PartyCreateWorkflowInput!]!
$items: [ItemCreateWorkflowInput!]!
$landedCostConfig: LandedCostWorkFlowInput!
) {
partyCreateWorkflow(input: $parties) {
type
id
organization
}
itemCreateWorkflow(input: $items) {
id
amount
productId
}
cartonizeWorkflow {
id
type
items {
item {
id
}
}
}
shipmentRatingCalculateWorkflow {
id
amount
}
landedCostCalculateWorkflow(input: $landedCostConfig) {
id
duties {
amount
currency
note
}
taxes {
amount
currency
note
}
fees {
amount
currency
note
}
}
}
Variabler
{
"parties": [
{
"location": {
"administrativeArea": "Utah",
"administrativeAreaCode": "UT",
"countryCode": "US",
"line1": "345 N 2450 E",
"line2": "#151",
"locality": "St George",
"postalCode": "84790"
},
"type": "ORIGIN"
},
{
"location": {
"administrativeArea": "New South Wales",
"administrativeAreaCode": "NSW",
"countryCode": "AU",
"line1": "123 George Street",
"line2": "Apartment 5B",
"locality": "Sydney",
"postalCode": "2000"
},
"person": {
"email": "aussie.customer@gmail.com",
"firstName": "James",
"lastName": "Thompson",
"phone": "+61412345678",
"companyName": "Sydney Trading Co",
"metadata": { "key": "customer_type", "value": "premium" }
},
"type": "DESTINATION"
},
{
"type": "PAYOR",
"location": {
"administrativeArea": "Victoria",
"administrativeAreaCode": "VIC",
"countryCode": "AU",
"latitude": -37.8136,
"line1": "456 Collins Street",
"line2": "Suite 12",
"locality": "Melbourne",
"longitude": 144.9631,
"postalCode": "3000"
},
"person": {
"email": "billing@reallysilkstore.com.au",
"firstName": "Sarah",
"lastName": "Mitchell",
"phone": "+61398765432",
"companyName": "Really Silk Store",
"metadata": { "key": "billing_contact", "value": "primary" }
}
}
],
"items": [
{
"amount": 120,
"currencyCode": "USD",
"countryOfOrigin": "US",
"quantity": 1,
"productId": "productId1",
"hsCode": null,
"description": "leather wallet",
"measurements": [
{ "type": "WIDTH", "value": 1, "unitOfMeasure": "CENTIMETER" },
{ "type": "LENGTH", "value": 2, "unitOfMeasure": "CENTIMETER" },
{ "type": "HEIGHT", "value": 4, "unitOfMeasure": "CENTIMETER" },
{ "type": "WEIGHT", "value": 1, "unitOfMeasure": "POUND" }
]
},
{
"amount": 55,
"currencyCode": "USD",
"countryOfOrigin": "US",
"quantity": 1,
"productId": "productId2",
"hsCode": "6206.30",
"description": "t-shirt",
"measurements": [
{ "type": "WIDTH", "value": 4, "unitOfMeasure": "CENTIMETER" },
{ "type": "LENGTH", "value": 4, "unitOfMeasure": "CENTIMETER" },
{ "type": "HEIGHT", "value": 5, "unitOfMeasure": "CENTIMETER" },
{ "type": "WEIGHT", "value": 1.5, "unitOfMeasure": "POUND" }
]
}
],
"landedCostConfig": {
"calculationMethod": "DDP_PREFERRED",
"endUse": "NOT_FOR_RESALE",
"tariffRate": "ZONOS_PREFERRED"
}
}
Svar
{
"data": {
"partyCreateWorkflow": [
{
"type": "ORIGIN",
"id": "party_01044774-758f-4021-b8dd-e17d97609647",
"organization": "organization_1ff864e0-58cf-4efa-9031-e8c323cf4c0e"
},
{
"type": "DESTINATION",
"id": "party_0m6wgfjmhbnf2",
"organization": "organization_1ff864e0-58cf-4efa-9031-e8c323cf4c0e"
},
{
"type": "PAYOR",
"id": "party_0m6wgfjn5bnfh",
"organization": "organization_1ff864e0-58cf-4efa-9031-e8c323cf4c0e"
}
],
"itemCreateWorkflow": [
{
"id": "item_0m6wgfjpfw9fz",
"amount": 120,
"productId": "productId1"
},
{
"id": "item_0m6wgfjpfw9g0",
"amount": 55,
"productId": "productId2"
}
],
"cartonizeWorkflow": [
{
"id": "carton_0m6wgfme53aqb",
"type": "PACKAGE",
"items": [
{
"item": {
"id": "item_0m6wgfjpfw9g0"
}
},
{
"item": {
"id": "item_0m6wgfjpfw9fz"
}
}
]
}
],
"shipmentRatingCalculateWorkflow": [
{
"id": "shipment_rating_0m6wgfmghvhh1",
"amount": 24.8864
}
],
"landedCostCalculateWorkflow": [
{
"id": "landed_cost_7730b476-1307-4d14-8f76-3b37bd162054",
"duties": [],
"taxes": [
{
"amount": 5.5,
"currency": "USD",
"note": null
},
{
"amount": 0.7822,
"currency": "USD",
"note": null
},
{
"amount": 12,
"currency": "USD",
"note": null
},
{
"amount": 1.7065,
"currency": "USD",
"note": null
}
],
"fees": [
{
"amount": 0,
"currency": "USD",
"note": null
},
{
"amount": 0.8,
"currency": "USD",
"note": null
},
{
"amount": 0,
"currency": "USD",
"note": null
}
]
}
]
},
"errors": []
}
Nästa steg: Skapa en beställning
Efter att du har beräknat en landed cost och fått landedCostId från API-svaret, bör du skapa en beställning för att slutföra transaktionen i Zonos-systemet. Använd mutationerna orderCreate och skicka in landedCostId från din offert. Lär dig mer om att skapa beställningar.
Begär en landed cost i Dashboard
Du kan också beräkna landed costs direkt i Zonos Dashboard utan att använda API:et. Detta är användbart för att testa beräkningar, träna ditt team eller få snabba offerter för kundförfrågningar.
Dashboard använder samma API-slutpunkter som beskrivs ovan, så resultaten kommer att matcha vad du skulle få från direkta API-anrop. Detta gör det till ett utmärkt sätt att validera din API-integration eller utforska hur olika indata påverkar beräkningarna.
Använda Dashboard-kalkylatorn
Med landed cost-kalkylatorn i Dashboard kan du få offerter med beräknade fraktkostnader, skapa offerter med kända fraktkostnader eller bearbeta flera offerter i bulk.
Använd detta flöde när du känner till frakttjänstnivån och kostnaden för din försändelse.
- Gå till Dashboard → Orders → Quotes
- Klicka på Ny offert
- Valfritt — Ändra platsen för din avsändaradress
- Välj ett Destination land från rullgardinsmenyn
- Ange fraktbeloppet
- Tjänstnivån är valfri; att lägga till den gör att vi kan beräkna tillämpliga fraktavgifter
- Lägg till artikeluppgifterna för försändelsen
- När du anger en beskrivning klassificerar vi automatiskt classify produkten och genererar en HS-kod
- Du kan skriva över den genererade HS-koden om det behövs
- För flera artiklar, klicka på Spara och lägg till en annan. Annars, klicka på Spara
- Valfritt — Klicka på Fler alternativ för att ändra:
- Försäljningstyp till För vidareförsäljning
- Leveransläge till Leveransavgifter obetalda
- Klicka på Få offert
- För att göra ändringar, klicka på Redigera formulär och ändra eventuella detaljer
- Klicka på Få offert igen för att uppdatera
En landed cost-offert kommer att visas till höger, inklusive produkt-, frakt- och importkostnader. Expandera offerten för att se detaljerade uppdelningar av artiklar, frakt, tullar, skatter och avgifter. Alla offerter sparas på offertsidan för framtida referens.
Redigera befintliga offerter: Klicka på Offert igen i det övre högra hörnet för att ändra en befintlig offert istället för att börja om från början.
Fördelar med att använda Dashboard
- Ingen kodning krävs — Generera offerter genom ett användarvänligt gränssnitt
- Teamträning — Hjälp icke-tekniska teammedlemmar att förstå landed cost-komponenter
- API-validering — Verifiera att din API-integration ger förväntade resultat
- Kundsupport — Snabbt generera offerter för kundförfrågningar
- Bulkbehandling — Hantera flera beräkningar effektivt (kommer snart)
Dashboard-offerter inkluderar samma detaljerade uppdelningar som finns tillgängliga via API:et, vilket gör det till ett utmärkt komplement till din automatiserade integration.
Beräkna en landed cost
Beräkna avgifter, skatter och avgifter med GraphQL.GraphQL
Zonos beräknar den totala landed cost för internationella försändelser—inklusive avgifter, skatter och eventuella ytterligare avgifter som tas ut av tull, mäklare eller transportörer. I de flesta fall garanterar vi dessa beräkningar genom att betala den slutliga räkningen själva och ta ut exakt det vi beräknade. I vissa fall kan du använda vår landed cost utan garanti, vilket innebär att du tar ansvar för eventuell skillnad mellan vår beräkning och de faktiska avgifterna.