ItemGroup. Номенклатурные группы
Методы для работы с деревом товарных групп: получение списка групп с иерархией, создание, изменение и удаление групп.
Как получить ключ, как формируются запросы и какие бывают ответы и ошибки — в статье Общие сведения. Здесь описаны только особенности методов раздела itemGroup.
Методы
| Метод | Адрес | Что делает |
|---|---|---|
| Получить группы | /api/itemGroup | Возвращает одну группу или все группы |
| Создать или изменить | /api/itemGroup/update | Обновляет группу или создаёт новую |
| Удалить | /api/itemGroup/delete | Удаляет группу вместе с вложенными |
Где передавать параметры. Ключ apikey и формат format принимаются и в адресной строке, и в теле POST-запроса. Параметры поиска id и external_id в методах получения и удаления читаются только из адресной строки (GET). В методе update все параметры можно передавать и в адресной строке, и в теле POST. Значения с кириллицей и пробелами кодируйте.
Получение групп
GET https://[компания].myvirtualpos.ru/api/itemGroup?apikey=MySecret
Параметры запроса
| id | Число. Ид группы. Если указан, возвращается только она. Только GET |
| external_id | Строка. Код группы во внешней системе (например, в 1С). Только GET |
| format | json (по умолчанию) или xml |
Если указаны оба параметра, группа должна подходить под оба условия. Без параметров возвращаются все группы одним ответом; постраничной выдачи нет.
Структура ответа
| success | 1 — данные получены |
| type | Тип данных, всегда item_group |
| count | Количество групп в ответе |
| item_groups | Список групп. Каждая обёрнута в объект item_group |
Поля группы
Пустые значения в JSON приходят как null, в XML — как пустой элемент.
| id | Число. Ид группы |
| external_id | Строка. Код группы во внешней системе |
| name | Строка. Название группы |
| parent_id | Число. Ид родительской группы. Пусто у групп верхнего уровня |
| parent_ext_id | Строка. Код родительской группы во внешней системе |
| not_show_in_shop | Число. 1 — не показывать группу в интернет-витрине и мобильном приложении |
| index_tree | Строка. Путь группы в дереве: ид всех предков и самой группы через двоеточие, например 1274:1275:. Формируется автоматически |
| created_date, last_update_date | Строка. Дата и время создания и последнего изменения, формат гггг-мм-дд чч:мм:сс |
Пример ответа
{
"success": 1,
"type": "item_group",
"count": 2,
"item_groups": [
{
"item_group": {
"id": 1274,
"external_id": "GRP-1",
"name": "Косметика",
"parent_id": null,
"parent_ext_id": null,
"not_show_in_shop": 0,
"index_tree": "1274:",
"created_date": "2026-09-26 10:27:21",
"last_update_date": "2026-09-26 10:27:21"
}
},
{
"item_group": {
"id": 1275,
"external_id": "GRP-2",
"name": "Шампуни",
"parent_id": 1274,
"parent_ext_id": "GRP-1",
"not_show_in_shop": 1,
"index_tree": "1274:1275:",
"created_date": "2026-09-26 10:27:21",
"last_update_date": "2026-09-26 10:27:21"
}
}
]
}
Тот же ответ при format=xml (сокращённо):
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <type>item_group</type> <count>2</count> <item_groups> <item_group> <id>1274</id> <external_id>GRP-1</external_id> <name>Косметика</name> <parent_id/> <!-- остальные поля группы --> </item_group> </item_groups> </root>
Создание и изменение группы
POST https://[компания].myvirtualpos.ru/api/itemGroup/update?apikey=MySecret&external_id=GRP-2&create_if_not_exist=1 name=Шампуни&parent_ext_id=GRP-1
Группа ищется по id, а если он не указан — по external_id. Если группа не найдена, а передан create_if_not_exist=1, создаётся новая. Изменяются только переданные параметры.
Параметры
| id | Число. Ид изменяемой группы |
| external_id | Строка. Код группы во внешней системе. Если id не указан, по нему ищется группа; одновременно это поле группы: при создании код сохраняется |
| create_if_not_exist | 1 — создать группу, если она не найдена |
| name | Строка, до 255 символов. Название. Обязательно при создании |
| parent_id | Число. Ид родительской группы; группа должна существовать |
| parent_ext_id | Строка. Код родительской группы во внешней системе. Используется, если не указан parent_id; если родитель не найден, вернётся ошибка |
| not_show_in_shop | 1 — не показывать в интернет-витрине и мобильном приложении, 0 — показывать |
Родителя нельзя убрать. Пустые parent_id и parent_ext_id игнорируются, поэтому перенести группу на верхний уровень через API нельзя: меняйте иерархию в панели управления. Значение not_show_in_shop проверяется только на число: используйте 0 и 1.
Ответ
{"success":1,"id":"1275","isnew":"1"}
| success | 1 — группа сохранена |
| id | Ид группы. При создании приходит строкой, при изменении — числом |
| isnew | «1» — группа создана, «0» — изменена существующая |
Удаление группы
GET https://[компания].myvirtualpos.ru/api/itemGroup/delete?apikey=MySecret&external_id=GRP-2
| id | Число. Ид удаляемой группы. Только GET |
| external_id | Строка. Код группы во внешней системе. Только GET |
Ответ: {«success»:1,«id»:1275}.
Вместе с группой удаляются все вложенные группы. Товары при этом не удаляются.
Примеры запросов
| Задача | Запрос |
|---|---|
| Все группы | /api/itemGroup?apikey=MySecret |
| Группа по коду из 1С | /api/itemGroup?apikey=MySecret&external_id=GRP-1 |
| Создать группу верхнего уровня | /api/itemGroup/update?apikey=MySecret&create_if_not_exist=1&external_id=GRP-1&name=%D0%9A%D0%BE%D1%81%D0%BC%D0%B5%D1%82%D0%B8%D0%BA%D0%B0 |
| Создать вложенную группу | /api/itemGroup/update?apikey=MySecret&create_if_not_exist=1&external_id=GRP-2&parent_ext_id=GRP-1&name=Shampoo |
| Скрыть группу в интернет-витрине | /api/itemGroup/update?apikey=MySecret&external_id=GRP-2¬_show_in_shop=1 |
| Удалить группу | /api/itemGroup/delete?apikey=MySecret&external_id=GRP-2 |
Ошибки
Ошибка авторизации и общие ошибки описаны в статье Общие сведения. Ошибки приходят с кодом HTTP 200 и success равным 0:
| Сообщение | Метод | Причина | Что делать |
|---|---|---|---|
| You have to specify [id] or [external_id] to update record. Or set [create_if_not_exist] to true to add new record | update | Нет id, external_id и create_if_not_exist | Передайте идентификатор группы или create_if_not_exist=1 |
| Record not found | update, delete | Группа не найдена | Проверьте ид или код |
| Parent record with external_id = […] not found | update | Родитель по parent_ext_id не найден | Проверьте код родителя |
| Data validation failed. … | update | Не заполнено название или значение не прошло проверку | Исправьте указанные поля |
| Cannot save data. … | update | Ошибка сохранения; например, parent_id указывает на несуществующую группу | Проверьте ссылки на другие записи |
| You have to specify [id] to delete record | delete | Нет id и external_id | Передайте один из них |
| Cannot delete data. … | delete | Ошибка удаления | Текст после точки поясняет причину |
Если по условиям ничего не найдено, метод получения возвращает успешный ответ с count равным 0 и пустым списком item_groups.