API контента позволяет указать налог и стоимость доставки, которые будут применяться ко всем товарам в аккаунте, через сервисы «Настройки доставки» и «Налог на счёт» . Для более точных данных можно указать налог и стоимость доставки для каждого товара через сервис «Товары» .
Информацию о политиках Google и полном спектре вариантов указания налога и доставки см. в следующих статьях Справочного центра:
Обратите внимание, что атрибут tax
и, следовательно, использование сервиса accounttax применимы только к продуктам, предназначенным для США.
Службы API контента accounttax и shippingsettings отражают функциональность пользовательского интерфейса Merchant Center .
Простой пример
Стоимость доставки по Франции составляет 8 евро, расчет производится на основе тарифов перевозчиков в США, где каждая служба доставки осуществляет доставку в течение 3–7 дней:
PUT /content/v2.1/<merchant_id>/shippingsettings/<account_id> { "accountId": <account_id>, "services": [ { "name": "Livraison Prioritaire", "deliveryCountry": "FR", "currency": "EUR", "rateGroups": [ { "singleValue": { "flatRate": { "currency": "EUR", "value": "8" } } } ], "active": true, "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 } }, { "name": "UPS in US", "deliveryCountry": "US", "currency": "USD" "rateGroups": [ { "singleValue": { "carrierRateName": "ups" }, "carrierRates": [ { "name": "ups", "carrierName": "UPS", "carrierService": "Ground", "originPostalCode": "10011" } ] } ], "active": true, "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 }, } ] }
Чтобы получить доступные названия операторов и услуг, используйте метод getsupportedcarriers .
Сложный пример
Чтобы создать акцию с бесплатной доставкой в штатах вокруг Нью-Йорка (без взимания платы за доставку), используйте UPS для остальной части США и применяйте разные налоги для каждого штата, используйте запросы к сервисам accounttax и shippingsettings Content API следующим образом. Сначала настройте параметры доставки:
PUT /content/v2.1/<merchant_id>/shippingsettings/<account_id> { "accountId": <account_id>, "services": [ { "name": "Eligible for free shipping", "deliveryCountry": "US", "rateGroups": [ { "mainTable": { "rowHeaders": { "locations": [ { "locationIds": ["21167"] }, // NY { "locationIds": ["21164", "21139"] } // NJ, CT ] }, "rows": [ { "cells": [ { "flatRate": { "currency": "USD", "value": "0" } } ] }, { "cells": [ { "flatRate": { "currency": "USD", "value": "0" } } ] } ] } } ], "active": true, "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 }, "currency": "USD" }, { "name": "UPS in US", "deliveryCountry": "US", "rateGroups": [ { "singleValue": { "carrierRateName": "UPS mainland" }, "carrierRates": [ { "name": "UPS mainland", "carrierName": "UPS", "carrierService": "Ground", "originPostalCode": "10011", // currently only US, AU, and DE postal codes "percentageAdjustment": "1.05", "flatAdjustment": { "currency": "USD", "value": "0.75" } } ] } ], "active": true, "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 }, "currency": "USD" } ], "postalCodeGroups": [ { "name": "More cities", // An alternative using postal codes "country": "US", "postalCodeRanges": [ { "postalCodeRangeBegin": "94041" }, { "postalCodeRangeBegin": "94042" }, { "postalCodeRangeBegin": "94043", "postalCodeRangeEnd": "94045" }, { "postalCodeRangeBegin": "9405*" }, { "postalCodeRangeBegin": "9406*", "postalCodeRangeEnd": "9408*" } ] } ] }
Обратите внимание, что идентификаторы местоположений могут использоваться для обозначения административных районов.
Далее настраиваем налоговые платежи:
PUT /content/v2.1/<merchant_id>/accounttax/<account_id> { "accountId": <account_id>, "rules": [ { "country": "US", // currently only US is supported, may be omitted "locationId": 21167, "useGlobalRate": true, "shippingTaxed": false }, { "locationId": 21137, "useGlobalRate": false, "shippingTaxed": true, "ratePercent": "2.15" } // ... ] }
Примечание: тарифы операторов связи доступны только в США, Германии и Австралии. Группы местоположений в настоящее время поддерживаются в США и Австралии.
Сложные правила доставки: двумерные таблицы и подтаблицы
Чтобы определить скидку на доставку в размере 7 долларов США в США, 3 или 5 долларов США для заказов весом более 10 фунтов в Нью-Йорке, в зависимости от стоимости заказа, и бесплатную доставку для заказов весом ниже этого значения, используйте следующее:
PUT /content/v2.1/<merchant_id>/shippingsettings/<account_id> { "accountId": <account_id>, "services": [ { "name": "Custom shipping rules", "deliveryCountry": "US", "rateGroups": [ { "mainTable": { "rowHeaders": { "postalCodeGroupNames": [ "NYC", "all other locations" ] }, "columnHeaders": { "weights": [ { "unit": "lb", "value": "10" }, { "unit": "lb", "value": "infinity" } ] }, "rows": [ { "cells": [ { "flatRate": { "value": "0", "currency": "USD" } }, { "subtableName": "NYC large packages" } ] }, { "cells": [ { "flatRate": { "value": "7", "currency": "USD" } }, { "flatRate": { "value": "7", "currency": "USD" } } ] } ] }, "subtables": [ { "name": "NYC large packages", "rowHeaders": { "prices": [ {"value": "100", "currency": "USD"}, {"value": "infinity", "currency": "USD"}] }, "rows": [ { "cells": [ { "flatRate": { "value": "3", "currency": "USD" } } ] }, { "cells": [ { "flatRate": { "value": "5", "currency": "USD" } } ] } ] } ] } ], "active": true, "currency": "USD", "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 } } ], "postalCodeGroups": [ { "name": "NYC", // Approximation of NYC using postal codes "country": "US", "postalCodeRanges": [ { "postalCodeRangeBegin": "10000", postalCodeRangeEnd: "11999" } ] } ] }
Сложные правила доставки: разделение транспортных этикеток по услугам
В настройках доставки каждый сервис доставки может содержать не более 20 групп тарифов. Поскольку группы тарифов используются для различения тарифов доставки по транспортным этикеткам, может показаться, что с помощью транспортных этикеток можно задать только 20 уникальных тарифов. Однако в каждой стране можно задать до 20 тарифов. Разделив тарифы, различающиеся по транспортным этикеткам, на несколько сервисов для одной страны, можно задать до 400 уникальных тарифов доставки по транспортным этикеткам.
Примечание: Если у вас несколько служб доставки, стоимость доставки каждого товара для данной страны будет сравнена со всеми службами доставки в этой стране для расчета возможных тарифов. Если несколько служб предлагают разные тарифы на один и тот же товар, будет использован самый низкий тариф.
В примере ниже 40 транспортных этикеток разделены по двум разным сервисам с использованием уникальных тарифов. В этом примере другие данные о ресурсе доставки, такие как фактические тарифы, скрыты за многоточием.
PUT /content/v2.1/<merchant_id>/shippingsettings/<account_id> { "accountId": <account_id>, "services": [ { "name": "labels_0_19", "deliveryCountry": "US", "active": true, "currency": "USD", "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 } "rateGroups": [ { "applicableShippingLabels": ["shipping_label_0"], ... } { "applicableShippingLabels": ["shipping_label_1"], ... } { "applicableShippingLabels": ["shipping_label_2"], ... } { "applicableShippingLabels": ["shipping_label_3"], ... } { "applicableShippingLabels": ["shipping_label_4"], ... } { "applicableShippingLabels": ["shipping_label_5"], ... } { "applicableShippingLabels": ["shipping_label_6"], ... } { "applicableShippingLabels": ["shipping_label_7"], ... } { "applicableShippingLabels": ["shipping_label_8"], ... } { "applicableShippingLabels": ["shipping_label_9"], ... } { "applicableShippingLabels": ["shipping_label_10"], ... } { "applicableShippingLabels": ["shipping_label_11"], ... } { "applicableShippingLabels": ["shipping_label_12"], ... } { "applicableShippingLabels": ["shipping_label_13"], ... } { "applicableShippingLabels": ["shipping_label_14"], ... } { "applicableShippingLabels": ["shipping_label_15"], ... } { "applicableShippingLabels": ["shipping_label_16"], ... } { "applicableShippingLabels": ["shipping_label_17"], ... } { "applicableShippingLabels": ["shipping_label_18"], ... } { "applicableShippingLabels": ["shipping_label_19"], ... } ] }, { "name": "labels_20_39", "deliveryCountry": "US", "active": true, "currency": "USD", "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 } "rateGroups": [ { "applicableShippingLabels": ["shipping_label_20"], ... } { "applicableShippingLabels": ["shipping_label_21"], ... } { "applicableShippingLabels": ["shipping_label_22"], ... } { "applicableShippingLabels": ["shipping_label_23"], ... } { "applicableShippingLabels": ["shipping_label_24"], ... } { "applicableShippingLabels": ["shipping_label_25"], ... } { "applicableShippingLabels": ["shipping_label_26"], ... } { "applicableShippingLabels": ["shipping_label_27"], ... } { "applicableShippingLabels": ["shipping_label_28"], ... } { "applicableShippingLabels": ["shipping_label_29"], ... } { "applicableShippingLabels": ["shipping_label_30"], ... } { "applicableShippingLabels": ["shipping_label_31"], ... } { "applicableShippingLabels": ["shipping_label_32"], ... } { "applicableShippingLabels": ["shipping_label_33"], ... } { "applicableShippingLabels": ["shipping_label_34"], ... } { "applicableShippingLabels": ["shipping_label_35"], ... } { "applicableShippingLabels": ["shipping_label_36"], ... } { "applicableShippingLabels": ["shipping_label_37"], ... } { "applicableShippingLabels": ["shipping_label_38"], ... } { "applicableShippingLabels": ["shipping_label_39"], ... } ] } ], "postalCodeGroups": [ ... ] }
Такое разделение транспортных этикеток по группам тарифов может потребоваться даже в том случае, если для транспортных этикеток указана одна и та же стоимость доставки, поскольку в поле applicableShippingLabels
каждой группы тарифов может быть не более 30 транспортных этикеток. В качестве крайнего примера, если все транспортные этикетки имеют одинаковую структуру тарифов, shippingsettings
может обрабатывать до 12 000 транспортных этикеток для одной страны: 30 транспортных этикеток на группу тарифов, 20 групп тарифов на службу доставки и 20 служб доставки на страну.
Более подробную информацию см. в справочной документации по accounttax и shippingsettings .