Ресурс ShippingSettings позволяет получать и изменять настройки доставки в аккаунте.
Google может автоматически обновлять расчетное время доставки некоторых товаров. Подробнее о том, как включить автоматическое улучшение видео…
Чтение, запись или обновление настроек доставки
Чтобы использовать сервис доставки Merchant API, выполните следующие действия:
- Отправьте
GET-запрос, чтобы получить полные настройки доставки для своего аккаунта. - Измените настройки доставки.
- Отправьте запрос
INSERTс измененными настройками доставки.
Etag
Etag – это закодированный токен, который позволяет избежать асинхронных обновлений. Значение тега ETag меняется, когда изменяются данные в настройках доставки. Пользователям необходимо скопировать тег etag, полученный в запросе GET, в тело запроса INSERT.
Если данные о настройках доставки изменятся между запросами GET и INSERT, вы получите сообщение об ошибке с просьбой отправить ещё один запрос GET, чтобы получить последний токен ETag. Вам нужно вызвать запрос GET, чтобы получить новый токен etag, и скопировать его в тело запроса INSERT.
Как добавить настройки доставки
Чтобы добавить или изменить настройки доставки в аккаунте, используйте shippingsettings.insert. Ниже приведен пример запроса, в котором значение атрибута "максимальное время доставки" maxTransitDays меняется на 7 для службы доставки GSA Shipping - Free Ship Over $49.99 в аккаунте 10.
POST https://merchantapi.googleapis.com/accounts/v1/accounts/{accountId}/shippingSettings/
{
"services": [
{
"name": "FedEx",
"active": true,
"deliveryCountries": ["US"],
"currencyCode": "USD",
"deliveryTime": {
"minTransitDays": 4,
"maxTransitDays": 6,
"minHandlingDays": 0,
"maxHandlingDays": 0
},
"rateGroups": [
{
"singleValue": {
"flatRate": {
"amountMicros": 5990000,
"currencyCode": "USD"
}
},
"name": "All products"
}
]
},
{
"name": "GSA Shipping - Free Ship Over $49.99",
"active": true,
"deliveryCountries": "US",
"currencyCode": "USD",
"deliveryTime": {
"minTransitDays": 3,
"maxTransitDays": 7,
"minHandlingDays": 1,
"maxHandlingDays": 2
},
"rateGroups": [
{
"mainTable": {
"rowHeaders": {
"prices": [
{
"amountMicros": 49990000,
"currencyCode": "USD"
},
{
"amountMicros": -1,
"currencyCode": "USD"
}
]
},
"rows": [
{
"cells": [
{
"flatRate": {
"amountMicros": 6990000,
"currencyCode": "USD"
}
}
]
},
{
"cells": [
{
"flatRate": {
"amountMicros": 0,
"currencyCode": "USD"
}
}
]
}
]
},
"name": "Free Ship Over $49.99"
}
]
}
]
}
Вот пример кода, который можно использовать для добавления настроек доставки:
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import GetShippingSettingsRequest
from google.shopping.merchant_accounts_v1 import ShippingSettingsServiceClient
_ACCOUNT = configuration.Configuration().read_merchant_info()
_PARENT = f"accounts/{_ACCOUNT}"
def get_shipping_settings():
"""Gets the ShippingSettings for a given Merchant Center account."""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = ShippingSettingsServiceClient(credentials=credentials)
# Creates the Shipping Settings name
name = _PARENT + "/shippingSettings"
# Creates the request.
request = GetShippingSettingsRequest(name=name)
# Makes the request and prints the retrieved ShippingSettings.
try:
response = client.get_shipping_settings(request=request)
print("Retrieved ShippingSettings below")
print(response)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
get_shipping_settings()
Как настроить склады
В приведенном ниже примере кода в формате JSON показано, как использовать сервис Merchant Shipping settings, чтобы управлять информацией о складах в аккаунте Merchant Center:
"warehouses": [
{
"name": "warehouse 1",
"shippingAddress": {
"streetAddress": {street_address},
"city": {city},
"administrativeArea": {administrative_area},
"postalCode": {postal_code},
"regionCode": {region_code}
},
"cutoffTime": {
"minutes": {minutes}
},
"handlingDays": {handling_days},
"businessDaysConfig": {
"businessDays": [
"MONDAY", "SUNDAY"
]
}
}
]
Замените следующее:
- {street_address} – часть адреса склада на уровне улицы.
- {city} – город, поселок или коммуна, где находится склад.
- {administrative_area} – административное подразделение страны. Пример: штат.
- {postal_code} – почтовый индекс.
- {region_code} – код страны в виде строки.
- {minutes} – минуты, до которых нужно оформить заказ, чтобы он был обработан в тот же день на складе.
- {handling_days} – количество дней, необходимых для упаковки и отправки товара со склада.
Ресурс warehouses представляет собой список складов. Каждый склад можно указать в атрибуте "срок доставки на основе склада" warehouse.name.
Как управлять складами
Вот как управлять складами с помощью Merchant API:
- Отправьте запрос
GET, чтобы получить все существующиеshippingsettingsи склады. Скопируйте
shippingsettingsиз запросаGETв запросUPDATE.Заполните склады, если вы хотите использовать их в разделе
warehousesдля запросаINSERT.Отправьте запрос
UPDATE, содержащий ресурсыshippingsettingsиwarehouses.
Ниже приведен пример тела запроса INSERT, в котором склад Warehouse 1 обновлен с Нью-Йорка на Маунтин-Вью:
{
"services": [
{
"name": "Standard Shipping",
"active": true,
"deliveryCountries": ["US", "UK"],
"currencyCode": "USD",
"deliveryTime": {
"minHandlingDays": 0,
"maxHandlingDays": 1,
"warehouseBasedDeliveryTimes": [
{"carrier": "Fedex"
"carrierService": "ground"
"warehouse": "Warehouse 1"
},
{"carrier": "Fedex"
"carrierService": "2 days"
"warehouse": "Warehouse 2"
}
]
},
"rateGroups": [
{
"singleValue": {
"flatRate": {
"amountMicros": 0,
"currencyCode": "USD"
}
},
"name": "Standard Shipping"
}
],
},
{
"name": "Expedited",
"flatRate": {
"amountMicros": 9990000,
"currencyCode": "USD"
}
},
"name": "Expedited"
}
],
}
],
"warehouses": [
{
"name": "Warehouse1",
"shippingAddress": [
{
"streetAddress": "1111 shoreline street"
"city": "Mountain View",
"administrativeArea": "CA"
}
]
},
{
"name": "Warehouse 2",
"country": "US",
"postalCodeRanges": [
{
"streetAddress": "1111 5th avenue"
"city": "New York",
"administrativeArea": "NY"
}
]
}
]
}
Как добавить доставку в день заказа
Если у вас есть местный ассортимент, вы можете использовать Content API for Shopping, чтобы настроить доставку в день заказа. У служб доставки в день заказа в качестве shipment_type указано значение local_delivery. Все службы доставки, которые вы добавили в local_delivery, считаются службами доставки в день заказа.
Для местных доставок нельзя изменить информацию о delivery_time. Используйте shippingsettings.insert, чтобы настроить доставку в день заказа для товаров местного ассортимента.
Ниже приведен пример текста запроса, который добавляет службу доставки в день заказа во все магазины в вашем аккаунте:
{
"name": "accounts/accountId/shippingSettings",
"services": [
{
"name": "Local Delivery",
"active": true,
"shipmentType": "local_delivery",
"deliveryCountries": "US",
"currencyCode": "USD",
"rateGroups": [
{
"singleValue": {
"flatRate": {
"amountMicros": 0,
"currencyCode": "USD"
}
}
}
],
"storeConfig": {
"storeServiceType": "all stores",
"storeCodes": [],
"cutoffConfig": {
"storeCloseOffsetHours": 2,
"noDeliveryPostCutoff": true
},
"serviceRadius": {
"value": 4,
"unit": "Miles"
}
}
}
]
}
Как добавить доставку на следующий день
Если заказ оформлен после времени заказа для обработки в тот же день, по умолчанию будет указана доставка на следующий день. Чтобы отключить доставку на следующий день, установите для поля no_delivery_post_cutoff значение true. Если вы отключите доставку на следующий день, ваши варианты доставки будут показываться только до крайнего срока заказа.
Доставка на следующий день доступна, только если значение атрибута "доставка" shipment_type – local_delivery.
Подробнее…
Подробнее о том, как перейти с Content API for Shopping…