Экспорт товаров с сайта
На данной странице описан протокол (алгоритм) процесса экспорта товаров с сайта на платформе komiz.io в систему бухгалтерского учета, например «1C».
Основные тезисы
- При каждом последующем обращении системой бухгалтерского учета к сайту, будут выгружаться только те товары, информация которых была изменена после последнего обращения, а также те, что были созданы.
- Для того чтобы повысить безопасность процесса обмена данными используется секретный ключ. Он используется для формирования параметра
signature(см. далее). Значение данного ключа можно узнать зайдя в раздел Настройки / Другие настройки / Интеграция с системой бухгалтерского учета в панели управления сайтом. Данный ключ не должен передаваться третьим лицам. - Помните, что в данном механизме действуют ограничения.
Процесс обмена данными происходит посредством двух обращений системы бухгалтерского учета к сайту:
- Получение данных товаров;
- Отправка подтверждения об обработке полученных данных товаров.
Обращения происходят по адресу: http://site.domain/accounting-system/offer-export/, где вместо site.domain используется домен панели управления синхронизируемого сайта.
Получение файла с данными товаров
В процессе первого обращения необходимо передать следующие параметры:
signature- «подпись», формируемая как хэш секретного ключа, вычисляемый по алгоритму US Secure Hash Algorithm 1 (SHA1).type- тип обращения. Для первого равноexport_as_xmlлибоexport_as_zip(описание см. ниже).- [не обязательно]
lang_dev_name- «имя для разработчика» языка текстовых данных сайта (берется из одноименного поля в настройках на сайте). Этот язык будет использован для всех языково-зависимых данных. Если не передается, то будет использован язык по умолчанию. - [не обязательно]
time_zone- временная зона, в которой будут интерпретироваться даты и время (например,Europe/Paris). Список поддерживаемых временных зон. Если данный параметр не передается, то используется временная зона из настроек сайта. - [не обязательно]
additionalFieldArray- массив дополнительных полей, которые необходимо экспортировать. Значением каждого элемента массива является значение поля «Имя в интерфейсе» для определенного дополнительного поля. Если данный параметр не передать, то дополнительные поля не будут экспортированы.
Если не возникло никаких ошибок на стороне сайта и передаваемые параметры корректны, то сайт выводит в поток содержимое, зависящее от значения параметра type.
- Если параметр
typeпередать равнымexport_as_xml, то в поток будет выведен XML файл. - Если же значение данного параметра будет равно
export_as_zip, то в поток будет выведен ZIP архив, в корне которого будет размещен XML файл с именемoffers.xml. В таком случае, в данном архиве будут размещены файлы изображений товаров, относительные пути которых будут указаны в тегахXML файла.
Если возникла ошибка на стороне сайта либо передаваемые параметры некорректны, то сайт выводит в поток текст, в первой строке которого содержится failure, а во второй - текст описания ошибки. Для разделения строк используется спецсимвол \n.
Отправка подтверждения об обработке полученных данных товаров
После того, как системой бухгалтерского учета был получен файл с данными товаров, а также после того как они были обработаны, необходимо выполнить второй запрос к сайту.
В процессе данного обращения необходимо передать следующие параметры:
signature- «подпись», формируемая как хэш секретного ключа, вычисляемый по алгоритму US Secure Hash Algorithm 1 (SHA1).type- тип обращения. Для второго равноexport_confirm.session_id- идентификатор сессии обмена данными с системой бухгалтерского учета. Значение данного параметра передается на первом этапе в XML файле в атрибутеsessionIdтегаoffers. Это же значение необходимо передать на втором этапе.status- статус операции. Если товары успешно обработаны, то необходимо передать значениеsuccess. В противном случае значением данного параметра может быть текст описания произошедшей ошибки.
Если не возникло никаких ошибок на стороне сайта и передаваемые параметры корректны, то, в зависимости от значения параметра status происходит следующее.
- Если
statusравенsuccess, то сайт помечает переданные на первом этапе товары, как успешно синхронизированные и, при следующем обращении, не будет их передавать. - Если
statusне равенsuccess, то сайт оповещает разработчиков платформы о данной ошибке.
В любом случае (т.е. не зависимо от значения параметра status) сайт выводит в поток текст, в первой строке которого содержится success, а во второй - текст дополнительного описания ответа. Для разделения строк используется спецсимвол \n.
Если возникла ошибка на стороне сайта либо передаваемые параметры некорректны, то сайт выводит в поток текст, в первой строке которого содержится failure, а во второй - текст описания ошибки. Для разделения строк используется спецсимвол \n.
Схема процесса экспорта товаров
На рис. 1 приведено схематическое изображение протокола обмена данными описанного выше.