Chuẩn bị đầu vào cho mutation
Tính toán một landed cost qua API GraphQL bao gồm nhiều bước; chúng tôi đã tổ chức các bước này thành các quy trình làm việc. Cuối cùng, bạn sẽ có mọi thứ bạn cần để thực hiện một cuộc gọi để có được 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 quy trình làm 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 yêu cầu; vui lòng tham khảo tài liệu tham khảo API đầy đủ 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 dấu này chỉ áp dụng cho các trường cần thiết cho chức năng. Một vài trường bổ sung là bắt buộc khi sử dụng sự đả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 để tính toán một landed cost được đảm bảo. Hãy chắc chắn rằng bạn đã sẵn sàng thông tin này.
Đầu vào bắt buộc cho các tính toán được đả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 API GraphQL của chúng tôi. Các trường bắt buộc là:
location
administrativeAreaCode
: Mã bang hoặc tỉnh, gồm 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 điện hoặc mã zip của địa chỉ.
person
email
: Địa chỉ email của người.firstName
: Tê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 tinlocation
&person
cho điểm đến vận chuyển.ORIGIN
: Thông tinlocation
cho nguồn gốc vận chuyển. Người liên quan đến nguồn gốc 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 của mặt hàng.quantity
: Số lượng của mặt hàng.- Một trong những điều sau (bất kỳ điều nào được đặt làm ư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 các mặt hàng của mình khi nhận được đánh giá lô hàng.
shipmentRatingCreateWorkflowInput
Quy trình làm 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í này cho các dịch vụ bạn đã kích hoạt, hãy thay thế quy trình làm việc này và sử dụng shipmentRatingCalculateWorkflow
thay thế.
shipmentRatingCreateWorkflowInput
truyền đạt chi phí vận chuyển. Xem toàn bộ schema trong tài liệu tham khảo API GraphQL 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 mức dịch vụ vận chuyển được sử dụng trong đánh giá lô hàng.
landedCostWorkflowInput
landedCostWorkflowInput
quy định các ưu tiên cho tính toán landed cost. Xem toàn bộ schema trong tài liệu tham khảo API GraphQL của chúng tôi. Các trường bắt buộc là:
calculationMethod
: Chỉ định ưu tiên 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 kế hoạch chuyển tiền, chúng được chuyển qua mã số thuế).- Nếu bạn sử dụng sự đảm bảo landed cost của chúng tôi, giá trị này luôn nên là
DDP_PREFERRED
, điều này sẽ cung cấp một báo giá DDP khi có thể và một báo giá DAP nếu một báo giá DDP không được phép. Sử dụngDAP
thay thế có thể dẫn đến chi phí hạ cánh không còn được đảm bảo, vì điều này thường dẫn đến thuế và phí được trả khi giao hàng.
- Nếu bạn sử dụng sự đảm bảo landed cost của chúng tôi, giá trị này luôn nên là
endUse
: Chỉ định nếu hàng hóa được bán cho một doanh nghiệp khác (FOR_RESALE
) hoặc cho sử dụng cuối cùng với người tiêu dùng (NOT_FOR_RESALE
).tariffRate
: Chỉ định phương pháp mà Zonos nên sử dụng để tính toán các mức thuế cho báo giá này, trong trường hợp có một phạm vi các mức thuế có thể được áp dụng. *Khi sử dụng sự đảm bảo landed cost của chúng tôi, điều 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, hãy thay thế
shipmentRatingCreateWorkflow
bằngshipmentRatingCalculateWorkflow
. ThêmcartonizeWorkflow
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).
Cá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à yêu cầu 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.
Zonos rất khuyến khích việc 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 vì 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.
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 ra 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à yêu cầu 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.
Để 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 chi phí vận chuyển đã tính 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ằngserviceLevel
đã được kích hoạt và được hỗ trợ bởimethod
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.
Nếu bạn biết serviceLevel
và amount
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ụ 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ể.
Biến thể
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
{
"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"
}
]
}
]
}
}
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 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, nhà môi giới hoặc nhà 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 tự thanh toán hóa đơn thuế, phí và lệ phí trong khi tính phí bạn chính xác những gì chúng tôi tính toán. Trong một số trường hợp hiếm hoi, các tính toán của chúng tôi có thể được sử dụng mà không có sự đảm bảo của chúng tôi, nơi bạn chịu bất kỳ sự chênh lệch nào giữa tính toán của chúng tôi và hóa đơn thuế và phí.