Запрет на редактирование корзины
Вы можете запретить сотрудникам с определёнными ролями редактировать список позиций в продаже. Для этого подключите расширение 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
},
...
]
}
}