DOCS

Tính toán landed cost - GraphQL

Tính toán một landed cost

Tính toán thuế, phí và lệ phí với GraphQL.

GraphQL

Zonos tính toán tổng chi phí landed cost cho các lô hàng, bao gồm thuế, phí và bất kỳ khoản phí bổ sung nào mà hải quan, đại lý hoặc các hãng vận chuyển có thể tính. Chúng tôi thường đảm bảo các tính toán này bằng cách thanh toán hóa đơn thuế, phí và lệ phí bản thân trong khi tính phí chính xác mà chúng tôi tính toán. Trong trường hợp hiếm, các tính toán của chúng tôi có thể được sử dụng mà không cần đến sự đảm bảo của chúng tôi, nơi bạn sẽ chịu trách nhiệm cho bất kỳ sự khác biệt nào giữa tính toán của chúng tôi và hóa đơn thuế và phí.

Chuẩn bị đầu vào cho mutation 

Việc tính toán một landed cost qua GraphQL API bao gồm nhiều bước; chúng tôi đã tổ chức những bước này thành các luồng công việc. Cuối cùng, bạn sẽ có tất cả những gì cần để thực hiện một cuộc gọi để nhận một landed cost dựa trên điểm đến vận chuyển, các mặt hàng trong giỏ hàng và vận chuyển.

Mỗi luồng công việc cần dữ liệu đầu vào cụ thể. GraphQL cho phép bạn bao gồm nhiều thông tin hơn so với yêu cầu; vui lòng tham khảo toàn bộ tài liệu tham khảo API của chúng tôi để xem tất cả các trường có thể. Các trường bắt buộc được đánh dấu như vậy trong tài liệu tham khảo API của chúng tôi, nhưng đánh dấu này chỉ áp dụng cho các trường bắt buộc cho chức năng. Một số trường bổ sung cần thiết khi sử dụng đảm bảo của chúng tôi.

Dưới đây, chúng tôi đã liệt kê tất cả các trường bắt buộc cho việc tính toán một landed cost đảm bảo. Hãy chắc chắn rằng bạn đã chuẩn bị thông tin này.

Đầu vào bắt buộc cho các tính toán đảm bảo

partyCreateWorkflowInput

partyCreateWorkflowInput xác định các bên liên quan và vị trí của họ. Xem toàn bộ schema trong tài liệu tham khảo GraphQL API của chúng tôi. Các trường bắt buộc là:

  • location
    • administrativeAreaCode: Mã bang hoặc tỉnh, bằng hai chữ cái. Chỉ bắt buộc cho CA và BR.
    • countryCode: Mã ISO hai chữ cái của quốc gia.
    • line1: Dòng đầu tiên của địa chỉ.
    • postalCode: Mã bưu chính hoặc mã zip của địa chỉ.
  • person
    • email: Địa chỉ email của người đó.
    • firstName: Tên đầu tiên của người đó.
    • lastName: Họ của người đó.
    • phone: Số điện thoại của người đó.
  • type
    • DESTINATION: Thông tin location & person cho điểm đến vận chuyển.
    • ORIGIN: Thông tin location cho điểm xuất phát vận chuyển. Người liên quan đến điểm xuất phát vận chuyển không bắt buộc.
itemCreateWorkflowInput

itemCreateWorkflowInput liệt kê các mặt hàng trong giỏ hàng. Có nhiều trường tùy chọn (xem tất cả các khả năng trong tài liệu tham khảo API của chúng tôi), nhưng các trường dưới đây là bắt buộc.

  • amount: Giá của mặt hàng.
  • currencyCode: Mã tiền tệ cho số tiền mặt hàng.
  • quantity: Số lượng của mặt hàng.
  • Một trong các trường sau (tùy thuộc vào ưu tiên khóa mặt hàng của bạn. Khóa mặt hàng của bạn kết nối thông tin được lưu trữ trong Catalog với mặt hàng trong giỏ hàng và được sử dụng trong quá trình tạo nhãn.)
    • productId: ID sản phẩm của mặt hàng.
    • sku: SKU của mặt hàng.

