Управление заказами
В рамках быстрого старта вы открыли тестовую продажу. Как эта продажа соотносится с вашими реальными процессами? Чтобы разобраться в этом, рассмотрим пример.
У Василия служба доставки. Покупатели заказывают еду из ресторанов, а курьеры её привозят и получают оплату. Василий берёт из оплаты свою долю за доставку, а остальное передаёт ресторанам.
Пока курьер ходит по заказам, Васи лий в офисе видит все открытые сделки и может получить информацию о каждой из них. Он может изменить данные заказа или отменить его. Когда работу над заказом закончили, Василий переносит его в архив.
Добавление сделки
Для всех заказов в API LIFE POS используется объект Сделка. Он объединяет информацию о товаре, передаваемом покупателю, его стоимости, статусе передачи и т. д. Именно сделку мы создавали, когда проводили тестовую продажу в рамках быстрого старта.
Сделка создаётся POST-запросом по адресу:
{base_url}/v5/orgs/{org_guid}/deals/sales
base_url
— адрес сервиса. Возможные значения:
https://api-dev.life-pos.ru
— тестовый API,https://api.life-pos.ru
— рабочий API.
Можно создать сразу несколько сделок. Для этого измените адрес POST-запроса:
{base_url}/v5/orgs/{org_guid}/deals/sales.batch
Вместо одной сделки в теле запроса передайте массив сделок.
Вне зависимости от количества созданных сделок, главный результат первого шага — сделка, имеющая идентификатор guid
и статус Opened
.
Изменение статуса сделки
Когда курьер доставил заказ, а покупатель оплатил его, можно изменить статус сделки. Для этого отправьте PATCH-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/deals/sales/{deal_guid}
Измените статус сделки на Paid
. В системе LIFE POS предусмотрены и другие статусы — используйте те, которые подходят вашему процессу работы над заказом. Вот все возможные статусы сделки:
Opened
— сделка открыта, заказ не оплачен;Reserved
— товар зарезервирован;Paid
— заказ оплачен;Shipped
— заказ передан в доставку;Delivered
— заказ доставлен;Returned
— оформлен возврат;PartlyReturned
— оформлен частичный возврат;Closed
— сделка закрыта;Canceled
— заказ отменён.
С помощью PATCH-запроса на изменение сделки можно менять не только статус, но и другие данные. Например, если покупатель попросил добавить в заказ новый товар.
Получение данных о сделке
Если вам нужно видеть все открытые сделки, получите их список, отправив GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/deals/sales
Данные выводятся постранично, по 20 записей на страницу. Если нужно получить данные второй страницы, возьмите из ответа значение параметра next_page_token
и отправьте новый запрос, передав это значение в параметре page_token
. Продолжайте до тех пор, пока параметр next_page_token
не придёт пустым.
Например, вы запросили данные о сотрудниках и получили такой ответ:
“next_page_token”: “OdDEFa2CzpYdp1CmlO9s9mjBn4NkUZB3CXKOtNfQWM0”,
“page_number”: 1,
“pages_total”: 2,
“items_per_page”: 20,
“items_total”: 27,
В ответе представлены только записи 1–20. Чтобы посмотреть записи с 21 по 27, отправьте новый GET-запрос, указав page_token=“OdDEFa2CzpYdp1CmlO9s9mjBn4NkUZB3CXKOtNfQWM0”
.
В запросе есть необязательный параметр selection
. Это фильтр продаж по их статусу. Если параметр не передан, по умолчанию используется значение alive_only
, то есть в ответе придут только данные продаж, не перенесённых в архив. Чтобы посмотреть весь список продаж или только архивные данные, укажите значение all
или archived_only
соответственно.
Чтобы получить информацию о конкретной сделке, отправьте GET-запрос по следующему адресу:
{base_url}/v5/orgs/{org_guid}/deals/sales/{deal_guid}
Вы также можете получать уведомления обо всех изменениях по сделкам. Для этого нужно настроить расширение notification_service
— рассказываем в отдельной статье.
Получение информации об оплате
Вы можете выгружать из системы LIFE POS информацию о движении денежных средств. Она отражена в документе оплаты, который будет сформирован, когда курьер примет оплату. Чтобы получить список документов оплаты по сделке, отправьте GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/deals/sales/{deal_guid}/docs/money
Данные конкретного документа оплаты получаются другим GET-запросом:
{base_url}/v5/orgs/{org_guid}/deals/sales/{deal_guid}/docs/money/payments/{doc_guid}
Если покупатель платил по карте, можете также получить данные транзакции. Для этого отправьте GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/terminals/{method}/{terminal_guid}/transactions/{transaction_guid}
method
— способ оплаты. Возможные значения: bank — банковская карта, quick-payments — СБП.transaction_guid
— идентификатор транзакции. Передаётся в документе оплаты.
Описание запроса для банковской карты Описание запроса для СБП
Получение информации о чеке
Вы можете выгружать из системы LIFE POS фискальные документы, в том числе и чеки. Чтобы выгрузить список фискальных документов, отправьте GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/fiscal-registrars/{registrar_guid}/docs
Данные выводятся постранично, по 20 записей на страницу. Если нужно получить данные второй страницы, возьмите из ответа значение параметра next_page_token
и отправьте новый запрос, передав это значение в параметре page_token
. Продолжайте до тех пор, пока параметр next_page_token
не придёт пустым.
Например, вы запросили данные о сотрудниках и получили такой ответ:
“next_page_token”: “OdDEFa2CzpYdp1CmlO9s9mjBn4NkUZB3CXKOtNfQWM0”,
“page_number”: 1,
“pages_total”: 2,
“items_per_page”: 20,
“items_total”: 27,
В ответе представлены только записи 1–20. Чтобы посмотреть записи с 21 по 27, отправьте новый GET-запрос, указав page_token=“OdDEFa2CzpYdp1CmlO9s9mjBn4NkUZB3CXKOtNfQWM0”
.
В запросе есть необязательный параметр selection
. Это фильтр документов по их статусу. Если параметр не передан, по умолчанию используется значение alive_only
, то есть в ответе придут только данные документов, не перенесённых в архив. Чтобы посмотреть весь список документов или только архивные данные, укажите значение all
или archived_only
соответственно.
Чтобы получить данные конкретного кассового чека, отправьте GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/fiscal-registrars/{registrar_guid}/docs/receipts/{doc_guid}
Архивирование и восстановление сделки
Если ошибку в заказе невозможно исправить, если покупатель отказался от покупки, или если ваш заказ закрыт вне системы LIFE POS, можете перенести сделку в архив. Вместе со сделкой в архив отправятся все её дочерние объекты.
Чтобы архивировать сделку, отправьте DEL-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/deals/sales/{deal_guid}
Никакая информация не удаляется навсегда — из архива сделку м ожно вернуть. Для этого отправьте POST-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/deals/sales/{deal_guid}:unarchive
В следующей статье рассмотрим работу с маркированными товарами.