Модуль расширяет некоторые API методы ядра системы. Ниже перечислены соответствующие изменения:
Метод получения классов типов дополнительно возвращает типы
PRODUCT_GENERAL_TYPE,PRODUCT_SUB_TYPEиPRODUCT_SUB_SUB_TYPE.Параметр
classметода создания типов дополнительно принимает значенияPRODUCT_GENERAL_TYPE,PRODUCT_SUB_TYPEиPRODUCT_SUB_SUB_TYPE.Метод получения классов статусов дополнительно возвращает статус
OFFER_STATUS.Параметр
classметода создания статусов дополнительно принимает значениеOFFER_STATUS.Метод создания календарных событий принимает дополнительное поле
orders.Пример поля orders
"orders": [ // Массив сделок, которые должны быть привязаны к создаваемому календарному событию. { "title": "Тестовая услуга", // Произвольное название сделки (обязательно при отсутствии поля `offer_id`) "is_paid": false, // Флаг оплаты сделки "status_id": 4, // Статус оказания сделки "price": 1000 // Цена сделки }, { "offer_id": 1, // Идентификатор коммерческого предложения, по которому оказывается сделка. "is_paid": false, // Флаг оплаты сделки "status_id": 4, // Статус оказания сделки "price": 1000 // Цена сделки } ]Метод обновления календарных событий принимает дополнительное поле
orders:Пример поля orders
"orders": [ // Массив сделок, которые должны быть привязаны к создаваемому календарному событию. { "id": 1, // Идентификатор ранее привязанной сделки. Для создания новой сделки необходимо оставить это поле пустым. "title": "Тестовая услуга", // Произвольное название сделки (обязательно при отсутствии поля `offer_id`) "is_paid": false, // Флаг оплаты сделки "status_id": 4, // Статус оказания сделки "price": 1000 // Цена сделки }, { "id": 2, // Идентификатор ранее привязанной сделки. Для создания новой сделки необходимо оставить это поле пустым. "offer_id": 1, // Идентификатор коммерческого предложения, по которому оказывается сделка. "is_paid": false, // Флаг оплаты сделки "status_id": 4, // Статус оказания сделки "price": 1000 // Цена сделки } ]Метод просмотра данных календарного события, метод создания календарных событий и метод обновления календарных событий, Метод просмотра календарных событий за период, Метод просмотра календарных событий и других календарных сущностей за период возвращает дополнительное поле
orders:Пример поля orders
"orders": [ { "id": 1, // Идентификатор сделки, привязанной к календарному событию. "title": "Тестовая услуга", // Заголовок сделки, привязанной к календарному событию. "is_paid": false, // Признак оплаты сделки, привязанной к календарному событию. "price": 1000, // Цена сделки, привязанной к календарному событию. "status": { // Статус сделки, привязанной к календарному событию. "id": 4, "title": "Запланировано", "class": "OFFER_STATUS", "position": 1, "color": "#cccccc", "icon": null, "is_system": true, "created_at": "2024-09-20T07:21:44.000000Z", "updated_at": "2024-09-20T07:21:44.000000Z" }, "offer": null, // Коммерческое предложение, привязанное к сделке. "created_at": "2024-09-25T13:08:01.000000Z", // Дата и время привязки сделки к календарному событию. "updated_at": "2024-09-25T13:08:01.000000Z" // Дата и время обновления сделки, привязанной к календарному событию. }, { "id": 2, // Идентификатор сделки, привязанной к календарному событию. "title": "Тестовое предложение", // Заголовок сделки, привязанной к календарному событию. "is_paid": true, // Признак оплаты сделки, привязанной к календарному событию. "price": 311299.2, // Цена сделки, привязанной к календарному событию. "status": { // Статус сделки, привязанной к календарному событию. "id": 4, "title": "Запланировано", "class": "OFFER_STATUS", "position": 1, "color": "#cccccc", "icon": null, "is_system": true, "created_at": "2024-09-20T07:21:44.000000Z", "updated_at": "2024-09-20T07:21:44.000000Z" }, "offer": { // Коммерческое предложение, привязанное к сделке. "id": 1, "title": "Тестовое предложение", "base_price": 346388, "total_price": 311299.2, "discount_type": null, "discount_value": null, "created_at": "2024-09-23T08:53:53.000000Z", "updated_at": "2024-09-24T12:20:55.000000Z" }, "created_at": "2024-09-25T13:08:01.000000Z", // Дата и время привязки сделки к календарному событию. "updated_at": "2024-09-25T13:08:01.000000Z" // Дата и время обновления сделки, привязанной к календарному событию. } ]В поле
result->calendar_event_types->statusesфоновой задачи, созданной методом генерации статистики обращений, добавлено полеorders_total_priceс суммой всех сделок календарных событий с соответствующим статусом.Метод получения списка клиентов принимает дополнительные параметры фильтрации:
- offers_created_at_from string - клиент должен иметь коммерческое приложение, созданное после указанной даты (включительно)
- offers_created_at_to string - клиент должен иметь коммерческое приложение, созданное до указанной даты (включительно)
- offers_price_from string - клиент должен иметь коммерческое приложение, итоговая сумма которого начинается от указанного числа (включительно)
- offers_price_to string - клиент должен иметь коммерческое приложение, итоговая сумма которого не превышает указанное число (включительно)
- offers_has_products integer[] - массив идентификаторов товаров/услуг - клиент должен иметь коммерческое приложение, СОДЕРЖАЩЕЕ любой из указанных товаров/услуг
- offers_has_no_products integer[] - массив идентификаторов товаров/услуг - клиент должен иметь коммерческое приложение, НЕ СОДЕРЖАЩЕЕ ни одно из указанные товаров/услуг
- offers_has_price_lists integer[] - массив идентификаторов прайс-листов - клиент должен иметь коммерческое приложение, СВЯЗАННОЕ с одним из указанных прайс-листов
- offers_has_no_price_lists integer[] - массив идентификаторов прайс-листов - клиент должен иметь коммерческое приложение, НЕ СВЯЗАННОЕ ни с одним из указанных прайс-листов
- offers_has_lead_statuses integer[] - массив идентификаторов статусов - клиент должен иметь коммерческое приложение, ИМЕЮЩЕЕ один из указанных статусов
- offers_has_no_lead_statuses integer[] - массив идентификаторов статусов - клиент должен иметь коммерческое приложение, НЕ ИМЕЮЩЕЕ ни один из указанных статусов
Указанные параметры фильтрации дополняют друг друга, т.е. каждый из этих параметров при передаче добавляет к условию на наличие коммерческих предложений соответствующее ограничение.
Модуль расширяет некоторые API методы других модулей. Ниже перечислены соответствующие изменения:
- Метод получения доступных команд клиентского Telegram - бота дополнительно возвращает команды
/bonus_balanceи/ref_code. - В поля
result->calendar_event_types->old_chats->statusesиresult->calendar_event_types->new_chats->statusesфоновой задачи, созданной методом генерации статистики чатов, добавлено полеorders_total_priceс суммой всех сделок календарных событий с соответствующим статусом.
index
Возвращает список прайс-листов.
Требуются права доступа:
- PRODUCT_SHOW
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинации). |
| sort_by | string Default: "id" Enum: "id" "title" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| search | string Произвольный текстовый запрос для поиска записей. |
| ids | Array of integers Массив идентификаторов прайс-листов. В случае передачи этого параметра игнорирует прочие параметры и возвращает прайс-листы с указанными идентификаторами. Не более 50 идентификаторов в одном запросе. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "price_lists": [
- {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}store
Создаёт новый прайс-лист.
Требуются права доступа:
- PRODUCT_SHOW
- PRICE_LIST_STORE
Authorizations:
Request Body schema: multipart/form-datarequired
Данные прайс-листа
| title required | string Название прайс-листа |
| description | string Описание прайс-листа |
| stamp_with_details_file | file Файл с изображением печати с реквизитами прайс-листа |
| stamp_confirmation_file | file Файл с изображением подтверждающей подпись печати прайс-листа |
Array of objects Массив основных типов товаров/услуг с указанием максимального размера скидки в рамках прайс-листа |
Responses
Request samples
- Payload
{ "title": "Новый прайс-лист", "description": "Описание нового прайс-листа", "stamp_with_details_file": "stamp.png", "stamp_confirmation_file": "sign.png", "product_general_type_discounts": [ { "product_general_type_id": 20, "max_discount": "25" } ] }
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z",
- "product_general_type_discounts": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
]
}, - "message": "ОК"
}bulk destroy
Массовое удаление прайс-листов.
Требуются права доступа:
- PRODUCT_SHOW
- PRICE_LIST_DESTROY
Authorizations:
Request Body schema: application/jsonrequired
| ids required | Array of integers Массив идентификаторов |
Responses
Request samples
- Payload
{- "ids": [
- 1,
- 2,
- 3
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": { },
- "message": "ОК"
}show
Возвращает данные прайс-листа.
Требуются права доступа:
- PRODUCT_SHOW
Authorizations:
path Parameters
| priceListId required | integer Идентификатор прайс-листа |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z",
- "product_general_type_discounts": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
]
}, - "message": "ОК"
}update
Обновляет данные прайс-листа.
Требуются права доступа:
- PRODUCT_SHOW
- PRICE_LIST_STORE
Authorizations:
path Parameters
| priceListId required | integer Идентификатор прайс-листа |
Request Body schema: multipart/form-datarequired
Данные прайс-листа
| title required | string Название прайс-листа |
| description | string Описание прайс-листа |
| stamp_with_details_file_remove | boolean Признак необходимости удаления файла с изображением печати с реквизитами прайс-листа (true - удаление требуется, false - не требуется) |
| stamp_confirmation_file_remove | boolean Признак необходимости удаления файла с изображением подтверждающей подпись печати прайс-листа (true - удаление требуется, false - не требуется) |
| stamp_with_details_file | file Файл с изображением печати с реквизитами прайс-листа |
| stamp_confirmation_file | file Файл с изображением подтверждающей подпись печати прайс-листа |
Array of objects Массив основных типов товаров/услуг с указанием максимального размера скидки в рамках прайс-листа |
Responses
Request samples
- Payload
{ "title": "Новый прайс-лист", "description": "Описание нового прайс-листа", "stamp_with_details_file": "stamp.png", "stamp_confirmation_file": "sign.png", "stamp_with_details_file_remove": true, "stamp_confirmation_file_remove": true, "product_general_type_discounts": [ { "product_general_type_id": 20, "max_discount": "25" } ] }
Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z",
- "product_general_type_discounts": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
]
}, - "message": "ОК"
}destroy
Удаляет прайс-лист.
Требуются права доступа:
- PRODUCT_SHOW
- PRICE_LIST_DESTROY
Authorizations:
path Parameters
| priceListId required | integer Идентификатор прайс-листа |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z",
- "product_general_type_discounts": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
]
}, - "message": "ОК"
}index
Возвращает список товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "title" "sku" "price" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| search | string Произвольный текстовый запрос для поиска записей. |
| price_lists | Array of integers Массив идентификаторов прайс-листов. |
| general_types | Array of integers Массив идентификаторов основных типов товаров/услуг. |
| sub_types | Array of integers Массив идентификаторов доп. типов 1 товаров/услуг. |
| sub_sub_types | Array of integers Массив идентификаторов доп. типов 2 товаров/услуг. |
| no_general_type | boolean Признак необходимости поиска товаров/услуг без основного типа. |
| no_sub_type | boolean Признак необходимости поиска товаров/услуг без доп. типа 1. |
| no_sub_sub_type | boolean Признак необходимости поиска товаров/услуг без доп. типа 2. |
| ids | Array of integers Массив идентификаторов товаров/услуг. В случае передачи этого параметра игнорирует прочие параметры и возвращает товары/услуги с указанными идентификаторами. Не более 50 идентификаторов в одном запросе. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20,
- "pivot_max_discount": 20
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "product_groups": [
- {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
], - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}store
Создаёт новый товар/услугу.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_STORE
Authorizations:
Request Body schema: application/jsonrequired
Данные товара
| title required | string Название товара/услуги |
| public_title | string Публичное название товара/услуги |
| sku | string Артикул товара/услуги |
| price required | number Цена товара/услуги |
| price_list_id required | integer Идентификатор прайс-листа товара/услуги |
| general_type_id | integer Идентификатор основного типа товара/услуги |
| sub_type_id | integer Идентификатор доп. типа 1 товара/услуги |
| sub_sub_type_id | integer Идентификатор доп. типа 2 товара/услуги |
Responses
Request samples
- Payload
{- "title": "Новый товар",
- "public_title": "Новый товар",
- "sku": "a123456789",
- "price": 69926,
- "price_list_id": 1,
- "general_type_id": 20,
- "sub_type_id": 8,
- "sub_sub_type_id": 8
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20,
- "pivot_max_discount": 20
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "product_groups": [
- {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
], - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z"
}, - "message": "ОК"
}bulk destroy
Массовое удаление товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_DESTROY
Authorizations:
Request Body schema: application/jsonrequired
| ids required | Array of integers Массив идентификаторов |
Responses
Request samples
- Payload
{- "ids": [
- 1,
- 2,
- 3
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": { },
- "message": "ОК"
}show
Возвращает данные товара/услуги.
Требуются права доступа:
- PRODUCT_SHOW
Authorizations:
path Parameters
| productId required | integer Идентификатор товара/услуги |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20,
- "pivot_max_discount": 20
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "product_groups": [
- {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
], - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z"
}, - "message": "ОК"
}update
Обновляет данные товара/услуги.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_STORE
Authorizations:
path Parameters
| productId required | integer Идентификатор товара/услуги |
Request Body schema: application/jsonrequired
Данные товара
| title required | string Название товара/услуги |
| public_title | string Публичное название товара/услуги |
| sku | string Артикул товара/услуги |
| price required | number Цена товара/услуги |
| price_list_id required | integer Идентификатор прайс-листа товара/услуги |
| general_type_id | integer Идентификатор основного типа товара/услуги |
| sub_type_id | integer Идентификатор доп. типа 1 товара/услуги |
| sub_sub_type_id | integer Идентификатор доп. типа 2 товара/услуги |
Responses
Request samples
- Payload
{- "title": "Новый товар",
- "public_title": "Новый товар",
- "sku": "a123456789",
- "price": 69926,
- "price_list_id": 1,
- "general_type_id": 20,
- "sub_type_id": 8,
- "sub_sub_type_id": 8
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20,
- "pivot_max_discount": 20
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "product_groups": [
- {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
], - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z"
}, - "message": "ОК"
}destroy
Удаляет товар/услугу.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_DESTROY
Authorizations:
path Parameters
| productId required | integer Идентификатор товара/услуги |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20,
- "pivot_max_discount": 20
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "product_groups": [
- {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
], - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z"
}, - "message": "ОК"
}index
Возвращает список групп товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "title" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| search | string Произвольный текстовый запрос для поиска записей. |
| price_lists | Array of integers Массив идентификаторов прайс-листов. |
| ids | Array of integers Массив идентификаторов товаров/услуг. В случае передачи этого параметра игнорирует прочие параметры и возвращает товары/услуги с указанными идентификаторами. Не более 50 идентификаторов в одном запросе. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "product_groups": [
- {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}store
Создаёт новую группу товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_STORE
Authorizations:
Request Body schema: application/jsonrequired
Данные группы товаров/услуг
| title required | string Название группы товаров/услуг |
| description | string Описание группы товаров/услуг |
| price_list_id required | number Идентификатор прайс-листа группы товаров/услуг |
Array of objects Массив товаров/услуг с указанием количества в рамках группы товаров/услуг |
Responses
Request samples
- Payload
{- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "price_list_id": 1,
- "products": [
- {
- "id": 1,
- "count": 1
}
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_group": 1
}
], - "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "message": "ОК"
}bulk destroy
Массовое удаление групп товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_DESTROY
Authorizations:
Request Body schema: application/jsonrequired
| ids required | Array of integers Массив идентификаторов |
Responses
Request samples
- Payload
{- "ids": [
- 1,
- 2,
- 3
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": { },
- "message": "ОК"
}show
Возвращает данные группы товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
Authorizations:
path Parameters
| productGroupId required | integer Идентификатор группы товаров/услуг |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_group": 1
}
], - "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "message": "ОК"
}update
Обновляет данные группы товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_STORE
Authorizations:
path Parameters
| productGroupId required | integer Идентификатор группы товаров/услуг |
Request Body schema: application/jsonrequired
Данные группы товаров/услуг
| title required | string Название группы товаров/услуг |
| description | string Описание группы товаров/услуг |
| price_list_id required | number Идентификатор прайс-листа группы товаров/услуг |
Array of objects Массив товаров/услуг с указанием количества в рамках группы товаров/услуг |
Responses
Request samples
- Payload
{- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "price_list_id": 1,
- "products": [
- {
- "id": 1,
- "count": 1
}
]
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_group": 1
}
], - "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "message": "ОК"
}destroy
Удаляет группу товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_DESTROY
Authorizations:
path Parameters
| productGroupId required | integer Идентификатор группы товаров/услуг |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 10,
- "title": "Новая группа товаров/услуг",
- "description": "Описание группы товаров/услуг",
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_group": 1
}
], - "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "message": "ОК"
}index
Возвращает список импортируемых товаров/услуг.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_STORE
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| batch_id required | number Идентификатор фоновой задачи, в рамках которой выполняется импорт. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "imported_products": [
- {
- "id": 1,
- "title": "Тестовая услуга 1",
- "public_title": "Тестовая услуга 1",
- "description": "Описание услуги",
- "sku": "АРТ-12345",
- "price": 100000,
- "general_type_title": "Хирургическая часть",
- "sub_type_title": "Увеличивающая маммопластика",
- "sub_sub_type_title": "Пластика груди",
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "product": {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z"
}, - "created_at": "2024-09-30T11:43:37.000000Z",
- "updated_at": "2024-09-30T11:43:37.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}upload
Создаёт фоновую задачу для импорта товаров/услуг из Excel-файла.
Обработка Excel-файла происходит в фоновом режиме, в качестве ответа возвращается объект фоновой задачи.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_STORE
Authorizations:
Request Body schema: multipart/form-datarequired
Данные импортируемых товаров/услуг
| file required | string Excel-файл с импортируемыми товарами/услугами |
| price_list_id required | number Идентификатор прайс-листа импортируемых товаров/услуг |
Responses
Request samples
- Payload
{ "file": "products.xslx", "price_list_id": "1" }
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 1,
- "status": "PENDING",
- "progress": 0,
- "goal": 100,
- "message": "message",
- "result": { },
- "created_at": "2025-02-25T09:53:48.000000Z",
- "updated_at": "2025-02-25T09:53:48.000000Z"
}, - "message": "ОК"
}confirm
Подтверждает корректность обработки Excel-файла с импортируемыми товарами/услугами и сохраняет их (товары/услуги) в базу данных.
- Если передан параметр
remove_other_productсо значениемtrue, товары/услуги указанного в методе upload прайс-листа, отсутствующие в Excel-файле, будут удалены. - Если передан параметр
create_typesсо значениемtrue, будут созданы типы импортируемых товаров/услуг, отсутствующие в базе данных.
Обработка импортируемых товаров/услуг происходит в фоновом режиме, в качестве ответа возвращается объект фоновой задачи.
Требуются права доступа:
- PRODUCT_SHOW
- PRODUCT_STORE
Положительные значения параметров remove_other_product и create_types требуют права доступа PRODUCT_DESTROY и TYPE_STORE соответственно.
Authorizations:
Request Body schema: application/jsonrequired
Параметры импорта товаров/услуг
| batch_id required | number Идентификатор фоновой задачи, в рамках которой выполняется импорт |
| remove_other_product | boolean Флаг необходимости удаления товаров/услуг указанного прайс-листа, отсутствующих в Excel-файле |
| create_types | boolean Флаг необходимости создания типов импортируемых товаров/услуг, отсутствующих в базе данных |
Responses
Request samples
- Payload
{- "batch_id": 1,
- "remove_other_product": 1,
- "create_types": 1
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 1,
- "status": "PENDING",
- "progress": 0,
- "goal": 100,
- "message": "message",
- "result": { },
- "created_at": "2025-02-25T09:53:48.000000Z",
- "updated_at": "2025-02-25T09:53:48.000000Z"
}, - "message": "ОК"
}index
Возвращает список классов акций.
Требуются права доступа:
- OFFER_SHOW
Authorizations:
Responses
Response samples
- 200
- 401
- 403
{- "success": true,
- "data": {
- "promotion_classes": [
- {
- "id": 1,
- "class": "PromotionClassGeneralTypeFixed",
- "title": "Фиксированная скидка на выбранный основной тип товаров/услуг",
- "description": "Отнимает указанную фиксированную сумму от общей стоимости всех товаров/услуг с указанным основным типом.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}
]
}, - "message": "ОК"
}index
Возвращает список акций.
Требуются права доступа:*
- OFFER_SHOW
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "title" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| search | string Произвольный текстовый запрос для поиска записей. |
| ids | Array of integers Массив идентификаторов акций. В случае передачи этого параметра игнорирует прочие параметры и возвращает бонусы с указанными идентификаторами. Не более 50 идентификаторов в одном запросе. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "promotions": [
- {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "promotion_class": {
- "id": 1,
- "class": "PromotionClassGeneralTypeFixed",
- "title": "Фиксированная скидка на выбранный основной тип товаров/услуг",
- "description": "Отнимает указанную фиксированную сумму от общей стоимости всех товаров/услуг с указанным основным типом.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}store
Создаёт новую акцию.
Требуются права доступа:
- OFFER_SHOW
- PROMOTION_STORE
Параметр data зависит от класса создаваемой акции. // todo примеры
Authorizations:
Request Body schema: application/jsonrequired
Данные акции
| title required | string Название акции |
| description | string Описание акции |
| promotion_class_id required | number Идентификатор класса акции |
| data | object Доп. параметры акции |
Responses
Request samples
- Payload
{- "title": "Бонус за наличие направления",
- "description": "",
- "promotion_class_id": 1,
- "data": {
- "discount": 5,
- "general_type_id": 20
}
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "promotion_class": {
- "id": 1,
- "class": "PromotionClassGeneralTypeFixed",
- "title": "Фиксированная скидка на выбранный основной тип товаров/услуг",
- "description": "Отнимает указанную фиксированную сумму от общей стоимости всех товаров/услуг с указанным основным типом.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}, - "message": "ОК"
}bulk destroy
Массовое удаление акций.
Требуются права доступа:
- OFFER_SHOW
- PROMOTION_DESTROY
Authorizations:
Request Body schema: application/jsonrequired
| ids required | Array of integers Массив идентификаторов |
Responses
Request samples
- Payload
{- "ids": [
- 1,
- 2,
- 3
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": { },
- "message": "ОК"
}show
Возвращает данные акции.
Требуются права доступа:
- OFFER_SHOW
Authorizations:
path Parameters
| promotionId required | integer Идентификатор акции |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "promotion_class": {
- "id": 1,
- "class": "PromotionClassGeneralTypeFixed",
- "title": "Фиксированная скидка на выбранный основной тип товаров/услуг",
- "description": "Отнимает указанную фиксированную сумму от общей стоимости всех товаров/услуг с указанным основным типом.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}, - "message": "ОК"
}update
Обновляет данные акции.
Требуются права доступа:
- OFFER_SHOW
- PROMOTION_STORE
Параметр data зависит от класса создаваемой акции. // todo примеры
Authorizations:
path Parameters
| promotionId required | integer Идентификатор акции |
Request Body schema: application/jsonrequired
Данные акции
| title required | string Название акции |
| description | string Описание акции |
| promotion_class_id required | number Идентификатор класса акции |
| data | object Доп. параметры акции |
Responses
Request samples
- Payload
{- "title": "Бонус за наличие направления",
- "description": "",
- "promotion_class_id": 1,
- "data": {
- "discount": 5,
- "general_type_id": 20
}
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "promotion_class": {
- "id": 1,
- "class": "PromotionClassGeneralTypeFixed",
- "title": "Фиксированная скидка на выбранный основной тип товаров/услуг",
- "description": "Отнимает указанную фиксированную сумму от общей стоимости всех товаров/услуг с указанным основным типом.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}, - "message": "ОК"
}destroy
Удаляет акцию.
Требуются права доступа:
- OFFER_SHOW
- PROMOTION_DESTROY
Authorizations:
path Parameters
| promotionId required | integer Идентификатор акции |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "promotion_class": {
- "id": 1,
- "class": "PromotionClassGeneralTypeFixed",
- "title": "Фиксированная скидка на выбранный основной тип товаров/услуг",
- "description": "Отнимает указанную фиксированную сумму от общей стоимости всех товаров/услуг с указанным основным типом.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}, - "message": "ОК"
}index
Возвращает список классов бонусов.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
Authorizations:
Responses
Response samples
- 200
- 401
- 403
{- "success": true,
- "data": {
- "bonus_classes": [
- {
- "id": 1,
- "class": "BonusClassFixed",
- "title": "Фиксированный бонус",
- "description": "Начисляется указанное фиксированное количество бонусов.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}
]
}, - "message": "ОК"
}index
Возвращает список бонусов.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "title" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| search | string Произвольный текстовый запрос для поиска записей. |
| ids | Array of integers Массив идентификаторов бонусов. В случае передачи этого параметра игнорирует прочие параметры и возвращает бонусы с указанными идентификаторами. Не более 50 идентификаторов в одном запросе. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "bonuses": [
- {
- "id": 6,
- "title": "Бонусы за репосты",
- "description": "",
- "lifetime": 3600,
- "bonus_class": {
- "id": 1,
- "class": "BonusClassFixed",
- "title": "Фиксированный бонус",
- "description": "Начисляется указанное фиксированное количество бонусов.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "bonus": 1000,
- "is_cashing_available": false
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}store
Создаёт новый бонус.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- BONUS_STORE
Параметр data зависит от класса создаваемого бонуса. // todo примеры
Authorizations:
Request Body schema: application/jsonrequired
Данные бонуса
| title required | string Название бонуса |
| description | string Описание бонуса |
| lifetime | number Время действия бонусной транзакции |
| bonus_class_id required | number Идентификатор класса бонуса |
| data | object Доп. параметры бонуса |
Responses
Request samples
- Payload
{- "title": "Бонусы за репосты",
- "description": "",
- "lifetime": 3600,
- "bonus_class_id": 1,
- "data": {
- "bonus": 1000,
- "is_cashing_available": false
}
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 6,
- "title": "Бонусы за репосты",
- "description": "",
- "lifetime": 3600,
- "bonus_class": {
- "id": 1,
- "class": "BonusClassFixed",
- "title": "Фиксированный бонус",
- "description": "Начисляется указанное фиксированное количество бонусов.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "bonus": 1000,
- "is_cashing_available": false
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}, - "message": "ОК"
}bulk destroy
Массовое удаление бонусов.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- BONUS_DESTROY
Authorizations:
Request Body schema: application/jsonrequired
| ids required | Array of integers Массив идентификаторов |
Responses
Request samples
- Payload
{- "ids": [
- 1,
- 2,
- 3
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": { },
- "message": "ОК"
}show
Возвращает данные бонуса.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
Authorizations:
path Parameters
| bonusId required | integer Идентификатор бонуса |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 6,
- "title": "Бонусы за репосты",
- "description": "",
- "lifetime": 3600,
- "bonus_class": {
- "id": 1,
- "class": "BonusClassFixed",
- "title": "Фиксированный бонус",
- "description": "Начисляется указанное фиксированное количество бонусов.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "bonus": 1000,
- "is_cashing_available": false
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}, - "message": "ОК"
}update
Обновляет данные бонуса.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- BONUS_STORE
Параметр data зависит от класса создаваемого бонуса. // todo примеры
Authorizations:
path Parameters
| bonusId required | integer Идентификатор бонуса |
Request Body schema: application/jsonrequired
Данные бонуса
| title required | string Название бонуса |
| description | string Описание бонуса |
| lifetime | number Время действия бонусной транзакции |
| bonus_class_id required | number Идентификатор класса бонуса |
| data | object Доп. параметры бонуса |
Responses
Request samples
- Payload
{- "title": "Бонусы за репосты",
- "description": "",
- "lifetime": 3600,
- "bonus_class_id": 1,
- "data": {
- "bonus": 1000,
- "is_cashing_available": false
}
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 6,
- "title": "Бонусы за репосты",
- "description": "",
- "lifetime": 3600,
- "bonus_class": {
- "id": 1,
- "class": "BonusClassFixed",
- "title": "Фиксированный бонус",
- "description": "Начисляется указанное фиксированное количество бонусов.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "bonus": 1000,
- "is_cashing_available": false
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}, - "message": "ОК"
}destroy
Удаляет бонус.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- BONUS_DESTROY
Authorizations:
path Parameters
| bonusId required | integer Идентификатор бонуса |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 6,
- "title": "Бонусы за репосты",
- "description": "",
- "lifetime": 3600,
- "bonus_class": {
- "id": 1,
- "class": "BonusClassFixed",
- "title": "Фиксированный бонус",
- "description": "Начисляется указанное фиксированное количество бонусов.",
- "created_at": "2024-09-26T09:02:26.000000Z",
- "updated_at": "2024-09-26T09:02:26.000000Z"
}, - "data": {
- "bonus": 1000,
- "is_cashing_available": false
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}, - "message": "ОК"
}preview
Предпросмотр бонуса
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
Authorizations:
path Parameters
| bonusId required | integer Идентификатор бонуса |
Request Body schema: application/jsonrequired
Данные предпросмотра бонуса
| client_id required | integer Идентификатор клиента |
Responses
Request samples
- Payload
{- "client_id": 1
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "value": {
- "success": true,
- "data": "Клиенту будет начислено 100 бонусов",
- "message": "ОК"
}
}index
Возвращает список бонусных транзакций.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "purpose" "status" "amount" "expired_at" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| search | string Произвольный текстовый запрос для поиска записей. |
| clients | Array of integers Массив идентификаторов клиентов, которые должны быть связаны с бонусной транзакцией |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "bonus_transactions": [
- {
- "id": 1,
- "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "user": {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}, - "amount": 8538.7,
- "purpose": "payment",
- "status": "completed",
- "description": "Бонусы за направления",
- "client_choice_uuid": "3dfaae50-588f-4f2a-b719-9ab7d75bb25e",
- "expired_at": "2030-09-26T09:12:54.000000Z",
- "created_at": "2024-09-26T09:12:54.000000Z",
- "updated_at": "2024-09-26T09:12:56.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}store
Создаёт новую бонусную транзакцию.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- BONUS_TRANSACTION_STORE
При создании бонусной транзакции на основе бонуса может быть создано несколько бонусных транзакций. Возвращает массив бонусных транзакций.
Authorizations:
Request Body schema: application/jsonrequired
Данные бонусной транзакции
| client_id required | number Идентификатор клиента, к которому относится бонусная транзакция |
| bonus_id | number Идентификатор бонуса (если бонусная транзакция начисляется по бонусу) |
| description | string Описание бонусной транзакции (за что начислен/списан бонус). Обязательно для заполнения при отсутствии параметра |
| purpose | string Enum: "cashing" "payment" Назначение бонусной транзакции ( |
| amount | number Сумма начисляемых бонусов (положительное число при начислении, отрицательное число при списании). Обязательно для заполнения при отсутствии параметра |
| expired_at | string Срок действия бонусной транзакции (дата окончания срока действия). |
| params | object Параметры бонуса (указывается при заполенном параметре |
Responses
Request samples
- Payload
{- "client_id": 14,
- "bonus_id": "",
- "params": { },
- "description": "Бонусы за направления",
- "purpose": "payment",
- "amount": 8538.7,
- "expired_at": "26.09.2030"
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "bonus_transactions": [
- {
- "id": 1,
- "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "user": {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}, - "amount": 8538.7,
- "purpose": "payment",
- "status": "completed",
- "description": "Бонусы за направления",
- "client_choice_uuid": "3dfaae50-588f-4f2a-b719-9ab7d75bb25e",
- "expired_at": "2030-09-26T09:12:54.000000Z",
- "created_at": "2024-09-26T09:12:54.000000Z",
- "updated_at": "2024-09-26T09:12:56.000000Z"
}
]
}, - "message": "ОК"
}show
Возвращает данные бонусной транзакции.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
Authorizations:
path Parameters
| bonusTransactionId required | integer Идентификатор бонусной транзакции |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "user": {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}, - "amount": 8538.7,
- "purpose": "payment",
- "status": "completed",
- "description": "Бонусы за направления",
- "client_choice_uuid": "3dfaae50-588f-4f2a-b719-9ab7d75bb25e",
- "expired_at": "2030-09-26T09:12:54.000000Z",
- "created_at": "2024-09-26T09:12:54.000000Z",
- "updated_at": "2024-09-26T09:12:56.000000Z"
}, - "message": "ОК"
}accept
Изменяет статус бонусной транзакции, находящейся в ожидании решения клиента, на "Принято".
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- BONUS_TRANSACTION_STORE
Authorizations:
path Parameters
| bonusTransactionId required | integer Идентификатор бонусной транзакции |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "user": {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}, - "amount": 8538.7,
- "purpose": "payment",
- "status": "completed",
- "description": "Бонусы за направления",
- "client_choice_uuid": "3dfaae50-588f-4f2a-b719-9ab7d75bb25e",
- "expired_at": "2030-09-26T09:12:54.000000Z",
- "created_at": "2024-09-26T09:12:54.000000Z",
- "updated_at": "2024-09-26T09:12:56.000000Z"
}, - "message": "ОК"
}Возвращает коммерческое предложение в формате PDF
Требуются права доступа:
- OFFER_SHOW
Authorizations:
query Parameters
| show_details_stamp | integer Флаг необходимости отображения штампа с реквизитами прайс-листа |
| show_signature | string Флаг необходимости отображения подписей специалистов |
| show_signature_stamp | string Флаг необходимости отображения печати на подписях специалистов |
| signature_stamp_by_price_list | boolean Флаг необходимости использования по умолчанию в качестве печати на подписях специалистов печать, указанную в прайс-листе (даже если у специалиста есть собственная печать) |
Responses
Response samples
- 200
- 401
- 403
- 404
file.pdfindex
Возвращает список коммерческих предложений.
Требуются права доступа:
- OFFER_SHOW
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "title" "base_price" "total_price" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| search | string Произвольный текстовый запрос для поиска записей. |
| price_lists | Array of arrays Массив идентификаторов прайс-листов. |
| clients | Array of integers Массив идентификаторов клиентов |
| leads | Array of integers Массив идентификаторов обращений |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "offers": [
- {
- "id": 1,
- "title": "Тестовое предложение",
- "base_price": 85387,
- "total_price": 85387,
- "discount_type": "percent",
- "discount_value": 1,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "lead": {
- "id": 468,
- "title": "Magnam sit labore quia maxime.",
- "description": "Hic aliquid quis provident quam dolorem enim voluptas.",
- "position": 4456380,
- "lead_at": "2019-12-01T00:00:00.000000Z",
- "created_at": "2024-01-18T14:42:17.000000Z",
- "updated_at": "2024-01-18T14:42:17.000000Z"
}, - "orders": [
- {
- "id": 1,
- "title": "ОперСпб",
- "is_paid": true,
- "price": 499940,
- "calendar_event": {
- "id": 1,
- "title": "Новое календарное событие",
- "description": "Описание нового календарного события",
- "start_at": "2024-02-20T12:00:00.000000Z",
- "end_at": "2024-02-20T12:00:00.000000Z",
- "has_confirmations_processing": false,
- "has_confirmations_confirmed": false,
- "has_confirmations_cancelled": false,
- "status": {
- "id": 1,
- "title": "Название статуса",
- "class": "STATUS_CLASS",
- "position": 1,
- "color": "#ef8200",
- "icon": "fa-solid fa-status",
- "is_system": true,
- "created_at": "2024-03-14T09:09:31.000000Z",
- "updated_at": "2024-03-14T09:09:31.000000Z"
}, - "tags": [
- {
- "id": 224,
- "title": "Название тега",
- "class": "TAG_CLASS",
- "position": 24,
- "color": "#915935",
- "created_at": "2024-01-18T14:41:47.000000Z",
- "updated_at": "2024-01-18T14:41:47.000000Z"
}
], - "created_at": "2024-03-14T09:10:13.000000Z",
- "updated_at": "2024-03-14T09:10:13.000000Z"
}, - "created_at": "2024-04-25T13:51:58.000000Z",
- "updated_at": "2024-12-05T11:30:35.000000Z"
}
], - "created_at": "2024-09-26T09:05:06.000000Z",
- "updated_at": "2024-09-26T09:05:06.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}store
Создаёт новое коммерческое предложение.
Требуются права доступа:
OFFER_SHOW
OFFER_STORE
При отсутствии права CLIENT_SHOW поле
client_idбудет проигнорировано.При отсутствии права LEAD_SHOW поле
lead_idбудет проигнорировано.При отсутствии права USER_SHOW поле
usersбудет проигнорировано.При отсутствии права PRODUCT_SHOW поле
productsбудет проигнорировано.
Authorizations:
Request Body schema: application/jsonrequired
Данные коммерческого предложения
| title required | string Название коммерческого предложения |
| price_list_id required | number Идентификатор прайс-листа |
| client_id required | number Идентификатор клиента |
| lead_id required | number Идентификатор обращения клиента |
| discount_value | number Размер скидки |
| discount_type | string Тип скидки ( |
| product_general_types | Array of arrays Массив основных типов товаров/услуг с указанием бонусной скидки по ним (не более 50) |
| promotions | Array of arrays Массив идентификаторов акций (не более 50) |
| products required | Array of arrays Массив товаров/услуг с указанием количества, цены и признака наличия процентной скидки (не более 500) |
| users required | Array of arrays Массив идентификаторов сотрудников, связанных с коммерческим предложением (не более 50) |
Responses
Request samples
- Payload
{- "title": "Тестовое предложение",
- "discount_type": "percent",
- "discount_value": 1,
- "price_list_id": 1,
- "client_id": 14,
- "lead_id": 468,
- "product_general_types": [
- {
- "product_general_type_id": 20,
- "discount": 20
}
], - "promotions": [
- 1
], - "products": [
- {
- "id": 1,
- "count": 2,
- "base_price": 10,
- "discounted": 1
}
], - "users": [
- 1
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 1,
- "title": "Тестовое предложение",
- "base_price": 85387,
- "total_price": 85387,
- "discount_type": "percent",
- "discount_value": 1,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "lead": {
- "id": 468,
- "title": "Magnam sit labore quia maxime.",
- "description": "Hic aliquid quis provident quam dolorem enim voluptas.",
- "position": 4456380,
- "lead_at": "2019-12-01T00:00:00.000000Z",
- "created_at": "2024-01-18T14:42:17.000000Z",
- "updated_at": "2024-01-18T14:42:17.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_offer": 2,
- "pivot_title_in_offer": "provident",
- "pivot_price_in_offer": 10,
- "pivot_discounted_in_offer": true
}
], - "product_general_types": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20
}
], - "promotions": [
- {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}
], - "users": [
- {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}
], - "created_at": "2024-09-26T09:05:06.000000Z",
- "updated_at": "2024-09-26T09:05:06.000000Z"
}, - "message": "ОК"
}bulk destroy
Массовое удаление коммерческих предложений.
Требуются права доступа:
- OFFER_SHOW
- OFFER_DESTROY
Authorizations:
Request Body schema: application/jsonrequired
| ids required | Array of integers Массив идентификаторов |
Responses
Request samples
- Payload
{- "ids": [
- 1,
- 2,
- 3
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": { },
- "message": "ОК"
}show
Возвращает данные коммерческого предложения.
Требуются права доступа:
- OFFER_SHOW
Authorizations:
path Parameters
| offerId required | integer Идентификатор коммерческого предложения |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Тестовое предложение",
- "base_price": 85387,
- "total_price": 85387,
- "discount_type": "percent",
- "discount_value": 1,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "lead": {
- "id": 468,
- "title": "Magnam sit labore quia maxime.",
- "description": "Hic aliquid quis provident quam dolorem enim voluptas.",
- "position": 4456380,
- "lead_at": "2019-12-01T00:00:00.000000Z",
- "created_at": "2024-01-18T14:42:17.000000Z",
- "updated_at": "2024-01-18T14:42:17.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_offer": 2,
- "pivot_title_in_offer": "provident",
- "pivot_price_in_offer": 10,
- "pivot_discounted_in_offer": true
}
], - "product_general_types": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20
}
], - "promotions": [
- {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}
], - "users": [
- {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}
], - "created_at": "2024-09-26T09:05:06.000000Z",
- "updated_at": "2024-09-26T09:05:06.000000Z"
}, - "message": "ОК"
}update
Обновляет данные коммерческого предложения.
Требуются права доступа:*
OFFER_SHOW
OFFER_STORE
При отсутствии права CLIENT_SHOW поле
client_idкоммерческого предложения останется без изменений.При отсутствии права LEAD_SHOW поле
lead_idкоммерческого предложения останется без изменений.При отсутствии права USER_SHOW поле
usersкоммерческого предложения останется без изменений.При отсутствии права PRODUCT_SHOW поле
productsкоммерческого предложения будет изменено только в пределах тех товаров/услуг, которые уже были привязаны к коммерческому предложению на момент выполнения запроса.
Authorizations:
path Parameters
| offerId required | integer Идентификатор коммерческого предложения |
Request Body schema: application/jsonrequired
Данные коммерческого предложения
| cashout_percentage required | number Процент клиента-участника в партнёрской программе |
Responses
Request samples
- Payload
{- "cashout_percentage": 5
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Тестовое предложение",
- "base_price": 85387,
- "total_price": 85387,
- "discount_type": "percent",
- "discount_value": 1,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "lead": {
- "id": 468,
- "title": "Magnam sit labore quia maxime.",
- "description": "Hic aliquid quis provident quam dolorem enim voluptas.",
- "position": 4456380,
- "lead_at": "2019-12-01T00:00:00.000000Z",
- "created_at": "2024-01-18T14:42:17.000000Z",
- "updated_at": "2024-01-18T14:42:17.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_offer": 2,
- "pivot_title_in_offer": "provident",
- "pivot_price_in_offer": 10,
- "pivot_discounted_in_offer": true
}
], - "product_general_types": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20
}
], - "promotions": [
- {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}
], - "users": [
- {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}
], - "created_at": "2024-09-26T09:05:06.000000Z",
- "updated_at": "2024-09-26T09:05:06.000000Z"
}, - "message": "ОК"
}destroy
Удаляет коммерческое предложение.
Требуются права доступа:
- OFFER_SHOW
- OFFER_DESTROY
Authorizations:
path Parameters
| offerId required | integer Идентификатор коммерческого предложения |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Тестовое предложение",
- "base_price": 85387,
- "total_price": 85387,
- "discount_type": "percent",
- "discount_value": 1,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "lead": {
- "id": 468,
- "title": "Magnam sit labore quia maxime.",
- "description": "Hic aliquid quis provident quam dolorem enim voluptas.",
- "position": 4456380,
- "lead_at": "2019-12-01T00:00:00.000000Z",
- "created_at": "2024-01-18T14:42:17.000000Z",
- "updated_at": "2024-01-18T14:42:17.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_offer": 2,
- "pivot_title_in_offer": "provident",
- "pivot_price_in_offer": 10,
- "pivot_discounted_in_offer": true
}
], - "product_general_types": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20
}
], - "promotions": [
- {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}
], - "users": [
- {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}
], - "created_at": "2024-09-26T09:05:06.000000Z",
- "updated_at": "2024-09-26T09:05:06.000000Z"
}, - "message": "ОК"
}metrics
Возвращает метрики коммерческого предложения.
Требуются права доступа:
- OFFER_SHOW
Authorizations:
path Parameters
| offerId required | integer Идентификатор коммерческого предложения |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "products_count": 1,
- "calendar_events_count": 1
}, - "message": "ОК"
}clone
Создаёт копию коммерческого предложения.
Требуются права доступа:
OFFER_SHOW
OFFER_STORE
При отсутствии права CLIENT_SHOW поле
client_idбудет проигнорировано.При отсутствии права LEAD_SHOW поле
lead_idбудет проигнорировано.
Authorizations:
path Parameters
| offerId required | integer Идентификатор коммерческого предложения |
Request Body schema: application/jsonrequired
Параметры копирования
| mode | string Default: "same_target" Enum: "same_target" "new_target" Режим копирования - |
| client_id | number Идентификатор клиента нового коммерческого предложения. Игнорируется при параметре |
| lead_id | number Идентификатор обращения клиента нового коммерческого предложения. Игнорируется при параметре |
Responses
Request samples
- Payload
{- "mode": "same_target",
- "client_id": 14,
- "lead_id": 468
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 1,
- "title": "Тестовое предложение",
- "base_price": 85387,
- "total_price": 85387,
- "discount_type": "percent",
- "discount_value": 1,
- "price_list": {
- "id": 1,
- "title": "Новый прайс-лист",
- "description": "Описание нового прайс-листа",
- "stamp_with_details_file": "http://ant-crm.local/storage/price_lists_files/DmJPvPbfE7kTGLPdkNsHIruF8HylBsED8mH0PHqh.png",
- "stamp_confirmation_file": "http://ant-crm.local/storage/price_lists_files/XxYF5B05voHjuicpDzO1eeY2AwgAmsTVRLoUfyDa.png",
- "created_at": "2024-09-26T09:04:10.000000Z",
- "updated_at": "2024-09-27T07:47:58.000000Z"
}, - "client": {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}, - "lead": {
- "id": 468,
- "title": "Magnam sit labore quia maxime.",
- "description": "Hic aliquid quis provident quam dolorem enim voluptas.",
- "position": 4456380,
- "lead_at": "2019-12-01T00:00:00.000000Z",
- "created_at": "2024-01-18T14:42:17.000000Z",
- "updated_at": "2024-01-18T14:42:17.000000Z"
}, - "products": [
- {
- "id": 1,
- "title": "Новый товар",
- "public_title": "Новый товар",
- "description": "labore",
- "sku": "a123456789",
- "price": 69926,
- "general_type": {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z"
}, - "sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "sub_sub_type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "created_at": "2024-09-26T09:04:14.000000Z",
- "updated_at": "2024-09-26T09:04:14.000000Z",
- "pivot_count_in_offer": 2,
- "pivot_title_in_offer": "provident",
- "pivot_price_in_offer": 10,
- "pivot_discounted_in_offer": true
}
], - "product_general_types": [
- {
- "id": 20,
- "title": "Хирургическая часть",
- "class": "PRODUCT_GENERAL_TYPE",
- "position": 1,
- "color": "#000000",
- "icon": "fa-icon",
- "is_system": false,
- "created_at": "2024-09-26T09:04:11.000000Z",
- "updated_at": "2024-09-26T09:04:11.000000Z",
- "pivot_bonus_discount": 20
}
], - "promotions": [
- {
- "id": 1,
- "title": "Бонус за наличие направления",
- "description": "",
- "data": {
- "discount": 5,
- "general_type_id": 20
}, - "created_at": "2024-09-26T09:04:15.000000Z",
- "updated_at": "2024-09-26T09:04:15.000000Z"
}
], - "users": [
- {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}
], - "created_at": "2024-09-26T09:05:06.000000Z",
- "updated_at": "2024-09-26T09:05:06.000000Z"
}, - "message": "ОК"
}precalculate
Возвращает предварительный расчёт цены коммерческого предложения.
Если передан параметр offer_id - игнорирует прочие параметры и возвращает расчёт цены коммерческого предложения с указанным идентификатором.
В противном случае возвращает расчёт цены коммерческого предложения с указанными параметрами.
Требуются права доступа:
- OFFER_SHOW
Authorizations:
Request Body schema: application/jsonrequired
Данные коммерческого предложения
| offer_id | number Идентификатор коммерческого предложения |
| price_list_id | number Идентификатор прайс-листа. Обязательно для заполнения, если не указан параметр |
| client_id | number Идентификатор клиента. Обязательно для заполнения, если не указан параметр |
| discount_value | number Размер скидки |
| discount_type | string Тип скидки ( |
| product_general_types | Array of arrays Массив основных типов товаров/услуг с указанием бонусной скидки по ним (не более 50) |
| promotions | Array of arrays Массив идентификаторов акций (не более 50) |
| products | Array of arrays Массив товаров/услуг с указанием количества, цены и признака наличия процентной скидки (не более 500). Обязательно для заполнения, если не указан параметр |
Responses
Request samples
- Payload
{- "offer_id": "",
- "price_list_id": 5,
- "client_id": 1,
- "discount_value": 10,
- "discount_type": "percent",
- "product_general_types": [
- {
- "product_general_type_id": 20,
- "discount": 1000
}
], - "promotions": [
- 1
], - "products": [
- {
- "id": 1,
- "count": 2,
- "base_price": 10,
- "discounted": 1
}
]
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "base_price": 20,
- "total_price": 18,
- "discount": 2,
- "discount_steps": [
- "provident: Стоимость (20.00) уменьшена на 10.00% (2.00). Новая стоимость: 18.00."
]
}, - "message": "ОК"
}calendar events
Возвращает календарные события, с которыми связано коммерческое предложение.
В данном методе действует ограничение на максимальное количество возвращаемых связей календарных событий, а именно:
- Возвращается не более 5 меток календарного события,
- Возвращается не более 2 клиентов календарного события.
Требуются права доступа:
- OFFER_SHOW
Authorizations:
path Parameters
| offerId required | integer Идентификатор коммерческого предложения |
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "start_at" "end_at" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "calendar_events": [
- {
- "id": 1,
- "title": "Новое календарное событие",
- "description": "Описание нового календарного события",
- "start_at": "2024-02-20T12:00:00.000000Z",
- "end_at": "2024-02-20T12:00:00.000000Z",
- "has_confirmations_processing": false,
- "has_confirmations_confirmed": false,
- "has_confirmations_cancelled": false,
- "type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "status": {
- "id": 1,
- "title": "Название статуса",
- "class": "STATUS_CLASS",
- "position": 1,
- "color": "#ef8200",
- "icon": "fa-solid fa-status",
- "is_system": true,
- "created_at": "2024-03-14T09:09:31.000000Z",
- "updated_at": "2024-03-14T09:09:31.000000Z"
}, - "clients": [
- {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}
], - "tags": [
- {
- "id": 224,
- "title": "Название тега",
- "class": "TAG_CLASS",
- "position": 24,
- "color": "#915935",
- "created_at": "2024-01-18T14:41:47.000000Z",
- "updated_at": "2024-01-18T14:41:47.000000Z"
}
], - "comments": [
- {
- "id": 2,
- "body": "test",
- "commentable_type": "App\\Models\\Client",
- "commentable_id": 1,
- "reply_comment": {
- "id": 2,
- "body": "test",
- "commentable_type": "App\\Models\\Client",
- "commentable_id": 1,
- "user": {
- "id": 1,
- "email": "test@example.com",
- "email_verified_at": "2000-01-01T00:00:00.000000Z",
- "is_2fa_active": true,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-30T00:00:00.000000Z",
- "is_super_admin": true,
- "created_at": "2024-01-18T14:41:45.000000Z",
- "updated_at": "2024-01-18T14:41:45.000000Z",
- "deactivated_at": "2024-01-18T14:41:45.000000Z"
}, - "created_at": "2024-01-25T08:18:50.000000Z",
- "updated_at": "2024-01-25T08:18:50.000000Z"
}, - "created_at": "2024-01-25T08:18:50.000000Z",
- "updated_at": "2024-01-25T08:18:50.000000Z"
}
], - "created_at": "2024-03-14T09:10:13.000000Z",
- "updated_at": "2024-03-14T09:10:13.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}Описание методов для взаимодействия с участниками программы лояльности.
index
Возвращает список клиентов-участников программы лояльности.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- CLIENT_SHOW
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "full_name" "cashout_percentage" "balance" "cashing" "pending_balance" "pending_cashing" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| search | string Произвольный текстовый запрос для поиска записей. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "loyalty_clients": [
- {
- "id": 200,
- "first_name": "Фаина",
- "last_name": "Костина",
- "middle_name": "Агафонов",
- "gender": false,
- "cashout_percentage": 5,
- "balance": 25616.1,
- "cashing": 0,
- "pending_balance": 0,
- "pending_cashing": 0,
- "created_at": "2024-09-26T09:02:35.000000Z",
- "updated_at": "2024-09-26T09:05:22.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}show
Возвращает данные клиента-участника программы лояльности.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- CLIENT_SHOW
Authorizations:
path Parameters
| loyaltyClientId required | integer Идентификатор клиента-участника программы лояльности |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 200,
- "first_name": "Фаина",
- "last_name": "Костина",
- "middle_name": "Агафонов",
- "gender": false,
- "cashout_percentage": 5,
- "balance": 25616.1,
- "cashing": 0,
- "pending_balance": 0,
- "pending_cashing": 0,
- "created_at": "2024-09-26T09:02:35.000000Z",
- "updated_at": "2024-09-26T09:05:22.000000Z"
}, - "message": "ОК"
}update
Обновляет данные клиента-участника программы лояльности.
Требуются права доступа:
- BONUS_TRANSACTION_SHOW
- CLIENT_SHOW
- CLIENT_STORE
Authorizations:
path Parameters
| loyaltyClientId required | integer Идентификатор клиента-участника программы лояльности |
Request Body schema: application/jsonrequired
Данные коммерческого предложения
| cashout_percentage required | number Процент клиента-участника в партнёрской программе |
Responses
Request samples
- Payload
{- "cashout_percentage": 5
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 200,
- "first_name": "Фаина",
- "last_name": "Костина",
- "middle_name": "Агафонов",
- "gender": false,
- "cashout_percentage": 5,
- "balance": 25616.1,
- "cashing": 0,
- "pending_balance": 0,
- "pending_cashing": 0,
- "created_at": "2024-09-26T09:02:35.000000Z",
- "updated_at": "2024-09-26T09:05:22.000000Z"
}, - "message": "ОК"
}Описание методов для взаимодействия с параметрами шаблона коммерческих предложений.
index
Возвращает список конфигураций шаблона коммерческих предложений.
Требуются права доступа:
- OFFER_TEMPLATE_STORE
Authorizations:
query Parameters
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| sort_by | string Default: "id" Enum: "id" "created_at" "updated_at" Поле сортировки. |
| descending | boolean Флаг обратного направления сортировки. |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
| keys | Array of strings Items Value: "offer-template-under-products-text" Массив ключей конфигураций (для фильтрации). |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "configs": [
- {
- "id": 5,
- "key": "offer-template-under-products-text",
- "label": "Текст под перечнем товаров/услуг",
- "value": "План лечения действителен в течение 3-х месяцев.",
- "created_at": "2025-02-12T11:22:57.000000Z",
- "updated_at": "2025-02-13T09:34:27.000000Z"
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}update
Обновляет параметр шаблона коммерческих предложений.
В качестве параметра configId допускаются только идентификаторы конфигов, полученные в методе get.
Требуются права доступа:
- OFFER_TEMPLATE_STORE
Authorizations:
path Parameters
| configId required | integer Идентификатор конфига |
Request Body schema: application/jsonrequired
Данные конфига
| value required | string Содержимое параметра |
Responses
Request samples
- Payload
{- "value": "План лечения действителен в течение 3-х месяцев."
}Response samples
- 200
- 400
- 401
- 403
- 404
{- "success": true,
- "data": {
- "id": 5,
- "key": "offer-template-under-products-text",
- "label": "Текст под перечнем товаров/услуг",
- "value": "План лечения действителен в течение 3-х месяцев.",
- "created_at": "2025-02-12T11:22:57.000000Z",
- "updated_at": "2025-02-13T09:34:27.000000Z"
}, - "message": "ОК"
}orders
Создаёт фоновую задачу на расчёт статистики сделок.
Требуются права доступа:
- STATISTIC_SHOW
- ORDERS_STATISTIC_SHOW
Если не передан параметр order_at_from и/или order_at_to, будет сгенерирована статистика за всё время.
В результате выполнения будет возвращён объект фоновой задачи. Процесс выполнения фоновой задачи следует отслеживать с помощью соответствующего метода.
При успешном расчёте статистики полученный объект фоновой задачи будет иметь следующую структуру поля result:
{
"type": "orders_statistic", // Тип статистики
"params": { // Параметры, с учётом которых рассчитана статистики
"order_at_from": "01.01.2025",
"order_at_to": "31.12.2025"
},
"orders": {
"total": 4, // Всего сделок
"calendar_events_ids": [1, 2, 3, 4] // Идентификаторы календарных событий, привязанных к сделкам
},
"income": 1000, // Сумма стоимостей всех сделок
"income_paid": 400, // Сумма стоимостей всех оплаченных сделок
"income_not_paid": 600, // Сумма стоимостей всех неоплаченных сделок
"average_cost": 250, // Средняя стоимость сделки
"orders_statuses": [ // Статусы сделок по месяцам
{
"month": "01.2025", // Месяц/год
"paid": [ // Оплаченные сделки
{
"id": 1, // Идентификатор статуса сделки
"title": "Оказано", // Заголовок статуса сделки
"color": "#cccccc", // Цвет статуса сделки
"orders_price": 400, // Сумма сделок с указанным статусом
"orders_total": 2, // Всего сделок с указанным статусом
"calendar_events_ids": [1, 2] // Идентификаторы календарных событий, связанных со сделками с указанным статусом
}
],
"not_paid": [ // Неоплаченные сделки
{
"id": 1, // Идентификатор статуса сделки
"title": "Оказано", // Заголовок статуса сделки
"color": "#cccccc", // Цвет статуса сделки
"orders_price": 600, // Сумма сделок с указанным статусом
"orders_total": 2, // Всего сделок с указанным статусом
"calendar_events_ids": [3, 4] // Идентификаторы календарных событий, связанных со сделками с указанным статусом
}
]
}
],
"calendar_event_types": [ // Типы календарных событий, связанных со сделками
{
"id": 1, // Идентификатор типа календарного события
"title": "Консультация первичная", // Заголовок типа календарного события
"color": "#fff", // Цвет типа календарного события
"statuses": [ // Статусы календарных событий
{
"id": 1, // Идентификатор статуса календарного события
"title": "Запланировано", // Заголовок статуса календарного события
"color": "#cccccc", // Цвет статуса календарного события
"calendar_events_total": 2, // Всего календарных событий с соответствующим типом и статусом
"calendar_events_ids": [1, 2], // Идентификаторы календарных событий с соответствующим типом и статусом
"orders_total_price": 1234 // Сумма сделок, связанных с календарными событиями с соответствующим типом и статусом
}
]
}
]
}
Authorizations:
Request Body schema: application/jsonrequired
Данные сделок
| order_at_from | string Минимальная дата сделки в формате dd.mm.YYYY. |
| order_at_to | string Максимальная дата сделки в формате dd.mm.YYYY. |
Responses
Request samples
- Payload
{- "order_at_from": "01.01.2025",
- "order_at_to": "31.01.2025"
}Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 1,
- "status": "PENDING",
- "progress": 0,
- "goal": 100,
- "message": "message",
- "result": { },
- "created_at": "2025-02-25T09:53:48.000000Z",
- "updated_at": "2025-02-25T09:53:48.000000Z"
}, - "message": "ОК"
}orders statistic
Выводит данные для виджета "Статистика".
Authorizations:
query Parameters
| year required | integer Год в формате YYYY |
| refresh required | boolean Флаг необходимости обновления данных |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "id": 2,
- "status": "COMPLETED",
- "timestamp": "2025-02-25T09:53:48.000000Z",
- "data": {
- "1": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "2": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "3": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "4": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "5": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "6": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "7": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "8": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "9": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "10": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "11": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}, - "12": {
- "status_id": 4,
- "is_paid": true,
- "label": "Запланировано - оплачено",
- "color": "#cccccc",
- "total_price": 123,
- "calendar_event": [
- 595
]
}
}
}, - "message": "ОК"
}orders statistic calendar events
Выводит календарные события для виджета "Статстика".
Authorizations:
query Parameters
| batch_id required | integer Идентификатор очереди |
| status_id required | integer Идентификатор статуса |
| month required | integer Месяц выборки. Например: 1 - январь |
| is_paid required | boolean Флаг, указывающий, оплачен ли заказ |
| page | integer Номер страницы (для постраничной пагинации). |
| cursor | string Курсор (для курсорной пагинация). |
| per_page | integer Default: 10 Enum: 10 25 50 Кол-во отображаемых записей на странице. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "success": true,
- "data": {
- "calendar_events": [
- {
- "id": 1,
- "title": "Новое календарное событие",
- "description": "Описание нового календарного события",
- "start_at": "2024-02-20T12:00:00.000000Z",
- "end_at": "2024-02-20T12:00:00.000000Z",
- "has_confirmations_processing": false,
- "has_confirmations_confirmed": false,
- "has_confirmations_cancelled": false,
- "type": {
- "id": 8,
- "title": "Название типа",
- "class": "TYPE_CLASS",
- "position": 7,
- "color": "#4C75A3",
- "icon": "fa-brands fa-type-class",
- "is_system": false,
- "created_at": "2024-01-18T14:41:42.000000Z",
- "updated_at": "2024-01-18T14:41:42.000000Z"
}, - "status": {
- "id": 1,
- "title": "Название статуса",
- "class": "STATUS_CLASS",
- "position": 1,
- "color": "#ef8200",
- "icon": "fa-solid fa-status",
- "is_system": true,
- "created_at": "2024-03-14T09:09:31.000000Z",
- "updated_at": "2024-03-14T09:09:31.000000Z"
}, - "clients": [
- {
- "id": 14,
- "first_name": "Иван",
- "last_name": "Иванов",
- "middle_name": "Иванович",
- "gender": 0,
- "birthday": "1995-12-23T00:00:00.000000Z",
- "has_personal_data_consent": false,
- "created_at": "2024-01-18T14:41:48.000000Z",
- "updated_at": "2024-01-18T14:41:48.000000Z"
}
], - "tags": [
- {
- "id": 224,
- "title": "Название тега",
- "class": "TAG_CLASS",
- "position": 24,
- "color": "#915935",
- "created_at": "2024-01-18T14:41:47.000000Z",
- "updated_at": "2024-01-18T14:41:47.000000Z"
}
], - "created_at": "2024-03-14T09:10:13.000000Z",
- "updated_at": "2024-03-14T09:10:13.000000Z",
- "orders": [
- {
- "id": 1,
- "title": "ОперСпб",
- "is_paid": true,
- "price": 499940,
- "status": {
- "id": 1,
- "title": "Название статуса",
- "class": "STATUS_CLASS",
- "position": 1,
- "color": "#ef8200",
- "icon": "fa-solid fa-status",
- "is_system": true,
- "created_at": "2024-03-14T09:09:31.000000Z",
- "updated_at": "2024-03-14T09:09:31.000000Z"
}, - "offer": {
- "id": 1,
- "title": "Тестовое предложение",
- "base_price": 85387,
- "total_price": 85387,
- "discount_type": "percent",
- "discount_value": 1,
- "created_at": "2024-09-26T09:05:06.000000Z",
- "updated_at": "2024-09-26T09:05:06.000000Z"
}, - "created_at": "2024-04-25T13:51:58.000000Z",
- "updated_at": "2024-12-05T11:30:35.000000Z"
}
]
}
], - "meta": {
- "current_page": 3,
- "from": 1,
- "last_page": 5,
- "links": [
- {
- "label": "« Назад",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "2",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=3",
- "label": "3",
- "active": false
}, - {
- "url": "/resource?per_page=10&page=2",
- "label": "Вперёд »",
- "active": false
}
], - "path": "/resource/resource",
- "per_page": 15,
- "to": 15,
- "total": 75
}, - "links": {
- "first": "/resource?per_page=10&page=1",
- "last": "/resource?per_page=10&page=10",
- "next": "/resource?per_page=10&page=2"
}
}, - "message": "ОК"
}