Các measurements (WEIGHT, LENGTH, WIDTH, HEIGHT) chỉ bắt buộc nếu bạn muốn đóng gói vào thùng các mặt hàng của mình khi nhận xét vận chuyển.

cartonsCreateWorkflowInput

cartonsCreateWorkflowInput chỉ yêu cầu đầu vào chính nó. Xem toàn bộ schema trong tài liệu tham khảo GraphQL API của chúng tôi để xem tất cả các giá trị có thể được truyền. Quan trọng là truyền kích thước và trọng lượng của thùng nếu Zonos đang tính toán chi phí vận chuyển.

shipmentRatingCreateWorkflowInput

Luồng công việc này được sử dụng khi bạn đã biết dịch vụ vận chuyển và chi phí; nếu bạn muốn Zonos tính toán các chi phí cho các dịch vụ bạn đã kích hoạt, hãy thay thế luồng công việc này bằng shipmentRatingCalculateWorkflow.

shipmentRatingCreateWorkflowInput truyền thông tin chi phí vận chuyển. Xem toàn bộ schema trong tài liệu tham khảo GraphQL API của chúng tôi. Các trường bắt buộc là:

  • amount: Chi phí vận chuyển.
  • currencyCode: Mã tiền tệ của chi phí vận chuyển.
  • serviceLevelCode: Mã chỉ định cấp độ dịch vụ vận chuyển được sử dụng trong việc đánh giá vận chuyển.
landedCostWorkflowInput

landedCostWorkflowInput xác định các ưu tiên cho việc tính toán landed cost. Xem toàn bộ schema trong tài liệu tham khảo GraphQL API của chúng tôi. Các trường bắt buộc là:

  • calculationMethod: Chỉ ra sở thích của bạn về cách bạn dự định vận chuyển: DDP (thuế và phí trả trước) hoặc DAP (hoặc thuế và phí được trả khi giao hàng, hoặc nếu áp dụng một chương trình chuyển tiền, chúng được chuyển qua một số thuế).
    • Nếu bạn sử dụng đảm bảo landed cost của chúng tôi, giá trị này luôn nên là DDP_PREFERRED, sẽ cung cấp báo giá DDP khi có thể và báo giá DAP nếu báo giá DDP không được phép. Sử dụng DAP thay vào đó có thể dẫn đến việc chi phí vận chuyển không còn được đảm bảo, vì điều này thường dẫn đến việc thuế và phí được trả khi giao hàng.
  • endUse: Chỉ ra liệu hàng hóa đang được bán cho một doanh nghiệp khác (FOR_RESALE) hay cho việc sử dụng cuối cùng với người tiêu dùng (NOT_FOR_RESALE).
  • tariffRate: Chỉ ra phương pháp mà Zonos nên sử dụng để tính toán tỷ lệ thuế cho báo giá này, trong trường hợp có một loạt các tỷ lệ thuế có thể được áp dụng. *Khi sử dụng đảm bảo landed cost của chúng tôi, giá trị này luôn nên là ZONOS_PREFERRED.

Thêm chi phí vận chuyển tính toán: Nếu bạn muốn Zonos tính toán chi phí vận chuyển cho bạn, thay thế shipmentRatingCreateWorkflow bằng shipmentRatingCalculateWorkflow. Thêm cartonizeWorkflow nếu bạn muốn Zonos sắp xếp các mặt hàng của bạn vào thùng trước khi tìm chi phí vận chuyển (được sử dụng cho trọng lượng kích thước).

Tùy chọn khi tính toán một landed cost

GraphQL mang đến cho bạn sự linh hoạt để tùy chỉnh yêu cầu theo sở thích của bạn. Có một vài tùy chọn cho cách bạn bao gồm mã HS và chi phí vận chuyển trong yêu cầu.

Mã HS

Mã HS ảnh hưởng đến tỷ lệ thuế và do đó là bắt buộc. Bạn có thể truyền mã HS cho từng mặt hàng hoặc để Classify tự động tạo chúng.

Truyền mã HS cho từng mặt hàng

Zonos rất khuyến khích sử dụng mã HS cụ thể cho sản phẩm vì điều này dẫn đến một báo giá landed cost chính xác hơn. Nếu bạn biết mã HS của mình, hãy truyền hsCode cho mỗi item trong quá trình itemCreateWorkflow.

