DOCS

Calculate landed cost graphql

/

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ć naliczane 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.

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 na podstawie miejsca wysyłki, przedmiotów w koszyku i wysyłki.

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 o location i person dla miejsca wysyłki.
    • ORIGIN: Informacje o location 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.

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życie DAP zamiast tego może skutkować brakiem gwarancji kosztów lądowania, ponieważ zazwyczaj skutkuje to opłatami celnymi i podatkami płaconymi przy dostawie.
  • 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 celnych dla tej wyceny, w przypadku gdy istnieje zakres stawek celnych, które mogą być zastosowane. *Kiedy korzystasz z naszej gwarancji landed cost, to powinno zawsze być ZONOS_PREFERRED.

Dodaj obliczoną wysyłkę: Jeśli chcesz, aby Zonos obliczył koszt wysyłki za Ciebie, zamień shipmentRatingCreateWorkflow na shipmentRatingCalculateWorkflow. Dodaj cartonizeWorkflow, jeśli chcesz, aby Zonos sortował 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, jak możesz 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ł.

Przekaż kody HS dla każdego przedmiotu

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.

Generuj kody HS z Classify

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ółów produktu w itemCreateWorkflow: description, category i material. Jeśli Twoje pola szczegółów 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 to nam przekazać.

Oblicz koszty wysyłki

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ę, że serviceLevel 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.

Przekaż koszty wysyłki

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ę.

Obliczona wysyłka
Ręczne wysyłanie

Mutacja

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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ź

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
{
  "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"
          }
        ]
      }
    ]
  }
}

Czy ta strona była pomocna?