Ресурс 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, в котором адрес склада 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 на Merchant API…