Skip to main content

Каталог

Импорт каталога

Описание

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 | Штрих-код товара для продажи через сканер штрих-кода. |

Замечание

  1. Значение полей в структуре каталога и позиций не должно содержать символы <, >. Символ & в поле name должен быть заменен на &amp;, в остальных полях его присутствие запрещено.
  2. В хореке может понадобиться задать ингредиенты для товара (в примере кофе может продаваться с сиропами и пряностями). Для этого необходимо создать категории с type = 1 и наполнить их товарами (ингредиентами). После этого для нужного товара прописать id категории ингредиентов как показано в примере:
<ingredient>
<category_id>4</category_id>
</ingredient>
<ingredient>
<category_id>5</category_id>
</ingredient>
  1. Для задания модификации товара необходимо в структуре продукта добавить модификации этого продукта. Например, если хотим продать рубашку размера 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 - Торговая точка не найдена