Вы можете использовать пакетные запросы с API-интерфейсом Merchant для отправки нескольких HTTP-запросов за один вызов API.
Если вы предпочитаете выполнять пакетную обработку с помощью клиентских библиотек , см. раздел Рефакторинг кода для одновременных запросов .
 Пакетный запрос — это один стандартный HTTP-запрос, содержащий несколько вызовов API, с использованием типа контента multipart/mixed . В рамках основного HTTP-запроса каждая часть содержит вложенный HTTP-запрос.
 Вы можете отправить пакетный запрос по указанному пути batchPath для API. Для API Merchant значение batchPath — batch/{sub-api}/v1 . Для других API batchPath можно найти в их документации по обнаружению .
Примеры причин для пакетной обработки запросов:
- Вы только что начали использовать API и у вас большой объем данных для загрузки.
- Пользователь внес изменения в данные, пока ваше приложение было отключено, и вашему приложению необходимо синхронизировать локальные данные с сервером.
Параллельная отправка нескольких запросов избавляет от необходимости ждать выполнения самого медленного подзапроса, что улучшает время отклика сервера и сокращает задержку.
Написать пакетный запрос
Вот пример пакетного запроса Merchant API. Этот запрос объединяет запрос GET для получения регионального ассортимента товара и запрос INSERT для обновления регионального ассортимента того же товара. Необходимо точно следовать формату примера:
-  Используйте https://merchantapi.googleapis.com/batch/{sub-api}/v1в качестве базового URL.
-  Укажите границу для разделения каждого вложенного запроса, например: -H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
-  Разделяйте каждый вложенный запрос границей, например --batch_inventory.
-  Включайте Content-Type: application/httpв начало каждого вложенного запроса.
-  Используйте Content-ID, чтобы присвоить каждому вложенному запросу свой собственный идентификатор. Например:Content-ID: <get~en~US~123456>.
- Включайте пустую строку между заголовком, путём и телом каждого вложенного запроса. Если у вложенного запроса нет тела, оставьте пустую строку перед следующей границей.
- Не включайте базовый URL в каждый отдельный вложенный запрос.
-  Завершите основной запрос конечной границей, например --batch_inventory–.
curl https://merchantapi.googleapis.com/batch/inventories/v1 \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
--data '
--batch_inventory
Content-Type: application/http
Content-ID: <get:online:en:US:123456>
GET /inventories/v1/accounts/123/products/online:en:US:123456/regionalInventories
--batch_inventory
Content-Type: application/http
Content-ID: <post:online:en:US:123456>
POST /inventories/v1/accounts/123/products/online:en:US:123456/regionalInventories:insert
{
   "region: "123456",
    "price": {
        "amountMicros": "100000000",
        "currencyCode": "USD"
    }
}
--batch_inventory--
'
Примечания к заказу
- Запросы могут выполняться не в указанном вами порядке.
-  Используйте Content-IDдля идентификации отдельных запросов.
- Если вам необходимо выполнить вызовы в определенном порядке, отправляйте их по отдельности и дождитесь ответа на первый запрос, прежде чем отправлять следующий.
Прочитать пакетный ответ
 Вот пример пакетного HTTP-ответа. Порядок ответов может не соответствовать порядку запросов. Используйте Content-ID для определения вложенного запроса, к которому принадлежит каждый вложенный ответ. В ответах API добавляет префикс response- к каждому Content-ID .
--batch_inventory
Content-Type: application/http
Content-ID: <response-get~en~US~123456>
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer
{}
--batch_inventory
Content-Type: application/http
Content-ID: <response-post~en~US~123456>
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer
{
  "name": "accounts/123/products/en~US~123456/regionalInventories/123456",
  "region": "123456",
  "price": {
    "amountMicros": "100000000",
    "currencyCode": "USD"
  }
}
--batch_inventory--
'