변환 입력 준비하기
GraphQL API를 통해 landed cost를 계산하는 것은 여러 단계를 포함합니다. 우리는 이러한 단계를 워크플로우로 정리했습니다. 최종적으로 배송 목적지, 장바구니의 항목 및 배송을 기반으로 landed cost를 얻기 위한 모든 정보를 갖게 됩니다.
각 워크플로우는 특정 입력 데이터가 필요합니다. GraphQL은 필수 정보보다 더 많은 정보를 포함할 수 있도록 허용합니다. 가능한 모든 필드를 보려면 전체 API 참조를 참조하세요. 필수 필드는 API 참조에서 해당 표시가 되어 있으며, 이 표시는 기능에 필요한 필드에만 적용됩니다. 보장을 사용할 때는 몇 가지 추가 필드가 필요합니다.
아래에는 보장된 landed cost를 계산하기 위한 모든 필수 필드를 나열했습니다. 이 정보를 준비해 주세요.
보장된 계산을 위한 필수 입력
partyCreateWorkflowInput
partyCreateWorkflowInput
은 관련 당사자와 그들의 위치를 식별합니다. 전체 스키마는 GraphQL API 참조에서 확인할 수 있습니다. 필수 필드는 다음과 같습니다:
location
administrativeAreaCode
: 주 또는 지방 코드, 두 글자. CA 및 BR에만 필요합니다.countryCode
: 국가의 두 글자 ISO 코드.line1
: 주소의 첫 번째 줄.postalCode
: 주소의 우편번호 또는 우편 코드.
person
email
: 사람의 이메일 주소.firstName
: 사람의 이름.lastName
: 사람의 성.phone
: 사람의 전화번호.
type
DESTINATION
: 배송 목적지에 대한location
및person
정보.ORIGIN
: 배송 출발지에 대한location
정보. 배송 출발지와 관련된person
은 필요하지 않습니다.
itemCreateWorkflowInput
itemCreateWorkflowInput
은 장바구니의 항목을 나열합니다. 많은 선택적 필드가 있지만 (모든 가능성은 API 참조에서 확인), 아래 필드는 필수입니다.
amount
: 항목의 가격.currencyCode
: 항목 금액의 통화 코드.quantity
: 항목의 수량.- 다음 중 하나 (귀하의 항목 키 기본 설정으로 설정된 것). 귀하의 항목 키는 카탈로그에 저장된 정보를 장바구니의 항목과 연결하며 라벨 생성 시 사용됩니다.)
productId
: 항목의 제품 ID.sku
: 항목의 SKU.
measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
)는 배송 등급을 받을 때 항목을 상자화하려는 경우에만 필요합니다.
shipmentRatingCreateWorkflowInput
이 워크플로우는 배송 서비스와 비용을 이미 알고 있을 때 사용됩니다. Zonos가 활성화된 서비스에 대한 비용을 계산하도록 하려면 이 워크플로우를 교체하고 대신 shipmentRatingCalculateWorkflow
를 사용하세요.
shipmentRatingCreateWorkflowInput
은 배송 비용을 전달합니다. 전체 스키마는 GraphQL API 참조에서 확인할 수 있습니다. 필수 필드는 다음과 같습니다:
amount
: 배송 비용.currencyCode
: 배송 비용의 통화 코드.serviceLevelCode
: 배송 등급에 사용된 배송 서비스 수준을 나타내는 코드.
landedCostWorkflowInput
landedCostWorkflowInput
은 landed cost 계산에 대한 기본 설정을 지정합니다. 전체 스키마는 GraphQL API 참조에서 확인할 수 있습니다. 필수 필드는 다음과 같습니다:
calculationMethod
: 배송 계획에 대한 기본 설정을 나타냅니다: DDP (세금 및 관세 선불) 또는 DAP (세금 및 관세가 배송 시 지불되거나, 송금 계획이 적용되는 경우 세금 ID를 통해 송금됨).- landed cost 보장을 사용하는 경우 이 값은 항상
DDP_PREFERRED
여야 하며, 가능할 경우 DDP 견적을 제공하고 DDP가 허용되지 않는 경우 DAP 견적을 제공합니다. 대신DAP
를 사용하면 보장이 더 이상 제공되지 않을 수 있으며, 이는 일반적으로 배송 시 세금 및 관세가 지불되기 때문입니다.
- landed cost 보장을 사용하는 경우 이 값은 항상
endUse
: 상품이 다른 비즈니스에 판매되는지 (FOR_RESALE
) 또는 소비자와의 최종 사용을 위한 것인지 (NOT_FOR_RESALE
)를 나타냅니다.tariffRate
: 이 견적에 적용될 수 있는 여러 세율이 있는 경우 Zonos가 세율을 계산하는 방법을 나타냅니다. * landed cost 보장을 사용할 때는 항상ZONOS_PREFERRED
여야 합니다.
계산된 배송 추가: Zonos가 배송 비용을 계산하도록 하려면
shipmentRatingCreateWorkflow
를shipmentRatingCalculateWorkflow
로 교체하세요. Zonos가 배송 비용을 찾기 전에 항목을 상자화하려면cartonizeWorkflow
를 추가하세요 (이는 치수 중량에 사용됨).
landed cost 계산 시 옵션
GraphQL은 요청을 원하는 대로 사용자 정의할 수 있는 유연성을 제공합니다. 요청에 HS 코드와 배송 비용을 포함하는 방법에는 몇 가지 옵션이 있습니다.
HS 코드
HS 코드는 세금률에 영향을 미치므로 필수입니다. 각 항목에 대한 HS 코드를 전달하거나 Classify가 이를 생성하도록 할 수 있습니다.
Zonos는 제품별 HS 코드를 사용하는 것을 강력히 권장합니다. 이는 보다 정확한 landed cost 견적을 제공합니다. HS 코드를 알고 있다면, itemCreateWorkflow
동안 각 item
에 대한 hsCode
를 전달하십시오.
HS 코드를 전달하면 Zonos는 landed cost 견적을 받을 때 이를 즉시 검증합니다. 제공한 HS 코드가 유효하지 않은 경우(즉, 존재하지 않는 경우), Zonos는 귀하의 항목을 즉시 재-classify하고 제공한 HS 코드 대신 새롭고 유효한 HS 코드를 사용합니다.
제품에 대한 HS 코드 생성에 도움이 필요하면 Zonos Classify 및 분류 요청하기에 대해 알아보십시오.
Zonos에 hsCode
를 전달하지 않으면, 먼저 Zonos Catalog를 확인하여 귀하의 항목에 대한 HS 코드가 저장되어 있는지 확인합니다. 저장되어 있지 않으면, Classify를 호출하여 다음 itemCreateWorkflow
제품 세부 정보 필드를 기반으로 landed cost 계산을 위한 분류를 생성합니다: description
, category
, 및 material
. 제품 세부 정보 필드가 Classify's 신뢰도 점수를 기반으로 분류를 생성하기에 충분히 상세하지 않은 경우, 귀하의 상점에 할당된 기본 HS 코드가 사용됩니다.
기본적으로 hsCode
를 제공하지 않고 Classify를 호출하면, Classify가 생성한 hsCode
는 응답에 반환되지 않으며, 귀하의 landed cost 생성을 위해 내부적으로만 사용됩니다. 그러나 Classify 구독이 있는 경우, 귀하의 Classify's 응답에 landed cost의 HS 코드가 반환됩니다.
배송 비용
배송 서비스 수준과 비용은 세금, 세금 및 수수료에 영향을 미치므로 필수입니다. Zonos는 배송 비용을 계산할 수 있으며, 이를 저희에게 전달할 수도 있습니다.
Zonos가 배송 비용을 계산하도록 하려면 shipmentRatingCalculateWorkflow
를 사용하십시오. 계산된 배송 응답에 반환된 배송 옵션은 대시보드에서 배송 프로필에 할당한 serviceLevels
와 연관됩니다.
문제 해결: 응답에서
serviceLevel
을 기대하고 있지만 표시되지 않는 경우, 선택한method
가 지원하는serviceLevel
이 활성화되어 있는지 확인하십시오.
배송 비용을 찾기 전에 Zonos가 귀하의 항목을 정렬하도록 하려면 (입력이 없는) cartonizeWorkflow
를 추가하십시오. 이는 치수 중량에 사용됩니다.
배송에 대한 serviceLevel
과 amount
를 알고 있다면, 요청의 shipmentRatingCreateWorkflow
부분에 이를 전달할 수 있습니다. 우리는 이러한 값을 사용하여 관련 운송업체 수수료를 계산하고 응답에 반환합니다.
변형 전송
필수 입력 데이터를 모두 준비한 후, 선택한 클라이언트 라이브러리 또는 도구를 사용하여 API 엔드포인트에 GraphQL 변형을 전송하십시오. 변형을 구성하는 방법에 대한 몇 가지 예는 다음과 같습니다.
변형
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
}
}
}
응답
{
"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"
}
]
}
]
}
}
landed cost 계산하기
GraphQL을 사용하여 세금, 관세 및 수수료를 계산하세요.GraphQL
Zonos는 배송에 대한 총 landed cost를 계산합니다. 여기에는 세금, 관세 및 세관, 중개인 또는 배송업체가 부과할 수 있는 추가 수수료가 포함됩니다. 우리는 종종 이러한 계산을 보장하기 위해 세금, 관세 및 수수료 청구서를 직접 지불하며, 고객에게는 우리가 계산한 정확한 금액을 청구합니다. 드물게, 우리의 계산을 보장 없이 사용할 수 있으며, 이 경우 고객이 우리의 계산과 세금 및 관세 청구서 간의 차이를 부담하게 됩니다.