====== Обмен данными с интернет-магазином ======
===== Как это работает =====
Инициатором обмена данными выступает Unipro. \\
По команде пользователя, или автоматически через заданное время, Unipro подключается к Вашему сайту и передает информацию о товарах (Наименование, Цену, Количество на складе и т.д.)\\
Необходимо, чтобы web-программист реализовал скрипт на сайте, который будет получать информацию в формате JSON и создавать/обновлять информацию о товарах на сайте.
===== Настройка =====
Для настройки выберите меню: "Сервис"-"Обмен данными"-"Обмен с интернет-магазином"
{{ :обмен_данными_с_другими_системами:setup-js-inet-m.png?nolink |}}
* **Имя задания для выгрузки** - для различия настроек, если несколько интернет-магазинов.
* **Идентификатор текущей базы данных** - по этому идентификатору интернет-магазин может определить, поступил ли запрос со "своей" базы.
* **URL скрипта сервера...** - адрес страницы сайта, через который Unipro будет загружать данные. В адресе указывайте тип соединения HTTP или HTTPS. В адресной строке можно передавать дополнительные параметры, например: \\ ''http://test-json.unipro.ua/upload.php?pass=12345&baseID=1003''
* **Группы товаров для выгрузки** - если выгружать необходимо не все товары.
* **Выгружать товары, по которым были движения** - если выгружать необходимо не все товары, а только те, по которым за последние N-дней были движения по складу.
* **Организации** - если несколько организаций, то выбирать, по каким показывать остатки.
* **Склады** - если несколько складов, то выбирать, по каким показывать остатки.
* **Автоматическая отправка** - выставляется период времени в минутах, минимальное значение 5 минут.
Сайт [[http://test-json.unipro.ua|http://test-json.unipro.ua]] создан для тестирования и проверки работоспособности выгрузки товаров.\\
Если выбран URL скрипта: //test-json.unipro.ua/upload.php//, то выгружаемые товары можно посмотреть по ссылке: [[http://test-json.unipro.ua|http://test-json.unipro.ua]]
===== Формат обмена данными =====
В JSON-файле обмена с интернет-магазином присутствуют три раздела: **info**, **goods**, **goodsgroups**.\\
Описание формата обмена данными JSON: [[ru:обмін_даними_з_іншими_системами:формат_обмену_json|Формат обмена данными JSON]]
Программа отправляет POST-запрос с MIME-type: application/json. Получить файл на стороне сервера можно так:
$jsonFile = file_get_contents("php://input");
==== Ответ сервера ====
Если все ОК, то сервер должен ответить программе в JSON-формате: \\
{"status":{"code":200,"errortext":"OK"}}
Если были ошибки в обработке JSON-файла от программы, то сервер пишет любую ошибку отличную от 200 в параметре "status.code", а в параметре "status.errortext" - текстовое описание ошибки, например: \\
{"status":{"code":1,"errortext":"JSON file size is too large!"}}
Пример PHP скрипта ответа сервера:
if ($lenJS > (30*(1024*1024)) /* 30 MB*/ )
{
echo '{"status":{"code":1,"errortext":"JSON file size is too large!"}}';
}
else
{
echo '{"status":{"code":200,"errortext":"OK"}}';
}