Каталог
Импорт каталога
Описание
Lifepay позволяет импортировать древовидную структуру каталога и товары из сторонней системы.
!!! Импорт перезатирает существующие записи каталога и товаров. Если есть связь товаров со складскими позициями, то при импорте связь будет потеряна.
Тип запроса:
POST
Формат данных:
Данные в теле запроса предварительно сериализуются в json-формат
Адрес URL:
https://api.life-pay.ru/v1/catalogue/import
Описание полей
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
apikey | Строка | АПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay | Да |
login | Строка | Логин администратора в системе Lifepay. Как правило, это номер телефона в формате 7xxxxxxxxxx |
Да |
data | Строка | Содержимое XML-файла для импорта | Да |
trade_point_uuid | Строка | UUID торговой точки. Значение указано в личном кабинете Lifepay в разделе торговых точек. Если у компании создана хотя бы одна торговая точка, то параметр является обязательным | Нет |
force | Целое | Принимает значения 0 (по умолчанию), либо 1 - перезатереть каталог/товары, если уже существуют. |
Нет |
Пример содержимого поля data для ритейла:
<catalogue>
<category>
<id>1</id>
<name>Продукты</name>
<color>#F27649</color>
<image_url>https://pixabay.com/static/uploads/photo/2016/06/30/20/31/fruits-1489802_960_720.jpg</image_url>
<updated>2016-09-06 11:00:09</updated>
<sort_index>1</sort_index>
<type>0</type>
<category>
<id>2</id>
<name>Овощи</name>
<color>#9F4E7E</color>
<image_url>https://pixabay.com/static/uploads/photo/2014/04/09/15/25/fruits-320136_960_720.jpg</image_url>
<updated>2016-09-06 11:00:09</updated>
<sort_index>1</sort_index>
<type>0</type>
<product>
<id>1</id>
<name>Картофель</name>
<price>39.00</price>
<prime_cost>12.00</prime_cost>
<image_url>https://pixabay.com/static/uploads/photo/2014/09/16/18/28/potatoes-448613_960_720.jpg</image_url>
<vat>0.18</vat>
<unit>kg</unit>
<updated>2016-09-06 11:00:09</updated>
<sort_index>1</sort_index>
<barcode>4602112203605</barcode>
</product>
<product>
<id>2</id>
<name>Кукуруза</name>
<price>50.65</price>
<prime_cost>13.00</prime_cost>
<image_url>https://pixabay.com/static/uploads/photo/2013/10/02/22/34/corn-190014_960_720.jpg</image_url>
<vat>0.18</vat>
<unit>piece</unit>
<updated>2016-09-06 11:00:09</updated>
<sort_index>2</sort_index>
<barcode></barcode>
</product>
</category>
</category>
</catalogue>
Пример содержимого поля data для хореки:
<catalogue>
<category>
<id>3</id>
<name>Кофе</name>
<color></color>
<image_url></image_url>
<updated>2016-09-06 11:00:09</updated>
<sort_index>2</sort_index>
<type>0</type>
<product>
<id>3</id>
<name>Капучино</name>
<image_url>https://pixabay.com/static/uploads/photo/2015/10/12/14/54/coffee-983955_960_720.jpg</image_url>
<updated>2016-09-06 11:00:09</updated>
<sort_index>1</sort_index>
<type>0</type>
<barcode>1234567890</barcode>
<ingredient>
<category_id>4</category_id>
</ingredient>
<ingredient>
<category_id>5</category_id>
</ingredient>
<product>
<id>4</id>
<name>Капучино стандартный</name>
<price>150.00</price>
<prime_cost></prime_cost>
<vat></vat>
<unit>piece</unit>
<updated>2016-09-06 11:00:09</updated>
<sort_index>1</sort_index>
<barcode>1234567891</barcode>
</product>
<product>
<id>5</id>
<name>Капучино большой</name>
<price>180.00</price>
<prime_cost></prime_cost>
<image_url></image_url>
<vat></vat>
<unit>piece</unit>
<updated>2016-09-06 11:00:09</updated>
<sort_index>2</sort_index>
<barcode>1234567892</barcode>
</product>
</product>
</category>
<category>
<id>4</id>
<name>Сиропы</name>
<color></color>
<image_url></image_url>
<updated>2016-09-06 11:00:09</updated>
<sort_index>3</sort_index>
<type>1</type>
<product>
<id>6</id>
<name>Ваниль</name>
<price>20.00</price>
<prime_cost></prime_cost>
<image_url></image_url>
<vat></vat>
<unit>piece</unit>
<updated>2016-09-06 11:00:09</updated>
<sort_index>1</sort_index>
<barcode></barcode>
</product>
<product>
<id>7</id>
<name>Малина</name>
<price>20.00</price>
<prime_cost></prime_cost>
<image_url></image_url>
<vat></vat>
<unit>piece</unit>
<updated>2016-09-06 11:00:09</updated>
<sort_index>2</sort_index>
<barcode></barcode>
</product>
</category>
<category>
<id>5</id>
<name>Пряности</name>
<color></color>
<image_url></image_url>
<updated>2016-09-06 11:00:09</updated>
<sort_index>4</sort_index>
<type>1</type>
<product>
<id>8</id>
<name>Корица</name>
<price>10.00</price>
<prime_cost></prime_cost>
<image_url></image_url>
<vat></vat>
<unit>piece</unit>
<updated>2016-09-06 11:00:09</updated>
<sort_index>1</sort_index>
<barcode></barcode>
</product>
<product>
<id>9</id>
<name>Имбирь</name>
<price>10.00</price>
<prime_cost></prime_cost>
<image_url></image_url>
<vat></vat>
<unit>piece</unit>
<updated>2016-09-06 11:00:09</updated>
<sort_index>2</sort_index>
<barcode></barcode>
</product>
</category>
</catalogue>
Описание полей xml-файла
Параметр | Описание |
---|---|
id | Строковый идентификатор категории/товара в системе клиента. Значение этого параметра будет передано в поле ext_id в сервисе уведомления о транзакции. В рамках категорий и товаров значение этого параметра должно быть уникально (как в примерах xml). |
name | Наименование категории/товара. |
color | Цвет отображения категории/товара в hex. Пример: #F27649 . |
image_url | Изображение категории/товара в виде внешней ссылки. |
updated | Дата и время последнего изменения категории/товара в системе клиента в формате YYYY-MM-DD HH:mm:ss . Пример: 2016-09-06 11:00:09 |
sort_index | Индекс сортировки категории/товара. В такой последовательности будут отображаться категории и товары одного уровня в Личном Кабинете и приложении Lifepay. |
type | Тип категории. 0 - обычная категория (по умолчанию), 1 - категория для ингредиентов. |
price | Стоимость товара при продаже, округленная до двух знаков после запятой. Разделитель - точка. |
prime_cost | Себестоимость товара, округленная до двух знаков после запятой. Разделитель - точка. |
vat | Налог на позицию. Может быть не задан, либо принимать значения 0 , 0.1 , 0.18 что соответствует налогу 0%, 10%, 18% соответственно. Нужен при фискализации. |
unit | Единицы измерения. Доступные значения: piece - штуки (по умолчанию), kg - килограммы, g - граммы’, l - литры, ml - миллилитры. |
barcode | Штрих-код товара для продажи через сканер штрих-кода. |
Замечание
- Значение полей в структуре каталога и позиций не должно содержать символы
<
,>
. Символ&
в полеname
должен быть заменен на&
, в остальных полях его присутствие запрещено. - В хореке может понадобиться задать ингредиенты для товара (в примере кофе может продаваться с сиропами и пряностями). Для этого необходимо создать категории с
type = 1
и наполнить их товарами (ингредиентами). После этого для нужного товара прописать id категории ингредиентов как показано в примере:
<ingredient>
<category_id>4</category_id>
</ingredient>
<ingredient>
<category_id>5</category_id>
</ingredient>
- Для задания модификации товара необходимо в структуре продукта добавить модификации этого продукта. Например, если хотим продать рубашку размера L, XL, XXL, достаточно описать структуру следующим образом:
<catalogue>
<product>
<id>3</id>
<name>Рубашка в клетку</name>
<product>
<id>4</id>
<name>L</name>
<price>150.00</price>
<barcode>1234567891</barcode>
</product>
<product>
<id>5</id>
<name>XL</name>
<price>160.00</price>
<barcode>1234567892</barcode>
</product>
<product>
<id>5</id>
<name>XXL</name>
<price>160.00</price>
<barcode>1234567893</barcode>
</product>
</product>
</catalogue>
Пример успешного ответа:
формат json
Object
(
[code] => 0
[message] =>
[data] => Object
(
)
)
Пример запроса на языке php:
$file = './catalogue.xml';
$data = [];
$data['apikey'] = '{your_apikey}';
$data['login'] = '{your_login}';
$data['data'] = file_get_contents($file);
$request = json_encode($data);
$url = "https://api.life-pay.ru/v1/catalogue/import";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
$result = curl_exec($curl);
curl_close($curl);
$resultJson = @json_decode($result);
printf("Res: %s\n", print_r($resultJson ? : $result, true));
Список возможных ошибок:
- 6050 - Неверная структура данных
- 6051 - Не указан строковый идентификатор категории/товара в системе клиента
- 6052 - Не указано наименование категории/товара
- 6053 - Необходимо указать торговую точку
- 6054 - Каталог/товары уже существуют (для перезаписи необходимо указать параметр
force
) - 6055 - Ошибка сохранения каталога
- 6056 - Ошибка сохранения товара
- 6058 - Торговая точка не найдена