Импорт товаров из файла
Вы можете загрузить в LIFE POS свой каталог товаров и использовать его в торговле. Если у вас интернет-магазин, загрузка каталога вам не нужна — данные можно передавать в запросе на продажу.
Если же у вас обычный магазин со стационарной кассой, можете загрузить каталог POST-запросом или в таблице Excel. Так вам не придётся добавлять товары по одному через личный кабинет. В этой статье разберёмся, как загружать каталог в таблице Excel.
Получить шаблон файла для импорта
Сначала скачайте шаблон файла для импорта. Для этого отправьте GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/async/imports/nomenclature/template.xlsx
base_url
— адрес сервиса. Возможные значения:
https://api-dev.life-pos.ru
— тестовый API,https://api.life-pos.ru
— рабочий API.
Добавить задачу на импорт файла
Чтобы создать задачу на импорт файла, отправьте POST-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/async/imports/nomenclature:new.xlsx
Для передачи файла используйте тип данных multipart/form-data
.
Как работать с multipart
Получить списки изменений
Обработав задачу на импорт, сервер LIFE POS сформирует три списка изменений: в единицах измерений, в категориях товаров и в товарных позициях. Вам нужно ознакомиться с этими изменениями и либо принять их, либо отменить импорт.
Чтобы получить список изменений в единицах измерения, отправьте GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/async/imports/nomenclature/{task_guid}/previews/uoms
task_guid
— идентификатор задачи на импорт. Возвращается в ответе метода, добавляющего задачу.
Чтобы получить список изменений в категориях товаров, отправьте GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/async/imports/nomenclature/{task_guid}/previews/categories
Чтобы получить список изменений в товарных позициях, отправьте GET-запрос по адресу:
{base_url}/v5/orgs/:org_guid/async/imports/nomenclature/{task_guid}/previews/goods
Подтвердить или отменить импорт
Теперь, когда вы ознакомились со списком изменений, вы можете принять их и завершить импорт, либо отменить импорт и вернуть каталогу товаров исходный вид. Чтобы принять изменения, отправьте POST-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/async/imports/nomenclature/{task_guid}:confirm
task_guid
— идентификатор задачи на импорт. Возвращается в ответе метода, добавляющего задачу.
Чтобы отменить импорт, отправьте POST-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/async/imports/nomenclature/{task_guid}:cancel
Получить данные задачи на импорт
Задачи на импорт обрабатываются некоторое время. Их не нужно отслеживать постоянно — сервер LIFE POS сделает всё сам. Когда нужно проверить статус задачи, отправьте GET-запрос по адресу:
{base_url}/v5/orgs/:org_guid/async/imports/nomenclature/{task_guid}
task_guid
— идентификатор задачи на импорт. Возвращается в ответе метода, добавляющего задачу.
Статусы задачи:
InQueue
— в очереди,InProgress
— в работе,WaitingForFeedback
— требуется подтверждение,Completed
— завершена,Canceled
— отменена.
Если нужно получить данные всех задач, отправьте GET-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/async/imports/nomenclature
Данные выводятся постранично, по 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}/async/imports/nomenclature/{task_guid}/source.xlsx
Очистить очередь на импорт
Вы можете отменить сразу все задачи, находящиеся в статусе In Queue. Для этого отправьте POST-запрос по адресу:
{base_url}/v5/orgs/{org_guid}/async/imports/nomenclature/*:cancel
Вот и всё, что касается импорта каталога из файла Excel. В следующей статье разберём работу с единицами измерений.