Bereid de invoer voor de mutatie voor
Het berekenen van een landed cost via de GraphQL API omvat meerdere stappen; we hebben deze stappen georganiseerd in workflows. Aan het einde heeft u alles wat u nodig heeft om één oproep te doen om een landed cost te krijgen op basis van de verzendbestemming, artikelen in de winkelwagentje en verzending.
Elke workflow heeft specifieke invoergegevens nodig. GraphQL stelt u in staat om meer informatie op te nemen dan vereist; raadpleeg onze volledige API-referentie om alle mogelijke velden te zien. Vereiste velden zijn als zodanig gemarkeerd in onze API-referentie, maar deze markering geldt alleen voor velden die vereist zijn voor functionaliteit. Een paar extra velden zijn vereist wanneer u onze garantie gebruikt.
Hieronder hebben we alle vereiste velden voor het berekenen van een gegarandeerde landed cost opgesomd. Zorg ervoor dat u deze informatie bij de hand heeft.
Vereiste invoer voor gegarandeerde berekeningen
partyCreateWorkflowInput
De partyCreateWorkflowInput
identificeert de betrokken partijen en hun locaties. Bekijk het volledige schema in onze GraphQL API referentie. Vereiste velden zijn:
location
administrativeAreaCode
: De staat of provinciecode, in twee letters. Alleen vereist voor CA en BR.countryCode
: De twee-letterige ISO-code van het land.line1
: De eerste regel van het adres.postalCode
: De postcode of ZIP-code van het adres.
person
email
: Het e-mailadres van de persoon.firstName
: De voornaam van de persoon.lastName
: De achternaam van de persoon.phone
: Het telefoonnummer van de persoon.
type
DESTINATION
: Delocation
&person
informatie voor de verzendbestemming.ORIGIN
: Delocation
informatie voor de verzend oorsprong. Deperson
die aan de verzend oorsprong is gekoppeld, is niet vereist.
itemCreateWorkflowInput
De itemCreateWorkflowInput
somt de artikelen in het winkelwagentje op. Er zijn veel optionele velden (zie alle mogelijkheden in onze API-referentie), maar de onderstaande velden zijn vereist.
amount
: De prijs van het artikel.currencyCode
: De valutacode voor het artikelbedrag.quantity
: De hoeveelheid van het artikel.- Een van de volgende (deze wordt ingesteld als uw artikel sleutel voorkeur. Uw artikel sleutel verbindt informatie die in de Catalogus is opgeslagen met het artikel in het winkelwagentje en wordt gebruikt tijdens het aanmaken van labels.)
productId
: De product-ID van het artikel.sku
: De SKU van het artikel.
De measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
) zijn alleen vereist als u uw artikelen wilt cartoniseren bij het verkrijgen van een verzendbeoordeling.
shipmentRatingCreateWorkflowInput
Dit workflow wordt gebruikt wanneer u al weet welke verzendservice en kosten; als u wilt dat Zonos deze kosten voor u berekent voor de diensten die u heeft ingeschakeld, vervang dan deze workflow door de shipmentRatingCalculateWorkflow
.
De shipmentRatingCreateWorkflowInput
communiceert de verzendkosten. Bekijk het volledige schema in onze GraphQL API referentie. Vereiste velden zijn:
amount
: De verzendkosten.currencyCode
: De valutacode van de verzendkosten.serviceLevelCode
: De code die het niveau van de verzendservice aangeeft dat is gebruikt in de verzendbeoordeling.
landedCostWorkflowInput
De landedCostWorkflowInput
bepaalt de voorkeuren voor de berekening van de landed cost. Bekijk het volledige schema in onze GraphQL API referentie. Vereiste velden zijn:
calculationMethod
: Geeft uw voorkeur aan voor hoe u van plan bent te verzenden: DDP (vooraf betaalde douanerechten en belastingen) of DAP (ofwel douanerechten en belastingen worden bij levering betaald, of als er een remittance-schema van toepassing is, worden ze betaald via een belasting-ID).- Als u onze landed cost garantie gebruikt, moet deze waarde altijd
DDP_PREFERRED
zijn, wat een DDP-offerte biedt wanneer mogelijk en een DAP-offerte als een DDP-offerte niet is toegestaan. Het gebruik vanDAP
in plaats daarvan kan ertoe leiden dat de landed costs niet langer worden gegarandeerd, aangezien dit doorgaans resulteert in douanerechten en belastingen die bij levering worden betaald.
- Als u onze landed cost garantie gebruikt, moet deze waarde altijd
endUse
: Geeft aan of de goederen worden verkocht aan een ander bedrijf (FOR_RESALE
) of voor eindgebruik met een consument (NOT_FOR_RESALE
).tariffRate
: Geeft de methode aan die Zonos moet gebruiken om de tariefpercentages voor deze offerte te berekenen, in het geval dat er een reeks tariefpercentages van toepassing kan zijn. *Bij het gebruik van onze landed cost garantie, moet dit altijdZONOS_PREFERRED
zijn.
Voeg berekende verzending toe: Als u wilt dat Zonos de verzendkosten voor u berekent, vervang dan de
shipmentRatingCreateWorkflow
door deshipmentRatingCalculateWorkflow
. Voeg decartonizeWorkflow
toe als u wilt dat Zonos uw artikelen in dozen sorteert voordat de verzendkosten worden berekend (gebruikt voor dimensiewaarde).
Opties bij het berekenen van een landed cost
GraphQL biedt je de flexibiliteit om de aanvraag naar jouw voorkeur aan te passen. Er zijn een paar opties voor hoe je HS-codes en verzendkosten in de aanvraag opneemt.
HS-codes
HS-codes beïnvloeden de douanerechten en zijn daarom vereist. Je kunt de HS-code voor elk item doorgeven of Classify ze laten genereren.
Zonos raadt ten zeerste aan om productspecifieke HS-codes te gebruiken, omdat dit leidt tot een nauwkeuriger landed cost-offerte. Als je je HS-codes kent, geef dan de hsCode
voor elk item
door tijdens de itemCreateWorkflow
.
Als je een HS-code doorgeeft, zal Zonos deze on-the-fly valideren bij het verkrijgen van een landed cost-offerte. Als de HS-code die je hebt opgegeven ongeldig is (wat betekent dat deze niet bestaat), zal Zonos je item on-the-fly her-classify classificeren en de nieuwe, geldige HS-code gebruiken in plaats van de door jou opgegeven.
Als je hulp nodig hebt bij het genereren van HS-codes voor je producten, leer dan over Zonos Classify en hoe je een classificatie kunt aanvragen.
Als je Zonos geen hsCode
doorgeeft, zullen we eerst Zonos Catalog controleren om te zien of je een HS-code voor je item hebt opgeslagen. Als je dat niet hebt, zullen we Classify aanroepen om een classificatie te genereren die je landed cost-berekening aandrijft op basis van de volgende itemCreateWorkflow
productdetailvelden: description
, category
en material
. Als je productdetailvelden niet gedetailleerd genoeg zijn om een classificatie te genereren op basis van Classify's confidence scoring, zal de standaard HS-code die aan je winkel is toegewezen, worden gebruikt.
Standaard, als je geen hsCode
opgeeft en we Classify aanroepen, zal de hsCode
die door Classify is gegenereerd, niet in de respons worden teruggegeven, omdat deze alleen intern zal worden gebruikt om je landed cost te genereren. Als je echter een Classify-abonnement hebt, zullen we Classify's HS-code in je landed cost-respons teruggeven.
Verzendkosten
Zowel het verzendserviceniveau als de kosten beïnvloeden de douanerechten, belastingen en vergoedingen en zijn daarom vereist. Zonos kan verzendkosten berekenen of je kunt deze aan ons doorgeven.
Om Zonos verzendkosten te laten berekenen, gebruik je de shipmentRatingCalculateWorkflow
. De verzendopties die in de berekende verzendrespons worden teruggegeven, zullen overeenkomen met de serviceLevels
die je aan verzendprofielen in Dashboard hebt toegewezen.
Probleemoplossing: Als je een
serviceLevel
in de respons verwacht, maar deze niet verschijnt, zorg er dan voor dat hetserviceLevel
is ingeschakeld en wordt ondersteund door demethod
die je hebt geselecteerd.
Voeg de cartonizeWorkflow
(die geen invoer heeft) toe als je wilt dat Zonos je items sorteert in kartons voordat de verzendkosten worden berekend (gebruikt voor dimensiewaarde.
Als je het serviceLevel
en het amount
voor een zending kent, kun je deze doorgeven in het shipmentRatingCreateWorkflow
-gedeelte van de aanvraag. We zullen die waarden gebruiken om eventuele bijbehorende vervoerskosten te berekenen en deze in de respons terug te geven.
Stuur de mutatie
Zodra je de vereiste invoergegevens hebt, stuur je de GraphQL-mutatie naar de API-eindpunt met behulp van je gekozen clientbibliotheek of -tool. Hier zijn enkele voorbeelden van hoe je de mutatie kunt structureren.
Mutatie
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
}
}
}
Antwoord
{
"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"
}
]
}
]
}
}
Bereken een landed cost
Bereken douanerechten, belastingen en vergoedingen met GraphQL.
GraphQL
Zonos berekent de totale landed cost voor zendingen, inclusief douanerechten, belastingen en eventuele extra vergoedingen die door douane, makelaars of vervoerders in rekening kunnen worden gebracht. We garanderen deze berekeningen vaak door de douanerechten, belasting en vergoedingen zelf te betalen terwijl we u precies in rekening brengen wat we berekenen. In zeldzame gevallen kunnen onze berekeningen worden gebruikt zonder onze garantie, waarbij u het verschil tussen onze berekening en de douanerechten en belastingrekening op zich neemt.