Остатки и цены
Каталог меняется редко, остатки - постоянно. Поэтому это два разных метода: товар создаётся один раз, а остаток переписывается сколько угодно и стоит дёшево.
Что отправлять
Позиция опознаётся по вашему sku. Если позиции с таким кодом нет, она создаётся; если есть - обновляются только переданные поля. Чтобы снять товар с витрины, отправьте "active": false, а не нулевой остаток: нулевой остаток означает «закончилось и скоро будет», и витрина оставит карточку с кнопкой ожидания.
Пакетная загрузка
До 1000 позиций в одном запросе. Пакет применяется целиком: если хоть одна строка не прошла проверку, не применится ни одна, а в ответе придут номера строк с причинами.
POST /v1/stock/batch HTTP/1.1 Authorization: Bearer $NIMBUS_KEY Content-Type: application/json { "items": [ { "sku": "TRM-1579", "stock": 14, "price": 129000 }, { "sku": "TRM-1583", "stock": 0 }, { "sku": "TRM-2210", "price": 219000, "active": false } ] }
{
"applied": 0,
"rejected": [
{ "line": 3, "sku": "TRM-2210", "code": "price_below_min", "message": "цена ниже минимальной для категории" }
]
}Формат CSV
Утилита nimbus stock push принимает CSV с заголовком в первой строке. Разделитель - точка с запятой, кодировка UTF-8. Лишние колонки игнорируются, порядок колонок значения не имеет.
| Колонка | Тип | Что значит |
|---|---|---|
sku | строка | Ваш код позиции, обязателен |
stock | целое | Доступный остаток без учёта резервов |
price | целое | Цена в копейках |
old_price | целое | Цена до скидки, показывается зачёркнутой |
active | 0 или 1 | Показывать позицию на витрине |
sku;stock;price;old_price;active TRM-1579;14;129000;;1 TRM-1583;0;149000;169000;1 TRM-2210;6;219000;;0
Резервы и отрицательные остатки
Оплаченный, но не собранный заказ держит резерв. Присланный вами остаток - это то, что лежит на полке; доступное к заказу считаем мы: available = stock - reserved. Поэтому не вычитайте резервы у себя, иначе они вычтутся дважды и витрина покажет ноль там, где товар есть.
Отрицательный остаток отвергается с кодом stock_negative. Если у вас в учёте минус - это ваша сторона рассинхронилась, и заливать его на витрину нельзя.
Расписание
Разумный цикл - полная выгрузка раз в сутки ночью и частичная каждые 10-15 минут по изменившимся позициям. Чаще смысла нет: витрины кешируют карточку на несколько минут.