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

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

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

Просмотр, создание и изменение настроек доставки

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

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

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

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

  4. Создайте запрос 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…