Подготовьте входные данные для мутации
Расчет landed cost через GraphQL API включает несколько этапов; мы организовали эти этапы в рабочие процессы. В конце концов, у вас будет все необходимое, чтобы сделать один вызов для получения landed cost на основе места назначения, товаров в корзине и доставки.
Каждый рабочий процесс требует конкретных входных данных. GraphQL позволяет вам включать больше информации, чем требуется; пожалуйста, обратитесь к нашему полному API справочнику, чтобы увидеть все возможные поля. Обязательные поля отмечены как таковые в нашем API справочнике, но эта отметка применяется только к полям, которые необходимы для функциональности. Несколько дополнительных полей требуются при использовании нашей гарантии.
Ниже мы перечислили все обязательные поля для расчета гарантированной landed cost. Убедитесь, что у вас есть эта информация под рукой.
Обязательные входные данные для гарантированных расчетов
partyCreateWorkflowInput
partyCreateWorkflowInput
определяет вовлеченные стороны и их местоположения. Просмотрите полную схему в нашем GraphQL API справочнике. Обязательные поля:
location
administrativeAreaCode
: Код штата или провинции, состоящий из двух букв. Требуется только для CA и BR.countryCode
: Двухбуквенный ISO код страны.line1
: Первая строка адреса.postalCode
: Почтовый индекс или ZIP-код адреса.
person
email
: Адрес электронной почты человека.firstName
: Имя человека.lastName
: Фамилия человека.phone
: Номер телефона человека.
type
DESTINATION
: Информация оlocation
иperson
для места назначения отправления.ORIGIN
: Информация оlocation
для места отправления. Информация оperson
, связанная с местом отправления, не требуется.
itemCreateWorkflowInput
itemCreateWorkflowInput
перечисляет товары в корзине. Существует множество необязательных полей (см. все возможности в нашем API справочнике), но ниже перечислены обязательные поля.
amount
: Цена товара.currencyCode
: Код валюты для суммы товара.quantity
: Количество товара.- Одно из следующих (в зависимости от вашего предпочтения ключа товара. Ваш ключ товара связывает информацию, хранящуюся в Каталоге, с товаром в корзине и используется при создании этикетки.)
productId
: Идентификатор товара.sku
: Артикул товара.
measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
) требуются только в том случае, если вы хотите упаковать ваши товары при получении оценки отправления.
shipmentRatingCreateWorkflowInput
Этот рабочий процесс используется, когда вы уже знаете стоимость и сервис доставки; если вы хотите, чтобы Zonos рассчитал эти расходы для услуг, которые вы включили, замените этот рабочий процесс на shipmentRatingCalculateWorkflow
.
shipmentRatingCreateWorkflowInput
передает стоимость доставки. Просмотрите полную схему в нашем GraphQL API справочнике. Обязательные поля:
amount
: Стоимость доставки.currencyCode
: Код валюты стоимости доставки.serviceLevelCode
: Код, указывающий уровень сервиса доставки, используемый в оценке отправления.
landedCostWorkflowInput
landedCostWorkflowInput
определяет предпочтения для расчета landed cost. Просмотрите полную схему в нашем GraphQL API справочнике. Обязательные поля:
calculationMethod
: Указывает ваше предпочтение по способу доставки: DDP (предоплаченные пошлины и налоги) или DAP (пошлины и налоги оплачиваются при доставке, или если применяется схема возврата, они возвращаются через налоговый идентификатор).- Если вы используете нашу гарантию landed cost, это значение всегда должно быть
DDP_PREFERRED
, что обеспечит DDP котировку, когда это возможно, и DAP котировку, если DDP не разрешен. ИспользованиеDAP
вместо этого может привести к тому, что расчеты по landed costs больше не будут гарантированы, так как это обычно приводит к оплате пошлин и налогов при доставке.
- Если вы используете нашу гарантию landed cost, это значение всегда должно быть
endUse
: Указывает, продаются ли товары другой компании (FOR_RESALE
) или для конечного использования потребителем (NOT_FOR_RESALE
).tariffRate
: Указывает метод, который Zonos должен использовать для расчета тарифных ставок для этой котировки, в случае если существует диапазон тарифных ставок, которые могут быть применены. *При использовании нашей гарантии landed cost это всегда должно бытьZONOS_PREFERRED
.
Добавьте рассчитанную доставку: Если вы хотите, чтобы Zonos рассчитал стоимость доставки для вас, замените
shipmentRatingCreateWorkflow
наshipmentRatingCalculateWorkflow
. ДобавьтеcartonizeWorkflow
, если вы хотите, чтобы Zonos сортировал ваши товары в коробки перед тем, как найти стоимость доставки (используется для объемного веса).
Опции при расчете landed cost
GraphQL предоставляет вам гибкость настраивать запрос по вашему усмотрению. Существует несколько вариантов того, как вы можете включить HS коды и стоимость доставки в запрос.
HS коды
HS коды влияют на ставки пошлин и, следовательно, обязательны. Вы можете передать HS код для каждого товара или позволить Classify сгенерировать их.
Zonos настоятельно рекомендует использовать специфические HS коды для товаров, так как это приводит к более точной оценке landed cost. Если вы знаете свои HS коды, передайте hsCode
для каждого item
во время itemCreateWorkflow
.
Если вы передаете HS код, Zonos будет проверять его в реальном времени при получении оценки landed cost. Если предоставленный вами HS код недействителен (то есть не существует), Zonos пере-classify ваш товар в реальном времени и использует новый, действительный HS код вместо предоставленного вами.
Если вам нужна помощь в генерации HS кодов для ваших товаров, узнайте о Zonos Classify и о том, как запросить классификацию.
Если вы не передаете Zonos hsCode
, мы сначала проверим Zonos Catalog, чтобы узнать, есть ли у вас сохраненный HS код для вашего товара. Если его нет, мы вызовем Classify, чтобы сгенерировать классификацию для расчета вашей landed cost на основе следующих полей деталей товара в itemCreateWorkflow
: description
, category
и material
. Если ваши поля деталей товара недостаточно подробны для генерации классификации на основе оценки уверенности Classify's, будет использован стандартный HS код, назначенный вашему магазину.
По умолчанию, если вы не предоставляете hsCode
и мы вызываем Classify, сгенерированный Classify hsCode
не будет возвращен в ответе, так как он будет использоваться только внутренне для генерации вашей landed cost. Однако, если у вас есть подписка на Classify, мы вернем HS код Classify's в вашем ответе на landed cost.
Стоимость доставки
Как уровень службы доставки, так и его стоимость влияют на пошлины, налоги и сборы и, следовательно, обязательны. Zonos может рассчитать стоимость доставки, или вы можете передать это нам.
Чтобы Zonos рассчитал стоимость доставки, используйте shipmentRatingCalculateWorkflow
. Опции доставки, возвращенные в ответе на расчет доставки, будут соответствовать serviceLevels
, которые вы назначили профилям доставки в Dashboard.
Устранение неполадок: Если вы ожидаете
serviceLevel
в ответе, но он не отображается, пожалуйста, убедитесь, чтоserviceLevel
включен и поддерживается выбранным вамиmethod
.
Добавьте cartonizeWorkflow
(который не имеет входных данных), если вы хотите, чтобы Zonos сортировал ваши товары в коробки перед тем, как найти стоимость доставки (используется для объемного веса.
Если вы знаете serviceLevel
и amount
для отправки, вы можете передать их в части запроса shipmentRatingCreateWorkflow
. Мы будем использовать эти значения для расчета любых связанных сборов перевозчика и вернем их в ответе.
Отправьте мутацию
Как только у вас есть необходимые входные данные, отправьте мутацию GraphQL на конечную точку API, используя выбранную вами библиотеку или инструмент. Вот несколько примеров того, как вы можете структурировать мутацию.
Мутация
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 для отправлений, которая включает пошлины, налоги и любые дополнительные сборы, которые могут взимать таможня, брокеры или перевозчики. Мы часто гарантируем эти расчеты, оплачивая сами пошлину, налог и сбор, взимая с вас ровно ту сумму, которую мы рассчитали. В редких случаях наши расчеты могут использоваться без нашей гарантии, когда вы берете на себя любую разницу между нашим расчетом и счетом на пошлину и налог.