Обзор настроек доставки

Ресурс ShippingSettings позволяет вам извлекать и обновлять настройки доставки вашей учетной записи.

Google может автоматически обновлять предполагаемое время доставки для некоторых продуктов. Для получения дополнительной информации см. Включить автоматические улучшения .

Чтение, запись или обновление настроек доставки

Чтобы воспользоваться службой доставки Merchant API, выполните следующие действия:

  1. Сделайте запрос GET , чтобы получить полные настройки доставки вашего аккаунта.
  2. Измените настройки доставки.
  3. Сделайте запрос 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 для управления складами:

  1. Сделайте запрос GET , чтобы получить все ваши существующие shippingsettings и склады.
  2. Скопируйте настройки shippingsettings из запроса GET в запрос UPDATE .

  3. Заполните склады, если вы хотите использовать их в разделе warehouses для запроса INSERT .

  4. Создайте запрос 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 см. в разделе Перенос управления настройками доставки .