Przygotuj dane wejściowe do mutacji
Obliczanie landed cost za pomocą GraphQL API wymaga wielu kroków; zorganizowaliśmy te kroki w przepływy pracy. Na końcu będziesz miał wszystko, co potrzebne, aby wykonać jedno wywołanie, aby uzyskać landed cost w oparciu o miejsce wysyłki, przedmioty w koszyku i wysyłkę.
Każdy przepływ pracy wymaga specyficznych danych wejściowych. GraphQL pozwala na dołączenie większej ilości informacji niż wymagane; prosimy o zapoznanie się z naszą pełną referencją API, aby zobaczyć wszystkie możliwe pola. Wymagane pola są oznaczone w naszej referencji API, ale to oznaczenie dotyczy tylko pól, które są wymagane do funkcjonalności. Kilka dodatkowych pól jest wymaganych przy korzystaniu z naszej gwarancji.
Poniżej wymieniliśmy wszystkie wymagane pola do obliczenia gwarantowanego landed cost. Upewnij się, że masz te informacje gotowe.
Wymagane dane wejściowe do gwarantowanych obliczeń
partyCreateWorkflowInput
partyCreateWorkflowInput
identyfikuje zaangażowane strony i ich lokalizacje. Zobacz pełną strukturę w naszej referencji API GraphQL reference. Wymagane pola to:
location
administrativeAreaCode
: Kod stanu lub prowincji, w dwóch literach. Wymagane tylko dla CA i BR.countryCode
: Dwu literowy kod ISO kraju.line1
: Pierwsza linia adresu.postalCode
: Kod pocztowy lub kod ZIP adresu.
person
email
: Adres e-mail osoby.firstName
: Imię osoby.lastName
: Nazwisko osoby.phone
: Numer telefonu osoby.
type
DESTINATION
: Informacje olocation
iperson
dla miejsca wysyłki.ORIGIN
: Informacje olocation
dla miejsca pochodzenia wysyłki. Osoba związana z miejscem pochodzenia wysyłki nie jest wymagana.
itemCreateWorkflowInput
itemCreateWorkflowInput
wymienia przedmioty w koszyku. Istnieje wiele opcjonalnych pól (zobacz wszystkie możliwości w naszej referencji API), ale poniższe pola są wymagane.
amount
: Cena przedmiotu.currencyCode
: Kod waluty dla kwoty przedmiotu.quantity
: Ilość przedmiotu.- Jedno z poniższych (cokolwiek jest ustawione jako Twoje preferencje klucza przedmiotu. Twój klucz przedmiotu łączy informacje przechowywane w Katalogu z przedmiotem w koszyku i jest używany podczas tworzenia etykiety.)
productId
: ID produktu przedmiotu.sku
: SKU przedmiotu.
measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
) są wymagane tylko wtedy, gdy chcesz kartonować swoje przedmioty podczas uzyskiwania wyceny przesyłki.
cartonsCreateWorkflowInput
cartonsCreateWorkflowInput
wymaga tylko samego wejścia. Zobacz pełną strukturę w naszej referencji API GraphQL reference, aby zobaczyć wszystkie wartości, które można przekazać. Ważne jest, aby przekazać wymiary i wagę kartonu, jeśli Zonos oblicza koszt wysyłki.
shipmentRatingCreateWorkflowInput
Ten przepływ pracy jest używany, gdy już znasz usługę wysyłkową i koszt; jeśli chcesz, aby Zonos obliczył te koszty dla usług, które włączyłeś, zamień ten przepływ pracy na shipmentRatingCalculateWorkflow
.
shipmentRatingCreateWorkflowInput
komunikuje koszt wysyłki. Zobacz pełną strukturę w naszej referencji API GraphQL reference. Wymagane pola to:
amount
: Koszt wysyłki.currencyCode
: Kod waluty kosztu wysyłki.serviceLevelCode
: Kod wskazujący poziom usługi wysyłkowej używany w wycenie przesyłki.
landedCostWorkflowInput
landedCostWorkflowInput
określa preferencje dla obliczenia landed cost. Zobacz pełną strukturę w naszej referencji API GraphQL reference. Wymagane pola to:
calculationMethod
: Wskazuje Twoje preferencje dotyczące sposobu wysyłki: DDP (opłacone cła i podatki) lub DAP (cła i podatki są opłacane przy dostawie, lub jeśli stosuje się schemat zwrotu, są one zwracane za pomocą identyfikatora podatkowego).- Jeśli korzystasz z naszej gwarancji landed cost, ta wartość powinna zawsze być
DDP_PREFERRED
, co zapewni wycenę DDP, gdy to możliwe, a wycenę DAP, jeśli wycena DDP nie jest dozwolona. UżycieDAP
zamiast tego może spowodować, że koszty lądowania nie będą już gwarantowane, ponieważ zazwyczaj skutkuje to opłatami celnymi i podatkami płaconymi przy dostawie.
- Jeśli korzystasz z naszej gwarancji landed cost, ta wartość powinna zawsze być
endUse
: Wskazuje, czy towary są sprzedawane innej firmie (FOR_RESALE
), czy do użytku końcowego przez konsumenta (NOT_FOR_RESALE
).tariffRate
: Wskazuje metodę, którą Zonos powinien użyć do obliczenia stawek taryfowych dla tej wyceny, w przypadku gdy istnieje zakres stawek taryfowych, które mogą być zastosowane. *Kiedy korzystasz z naszej gwarancji landed cost, powinno to zawsze byćZONOS_PREFERRED
.
Dodaj obliczoną wysyłkę: Jeśli chcesz, aby Zonos obliczył koszt wysyłki dla Ciebie, zamień
shipmentRatingCreateWorkflow
nashipmentRatingCalculateWorkflow
. DodajcartonizeWorkflow
, jeśli chcesz, aby Zonos posortował Twoje przedmioty do kartonów przed znalezieniem kosztu wysyłki (używane do wagi wymiarowej).
Opcje przy obliczaniu landed cost
GraphQL daje Ci elastyczność w dostosowywaniu żądania do Twoich preferencji. Istnieje kilka opcji dotyczących tego, jak uwzględnić kody HS i koszty wysyłki w żądaniu.
Kody HS
Kody HS wpływają na stawki celne, dlatego są wymagane. Możesz przekazać kod HS dla każdego przedmiotu lub pozwolić, aby Classify je wygenerował.
Zonos zdecydowanie zaleca używanie specyficznych dla produktu kodów HS, ponieważ prowadzi to do dokładniejszej wyceny landed cost. Jeśli znasz swoje kody HS, przekaż hsCode
dla każdego item
podczas itemCreateWorkflow
.
Jeśli przekażesz kod HS, Zonos zweryfikuje go na bieżąco podczas uzyskiwania wyceny landed cost. Jeśli podany przez Ciebie kod HS jest nieprawidłowy (co oznacza, że nie istnieje), Zonos ponownie-classify sklasyfikuje Twój przedmiot na bieżąco i użyje nowego, ważnego kodu HS zamiast podanego przez Ciebie.
Jeśli potrzebujesz pomocy w generowaniu kodów HS dla swoich produktów, dowiedz się o Zonos Classify i jak zażądać klasyfikacji.
Jeśli nie przekażesz Zonos hsCode
, najpierw sprawdzimy Zonos Catalog, aby zobaczyć, czy masz zapisany kod HS dla swojego przedmiotu. Jeśli nie, zadzwonimy do Classify, aby wygenerować klasyfikację, która zasili Twoje obliczenia landed cost na podstawie następujących pól szczegółowych produktu w itemCreateWorkflow
: description
, category
i material
. Jeśli Twoje pola szczegółowe produktu nie są wystarczająco szczegółowe, aby wygenerować klasyfikację na podstawie oceny pewności Classify's, użyty zostanie domyślny kod HS przypisany do Twojego sklepu.
Domyślnie, jeśli nie dostarczysz hsCode
i zadzwonimy do Classify, kod hsCode
wygenerowany przez Classify nie zostanie zwrócony w odpowiedzi, ponieważ będzie wykorzystywany tylko wewnętrznie do generowania Twojego landed cost. Jednak jeśli masz subskrypcję Classify, zwrócimy kod HS Classify's w odpowiedzi na Twoje landed cost.
Koszt wysyłki
Zarówno poziom usługi wysyłkowej, jak i jej koszt wpływają na cła, podatki i opłaty, dlatego są wymagane. Zonos może obliczyć koszty wysyłki lub możesz przekazać je nam.
Aby Zonos obliczył koszty wysyłki, użyj shipmentRatingCalculateWorkflow
. Opcje wysyłki zwrócone w obliczonej odpowiedzi na wysyłkę będą odpowiadać serviceLevels
, które przypisałeś do profili wysyłkowych w Dashboard.
Rozwiązywanie problemów: Jeśli oczekujesz
serviceLevel
w odpowiedzi, ale nie pojawia się, upewnij się, żeserviceLevel
jest włączony i jest obsługiwany przez wybranąmethod
.
Dodaj cartonizeWorkflow
(który nie ma żadnych wejść), jeśli chcesz, aby Zonos posortował Twoje przedmioty do kartonów przed znalezieniem kosztu wysyłki (używane do wagi wymiarowej.
Jeśli znasz serviceLevel
i amount
dla przesyłki, możesz je przekazać w części shipmentRatingCreateWorkflow
żądania. Użyjemy tych wartości do obliczenia wszelkich związanych opłat przewoźnika i zwrócimy je w odpowiedzi.
Wyślij mutację
Gdy masz wymagane dane wejściowe, wyślij mutację GraphQL do punktu końcowego API, używając wybranej biblioteki lub narzędzia klienckiego. Oto kilka przykładów, jak możesz zbudować mutację.
Użyj tego żądania, gdy chcesz, aby Zonos obliczył koszt wysyłki jako część żądania Landed Cost. Następnie obliczymy cła i podatki od wysyłki, jeśli są one naliczane przez kraj docelowy.
Mutacja
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
}
}
}
Odpowiedź
{
"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"
}
]
}
]
}
}
Oblicz landed cost
Oblicz cła, podatki i opłaty za pomocą GraphQL.GraphQL
Zonos oblicza całkowity landed cost dla przesyłek, który obejmuje cła, podatki oraz wszelkie dodatkowe opłaty, które mogą być pobierane przez urzędy celne, brokerów lub przewoźników. Często gwarantujemy te obliczenia, płacąc rachunek za cło, podatek i opłatę sami, pobierając od Ciebie dokładnie to, co obliczamy. W rzadkich przypadkach nasze obliczenia mogą być używane bez naszej gwarancji, w których to Ty bierzesz na siebie różnicę między naszym obliczeniem a rachunkiem za cło i podatek.