Перейти к содержаниюСправка

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&not_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.

Связанные разделы