Эндпоинты
Запрос расценок на доставку
POST | https://api.iglobalstores.com/2.0/shipping-quotes
- Создайте новый запрос на расценки на доставку для товаров в корзине, который включает информацию о импортных пошлинах и налогах, а также информацию о проверке ограничений на товары.
HTTPS запрос
Поле | Примечания |
---|---|
HTTP метод | POST |
URL эндпоинта | https://api.iglobalstores.com/2.0/shipping-quotes |
Протокол | HTTPS |
Формат сообщения | JSON |
Заголовок Accept HTTP | Accept: application/json |
Заголовок HTTP токена безопасности | serviceToken: your-test-token-valueДобавьте заголовок к вашему HTTPS запросу с именем serviceToken и значением вашего тестового токена безопасности API. (Свяжитесь с вашим менеджером по аккаунтам для получения этого токена) |
Заголовок Content-Type HTTP | Content-Type: application/jsonПоскольку вы будете отправлять данные JSON на сервис, добавьте заголовок к вашему HTTPS запросу с именем Content-Type и значением application/json |
JSON КЛЮЧ/ЗНАЧЕНИЕ ПАРЫ в теле запроса
Формат сообщения: JSON
Пример запроса
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
{
"boxCount": null,
"items": [
{
"cartItemId": 1,
"detailedDescription": "description including options, material content, etc",
"category": "sunglasses",
"productId": "17898-675234",
"sku": "oakley-123",
"unitPrice": 199.0,
"quantity": 1,
"length": 2.5,
"width": 6.5,
"height": 2.5,
"dimensionalUnits": null,
"weight": 4,
"weightUnits": "OZ",
"hsCode": null,
"brandName": "Oakley",
"countryOfOrigin": "CN"
},
{
"cartItemId": 2,
"detailedDescription": "description including options, material content, etc",
"category": "sunglasses",
"productId": "17898-675235",
"sku": "oakley-125",
"unitPrice": 179.0,
"quantity": 1,
"length": 2.5,
"width": 6.5,
"height": 2.5,
"dimensionalUnits": null,
"weight": 4,
"weightUnits": "OZ",
"hsCode": null,
"brandName": "Oakley",
"countryOfOrigin": "CN"
}
],
"shippingAmountOverride": null,
"shipFromAddress": null,
"shipToAddress": {
"name": "John Doe",
"address1": "123 S West Elm St",
"address2": null,
"address3": null,
"city": "Calgary",
"state": "Alberta",
"stateCode": "AB",
"postalCode": "T2P 5G8",
"countryCode": "CA"
}
}
Определения JSON запроса
Поле | Примечания |
---|---|
boxCount | Это поле описывает коробки, которые будут использоваться для отправки заказа. Не ожидается, что продавец знает это на момент заказа; однако, если это известно, его можно передать в следующем конкретном формате.Пример значения: 22x15x15(1),8x8x4(2),32x22x14(1)Формат: Список размеров коробок и количества, разделенных запятыми. В приведенном выше примере всего 4 коробки. Первая коробка в списке будет длиной 22 дюйма, шириной 15 дюймов и высотой 15 дюймов. Будет использоваться только одна коробка этого размера. Будет две коробки размером 8x8x4 дюйма. Можно передавать одинаковый размер коробки несколько раз, если это удобно для вас, например: "22x15x15(1),22x15x15(1)", что означает 2 коробки размером 22x15x15 дюймов. |
items REQUIRED | Список карт элементов |
items[index].brandName | Название бренда конкретного товара поможет нашему правиловому движку лучше определить, применяется ли ограничение к товару для страны назначения. Даже если название бренда товара соответствует или не соответствует конкретному ограничению, наш правиловой движок будет использовать артикул товара и/или productId для лучшего определения, подпадает ли товар под ограничение в страну назначения. Пожалуйста, укажите название бренда, если оно доступно.Примеры значений: "Oakley" или "Nike" или null |
items[index].cartItemId REQUIRED | Это поле обязательно для идентификации товара, конкретно в списке товаров. Это может быть простым значением индекса. Мы будем использовать этот cartItemId для идентификации товара, если он ограничен в JSON-ответе. Убедитесь, что вы можете идентифицировать тот же товар в вашей корзине по этому cartItemId , который вы передаете нам.Примеры значений: 1 или 2 или 3 |
items[index].category | Категории продуктов - конкретный продукт, частью которого является товар. Категория поможет нашему правиловому движку лучше определить, применяется ли ограничение к товару для страны назначения. Даже если категория товара соответствует или не соответствует конкретному ограничению, наш правиловой движок будет использовать артикул товара и/или productId для лучшего определения, подпадает ли товар под ограничение в страну назначения.Формат: Список категорий, разделенных вертикальной чертой. Каждое название категории может состоять из одного или нескольких слов. Если товар принадлежит более чем к одной категории, пожалуйста, укажите их обе, разделив вертикальной чертой "".Примеры значений "Солнечные очки" или "Вечерние аксессуарыСумки" |
items[index].countryOfOrigin | Страна происхождения — это страна, в которой был изготовлен товар или из которой он изначально поступил. Страна происхождения поможет нашему движку правил лучше определить, применимо ли ограничение к товару для страны назначения. Некоторые страны не допускают определенные виды товаров из других конкретных стран. Примеры значений: “CN” для Китая или “US” для Соединенных Штатов или null |
items[index].detailedDescription REQUIRED | Это поле представляет собой просто текст, но должно содержать как можно больше информации о приобретаемом товаре. Например, полное название и код товара, если применимо, цвет или другие выбранные опции, состав материала и любой текст описания, который у вас есть для товара. Существуют различные типы импортных ограничений в иностранные страны, такие как кожаная обувь в Италию. Иногда единственный способ выявить эти ограниченные товары — это через detailedDescription . Примечание: даже если detailedDescription товара текстуально совпадает или не совпадает с конкретным ограничением, наш движок правил будет использовать SKU товара и/или productId , чтобы лучше решить, действительно ли товар ограничен для страны назначения. Для наилучших результатов, пожалуйста, отправьте как можно больше информации в поле detailedDescription . Пример значения: “Tory Burch, Robinson – Double Zip’ Tote, цвет: New Carnival, состав материала: кожа, Цветная кожа придает привлекательный вид аккуратно структурированной сумке, дополненной логотипом и закругленными ручками для полностью утонченного вида. Магнитная застежка с двумя застегивающимися отделениями. Внутренние карманы на молнии, стене и для мобильного телефона. Защитные металлические ножки. Кожа. От Tory Burch; импортировано.” |
items[index].height | Это высота вашего товара. Существует другое поле с названием dimensionalUnits , в котором вы указываете дюймы или сантиметры для этого измерения. Пожалуйста, указывайте без запятых и с не более чем двумя десятичными знаками. Пример значения: 25.5. Ваши тарифы на доставку будут наиболее точными, если вы укажете это поле. |
items[index].hsCode | Это код HS, который идентифицирует товар для иностранных стран. Указание hsCode поможет правильно определить соответствующую импортную пошлину rate для конкретного товара. Необязательно, если недоступно — мы позаботимся об этом, если у вас его нет. Формат: либо 10-значный, либо 6-значный код; может включать разделяющие “.” символы или нет. Примеры значений: “20.4560.0000” или “20.4560” или “204560” (приемлемы как 10-, так и 6-значные коды) |
items[index].length | Это длина вашего товара. Существует другое поле с названием dimensionalUnits , в котором вы указываете дюймы или сантиметры для этого измерения. Пожалуйста, указывайте без запятых и с не более чем двумя десятичными знаками. Пример значения: 25.5. Ваши тарифы на доставку будут наиболее точными, если вы укажете это поле. |
items[index].productId | Это ваш идентификатор продукта для конкретного товара. Наш движок правил будет использовать это значение в качестве идентификатора, чтобы связать информацию о товаре с вашим товаром. Пример значения: “17898-675235”. Пожалуйста, укажите как минимум productID или SKU. Предпочтительно указать оба. |
items[index].quantity REQUIRED | Это количество, приобретаемое по конкретному товару. Пожалуйста, указывайте как положительное целое число, без запятых и без десятичных знаков. Примеры значений: 1 или 9999 (мы предпочитаем, чтобы вы продавали больше товаров, чем меньше!) |
items[index].sku | Это ваш SKU для конкретного товара. Наш движок правил будет использовать это значение в качестве идентификатора, чтобы связать информацию о товаре с вашим товаром. Пример значения: “oakley-125”. Пожалуйста, укажите как минимум productId или SKU. Предпочтительно указать оба. |
items[index].unitPrice REQUIRED | Это цена вашего товара в USD (доллары США). Пожалуйста, указывайте без запятых, без знака доллара “$” и с двумя десятичными знаками. Пример значения: 2102.99 |
items[index].weight | Это вес вашего товара. Существует другое поле с названием weightUnits , в котором вы указываете фунты, унции, граммы или килограммы для этого измерения. Пожалуйста, указывайте без запятых и с не более чем двумя десятичными знаками. Пример значения: 4.2. Ваши тарифы на доставку будут наиболее точными, если вы передадите это поле. |
items[index].weightUnits | По умолчанию “LB” для фунтов. Единица измерения для значения веса. Если установлено в null, будет предполагаться “LB” (фунты). Примеры значений: “LB” для фунтов или “OZ” для унций или “G” для граммов или “KG” для килограммов или null. |
items[index].width | Это ширина вашего товара. Существует другое поле с названием dimensionalUnits , в котором вы указываете дюймы или сантиметры для этого измерения. Пожалуйста, указывайте без запятых и с не более чем двумя десятичными знаками. Пример значения: 25.5. Ваши тарифы на доставку будут наиболее точными, если вы передадите это поле. |
shipFromAddress | Если передано как null, мы будем использовать адрес по умолчанию shipFromAddress , связанный с вашей учетной записью продавца. Это адрес, с которого будет отправлен заказ, т.е. ваш склад. Это карта, содержащая следующие поля адреса: address1 , address2 , address3 , city , state , stateCode , postalCode , countryCode . Эти поля могут быть обязательными или необязательными в зависимости от страны. Конечная точка локализации возвращает, какие конкретные поля адреса обязательны для каждой страны. Примечание: stateCode всегда не является обязательным и не объявляется в конечной точке локализации. Вы можете передать stateCode , если он доступен. |
shippingAmountOverride | Это используется только в том случае, если вы знаете стоимость доставки до вызова API. Она указана в USD (доллары США). Пожалуйста, указывайте без запятых, без знака доллара “$” и с двумя десятичными знаками. Эта функция не будет работать без настройки с представителем Zonos. Пример значения: 212.99. |
shipToAddress REQUIRED | Это адрес, на который будет отправлен заказ. Это карта, содержащая следующие поля адреса: name , address1 , address2 , address3 , city , state , stateCode , postalCode , countryCode . Эти поля могут быть обязательными или необязательными в зависимости от страны. Конечная точка локализации возвращает, какие конкретные поля адреса обязательны для каждой страны. Примечание: name и stateCode всегда не являются обязательными и не объявляются в конечной точке локализации. Вы можете передать name и/или stateCode , если они доступны. |
HTTPS response
Формат сообщения: JSON
Пример ответа только для Канады и Австралии
Примечание: Фактические ответы будут содержать все поддерживаемые страны.
Пример запроса
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
{
"shippingQuotes": [
{
"id": "bcdbdbcd-0145-4d3b-a54e-0de3cdce5a0a",
"carrier": "UPS",
"conversionRate": 1.32,
"currencyCode": "CAD",
"displayName": "Express Air 2-4 Day Delivery",
"duty": 10.2,
"dutyTaxBrokerageFee": 5.0,
"dutyTaxCarrierPrepaymentFee": 5.0,
"dutyTaxEnabled": true,
"dutyTaxForced": false,
"dutyTaxTotal": 29.38,
"dutyTaxUnderDeminimus": false,
"restrictedItems": [
{
"cartItemId": 1,
"message": "We are unable to sell Oakley products to your country.",
"reasonCode": "BRAND_COUNTRY"
},
{
"cartItemId": 2,
"message": "We are unable to sell Oakley products to your country.",
"reasonCode": "BRAND_COUNTRY"
}
],
"shippingTotal": 23.62,
"taxOrVat": 9.18
},
{
"id": "80c57724-ab4e-4997-8477-08b668fef103",
"carrier": "USPS",
"conversionRate": 1.32,
"currencyCode": "CAD",
"displayName": "Post 5-10 Day Delivery",
"duty": 9.2,
"dutyTaxBrokerageFee": 5.0,
"dutyTaxCarrierPrepaymentFee": 5.0,
"dutyTaxEnabled": true,
"dutyTaxForced": false,
"dutyTaxTotal": 27.38,
"dutyTaxUnderDeminimus": false,
"restrictedItems": [
{
"cartItemId": 1,
"message": "We are unable to sell Oakley products to your country.",
"reasonCode": "BRAND_COUNTRY"
},
{
"cartItemId": 2,
"message": "We are unable to sell Oakley products to your country.",
"reasonCode": "BRAND_COUNTRY"
}
],
"shippingTotal": 13.62,
"taxOrVat": 8.18
}
]
}
Определения JSON ответов
Поле | Заметки |
---|---|
shippingQuotes | Это список карт предложений по доставке. |
shippingQuotes[index].carrier | Перевозчик, к которому относится предложение по доставке. Устанавливается в null только в том случае, если продавец запросил создание общих профилей доставки, не привязанных к конкретному перевозчику. Предложения по доставке не обязательно должны быть привязаны к перевозчику; но могут быть. Свяжитесь с вашим менеджером по работе с клиентами для получения помощи в настройке ваших профилей доставки. Примеры значений: UPS или FEDEX или DHL или USPS или CAPOST или null |
shippingQuotes[index].displayName | Отображаемое имя для варианта доставки, подходящее для отображения покупателю. Эти значения могут быть настроены для продавца. Свяжитесь с вашим менеджером по работе с клиентами, чтобы сделать это. Пример значения: “Экспресс-доставка 2-4 дня” |
shippingQuotes[index].duty | Сумма импортной пошлины, включенная в dutyTaxTotal . Эта сумма указана в USD, не содержит запятых и имеет два десятичных знака. Пример значения: 8.29 |
shippingQuotes[index] .dutyTaxBrokerageFee | Это то, что иностранный брокер по импорту возьмет с вас за обработку ваших импортных пошлин и налогов. Эта сумма включена в dutyTaxTotal . Сумма указана в USD, не содержит запятых и имеет два десятичных знака. Пример значения: 5.00 |
shippingQuotes[index] .duyTaxCarrierPrepaymentFee | Это то, что перевозчик возьмет с вас за prepay пошлин и налогов в страну импорта. Эта сумма включена в dutyTaxTotal . Сумма указана в USD, не содержит запятых и имеет два десятичных знака. Пример значения: 5.00 |
shippingQuotes[index] .duyTaxEnabled | Указывает, позволяет ли это предложение по доставке покупателю prepay свои импортные пошлины и налоги. Если установлено в false, dutyTaxTotal следует игнорировать. Примеры значений: true или false |
shippingQuotes[index] .duyTaxForced | Указывает, заставляет ли это предложение по доставке покупателя prepay свои импортные пошлины и налоги. Если установлено в true, вы должны включить dutyTaxTotal в заказ, объяснив покупателю, что это необходимо для этого конкретного варианта доставки. Если установлено в false, вы можете позволить покупателю выбрать, хочет ли он prepay свои импортные пошлины и налоги. Примеры значений: true или false |
shippingQuotes[index].dutyTaxTotal | Общая стоимость пошлины и налога для данного предложения по доставке. Пошлина и налог могут быть необязательными, недоступными или обязательными для данного предложения по доставке. Эта сумма не включена в shippingTotal . Сумма указана в USD, не содержит запятых и имеет два десятичных знака. Пример значения: 19.55 |
shippingQuotes[index] .dutyTaxUnderDeMinimis | Указывает, находится ли общая сумма заказа, используя этот конкретный вариант доставки, ниже как минимальной суммы налога/НДС, так и минимальной суммы пошлины. Если установлено в true, dutyTaxTotal будет установлено в 0.00, и вы должны сообщить клиенту, что на его заказ не будет никаких импортных пошлин или налогов. Кроме того, принудительная предоплата пошлин и налогов, поскольку стоимость составляет 0.00. |
shippingQuotes[index].id | Идентификатор для конкретного предложения по доставке; UUID длиной 36 символов. Пример значения: bcdbdbcd-0145-4d3b-a54e-0de3cdce5a0a |
shippingQuotes[index].restrictedItems | Это список карт, содержащий детали о любых товарах в корзине, которые ограничены с использованием этой конкретной стоимости доставки. Каждый ограниченный товар имеет reasonCode . Причина может быть специфичной или не специфичной для варианта доставки. Некоторые причины для ограничений на товары связаны с законами о ввозе в страну, ограничениями бренда или даже правилами, установленными продавцом. Каждый раз, когда покупатель выбирает вариант доставки, товары в корзине должны быть сопоставлены со списком restrictedItems данной стоимости доставки. Если какие-либо товары в корзине ограничены, покупателю должно быть показано сообщение, и ограниченные товары должны быть исключены из общей суммы заказа и т.д. |
shippingQuotes[index] .restrictedItems[index].cartItemId | Это cartItemId из JSON-запроса ограниченного товара в корзине. Вы должны иметь возможность связать этот cartItemId с конкретным товаром в корзине вашего покупателя. Примеры значений: 1 или 2 или 3 |
shippingQuotes[index] .restrictedItems[index].message | Это сообщение, которое может быть показано покупателю о том, почему товар ограничен. Эти сообщения могут быть настроены продавцом. Пожалуйста, свяжитесь с вашим Zonos представителем для получения подробной информации. Пример значения: “Мы не можем продавать продукты Oakley в вашу страну.” |
shippingQuotes[index] .restrictedItems[index].reasonCode | Это код причины ограничения товара. Ограничения всегда специфичны для страны, и наши коды причин это явно показывают. Примеры значений: BRAND_COUNTRY или IMPORT_COUNTRY или EXPORT_COUNTRY или CARRIER_COUNTRY или MERCHANT_COUNTRY . BRAND_COUNTRY означает, что вы указали, что не можете продавать бренд в определенный набор стран. IMPORT_COUNTRY означает, что страна-импортёр не разрешает ввоз товара. EXPORT_COUNTRY означает, что страна-экспортер (обычно Соединенные Штаты) не разрешает экспорт товара. CARRIER_COUNTRY означает, что конкретный перевозчик не будет перевозить товар. MERCHANT_COUNTRY означает, что вы установили пользовательское правило ограничения, которое было активировано товаром. |
shippingQuotes[index] .shippingTotal | Общая стоимость доставки для данной стоимости доставки. Стоимости доставки также могут иметь сумму dutyTaxTotal , которая не включена в эту shippingTotal . Эта сумма указана в долларах США, не содержит запятых и имеет два десятичных знака. Пример значения: 25.82 |
shippingQuotes[index].taxOrVat | Сумма налога или НДС, включенная в dutyTaxTotal . Для некоторых стран это налог; для других - это НДС. Эта сумма указана в долларах США, не содержит запятых и имеет два десятичных знака. Пример значения: 4.35 |
API наследия Landed Cost
Узнайте, как работает API наследия Landed Cost.Информация ниже относится к нашему API наследия Landed Cost. См. нашу Landed Cost API для последней версии.
Эндпоинт shipping-quotes принимает данные о корзине вашего покупателя, возвращает расценки на доставку с учетом импортных пошлин и налогов, а также проверяет товары на наличие ограничений. Эти возвращенные расценки на доставку основаны на профилях доставки, которые настраиваются до использования этого эндпоинта API.
У нас есть стандартные профили доставки для тестирования, но вам нужно будет работать с вашим менеджером по аккаунтам, чтобы настроить фактические профили доставки и параметры, которые ваша компания хочет использовать.