Nếu bạn truyền một mã HS, Zonos sẽ xác thực nó ngay lập tức khi nhận được báo giá landed cost. Nếu mã HS bạn cung cấp không hợp lệ (có nghĩa là nó không tồn tại), Zonos sẽ tái-classify mặt hàng của bạn ngay lập tức và sử dụng mã HS mới, hợp lệ thay cho mã bạn đã cung cấp.

Nếu bạn cần trợ giúp trong việc tạo mã HS cho các sản phẩm của mình, hãy tìm hiểu về Zonos Classify và cách yêu cầu phân loại.

Tạo mã HS với Classify

Nếu bạn không truyền Zonos một hsCode, chúng tôi sẽ kiểm tra trước Zonos Catalog để xem liệu bạn có mã HS được lưu cho mặt hàng của mình hay không. Nếu không, chúng tôi sẽ gọi Classify để tạo một phân loại nhằm hỗ trợ tính toán landed cost của bạn dựa trên các trường chi tiết sản phẩm trong itemCreateWorkflow: description, category, và material. Nếu các trường chi tiết sản phẩm của bạn không đủ chi tiết để tạo một phân loại dựa trên điểm số độ tin cậy của Classify's, mã HS mặc định được gán cho cửa hàng của bạn sẽ được sử dụng.

Theo mặc định, nếu bạn không cung cấp một hsCode và chúng tôi gọi Classify, mã hsCode được tạo bởi Classify sẽ không được trả về trong phản hồi vì nó chỉ được sử dụng nội bộ để tạo ra landed cost của bạn. Tuy nhiên, nếu bạn có một đăng ký Classify, chúng tôi sẽ trả về mã HS của Classify's trong phản hồi landed cost của bạn.

Chi phí vận chuyển

Cả cấp độ dịch vụ vận chuyển và chi phí của nó đều ảnh hưởng đến thuế, phí và lệ phí và do đó là bắt buộc. Zonos có thể tính toán chi phí vận chuyển hoặc bạn có thể truyền điều này cho chúng tôi.

Tính toán chi phí vận chuyển

Để Zonos tính toán chi phí vận chuyển, hãy sử dụng shipmentRatingCalculateWorkflow. Các tùy chọn vận chuyển được trả về trong phản hồi tính toán chi phí vận chuyển sẽ tương ứng với các serviceLevels mà bạn đã gán cho các hồ sơ vận chuyển trong Dashboard.

Khắc phục sự cố: Nếu bạn đang mong đợi một serviceLevel trong phản hồi nhưng nó không xuất hiện, vui lòng đảm bảo rằng serviceLevel đã được kích hoạt và được hỗ trợ bởi method mà bạn đã chọn.

Thêm cartonizeWorkflow (không có đầu vào) nếu bạn muốn Zonos sắp xếp các mặt hàng của bạn vào các thùng trước khi tìm chi phí vận chuyển (được sử dụng cho trọng lượng kích thước.

Truyền chi phí vận chuyển

Nếu bạn biết serviceLevelamount cho một lô hàng, bạn có thể truyền những giá trị đó trong phần shipmentRatingCreateWorkflow của yêu cầu. Chúng tôi sẽ sử dụng những giá trị đó để tính toán bất kỳ phí vận chuyển liên quan nào và trả lại chúng trong phản hồi.

Gửi biến thể 

Khi bạn đã có dữ liệu đầu vào cần thiết, hãy gửi biến thể GraphQL đến điểm cuối API bằng cách sử dụng thư viện hoặc công cụ khách hàng mà bạn đã chọn. Dưới đây là một số ví dụ về cách bạn có thể cấu trúc biến thể.

Sử dụng yêu cầu này khi bạn đang để Zonos tính toán chi phí vận chuyển như một phần của yêu cầu Landed Cost. Chúng tôi sẽ tính toán thuế và phí trên chi phí vận chuyển nếu chúng được đánh giá bởi quốc gia đích.

Biến thể

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
    }
  }
}

Phản hồi

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"
          }
        ]
      }
    ]
  }
}

Trang này có hữu ích không?