Ресурс ShippingSettings позволяет вам извлекать и обновлять настройки доставки вашей учетной записи.
Google может автоматически обновлять предполагаемое время доставки для некоторых продуктов. Для получения дополнительной информации см. Включить автоматические улучшения .
Чтение, запись или обновление настроек доставки
Чтобы воспользоваться службой доставки Merchant API, выполните следующие действия:
-  Сделайте запрос GET, чтобы получить полные настройки доставки вашего аккаунта.
- Измените настройки доставки.
-  Сделайте запрос INSERTс измененными настройками доставки.
Этаг
 Etag — это закодированный токен, позволяющий избежать асинхронных обновлений. Etag изменяется при изменении любых данных о настройках доставки. Пользователям необходимо скопировать etag, полученный из запроса GET , в тело запроса INSERT .
 Если данные настроек доставки изменяются между запросом GET и запросом INSERT , вы получите сообщение об ошибке с запросом еще одного запроса GET для получения самого последнего токена etag. Вам необходимо вызвать запрос GET для получения нового токена etag и скопировать новый токен 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"
        }
      ]
    }
  ]
}
Вот пример, который можно использовать для вставки настроек доставки:
Питон
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 для управления информацией о складе для вашей учетной записи 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 .
Управляйте своими складами
Вот как использовать API Merchant для управления складами:
-  Сделайте запрос GET, чтобы получить все ваши существующиеshippingsettingsи склады.
- Скопируйте настройки - shippingsettingsиз запроса- GETв запрос- UPDATE.
- Заполните склады, если вы хотите использовать их в разделе - warehousesдля запроса- INSERT.
- Создайте запрос - UPDATE, содержащий- shippingsettingsи ресурсы- warehouses.
 Вот пример текста запроса INSERT со складом для Warehouse 1, обновленным с New York на Mountain View:
{
  "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"
        }
      ]
    }
  ]
}
Добавить доставку в тот же день
 Вы можете использовать API контента для покупок, чтобы настроить службы доставки в тот же день, если у вас есть локальные запасы. Службы доставки в тот же день имеют local_delivery в качестве shipment_type . Все службы доставки 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 см. в разделе Перенос управления настройками доставки .