Синхронизация с 1С — различия между версиями

Материал из MstarProject Manual
Перейти к: навигация, поиск
(Товары (прайс))
 
(не показано 59 промежуточных версии 5 участников)
Строка 4: Строка 4:
  
 
Модуль разрабатывается индивидуально для каждого заказчика и при тесном сотрудничестве с вашим программистом 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С. Рассмотрим основные моменты при синхронизации посредством обоих форматов:
 +
 +
 +
= Синхронизация в формате 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
 +
 +
В ответ передается  файл  с данными о брендах (производителях), следующей структуры:
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00">
 +
  <Бренды>
 +
    <Бренд
 +
            Номер="1"                     // Ид производителя на сайте
 +
  Название="1afirstautomotive"  // Название производителя
 +
  Префикс="AAB"                        // Внутренний код производителя
 +
    />
 +
    <Бренд
 +
            Номер="..."                    
 +
  Название="...." 
 +
  Префикс="...."                       
 +
    />
 +
  </Бренды>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
=== Товары (прайс) ===
 +
 +
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=price
 +
 +
В ответ передается  файл с данными о товарах (прайсах), следующей структуры:
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00">
 +
  <Товары>
 +
  <Товар
 +
      Код="1" // Ид товара на сайте
 +
      Название="Важіль підвіски" // Название товара
 +
      КодПоставщика="1312" // Ид поставщика на сайте
 +
      Артикул="SA4791L" // Артикул товара
 +
      Описание="" // Описание товара
 +
      ПрефиксКод="CMW_SA4791L" // Внутренний код производителя + артикул товара
 +
      Производитель="555" // Название производителя
 +
      Количество="2" // Количество товара
 +
      Цена="936.78" // Цена товара
 +
  />
 +
  </Товары>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
<pre>* стоит ограничение в 5 записей, так как данный метод нужно корректировать ввиду большого количества записей.</pre>
 +
 +
=== Поставщики ===
 +
 +
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=providers
 +
 +
В ответ передается  файл с данными о поставщиках , следующей структуры:
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00">
 +
  <Поставщики>
 +
    <Поставщик
 +
      Номер="1312" // Ид поставщика на сайте
 +
      Название="elit" // Название поставщика
 +
      Описание="elit" // Описание
 +
      КодовоеНазвание="elit"  // Кодовое название поставщика
 +
      Страна="" // Страна
 +
      Город="" // Город
 +
      Адрес="" // Адрес
 +
      Телефон="" // Телефон поставщика
 +
      Логин="elit" // Логин поставщика
 +
      Почта="elit@mail.ua" // Почта поставщика
 +
      СрокПоставки="0" // Срок поставки товара поставщиком
 +
      Наценка="Наценка 0" // Наценка поставщика
 +
      Примечания="" // Примечания
 +
      Идентификатор1С="" // Ид поставщика в 1С
 +
    />
 +
  <Поставщики>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
=== Контрагенты ===
 +
 +
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=customers
 +
 +
В ответ передается  файл с данными о контрагентах , следующей структуры:
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="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"// Дата последнего визита 
 +
      Примечания="" // Примечания
 +
      ТипПользователя="частное лицо" // Тип контрагента (юр./ физ.)
 +
    />
 +
  <Контрагенты>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
=== Заказы ===
 +
 +
1С отправляет запрос на адрес http://example.mstarproject.com/?action=exchange&type=sale&mode=orders
 +
 +
В ответ передается  файл с данными о заказах , следующей структуры:
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="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"// Название товара 
 +
/>
 +
    </Товары>
 +
  </Заказ>
 +
</Заказы>
 +
</КоммерческаяИнформация>
 +
</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>
 +
 +
== Передача на сайт с 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)===
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00">
 +
  <Бренды>
 +
    <Бренд Название="test"/>
 +
  </Бренды>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
 +
<pre>* После выгрузки брендов на сайте в разделе прайсы воспользоваться пунктом "проверьте префиксы" в котором
 +
 +
нужно сгенирировать новые префиксы для брендов, либо привязать к существующим.
 +
</pre>
 +
 +
=== Товары (прайс)(price.xml) ===
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00">
 +
  <Товары>
 +
    <ОчиститьПоставщиков Ид="123, 111"/> // Строка в которой через запятую указаны идентификаторы поставщиков на сайте, товары которых нужно очистить перед выгрузкой
 +
    <Товар
 +
      Название="Важіль підвіски" // Название товара
 +
      КодПоставщика="1312"   // Ид поставщика на сайте
 +
      Артикул="SA4791L"   // Артикул товара
 +
      Описание=""   // Описание товара
 +
      Производитель="555"   // Название производителя
 +
      Количество=">9"   // Количество товара
 +
      Цена="9.78"   // Цена товара
 +
    />
 +
  </Товары>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
