Облачный ТСД обменивается данными исключительно через веб-сервис, файловый или какой-либо другой оффлайн обмен добавлять не планируется.
Однако, имитация файлового обмена есть в веб-сервисе. Вы можете её использовать, если Ваша товароучетная система не поддерживает обмен данными со сторонними веб-сервисами через REST API.
Подготовьте базу штрих-кодов в формате csv файла (первая строка заголовок обязательна):
barcode,name,advanced_name,unit "4893729011893","Скрепы,","шт." "2000000000015","Велосипед",, "2900000005686","Блокнот","Желтый","литр" "4960371004716","Деталь",,"шт." "640522710850","Дрель,","пачка" "725211167020","Утюг","синий","литр"
И отправьте его методом POST в веб сервис по адресу /new/csv
, В заголовке access-key
POST запроса следует указать ключ доступа к веб-сервису.
Для отправки можно воспользоваться утилитой cURL или написать простой скрип на любом языке программирования, поддерживающим такие операции.
Вот пример отправки csv файла в наш облачный сервис через PHP скрипт.
Исходный код примера. Разместите разместите его в файле service.php
у себя на хостинге
<?php $url = 'https://datacollector.lineris.ru/masterdata/csv/'; // URL веб-сервиса $key = '5422eb21-e0f8-4b4e-f481-6a8719cae7f1'; // Ключ доступа $maxsize = '100000'; //Ограничение размера csv файла в байтах if (isset($_FILES['file']['tmp_name']) && !empty($_FILES['file']['tmp_name'])) { if ($_FILES['file']['size'] <= $maxsize) { $upload = file_get_contents($_FILES['file']['tmp_name']); $headers = array(); $headers[] = 'Content-type: text/csv'; $headers[] = 'access-key: '.$key; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $upload); curl_setopt($ch, CURLOPT_HTTPHEADER,$headers); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $output = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($output) { if ($http_code == 200) { echo(base64_encode($output)); } else { echo('error '.$output); } } else { //сервис не ответил echo('error Сервис временно не доступен!'); } } else { //файл слишком большой echo('error Файл слишком большой'); } } else { //нет файла echo('error Вы не отправили файл'); } ?>
Исходный код примера HTML страницы с формой выбора файла и кнопкой «Отправить». Встройте его в нужные страницы вашего сайта.
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> </head> <body> <section id="form" style="margin-top:50px;"> <div class="container"> <div class="row"> <div class="col-md-3"></div> <div class="col-md-6"> <form class="form-horizontal" id="ajaxForm"> <div class="form-group"> <label for="inputEmail" class="col-xs-3 control-label">Файл CSV:</label> <div class="col-xs-9"> <input type="file" id="formFile" name="file" accept=".csv"> </div> </div> <div class="form-group" style="display:none;" id="msgdiv"> <div class="col-xs-4">Текстовое сообщение:</div> <div class="col-xs-8" id="msg"> </div> </div> <div class="form-group" style="display:none;" id="qrdiv"> <label for="inputPassword" class="col-xs-3 control-label">QR-код:</label> <div class="col-xs-9"> <div id="qrcode"></div> </div> </div> <div class="form-group"> <div class="col-xs-offset-2 col-xs-10"> <button type="submit" class="btn btn-default">Отправить</button> </div> </div> </form> </div> <div class="col-md-3"></div> </div> </div> </section> <script> $(document).ready(function() { $('#ajaxForm').submit(function(e) { e.preventDefault(); var $that = $(this), formData = new FormData($that.get(0)); $.ajax({ url: 'service.php', type: 'POST', contentType: false, processData: false, data: formData, dataType: 'json', xhr: function(){ var xhr = $.ajaxSettings.xhr(); xhr.onload = xhr.onerror = function() { if (this.status == 200) { if (this.response.match('error')) { $('#qrdiv').css('display','none'); $('#msgdiv').css('display','block'); $('#msg').html(this.response.substr(6)); } else { $('#qrdiv').css('display','block'); $('#msgdiv').css('display','none'); $('#qrcode').html('<img src="data:image/jpeg;base64, '+this.response+'">'); } } }; return xhr; } }); }); }); </script> </body> </html>
В ответ веб-сервис вернет PNG изображение QR кода, который следует сканировать приложением Облачный ТСД.
Для имитации отправки собранных в виде файла в настройках мобильного приложения Облачный ТСД в разделе Веб-служба передачи данных следует включить опцию Самостоятельная отправка и настроить URL веб-службы и Ключ доступа.
После этих настроек в меню приложения появится пункт Отправить данные через веб-сервис. Приложение выгрузит собранные данные в настроенный веб-сервис обмена, а ссылку для их получения в формате csv отправит через выбранный Вами сервис (e-mail, мессенджеры и т.п.).
По ссылке открывается текстовый документ в формате csv:
barcode,quantity 2003637860748,1 2200000000163,2 2200000000170,1 2200000000361,1 2200000000453,1 2200000000682,1 7930042580136,1
А ещё вы можете получить собранные данные POST запросом непосредственно на ваш сайт или в облачное приложение в формате JSON. Сделайте обработчик POST запросов на вашем сайте или в облачном приложении, URL этого обработчика должен заканчиваться на /upload
. Закодируйте URL в QR-код и отобразите его. Если сканировать приложением этот QR код, оно отправит собранные данные POST запросом в формате JSON по указанному URL. Получите данные и вертине HTTP статус 200 в ответ на этот запрос.