Передача товаров
Пример запроса
Перед отправкой запросов получите PAT.
Для первоначальной загрузки передайте товары через update, разделив каталог на пакеты не более 10 000 событий. Затем отправляйте обновления при изменении данных о товарах.
Запрос отправляется методом POST по адресу https://catalog.retailrocket.ru/productCatalog/s2s/{partnerId}/events:publish.
Замените <PARTNER_ID> на идентификатор магазина, а <PAT> — на полученный токен. URL товара и изображения в примере замените на ссылки вашего магазина.
curl --include --request POST \
'https://catalog.retailrocket.ru/productCatalog/s2s/<PARTNER_ID>/events:publish' \
--header 'Authorization: Bearer <PAT>' \
--header 'Content-Type: application/json' \
--data-raw '{
"events": [
{
"update": {
"id": "100001",
"name": "Футболка синяя",
"isAvailable": true,
"price": 1990,
"oldPrice": 2490,
"url": "https://shop.example.com/products/100001",
"pictureUrl": "https://shop.example.com/images/100001.jpg",
"stockId": "moscow",
"categories": [
{
"id": 120,
"name": "Футболки",
"parent": {
"id": 100,
"name": "Одежда"
}
}
],
"params": [
{
"name": "Материал",
"value": "Хлопок"
}
]
}
}
]
}'
При каждом update передавайте полное представление товара, включая все обязательные поля. Операция заменяет ранее сохранённые значения: не используйте её для отправки только изменённой цены или статуса наличия.
Данные товара
Обязательные поля объекта update:
| Параметр | Тип | Описание |
|---|---|---|
id | string | Идентификатор товара в вашей системе. Непустая строка. |
name | string | Название товара. Непустая строка. |
isAvailable | boolean | Наличие товара: true — в наличии, false — отсутствует. |
price | number | Цена товара. |
url | string | Ссылка на страницу товара. |
pictureUrl | string | Ссылка на изображение товара. |
categories | array | Категории товара. |
params | array | Дополнительные параметры товара. |
Дополнительно можно передать:
| Параметр | Тип | Описание |
|---|---|---|
stockId | string | Идентификатор склада или региона. Если передаётся, должен быть непустой строкой. Подробнее. |
oldPrice | number | Цена до скидки. |
description | string | Описание товара, не более 500 символов. |
vendor | string | Производитель или бренд. |
groupId | string | Идентификатор группы товаров. Подробнее. |
barcode | string | Штрихкод. |
color | string | Цвет. |
size | string | Размер. |
Категории
В массиве categories передайте категории, к которым относится товар. Каждая категория содержит числовой целочисленный id (int64) и название name. Родительская категория указывается в parent с теми же полями. Для нескольких уровней вложенности передайте цепочку родителей.
Дерево категорий магазина строится на основе данных, переданных с товарами, поэтому точно указывайте иерархию категорий в parent.
Пример поля categories в объекте update:
{
"categories": [
{
"id": 120,
"name": "Футболки",
"parent": {
"id": 110,
"name": "Мужская одежда",
"parent": {
"id": 100,
"name": "Одежда"
}
}
}
]
}
В этом примере товар относится к категории «Футболки» в иерархии «Одежда → Мужская одежда → Футболки». Все три уровня передаются одним элементом массива categories с вложенными объектами parent. Если товар относится к нескольким категориям, передайте их отдельными элементами массива categories.
Дополнительные параметры
В массиве params передайте характеристики товара. Каждый элемент содержит название name и значение value.
| Параметр | Тип | Описание |
|---|---|---|
name | string | Название характеристики, от 1 до 300 символов. |
value | string | Значение характеристики, не более 500 символов. |
Пример поля params в объекте update:
{
"params": [
{
"name": "Материал",
"value": "Хлопок"
},
{
"name": "Сезон",
"value": "Лето"
}
]
}
Как вывести товар из наличия или вернуть его в наличие, описано на странице «Управление наличием».
Описание HTTP-статусов и обработки ошибок приведено на странице «Статусы и ответы».