=== Контрагенты(customers.xml) ===
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00">
 +
  <Контрагенты>
 +
    <Контрагент
 +
      Идентификатор1С="111111111"  // Ид контрагента в 1С
 +
      ФИО="Иванов Иван" // ФИО
 +
      Логин="0671234567" // Логин контрагента
 +
      Почта="begrex@pmarket.ru" // Почта контрагента
 +
      Телефон="0671234567" // Телефон контрагента
 +
      Город="Киев" // Город
 +
      Адрес="пр. Мира 20" // Адрес
 +
      Примечания="" // Примечания
 +
      ТипПользователя="частное лицо" // Тип контрагента (юр./ физ.)
 +
    />
 +
  </Контрагенты>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
Поле логин рекомендовано заполнять номером телефона либо адресом электронной почты. По умолчанию задается пароль 123456.
 +
 +
=== Заказы(orders.xml) ===
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="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" // Название товара
 +
      />
 +
    </Товары>
 +
  </Заказ>
 +
</Заказы>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
'''Cтатусы заказа:'''<br>
 +
"Приостановлен"="pending"<br>
 +
"В работе"="work"<br>
 +
"Выдано"="end"<br>
 +
"Отказано"="refused"<br>
 +
 +
'''Статусы товаров в заказе:'''<br>
 +
"В работе"="work"<br>
 +
"Подтвержден"="confirmed"<br>
 +
"В пути"="road"<br>
 +
"На складе"="store"<br>
 +
"Выдано"="end"<br>
 +
"Отказано"="refused"<br>
 +
 +
=== Кроссы(cross.xml) ===
 +
 +
<pre>
 +
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="0000-00-00">
 +
  <Кроссы>
 +
    <Кросс
 +
      Производитель="wix filters" // Название производителя
 +
      Артикул="WL7129" // Артикул товара
 +
      КроссПроизводитель="CHAMPION" // Название кросс производителя
 +
      КроссАртикул="COF101102S" // Артикул кросс товара
 +
    />
 +
  </Кроссы>
 +
</КоммерческаяИнформация>
 +
</pre>
 +
 +
=  Синхронизация в формате JSON через HTTP-сервисы в 1С  =
 +
 +
==  Передача из сайта в 1С (экспорт)  ==
 +
 +
=== Бренды ===
 +
 +
1С отправляет запрос на адрес /pages/exchangejs_export_brands
 +
 +
В ответ передается  массив Brands с данными о брендах (производителях), пример:
 +
 +
<pre>
 +
{
 +
  "Brands":[
 +
    {
 +
      "ID":"1",              // Ид производителя на сайте
 +
      "Name":"TWR",    // Название производителя
 +
      "Pref":"AAB"        // Внутренний код производителя
 +
    }
 +
  ]
 +
}
 +
</pre>
 +
 +
=== Товары (прайс) ===
 +
 +
1С отправляет запрос на адрес /pages/exchangejs_export_price
 +
 +
В ответ передается  массив Price с данными о товарах (прайсах), пример:
 +
 +
<pre>
 +
{
 +
  "Price":[
 +
    {
 +
      "ID":"1", // Ид товара на сайте
 +
      "Name":"Parts", // Название товара
 +
      "NameUa":"Запчастина", // Название товара на укр. языке
 +
      "ProviderID":"2", // Ид поставщика на сайте
 +
      "Code":"1107024", // Артикул товара
 +
      "Description":"", // Описание товара
 +
      "DescriptionUa":"", // Описание товара на укр. языке
 +
      "ItemCode":"ADN_1107024", // Внутренний код производителя + артикул товара
 +
      "ProducerName":"BOSCH", // Название производителя
 +
      "Quantity":"2", // Количество товара
 +
      "Price":"10.00" // Цена товара
 +
 +
    }
 +
  ]
 +
}
 +
</pre>
 +
<pre>
 +
* стоит ограничение в 5 записей, так как данный метод нужно корректировать ввиду большого количества записей.
 +
</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»
 +
 +
= Доработки =
 +
 +
Из-за того что есть разные конфигурации 1С, создать шаблон модуля довольно сложно, описанные обмены данными это основные моменты работы модуля, которые можно расширять и дополнять, в зависимости от требований заказчика, например: передача из 1С статусов заказов (при условии что менеджеры обрабатывают заказы в 1С), передача в 1С платежей через онлайн-системы (liqpay) и так далее.
  
 
<pre>Естимейт базовой версии задания - 20ч</pre>
 
<pre>Естимейт базовой версии задания - 20ч</pre>
 +
'''Вернуться к списку модулей:''' [[Модули_пакет_Експерт_-_Документация]]

Текущая версия на 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ч

Вернуться к списку модулей: Модули_пакет_Експерт_-_Документация