Skip to main content
Version: LIFE POS 6.0

Запрет на редактирование корзины

Вы можете запретить сотрудникам с определёнными ролями редактировать список позиций в продаже. Для этого подключите расширение retail_app. Рассказываем!

Принцип работы

Пример

У Василия служба курьерской доставки. Он хочет построить работу так, чтобы заказ мог редактировать только менеджер, а курьеры только принимали оплату.

Однако в заказе есть позиции, по которым окончательное решение можно принять только на месте, после согласования с покупателем. Для таких позиций курьеру нужно оставить права на редактирование.

Расширение retail_app сопоставляет список позиций в чеке со списком ролей. Для каждой пары «позиция — роль» расширение разрешает или запрещает определённые действия. Вот их список:

  • can_edit_name
  • can_edit_good_type
  • can_edit_uom
  • can_edit_quantity
  • can_edit_tax
  • can_edit_sale_price
  • can_delete
Важно

Разрешение can_edit_quantity работает некорректно, полностью блокируя редактирование позиции. Пока ошибка не исправлена, запретить отдельно редактирование количества товара не получится.

Подключение расширения

Расширение retail_app нужно объявить в заголовке extensions. Подробнее: как работать с расширениями

Работа с расширением

В POST-запрос на создание продажи включается массив extensions.retail_app.deal_position_permissions. Каждый элемент массива содержит следующие поля (обязательные отмечены знаком *):

  • position * — объект, содержащий GUID позиции и тип type_of. GUID позиции — необязательное поле и при создании продажи обычно не указывается. В этом случае LIFE POS генерирует GUID позиции сам. Вы можете либо указать его явно, либо создать продажу как обычно и получить идентификаторы позиций в ответе. Во втором случае настройки расширения retail_app передаются PATCH-запросом к предварительно созданной продаже.
  • role * — объект, содержащий GUID роли и тип type_of.
  • Список разрешений для пары «позиция — роль».

Пример запроса:

"extensions": {
"retail_app": {
"deal_position_permissions": [
{
"position": {
"guid": "75747750-bce4-47bf-bf4e-76b3afbd1e07",
"type_of": "DealPosition"
},
"role": {
"guid": "ffeeddcc-bbaa-0000-0000-000000000002",
"type_of": "Role"
},
"can_edit_name": true,
"can_edit_good_type": true,
"can_edit_uom": true,
"can_edit_quantity": false,
"can_edit_tax": true,
"can_edit_sale_price": true,
"can_delete": true
},
...
]
}
}