Синхронизация с 1С — различия между версиями
(→Товары (прайс)) |
|||
(не показано 16 промежуточных версии 2 участников) | |||
Строка 5: | Строка 5: | ||
Модуль разрабатывается индивидуально для каждого заказчика и при тесном сотрудничестве с вашим программистом 1С. | Модуль разрабатывается индивидуально для каждого заказчика и при тесном сотрудничестве с вашим программистом 1С. | ||
− | ''' | + | '''Синхронизацию сайта с 1С можно проводить посредством двух форматов либо через [http://manual.mstarproject.com/index.php/%D0%A1%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_1%D0%A1#.D0.A1.D0.B8.D0.BD.D1.85.D1.80.D0.BE.D0.BD.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.82.D0.B5_XML XML] либо через [http://manual.mstarproject.com/index.php/%D0%A1%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_1%D0%A1#.D0.A1.D0.B8.D0.BD.D1.85.D1.80.D0.BE.D0.BD.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.B2_.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.82.D0.B5_JSON_.D1.87.D0.B5.D1.80.D0.B5.D0.B7_HTTP-.D1.81.D0.B5.D1.80.D0.B2.D0.B8.D1.81.D1.8B_.D0.B2_1.D0.A1 JSON]''' |
При обмене данными инициатором обмена выступает 1С. Рассмотрим основные моменты при синхронизации посредством обоих форматов: | При обмене данными инициатором обмена выступает 1С. Рассмотрим основные моменты при синхронизации посредством обоих форматов: | ||
Строка 206: | Строка 206: | ||
"Отказано"="refused"<br> | "Отказано"="refused"<br> | ||
− | == Передача | + | == Передача на сайт с 1С (импорт)== |
1) Начало сеанса http://example.mstarproject.com/?action=exchange&type=catalog&mode=checkauth | 1) Начало сеанса http://example.mstarproject.com/?action=exchange&type=catalog&mode=checkauth | ||
Строка 231: | Строка 231: | ||
− | <pre>* После выгрузки брендов на сайте в разделе прайсы воспользоваться пунктом "проверьте префиксы" в котором | + | <pre>* После выгрузки брендов на сайте в разделе прайсы воспользоваться пунктом "проверьте префиксы" в котором |
− | префиксы для брендов, либо привязать к существующим. | + | нужно сгенирировать новые префиксы для брендов, либо привязать к существующим. |
</pre> | </pre> | ||
Строка 241: | Строка 241: | ||
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> | <КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00"> | ||
<Товары> | <Товары> | ||
− | <ОчиститьПоставщиков Ид="123, 111"/> // Строка в которой через запятую указаны | + | <ОчиститьПоставщиков Ид="123, 111"/> // Строка в которой через запятую указаны идентификаторы поставщиков на сайте, товары которых нужно очистить перед выгрузкой |
<Товар | <Товар | ||
Название="Важіль підвіски" // Название товара | Название="Важіль підвіски" // Название товара | ||
Строка 351: | Строка 351: | ||
</КоммерческаяИнформация> | </КоммерческаяИнформация> | ||
</pre> | </pre> | ||
− | |||
= Синхронизация в формате JSON через HTTP-сервисы в 1С = | = Синхронизация в формате JSON через HTTP-сервисы в 1С = | ||
Строка 385: | Строка 384: | ||
"Price":[ | "Price":[ | ||
{ | { | ||
− | "ID":"1", | + | "ID":"1", // Ид товара на сайте |
− | "Name":"Parts", | + | "Name":"Parts", // Название товара |
− | "ProviderID":"2", | + | "NameUa":"Запчастина", // Название товара на укр. языке |
+ | "ProviderID":"2", // Ид поставщика на сайте | ||
"Code":"1107024", // Артикул товара | "Code":"1107024", // Артикул товара | ||
− | "Description":"", | + | "Description":"", // Описание товара |
+ | "DescriptionUa":"", // Описание товара на укр. языке | ||
"ItemCode":"ADN_1107024", // Внутренний код производителя + артикул товара | "ItemCode":"ADN_1107024", // Внутренний код производителя + артикул товара | ||
"ProducerName":"BOSCH", // Название производителя | "ProducerName":"BOSCH", // Название производителя | ||
− | "Quantity":"2", | + | "Quantity":"2", // Количество товара |
− | "Price":"10.00" | + | "Price":"10.00" // Цена товара |
} | } | ||
Строка 403: | Строка 404: | ||
</pre> | </pre> | ||
+ | === Поставщики === | ||
+ | |||
+ | 1С отправляет запрос на адрес /pages/exchangejs_export_providers | ||
+ | |||
+ | В ответ передается массив Providers с данными о поставщиках , пример: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "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С | ||
+ | |||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | === Контрагенты === | ||
+ | |||
+ | 1С отправляет запрос на адрес /pages/exchangejs_export_customers | ||
+ | |||
+ | В ответ передается массив Customers с данными о контрагентах , пример: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "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С | ||
+ | |||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | === Заказы === | ||
+ | |||
+ | 1С отправляет запрос на адрес /pages/exchangejs_export_orders | ||
+ | |||
+ | В ответ передается массив Orders с данными о заказах , пример: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "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" // Название производителя | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Передача на сайт из 1С (импорт) == | ||
+ | |||
+ | === Бренды === | ||
+ | |||
+ | 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> | ||
+ | |||
+ | === Товары (прайс) === | ||
+ | |||
+ | 1С отправляет POST запрос на адрес /pages/exchangejs_import_price | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "ClearProvider":"1232,1212", // Строка в которой через запятую указаны идентификаторы поставщиков на сайте, товары которых нужно очистить перед выгрузкой | ||
+ | "Price":[ | ||
+ | { | ||
+ | "ProducerName":"REMSA", // Название производителя | ||
+ | "Pref":"AEL", // Идентификатор производителя(необязательное поле) | ||
+ | "Code":"503361", // Артикул товара | ||
+ | "Name":"Тормозной механизм",// Название товара | ||
+ | "NameUa":"Гальмівний механізм",// Название товара на укр. языке | ||
+ | "ProviderID":"1232", // Ид поставщика на сайте | ||
+ | "Description":"Ограничения производителя 00000",//Описание товара | ||
+ | "DescriptionUa":"товар", //Описание товара на укр. языке | ||
+ | "Quantity":"2", // Количество товара | ||
+ | "Price":"6000.00", // Цена товара | ||
+ | }, | ||
+ | { | ||
+ | ... | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | При отсутствии значения в поле "ProviderID" значение берется из константы exchangejs:default_id_provider_on_load_price куда вносится идентификатор поставщика с сайта под которым будет проходить заливка прайса. | ||
+ | |||
+ | В случае успешного выполнения будет возвращено значение: «True» | ||
+ | |||
+ | В случае ошибки в данных будет возвращен массив ошибок : «{"Error":{"BrandNotPresent":["BRAND1","BRAND"]}}» | ||
+ | |||
+ | В случае отсутствия данных будет возвращено значение: «Error: There is no data» | ||
+ | |||
+ | === Контрагенты === | ||
+ | |||
+ | 1С отправляет POST запрос на адрес /pages/exchangejs_import_customers | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "Customers":[ | ||
+ | { | ||
+ | "FIO":"Rosario Fep", // ФИО | ||
+ | "City":"Sembawang", // Город | ||
+ | "Address":"Sembawang", // Адрес | ||
+ | "Phone":"87191848937", // Телефон контрагента | ||
+ | "Login":"RosarioFep", // Логин контрагента | ||
+ | "Email":"begrex@prog.ua", // Почта контрагента | ||
+ | "Remark":"", // Примечания | ||
+ | "CustomerType":"частное лицо", // Тип контрагента (юр./ физ.) | ||
+ | "ID1c":"123123123" // Ид контрагента в 1С | ||
+ | }, | ||
+ | { | ||
+ | ... | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | При указанном Email, на почту клиенту отправляется уведомление с регистрацией. | ||
+ | |||
+ | В случае успешного выполнения будет возвращено значение: «True» | ||
+ | |||
+ | В случае ошибки в данных будет возвращено значение: «Error: check the data» | ||
+ | |||
+ | В случае отсутствия данных будет возвращено значение: «Error: There is no data» | ||
+ | |||
+ | === Заказы === | ||
+ | |||
+ | 1С отправляет POST запрос на адрес /pages/exchangejs_import_orders | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "Orders":[ | ||
+ | { | ||
+ | "ID":"", // Ид заказа на сайте (указывается для обновления данных по заказу) | ||
+ | "ID1c":"000001", // Ид заказа на сайте | ||
+ | "OrderDate":"2020-07-04", // Дата заказа | ||
+ | "OrderTime":"12:10:38", // Время заказа | ||
+ | "PriceTotal":"35580.00", // Сумма заказа | ||
+ | "IDPaymentType":"2", // Ид cпособа оплаты на сайте | ||
+ | "IDDeliveryType":"1", // Ид способа доставка на сайте | ||
+ | "OrderStatus":"work", // Статус заказа | ||
+ | "IDCustomer":"1237", // Ид контрагента на сайте | ||
+ | "Goods":[ // Массив с товарами заказа | ||
+ | { | ||
+ | "Code":"YSKMA1381", // Артикул товара | ||
+ | "Name":"масляный насос MA AJ 3.0 TRIBUTE YSK",// Название товара | ||
+ | "ItemCode":"YSK_YSKMA1381",// Внутренний код производителя + артикул товара | ||
+ | "Price":"25440.00", // Цена продажи товара | ||
+ | "PriceOriginal":"16960.00", // Закупочная цена | ||
+ | "Quantity":"1", // Количество товара | ||
+ | "Amount":"25440", // Сумма продажи товара | ||
+ | "ManagerComment":"Test", // Комментарий менеджера | ||
+ | "GoodsStatus":"pending", // Статус позиции в заказе на сайте | ||
+ | "ProviderID":"1227", // Ид поставщика товара | ||
+ | "Pref":"YSK", // Внутренний код производителя | ||
+ | "ProducerName":"YSK" // Название производителя | ||
+ | }, | ||
+ | { | ||
+ | "Code":"YSKNS1464", // Артикул товара | ||
+ | "Name":"масляный насос NI FRONTIER VQ40DE 04- YSK",// Название товара | ||
+ | "ItemCode":"YSK_YSKMA1381",// Внутренний код производителя + артикул товара | ||
+ | "Price":"27930.00", // Цена продажи товара | ||
+ | "PriceOriginal":"18620.00", // Закупочная цена | ||
+ | "Quantity":"1", // Количество товара | ||
+ | "Amount":"27930", // Сумма продажи товара | ||
+ | "ManagerComment":"Test2", // Комментарий менеджера | ||
+ | "GoodsStatus":"pending", // Статус позиции в заказе на сайте | ||
+ | "ProviderID":"1227", // Ид поставщика товара | ||
+ | "Pref":"YSK", // Внутренний код производителя | ||
+ | "ProducerName":"YSK" // Название производителя | ||
+ | |||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | {...} | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | '''Cтатусы заказа:'''<br> | ||
+ | "Новый" = "new"<br> | ||
+ | "Приостановлен"="pending"<br> | ||
+ | "В работе"="work"<br> | ||
+ | "Выдано"="end"<br> | ||
+ | "Отказано"="refused"<br> | ||
+ | |||
+ | '''Статусы товаров в заказе:'''<br> | ||
+ | "В работе"="work"<br> | ||
+ | "Подтвержден"="confirmed"<br> | ||
+ | "В пути"="road"<br> | ||
+ | "На складе"="store"<br> | ||
+ | "Выдано"="end"<br> | ||
+ | "Отказано"="refused"<br> | ||
+ | |||
+ | В случае успешного выполнения будет возвращено значение: «True» | ||
+ | |||
+ | В случае ошибки в данных будет возвращен массив ошибок : «{"Error":["...."]}» | ||
+ | |||
+ | В случае отсутствия данных будет возвращено значение: «Error: There is no data» | ||
+ | |||
+ | === Кроссы === | ||
+ | |||
+ | 1С отправляет POST запрос на адрес /pages/exchangejs_import_crosses | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "Crosses":[ | ||
+ | { | ||
+ | "ProducerName":"YSK", // Название производителя | ||
+ | "Code":"YSKNS1464", // Артикул товара | ||
+ | "ProducerNameCross":"YSK", // Название кросс производителя | ||
+ | "CodeCross":"87191848937", // Артикул кросс товара | ||
+ | }, | ||
+ | { | ||
+ | ... | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | В случае успешного выполнения будет возвращено значение: «True» | ||
+ | |||
+ | В случае ошибки в данных будет возвращен массив ошибок : «{"Error":["Check brans on cross YSKEE - YSKNS1464 on YSK - YSKMA1381"]}» | ||
+ | |||
+ | В случае отсутствия данных будет возвращено значение: «Error: There is no data» | ||
+ | |||
+ | === Группы товаров === | ||
+ | |||
+ | 1С отправляет POST запрос на адрес /pages/exchangejs_import_price_group | ||
+ | |||
+ | <pre> | ||
+ | {"PriceGroup":[ | ||
+ | { | ||
+ | "ID1c":"00087", // Ид группы в 1С | ||
+ | "GroupName":"Запчасти Иномарки" // Название группы | ||
+ | "GroupNameUa":"Запчастини Іномарки" // Название группы на укр. языке | ||
+ | }, | ||
+ | { | ||
+ | "ID1c":"00121", | ||
+ | "GroupName":"ГБО" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | В случае успешного выполнения будет возвращено значение: «True» | ||
+ | |||
+ | В случае ошибки в данных будет возвращен массив ошибок : «{"Error":["Check input data price group on code"]}» | ||
+ | |||
+ | В случае отсутствия данных будет возвращено значение: «Error: There is no data» | ||
+ | |||
+ | === Поставщики === | ||
+ | |||
+ | 1С отправляет POST запрос на адрес /pages/exchangejs_import_providers | ||
+ | |||
+ | <pre> | ||
+ | {"Providers":[ | ||
+ | { | ||
+ | "ID1c":"000000001", \\Ид поставщика в 1С | ||
+ | "Name":"№1-Иномарка" \\Название | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | В случае успешного выполнения будет возвращено значение: «True» | ||
+ | |||
+ | В случае ошибки в данных будет возвращен массив ошибок : «{"Error":["Dublicate login/email | ||
+ | "]}» | ||
+ | В случае отсутствия данных будет возвращено значение: «Error: There is no data» | ||
= Доработки = | = Доработки = |
Текущая версия на 12:57, 30 июня 2023
Модуль предназначен для синхронизации данных между сайтом и вашей конфигурацией 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", // Название товара "NameUa":"Запчастина", // Название товара на укр. языке "ProviderID":"2", // Ид поставщика на сайте "Code":"1107024", // Артикул товара "Description":"", // Описание товара "DescriptionUa":"", // Описание товара на укр. языке "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С отправляет POST запрос на адрес /pages/exchangejs_import_price
{ "ClearProvider":"1232,1212", // Строка в которой через запятую указаны идентификаторы поставщиков на сайте, товары которых нужно очистить перед выгрузкой "Price":[ { "ProducerName":"REMSA", // Название производителя "Pref":"AEL", // Идентификатор производителя(необязательное поле) "Code":"503361", // Артикул товара "Name":"Тормозной механизм",// Название товара "NameUa":"Гальмівний механізм",// Название товара на укр. языке "ProviderID":"1232", // Ид поставщика на сайте "Description":"Ограничения производителя 00000",//Описание товара "DescriptionUa":"товар", //Описание товара на укр. языке "Quantity":"2", // Количество товара "Price":"6000.00", // Цена товара }, { ... } ] }
При отсутствии значения в поле "ProviderID" значение берется из константы exchangejs:default_id_provider_on_load_price куда вносится идентификатор поставщика с сайта под которым будет проходить заливка прайса.
В случае успешного выполнения будет возвращено значение: «True»
В случае ошибки в данных будет возвращен массив ошибок : «{"Error":{"BrandNotPresent":["BRAND1","BRAND"]}}»
В случае отсутствия данных будет возвращено значение: «Error: There is no data»
Контрагенты
1С отправляет POST запрос на адрес /pages/exchangejs_import_customers
{ "Customers":[ { "FIO":"Rosario Fep", // ФИО "City":"Sembawang", // Город "Address":"Sembawang", // Адрес "Phone":"87191848937", // Телефон контрагента "Login":"RosarioFep", // Логин контрагента "Email":"begrex@prog.ua", // Почта контрагента "Remark":"", // Примечания "CustomerType":"частное лицо", // Тип контрагента (юр./ физ.) "ID1c":"123123123" // Ид контрагента в 1С }, { ... } ] }
При указанном Email, на почту клиенту отправляется уведомление с регистрацией.
В случае успешного выполнения будет возвращено значение: «True»
В случае ошибки в данных будет возвращено значение: «Error: check the data»
В случае отсутствия данных будет возвращено значение: «Error: There is no data»
Заказы
1С отправляет POST запрос на адрес /pages/exchangejs_import_orders
{ "Orders":[ { "ID":"", // Ид заказа на сайте (указывается для обновления данных по заказу) "ID1c":"000001", // Ид заказа на сайте "OrderDate":"2020-07-04", // Дата заказа "OrderTime":"12:10:38", // Время заказа "PriceTotal":"35580.00", // Сумма заказа "IDPaymentType":"2", // Ид cпособа оплаты на сайте "IDDeliveryType":"1", // Ид способа доставка на сайте "OrderStatus":"work", // Статус заказа "IDCustomer":"1237", // Ид контрагента на сайте "Goods":[ // Массив с товарами заказа { "Code":"YSKMA1381", // Артикул товара "Name":"масляный насос MA AJ 3.0 TRIBUTE YSK",// Название товара "ItemCode":"YSK_YSKMA1381",// Внутренний код производителя + артикул товара "Price":"25440.00", // Цена продажи товара "PriceOriginal":"16960.00", // Закупочная цена "Quantity":"1", // Количество товара "Amount":"25440", // Сумма продажи товара "ManagerComment":"Test", // Комментарий менеджера "GoodsStatus":"pending", // Статус позиции в заказе на сайте "ProviderID":"1227", // Ид поставщика товара "Pref":"YSK", // Внутренний код производителя "ProducerName":"YSK" // Название производителя }, { "Code":"YSKNS1464", // Артикул товара "Name":"масляный насос NI FRONTIER VQ40DE 04- YSK",// Название товара "ItemCode":"YSK_YSKMA1381",// Внутренний код производителя + артикул товара "Price":"27930.00", // Цена продажи товара "PriceOriginal":"18620.00", // Закупочная цена "Quantity":"1", // Количество товара "Amount":"27930", // Сумма продажи товара "ManagerComment":"Test2", // Комментарий менеджера "GoodsStatus":"pending", // Статус позиции в заказе на сайте "ProviderID":"1227", // Ид поставщика товара "Pref":"YSK", // Внутренний код производителя "ProducerName":"YSK" // Название производителя } ] } {...} ] }
Cтатусы заказа:
"Новый" = "new"
"Приостановлен"="pending"
"В работе"="work"
"Выдано"="end"
"Отказано"="refused"
Статусы товаров в заказе:
"В работе"="work"
"Подтвержден"="confirmed"
"В пути"="road"
"На складе"="store"
"Выдано"="end"
"Отказано"="refused"
В случае успешного выполнения будет возвращено значение: «True»
В случае ошибки в данных будет возвращен массив ошибок : «{"Error":["...."]}»
В случае отсутствия данных будет возвращено значение: «Error: There is no data»
Кроссы
1С отправляет POST запрос на адрес /pages/exchangejs_import_crosses
{ "Crosses":[ { "ProducerName":"YSK", // Название производителя "Code":"YSKNS1464", // Артикул товара "ProducerNameCross":"YSK", // Название кросс производителя "CodeCross":"87191848937", // Артикул кросс товара }, { ... } ] }
В случае успешного выполнения будет возвращено значение: «True»
В случае ошибки в данных будет возвращен массив ошибок : «{"Error":["Check brans on cross YSKEE - YSKNS1464 on YSK - YSKMA1381"]}»
В случае отсутствия данных будет возвращено значение: «Error: There is no data»
Группы товаров
1С отправляет POST запрос на адрес /pages/exchangejs_import_price_group
{"PriceGroup":[ { "ID1c":"00087", // Ид группы в 1С "GroupName":"Запчасти Иномарки" // Название группы "GroupNameUa":"Запчастини Іномарки" // Название группы на укр. языке }, { "ID1c":"00121", "GroupName":"ГБО" } ] }
В случае успешного выполнения будет возвращено значение: «True»
В случае ошибки в данных будет возвращен массив ошибок : «{"Error":["Check input data price group on code"]}»
В случае отсутствия данных будет возвращено значение: «Error: There is no data»
Поставщики
1С отправляет POST запрос на адрес /pages/exchangejs_import_providers
{"Providers":[ { "ID1c":"000000001", \\Ид поставщика в 1С "Name":"№1-Иномарка" \\Название } ] }
В случае успешного выполнения будет возвращено значение: «True»
В случае ошибки в данных будет возвращен массив ошибок : «{"Error":["Dublicate login/email "]}»
В случае отсутствия данных будет возвращено значение: «Error: There is no data»
Доработки
Из-за того что есть разные конфигурации 1С, создать шаблон модуля довольно сложно, описанные обмены данными это основные моменты работы модуля, которые можно расширять и дополнять, в зависимости от требований заказчика, например: передача из 1С статусов заказов (при условии что менеджеры обрабатывают заказы в 1С), передача в 1С платежей через онлайн-системы (liqpay) и так далее.
Естимейт базовой версии задания - 20ч
Вернуться к списку модулей: Модули_пакет_Експерт_-_Документация