Номенклатура

API номенклатуры — список товаров с фильтрами, создание и изменение, удаление, загрузка и удаление изображений.

Ключ, формат запросов и ответов — в статье Общие правила API.

Список номенклатуры

GET /api/products

ПараметрЗначение
pageНомер страницы, по 60 товаров
idИД товара
category_idИД категории; add_subcat=1 — включая подкатегории
brand_id[]ИД брендов (массив)
unit_idИД единицы измерения
pprПризнак предмета расчёта
code_likeАртикул содержит строку
titleНазвание; relevant_false=1 — искать точное совпадение
barcodeШтрихкод
supplier_id[]ИД поставщиков (массив)
store_idИД склада: в ответ добавляются цена, остаток и закупочная цена на этом складе
value, value_typeОтбор по остатку на складе: value_type 1 — не меньше value, -1 — не больше, 0 — любой
otherПрочие отборы: img-0 / img-1 — без фото / с фото; online-1 / online-0 — показывать / не показывать в интернет-магазине; yamarket-1 / yamarket-0 — выгружать / не выгружать в Яндекс.Маркет; buy-1 / buy-0 — можно / нельзя заказать при отсутствии; fast-1 — в быстрых товарах на кассе; print_group-kitchen, print_group-bar, print_group-not — группа печати; tech_card-y / tech_card-n — есть / нет техкарты
orderСортировка: id (по умолчанию), title, category_id, brand_id, country_title, price, unit_title, code, cat_title, brand_title, date_update; stock и buy_price — только вместе с store_id. Обратный порядок — с DESC

Пример: GET /api/products?category_id=7&add_subcat=1&store_id=1&value_type=1&value=1&order=title&page=1

Ответ: data — массив товаров, products_all — сколько товаров подходит под фильтр (на всех страницах), total_sum и total_buy_sum — их стоимость по цене продажи и по закупочной цене.

Поля товара

ПолеЗначение
idИД товара в Агорте
out_idИД товара во внешней системе
title, short_titleНазвание и название для чека
unit_id, unit_title, okeiЕдиница измерения: ИД, обозначение, код ОКЕИ
quantityСтандартное количество для продажи; multiple_sale — 1, если продаётся только кратно ему
codeАртикул
price, product_priceЦена продажи без НДС
vat_type, vat, vat_priceТип НДС, ставка, сумма НДС
max_discountМаксимальная скидка, %
category_id, cat_title, cat_colorКатегория
brand_id, brand_titleБренд
country_id, country_title, country_codeСтрана происхождения
gtdНомер ГТД
pprПризнак предмета расчёта
snoСистема налогообложения товара
marking1 — маркированный товар
chz_group, chz_codeТоварная группа Честного знака: номер и код (lp, shoes, tobacco, milk, beer, draftbeer …)
marking_groupУстаревшая группа маркировки (используйте chz_code)
egais, alcocodeУчёт в ЕГАИС и алкокод
parent_id, characteristic, main, parentМодификации: ИД родительского товара, характеристики, признак главного товара, данные родителя
imgИзображения: JSON со списком имён файлов
descriptionОписание
online, yamarket, buyИнтернет-магазин, Яндекс.Маркет, заказ при отсутствии (1 — да)
label_new, label_hit, label_discountМетки «Новинка», «Хит», «Распродажа» в интернет-магазине
video, videosСсылки на видео
fast1 — в быстрых товарах на кассе
print_group, print_group_idГруппа печати на кассе: kitchen или bar и номер группы
compound, kkal, proteins, fats, carbohydratesСостав и пищевая ценность
massa, width, length, heightМасса (г) и габариты (см)
add_bonusНачисляет ли товар баллы покупателю
combo_dataСостав комбинации (для ppr = 9)
ttkТехкарта
partner_idИД комитента (для комиссионного товара)
kassa_no_show, kassa_no_show_storesСклады, на кассах которых товар скрыт
ozon_product_id, ozon_price, ozoncategory_id, ozontype_id, ozonattributesДанные для OZON
store_price, stock, buy_priceЦена, остаток и закупочная цена на складе (при фильтре store_id)
date_update, date_deleteВремя изменения и признак удаления

Создание и изменение товара

POST /api/products — создать, POST /api/products/<ИД> — изменить. Тело — JSON.

Поля со звёздочкой заполняйте при создании: без них товар сохранится, но не будет нормально работать на кассе. Сервер требует только title — и при создании, и при изменении. При изменении достаточно передать title и поля, которые меняются; остальные остаются прежними.

ПолеЗначение
title*Название
short_title*Название для чека
ppr*Признак предмета расчёта
category_id*ИД категории
brand_id*ИД бренда
unit_id*ИД единицы измерения
quantity*Стандартное количество для продажи; multiple_sale — 1, если продавать только кратно ему
price*Цена продажи без НДС
vat_type*, vat*Тип и ставка НДС
sno*Система налогообложения (0 — как у организации)
parent_idИД родительского товара — чтобы создать модификацию
codeАртикул
barcodeМассив штрихкодов
stores, store_priceОсобые цены на складах: массив ИД складов и массив цен в том же порядке. Если stores не передан, особые цены не меняются; пустой массив stores удаляет все особые цены
kassa_no_showМассив ИД складов, на кассах которых товар скрыт
max_discountМаксимальная скидка, %
add_bonusНачислять баллы покупателю при продаже
chz_codeТоварная группа Честного знака (lp, shoes, tobacco, milk, beer, draftbeer …). Устаревшее поле marking_group учитывается, только если chz_code не передан
egais, alccodeУчёт в ЕГАИС и массив алкокодов
compound, kkal, proteins, fats, carbohydratesСостав и пищевая ценность
fast, print_group, print_group_idБыстрые товары и группа печати на кассе
partner_idИД комитента
description, videoОписание и массив ссылок на видео
online, yamarket, buy, label_new, label_hit, label_discountИнтернет-магазин и Яндекс.Маркет
massa, width, length, heightМасса (г) и габариты (см)
country_id, gtdСтрана происхождения и номер ГТД

Ответ: id — ИД товара. Если не заполнено обязательное поле, придёт success: false и его имя в key.

{
  "title": "Сок яблочный 1 л",
  "short_title": "Сок яблочный 1 л",
  "ppr": "1",
  "category_id": "1",
  "brand_id": "1",
  "unit_id": "2",
  "quantity": "1",
  "price": "150.00",
  "vat_type": "0",
  "vat": "0",
  "sno": "0",
  "code": "A-100",
  "barcode": ["4600000000001"],
  "stores": ["1", "2"],
  "store_price": ["145.00", "155.00"],
  "online": "1"
}

Удаление товара

DELETE /api/products/<ИД> — товар помечается удалённым (как кнопка Удалить в карточке).

Изображения товара

Загрузка: POST /api/products/imgs, форма multipart/form-data: id — ИД товара, img[] — один или несколько файлов.

Удаление: DELETE /api/products/imgs, тело JSON: {"id": 1, "img": "<имя файла>"}. Имя файла берётся из поля img в списке товаров.

Обновлено: 09.11.2026