Синхронизация с 1С — различия между версиями
Строка 519: | Строка 519: | ||
=== Бренды === | === Бренды === | ||
+ | |||
+ | 1С отправляет POST запрос на адрес /pages/exchangejs_import_brands | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "Brands":[ | ||
+ | { | ||
+ | "Name":"Test1" // Название производителя | ||
+ | }, | ||
+ | { | ||
+ | "Name":"Test2" // Название производителя | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | В случае успешного выполнения будет возвращено значение: «True» | ||
+ | |||
+ | В случае ошибки в данных будет возвращено значение: «Error: check the data» | ||
+ | |||
+ | В случае отсутствия данных будет возвращено значение: «Error: There is no data» | ||
+ | <pre> | ||
+ | *После выгрузки брендов на сайте в разделе прайсы воспользоваться пунктом "проверьте префиксы" в котором нужно сгенерировать новые префиксы для брендов, либо привязать к существующим. | ||
+ | </pre> | ||
= Доработки = | = Доработки = |
Версия 15:26, 11 января 2021
Модуль предназначен для синхронизации данных между сайтом и вашей конфигурацией 1С версии 8.
Протокол синхронизации описан по ссылке
Модуль разрабатывается индивидуально для каждого заказчика и при тесном сотрудничестве с вашим программистом 1С.
Синхронизация сайта с 1С можно проводить посредством двух форматов либо через XML либо через JSON
При обмене данными инициатором обмена выступает 1С. Рассмотрим основные моменты при синхронизации посредством обоих форматов:
Содержание
Синхронизация в формате XML
Инициализация
В начале сеанса 1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=checkauth и передает
значение логина и пароля менеджера 1С. Этот менеджер создается в Мпанели и используется только для авторизации 1С.
Уточнение параметров сеанса http://example.mstarproject.com/?action=exchange&type=sale&mode=init
example.mstarproject.com -заменить на адрес проекта.
Весь обмен происходит в кодировке UTF8. (Но по просьбе заказчика можно рассмотреть изменение кодировки на другую).
В конце любой операции выдается или success - успешное выболнение, или failure - ошибка.
Передача из сайта в 1С (экспорт)
Бренды
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=brands
В ответ передается файл с данными о брендах (производителях), следующей структуры:
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Бренды> <Бренд Номер="1" // Ид производителя на сайте Название="1afirstautomotive" // Название производителя Префикс="AAB" // Внутренний код производителя /> <Бренд Номер="..." Название="...." Префикс="...." /> </Бренды> </КоммерческаяИнформация>
Товары (прайс)
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=price
В ответ передается файл с данными о товарах (прайсах), следующей структуры:
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Товары> <Товар Код="1" // Ид товара на сайте Название="Важіль підвіски" // Название товара КодПоставщика="1312" // Ид поставщика на сайте Артикул="SA4791L" // Артикул товара Описание="" // Описание товара ПрефиксКод="CMW_SA4791L" // Внутренний код производителя + артикул товара Производитель="555" // Название производителя Количество="2" // Количество товара Цена="936.78" // Цена товара /> </Товары> </КоммерческаяИнформация>
* стоит ограничение в 5 записей, так как данный метод нужно корректировать ввиду большого количества записей.
Поставщики
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=providers
В ответ передается файл с данными о поставщиках , следующей структуры:
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Поставщики> <Поставщик Номер="1312" // Ид поставщика на сайте Название="elit" // Название поставщика Описание="elit" // Описание КодовоеНазвание="elit" // Кодовое название поставщика Страна="" // Страна Город="" // Город Адрес="" // Адрес Телефон="" // Телефон поставщика Логин="elit" // Логин поставщика Почта="elit@mail.ua" // Почта поставщика СрокПоставки="0" // Срок поставки товара поставщиком Наценка="Наценка 0" // Наценка поставщика Примечания="" // Примечания Идентификатор1С="" // Ид поставщика в 1С /> <Поставщики> </КоммерческаяИнформация>
Контрагенты
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=customers
В ответ передается файл с данными о контрагентах , следующей структуры:
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Контрагенты> <Контрагент Номер="6" // Ид контрагента на сайте Идентификатор1С="" // Ид контрагента в 1С ФИО="RosarioFep" // ФИО Логин="RosarioFep" // Логин контрагента Почта="era@market.ru" // Почта контрагента Телефон="87191848937" // Телефон контрагента Город="Sembawang" // Город Адрес="Sembawang" // Адрес ДатаРегистрации="2018-01-21 01:41:36" // Дата регистрации ДатаПоследнегоВизита="2018-01-21 01:41:37"// Дата последнего визита Примечания="" // Примечания ТипПользователя="частное лицо" // Тип контрагента (юр./ физ.) /> <Контрагенты> </КоммерческаяИнформация>
Заказы
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=orders
В ответ передается файл с данными о заказах , следующей структуры:
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Заказы> <Заказ НомерЗаказа="174" // Ид заказа на сайте НомерЗаказа1C="" // Ид заказа в 1С ДатаЗаказа="2020-07-22" // Дата заказа ВремяЗаказа="08:42:21" // Время заказа СуммаЗаказа="41.00" // Сумма заказа СпособОплаты="Наличными" // Способ оплаты Доставка="Самовывоз" // Способ доставки ИдМенеджера="1" // Ид менеджера на сайте СтатусЗаказа="new" // Статус заказа > <Контрагент // Данные о заказчике Номер="1322" // Ид контрагентa на сайте ФИО="" // ФИО Идентификатор1С="" // Ид контрагентa в 1С Логин="0326552353" // Логин контрагентa Почта="" // Почта контрагентa Телефон="(032)6552353" // Телефон контрагентa Город="" // Город Адрес="" // Адрес /> <Товары> // Данные о товарах в заказе <Товар Ид="755" // Ид позиции в заказе на сайте Код="WL7129" // Артикул товара Цена="40.82" // Цена продажи товара ЗакупочнаяЦена="1.42" // Закупочная цена Количество="1" // Количество товара Сумма="40.82" // Сумма продажи товара КомментарийМереджера="" // Комментарий менеджера СрокПоставки="0" // Срок поставки товара СтатусТовара="pending" // Статус позиции в заказе на сайте КодПоставщика="1315" // Ид поставщика товара Постaвщик="vladislav" // Название поставщика ПрефиксКод="AWP_WL7129" // Внутренний код производителя + артикул товара Префикс="AWP" // Внутренний код производителя Производитель="wixfilters" // Название производителя Название="WIX WL7129 = FN OP570"// Название товара /> </Товары> </Заказ> </Заказы> </КоммерческаяИнформация>
В данный момент передаются все заказы со статусом «Новый».
Cтатусы заказа:
"Новый"="new"
"Приостановлен"="pending"
"В работе"="work"
"Выдано"="end"
"Отказано"="refused"
Статусы товаров в заказе:
"В работе"="work"
"Подтвержден"="confirmed"
"В пути"="road"
"На складе"="store"
"Выдано"="end"
"Отказано"="refused"
Передача из сайта в 1С (импорт)
1) Начало сеанса http://example.mstarproject.com/?action=exchange&type=catalog&mode=checkauth
2) Уточнение параметров сеанса http://example.mstarproject.com/?action=exchange&type=catalog&mode=init
3) Выполнить запрос http://example.mstarproject.com/?action=exchange&type=catalog&mode=file&filename=имя_файла
4) Передать файл
5) Выполнить запрос с указанием имени файла, который необходимо обработать http://example.mstarproject.com/?action=exchange&type=catalog&mode=import&filename=имя_файла.
В случае успеха в ответ будет получено success. Для имен фалов рекомендовано использовать значение mode из параметров экспорта. Примеры файлов выгрузки на сайт:
Бренды (brand.xml)
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Бренды> <Бренд Название="test"/> </Бренды> </КоммерческаяИнформация>
* После выгрузки брендов на сайте в разделе прайсы воспользоваться пунктом "проверьте префиксы" в котором нужно сгенирировать новые префиксы для брендов, либо привязать к существующим.
Товары (прайс)(price.xml)
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Товары> <ОчиститьПоставщиков Ид="123, 111"/> // Строка в которой через запятую указаны идентификаторы поставщиков на сайте, товары которых нужно очистить перед выгрузкой <Товар Название="Важіль підвіски" // Название товара КодПоставщика="1312" // Ид поставщика на сайте Артикул="SA4791L" // Артикул товара Описание="" // Описание товара Производитель="555" // Название производителя Количество=">9" // Количество товара Цена="9.78" // Цена товара /> </Товары> </КоммерческаяИнформация>
Контрагенты(customers.xml)
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Контрагенты> <Контрагент Идентификатор1С="111111111" // Ид контрагента в 1С ФИО="Иванов Иван" // ФИО Логин="0671234567" // Логин контрагента Почта="begrex@pmarket.ru" // Почта контрагента Телефон="0671234567" // Телефон контрагента Город="Киев" // Город Адрес="пр. Мира 20" // Адрес Примечания="" // Примечания ТипПользователя="частное лицо" // Тип контрагента (юр./ физ.) /> </Контрагенты> </КоммерческаяИнформация>
Поле логин рекомендовано заполнять номером телефона либо адресом электронной почты. По умолчанию задается пароль 123456.
Заказы(orders.xml)
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Заказы> <Заказ НомерЗаказа="" // Ид заказа на сайте (указывается для обновления данных по заказу) НомерЗаказа1C="1234567" // Ид заказа в 1c ДатаЗаказа="2020-07-22" // Дата заказа ВремяЗаказа="08:42:21" // Время заказа СуммаЗаказа="41.00" // Сумма заказа СпособОплаты="Наличными при получении товара" // Способ оплаты на сайте Доставка="Самовывоз" // Способ доставки на сайте СтатусЗаказа="work" // Статус заказа > <Контрагент Номер="1322" // Ид контрагента на сайте ФИО="" // ФИО Идентификатор1С="" // Ид контрагента в 1С Логин="" // Логин контрагента Почта="" // Почта контрагента Телефон="" // Телефон контрагента Город="" // Город Адрес="" // Адрес /> <Товары> <Товар Код="WL7129" // Артикул товара Цена="40.82" // Цена продажи товара ЗакупочнаяЦена="1.42" // Закупочная цена Количество="1" // Количество товара Сумма="40.82" // Сумма продажи товара СтатусТовара="end" // Статус позиции в заказе на сайте КодПоставщика="1315" // Ид поставщика товара Постaвщик="vladislav" // Название поставщика ПрефиксКод="AWP_WL7129" // Внутренний код производителя + артикул товара Префикс="AWP" // Внутренний код производителя Производитель="wixfilters" // Название производителя Название="WIX WL7129 = FN OP570" // Название товара /> </Товары> </Заказ> </Заказы> </КоммерческаяИнформация>
Cтатусы заказа:
"Приостановлен"="pending"
"В работе"="work"
"Выдано"="end"
"Отказано"="refused"
Статусы товаров в заказе:
"В работе"="work"
"Подтвержден"="confirmed"
"В пути"="road"
"На складе"="store"
"Выдано"="end"
"Отказано"="refused"
Кроссы(cross.xml)
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> <Кроссы> <Кросс Производитель="wix filters" // Название производителя Артикул="WL7129" // Артикул товара КроссПроизводитель="CHAMPION" // Название кросс производителя КроссАртикул="COF101102S" // Артикул кросс товара /> </Кроссы> </КоммерческаяИнформация>
Синхронизация в формате JSON через HTTP-сервисы в 1С
Передача из сайта в 1С (экспорт)
Бренды
1С отправляет запрос на адрес /pages/exchangejs_export_brands
В ответ передается массив Brands с данными о брендах (производителях), пример:
{ "Brands":[ { "ID":"1", // Ид производителя на сайте "Name":"TWR", // Название производителя "Pref":"AAB" // Внутренний код производителя } ] }
Товары (прайс)
1С отправляет запрос на адрес /pages/exchangejs_export_price
В ответ передается массив Price с данными о товарах (прайсах), пример:
{ "Price":[ { "ID":"1", // Ид товара на сайте "Name":"Parts", // Название товара "ProviderID":"2", // Ид поставщика на сайте "Code":"1107024", // Артикул товара "Description":"", // Описание товара "ItemCode":"ADN_1107024", // Внутренний код производителя + артикул товара "ProducerName":"BOSCH", // Название производителя "Quantity":"2", // Количество товара "Price":"10.00" // Цена товара } ] }
* стоит ограничение в 5 записей, так как данный метод нужно корректировать ввиду большого количества записей.
Поставщики
1С отправляет запрос на адрес /pages/exchangejs_export_providers
В ответ передается массив Providers с данными о поставщиках , пример:
{ "Providers":[ { "ID":"2", // Ид поставщика на сайте "Name":"elit", // Название поставщика "Description":"elit", // Описание "CodeName":"elit", // Кодовое название поставщика "Country":"Страна", // Страна "City":"Город", // Город "Address":"ул. Улица д.1", // Адрес "Phone":"(000)0000000", // Телефон поставщика "Login":"elit", // Логин поставщика "Email":"elit@mail.ua", // Почта поставщика "ProviderDelivery":"0", // Срок поставки товара поставщиком "Margin":"Наценка 15%", // Наценка поставщика "Remark":"", // Примечания "ID1c":null // Ид поставщика в 1С } ] }
Контрагенты
1С отправляет запрос на адрес /pages/exchangejs_export_customers
В ответ передается массив Customers с данными о контрагентах , пример:
{ "Customers":[ { "ID":"6", // Ид контрагента на сайте "FIO":"RosarioFep", // ФИО "Country":null, // Страна "City":"Sembawang", // Город "Address":"Sembawang", // Адрес "Phone":"87191848937", // Телефон контрагента "Login":"RosarioFep", // Логин контрагента "Email":"begrex@prog.ua", // Почта контрагента "RegistrationDate":"2018-01-21 00:41:36", // Дата регистрации "DateLastVisit":"2018-01-21 00:41:37", // Дата последнего визита "Remark":"", // Примечания "CustomerType":"частное лицо", // Тип контрагента (юр./ физ.) "ID1c":null // Ид контрагента в 1С } ] }
Заказы
1С отправляет запрос на адрес /pages/exchangejs_export_orders
В ответ передается массив Orders с данными о заказах , пример:
{ "Orders":[ { "ID":"43", // Ид заказа на сайте "ID1c":null, // Ид заказа в 1С "OrderDate":"2018-03-26", // Дата заказа "OrderTime":"12:35:07", // Время заказа "PriceTotal":"123.52", // Сумма заказа "PaymentType":"Наличными", // Способ оплаты "DeliveryType":"Самовывоз", // Способ доставка "IDManager":"0", // Ид менеджера на сайте "OrderStatus":"new", // Статус заказа "Customer": // Массив данных заказчика { "ID":"43", // Ид контрагентa на сайте "FIO":null, // ФИО "City":null, // Город "Address":null, // Адрес "Phone":"(011)111-11-11", // Телефон контрагентa "Login":"(011)111-11-11", // Логин контрагентa "Email":"", // Почта контрагентa "ID1c":null // Ид контрагентa в 1С }, "Goods":[ // Массив c товарами { "ID":"69", // Ид позиции в заказе на сайте "Code":"4248", // Артикул товара "Name":"Фильтр", // Название товара "ItemCode":"ANG_4248", // Внутренний код производителя + артикул товара "Price":"123.52", // Цена продажи товара "PriceOriginal":"100.98", //Закупочная цена "Quantity":"1", // Количество товара "Amount":123.52, // Сумма продажи товара "ManagerComment":"", //Комментарий менеджера "GoodsStatus":"pending", // Статус позиции в заказе на сайте "ProviderDelivery":"0", // Срок поставки товара "ProviderID":"39", // Ид поставщика товара "ProviderName":"Caruk", // Название поставщика "Pref":"ANG", // Внутренний код производителя "ProducerName":"lpr" // Название производителя } ] } ] }
Передача на сайт из 1С (импорт)
Бренды
1С отправляет POST запрос на адрес /pages/exchangejs_import_brands
{ "Brands":[ { "Name":"Test1" // Название производителя }, { "Name":"Test2" // Название производителя } ] }
В случае успешного выполнения будет возвращено значение: «True»
В случае ошибки в данных будет возвращено значение: «Error: check the data»
В случае отсутствия данных будет возвращено значение: «Error: There is no data»
*После выгрузки брендов на сайте в разделе прайсы воспользоваться пунктом "проверьте префиксы" в котором нужно сгенерировать новые префиксы для брендов, либо привязать к существующим.
Доработки
Из-за того что есть разные конфигурации 1С, создать шаблон модуля довольно сложно, описанные обмены данными это основные моменты работы модуля, которые можно расширять и дополнять, в зависимости от требований заказчика, например: передача из 1С статусов заказов (при условии что менеджеры обрабатывают заказы в 1С), передача в 1С платежей через онлайн-системы (liqpay) и так далее.
Естимейт базовой версии задания - 20ч
Вернуться к списку модулей: Модули_пакет_Експерт_-_Документация