Содержание

Процесс синхронизации данных интернет-магазина с программой учета

Отправка данных на портал

Данный порядок необходим для предотвращения возможных ошибок при загрузке данных, и рисков, связанных с ними.

  1. Запросить дату актуальности последней синхронизации запросом к syncInfo
  2. Сформировать xml с даты последней синхронизации по текущую
  3. Загрузить xml файл по FTP. Имя файла должно быть уникальным. Заменять уже загруженные файлы запрещено. Просьба добавить префикс типа файkа к Имени файлу для удобства анализа, например v8_detail_A8E9_28e.xml
  4. Поставить xml файл в очередь на синхронизацию запросом к syncAdd

Параметры передаются в виде POST или GET запроса.

Запросы к сайту желательно отправлять со статического IP адреса, который будет внесен в белый список в интернет-магазине. В противном случае, потребуется предавторизация.

SyncInfo

имя сайта/?option=com_wmartalpha&task=system.syncInfo

Получает информацию о текущей очереди. Результат возвращается в формате JSON.

Запрос

АргументОписаниеТипПо-умолчанию
typeТип синхронизируемого файлаproduct - основные данные товара, detail – описание товара и фото, price - цены и наличие, order - изменения заказов

Ответ

АргументОписаниеТипПо-умолчанию
codeКод ответаКод ответа
statusТекстовое описание результата запросаstring
queueДлина текущей очередиint
date_lastДата последней синхронизации сервераdatetime dd.mm.YYYY HH:mm:ss
Пример

https://sitename.ru?option=com_wmartalpha&task=system.syncInfo&type=product

SyncAdd

имя сайта/?option=com_wmartalpha&task=system.syncAdd

Добавляет файл в очередь синхронизации. Результат возвращается в формате JSON.

Запрос

АргументОписаниеТипПо-умолчанию
typeТип синхронизируемого файлаproduct - основные данные товара, detail – описание товара и фото, price - цены и наличие, order - изменения заказов
date_startДата последней синхронизацииdatetime dd.mm.YYYY HH:mm:ss обязательный
date_endДата текущей синхронизации (обычно дата формирования файла)datetime dd.mm.YYYY HH:mm:ss обязательный
filenameимя XML файлаstring обязательный

Ответ

АргументОписаниеТипПо-умолчанию
codeКод ответаКод ответа
statusТекстовое описание результата запросаstring
queueДлина текущей очередиint
date_lastДата последней синхронизации сервераdatetime dd.mm.YYYY HH:mm:ss
Пример

https://sitename.ru?option=com_wmartalpha&task=system.syncAdd&type=catalog&filename=_Items678246.xml&date_start=23.07.2019%2022:58&date_end=24.07.2019%2020:22:58

Коды ответов

Любой отличный от 1 код ответа следует рассматривать как ошибку запроса.

Код ответаРасшифровка
1Запрос успешно исполнен
20Тип файла указан некорректно
30Файл отсутствует в папке заливки
31Не удалось разобрать XML файл. Файл имеет некорректную структуру или был поврежден при загрузке
32Файл уже в очереди
40Дата текущей синхронизации указана некорректно
41Дата последней синхронизации сервера не совпадает с датой последней синхронизации файла

Описание данных передаваемых xml данных

product.xml

Накопительная выгрузка изменений товаров за период

categories categoryОписание категории. При изменении любых данных элемент выгружается полностью
categories category[aid]id категории в программе учета
categories category[remove]необязательный атрибут. Пометка категории на удаление
categories category[aparent_id]id родительской категории в программе учета
products productОписание товара. При изменении любых данных элемент выгружается полностью
products product[aid]id товара в программе учета
products product[remove]необязательный атрибут. Пометка товара на удаление
products product[aparent_id]id родительской категории в программе учета
products product[vendor]id производителя из справочника
products product[country]id страны из справочника
products product[packing]id упаковки из справочника
products product[prescript]рецептурный препарат 0 или 1
products product[veterinary]ветеринарный препарат 0 или 1
products product[substance]id действующего вещества из справочника
products product[trade-name]id торгового наименования из справочника
products product[fgroup]id фармакологических групп из справочника (через запятую)
products product titleЗаголовок товара
products product substanceДействующее вещество
products product barcodeШтрихкод товара
products product vatСтавка НДС
products product imshop_sortСортировка товаров для imshop
products product flags flagФлаги-метки товара текстовые короткие слова/словосочетания
<?xml version="1.0" encoding="UTF-8"?>
<data>
  <categories>
    <category aid="10" aparent_id="0">Товары</category>
    <category aid="11" aparent_id="0">Услуги</category>
    <category aid="12" remove="1">Удаляемая категория</category>
  </categories>
  <products>
    <product 
      aid="376647" aparent_id="126" vendor="278" 
      country="000000021" packing="23" fgroup="0000001021,0000001022" 
      prescript="1" veterinary="1" substance="aid" trade-name="aid">
      <title>5-НОК табл по 50 мг №50 Сандоз</title>
     <substance>Нитроксолин</substance>
      <barcode>7613421035662</barcode>
      <vat>VAT_10</vat>
      <imshop_sort>10</imshop_sort>
      <flags>
        <flag>Акция</flag>
        <flag>Новинка</flag>
      </flags>
    </product>
    <product aid="376699" remove="1">
      <title>Удаляемый товар</title>
    </product> 
  </products>
 
</data>

detail.xml

Накопительная выгрузка описания товаров за период

products productОписание товара. При изменении любых данных элемент выгружается полностью
products product[aid]id товара в программе учета
products product[diseases]id заболевания из справочника, может быть множественным, через запятую
products product imgs imgИзображения товара
products product diseases diseaseСвязанное заболевание
products product syns synСинонимы
products product analogs analogАналоги
products product relatives relativeid связанного товара в программе учета
products product descПолное описание товара
products product promo-descПромо описание товара
products product trade-nameТорговое наименования товара - для объединения всех вариантов выпуска в карточке товара ОСТАВИТЬ ДО ПЕРЕДЕЛКИ
products product prescribeПоказания к применению
products product dosingСпособ применения
products product precautionПротивопоказания
products product storeCndУсловия хранения
images imageИзображения товара или катерогии. При изменении любых данных элемент выгружается полностью
images image[aid]id товара или категории в программе учета
images image[type]тип элемента product или category
images image filenameимена файлов изображений
<?xml version="1.0" encoding="UTF-8"?>
<data>
  <products>
    <product aid="376647" diseases="aid,aid">
      <diseases>
        <disease>ОРЗ</disease>
        <disease>Грипп</disease>
      </diseases>
      <syns>
        <syn>Синоним 1</syn>
        <syn>Синоним 2</syn>
      </syns>
      <analogs>
        <analog>Аналог 1</analog>
        <analog>Аналог 2</analog>
      </analogs>
      <relatives>
        <relative>37664732</relative>
      </relatives>
      <desc>
        lt;h2&gt;Наименование&lt;/h2&gt;
        Аквалор Беби средство д/промывания полости носа капли 15 мл Аурена Лабораторис Эйби
        &lt;h2&gt;Производитель / Страна&lt;/h2&gt;
        Аурена Лабораторис Эй Би / Швеция...
      </desc>
      <promo-desc>Промоописание товара длинное может быть</promo-desc>
      <trade-name>Озопринозин</trade-name>
      <prescribe>
        Показания к применению
      </prescribe>
      <dosing>
       Способ применения
      </dosing>
      <precaution>
       Противопоказания 
      </precaution>
      <storeCnd>
       Условия хранения
      </storeCnd>
    </product>
  </products>
  <images>
    <image type="product" aid="376647">
      <filename>AP-0000-3766647.jpg</filename>
      <filename>AP-0000-3766647-1.jpg</filename>
      <filename>AP-0000-3766647-2.jpg</filename>
    </image>
    <image type="category" aid="376648">
      <filename>AP-0000-3766648-1.jpg</filename>
      <filename>AP-0000-3766648-2.jpg</filename>
      <filename>AP-0000-3766648-3.jpg</filename>
    </image>
  </images>
</data>

price.xml

Накопительная выгрузка изменений цен и остатков за период

lots lotОписание лота. при изменении любых данных элемент выгружается полностью
lots lot[aproduct_id]уникальный id товара в программе учета GUID в 1c
lots lot[aid]уникальный id лота(партии) в программе учета
lots lot[expire]Срок годности партии
lots lot[price]Стоимость товара
lots lot[price_reg]Стоимость товара
lots lot[price_staff]Стоимость товара для сотрудников и фармацевтов
lots lot[price_opt]Стоимость товара для корпоративных клиентов
lots lot[short]Короткий срок годности 0 или 1
lots lot stockКоличество товара на складе. Если товар закончился в период выгрузки - необходимо указать 0
lots lot stock[aid]id склада в программе учета
<?xml version='1.0' encoding="UTF-8"?>
<data>
  <lots>
    <lot aid="1234565435" aproduct_id="865" expire="2023-09-30T00:00:00" short="1" price="720" price_staff="602.81" price_reg="720" price_opt="">
      <stock aid="834">9</stock> 
      <stock aid="835">8</stock> 
      <stock aid="836">0</stock> 
    </lot>
  </lots>
</data>

user.xml

Данные пользователей

users user[phone]Телефон
users user[aid]GUID пользователя
users user[card]Номер карты
users user[card_type]GUID типа карты
users user profile firstnameИмя
users user profile lastnameФамилия
users user organizationsСписок, связанных с пользователем Организаций, от имени которых он может делать заказ
users user organizations organizationНаименование огранизации
users user organizations organization[inn]ИНН огранизации ООО или ИП
users user bonusesИстория начисления бонусов за одни сутки
users user bonuses[sum]Текущая сумма бонусов
users user bonuses bonusКомментарий к операции
users user bonuses bonus[sum]Сумма операции
users user bonuses bonus[date]Дата операции
users user bonuses bonus[aid]GUID операции
<?xml version="1.0" encoding="UTF-8"?>
<data>
 <users>
  <user phone="79081234567" aid="guid" card="0122222" card_type="guid">
    <profile>
      <firstname>Кирилл</firstname>
      <lastname>Сорокин</lastname>
    </profile>
    <organizations> 
      <organization inn="52600000">ООО ТОНУС</organization> 
    </organizations> 
    <bonuses sum="100">
      <bonus sum="1000" date="2023-05-22T10:00:00" aid="aa12dswd">Стартовые бонусы</bonus>
      <bonus sum="-900" date="2023-05-22T14:00:00" aid="aa212dw">Матрац аскорбинки</bonus>
    </bonuses>
  </user>
 </users>
</data>

order.xml

Накопительная выгрузка изменений по заказам за период

Идентификатор aid назначается программой и считается приоритетным после первого назначения. Если aid не указан приоритетным считается id заказа, присваиваемый сайтом. После двусторонней синхронизации заказ должен содержать оба идентификатора.

Пользователя c флагом registered установленным в 0 считать гостем. Данный пользователь не имеет постоянного идентификатора и не должен быть регистрирован в качестве контрагента.

orders orderпри изменении любых данных элемент выгружается полностью
orders order[id]уникальный id заказа
orders order[aid]уникальный id заказа в программе учета
orders order[number]номер заказа пользователя
orders order[status]id статуса заказа 1 Новый / Заказ создан Клиентом, 2 Заказ собирается / сборка в аптеке, перемещения в аптеку, 3 Заказ в аптеке / готов к выдаче клиенту, 4 Заказ отменен / отменен клиентом, 5 Заказ получен / выкуплен клиентом
orders order[source] Истоник заказа Приложение: imshop, сайт site
orders order[created]Дата создания заказа
orders order[changed]Дата последнего изменения заказа
orders order user[id]уникальный id клиента
orders order user[registered]клиент зарегистрирован либо гость
orders order user[card]номер карты клиента - выданной сайтом или 1с 17знаков, у сайта уникальный префикс 6246 т.е. первая карта будет 62460000000000001 следующая + 1 62460000000000002)
orders order user[card-type]тип карты клиента 2059fa64-c2c1-11eb-94ad-00155d016e07 сотрудник aa1d17d7-8c63-11eb-879d-00155d016709 основная клиента
orders order user[aid]уникальный id клиента в программе учета
orders order user firstnameимя клиента
orders order user lastnameфамилия клиента
orders order user phoneтелефон клиента
orders order user emailemail клиента
orders order shipping[id]id типа доставки
orders order shipping[aid]id пункта выдачи в программе учета
orders order shipping[type]тип доставки stock (самовывоз) или delivery (доставка)
orders order shipping *зависит от типа доставки
orders order payment[id]id способа оплаты в программе учета
orders order price[shipping]стоимость доставки
orders order price[total]сумма заказа
orders order price[coupon]сумма скидки по купону
orders order price[hold]холдированная сумма по заказу
orders order price[balance]сумма внесенной оплаты по заказу
orders order items item[aid]id товара в программе учета
orders order items item[short]признак короткого срока годности
orders order items item[expire]максимальный срок годности товара
orders order items item[price]цена единицы товара
orders order items item[count]количество единиц товара
orders order noteкомментарий пользователя к заказу

alot (guid партии) более не передается. Партия выбирается на усмотрение программы учета исходя из передаваемых сайтом пункта выдачи, срока годности и признака short.

<?xml version='1.0' encoding="UTF-8"?>
<data>
  <orders>
    <order aid="263aa" id="2634" number="203" status="1" source="imshop" created="2021-09-30T10:05:00" changed="2021-09-30T10:05:00">
      <user id="12" registered="0" card="76760000000000086" card-type="aa1d17d7-8c63-11eb-879d-00155d016709" aid="950515">
        <firstname>Кирилл</firstname>
        <lastname>Сорокин</lastname>
        <phone>78310000000</phone>
        <email>info@web152.ru</email>
      </user>
      <shipping id="30" aid="834" type="delivery">
        603000 г. Нижний Новгород, Володарского
      </shipping>
      <payment id="1" />
      <price shipping="0" coupon="-12.5" balance="0" hold="1459" total="1459" />
      <items>
        <item aid="3790984" expire="2023-09-30T00:00:00" short="1" price="1459" count="1" />
        <item aid="3790985" expire="2023-09-30T00:00:00" short="1" price="1459" count="1" />
      </items>
      <note>Комментарий</note>
    </order>
  </orders>
</data>

reference.xml

Справочные данные по свойствам и складам. Выгружается всегда полностью.

references referenceОписание справочника
references reference[name]Имя справочника
references reference valЗначение справочника
references reference val[aid]id значения справочника в программе учета
cities cityОписание города
cities city[aid]id города в программе учета
cities city titleНазвание города
cities city stocks stockОписание магазина/склада/пункта выдачи
cities city stocks stock[aid]id пункта выдачи в программе учета
cities city stocks stock[lat]Географическая широта
cities city stocks stock[lon]Географическая долгота
cities city stocks stock[dropshipping]Признак удаленного склада (0 - нет, 1 - да)
cities city stocks stock titleНазвание пункта выдачи
cities city stocks stock addressадрес пункта выдачи для отображения в товаре/заказе на сайте
cities city stocks stock address-shortадрес пункта выдачи в сокращенном виде для СМС о заказе
cities city stocks stock phoneтелефон пункта выдачи
cities city stocks stock shedule[desc]режим работы пункта выдачи
cities city stocks stock shedule daysрасписание работы пункта выдачи
cities city stocks stock shedule days day[num]день недели (0-воскресенье, 1-понедельник…)
cities city stocks stock shedule days day[purchase_end]время окончания приема заказов. если не указано, прием заказов в данный день не производится и переносится на следующий день
cities city stocks stock shedule days day[duration]срок обработки заказа
cities city stocks stock shedule days day[pickup_start]время начала выдачи (пока не используем)
cities city stocks stock shedule days day[pickup_end]время окончания выдачи (пока не используем)
<?xml version="1.0" encoding="UTF-8"?>
<data>
  <references>
    <reference name="vendor">
      <val aid="7959">Плантэкстракт ГмбХ и Ко.КГ/Мадаус ГмбХ</val>
      <val aid="7960">Рекитт Бенкизер Хелскэар/ЭсЭсЭл Мануфакт</val>
    </reference>
    <reference name="disease">
      <val aid="7959">Грипп</val>
      <val aid="7960">ОРВИ</val>
    </reference>
    <reference name="substance">
      <val aid="7959">Адапален</val>
      <val aid="7960">Азитромицин</val>
    </reference>
    <reference name="trade-name">
      <val aid="7959">АЗИТРОМИЦИН</val>
      <val aid="7960">Тиберал</val>
    </reference>
    <reference name="country">
      <val aid="000000001">Россия</val>
      <val aid="000000002">Италия</val>
    </reference>
    <reference name="packing">
      <val aid="1">Ампулы</val>
      <val aid="2">Аэрозоль</val>
    </reference>	
    <reference name="fgroup">
      <val aid="0000000689">Средства, действующие преимущественно на центральную нервную систему</val>
      <val aid="0000000690">Средства, тормозящие активность центральной нервной системы</val>
    </reference>
    <reference name="ugroup">
      <val aid="0">Розница</val>
      <val aid="0000000xxx">Карта лояльности</val>
      <val aid="0000000xxx">Сотрудники</val>
    </reference>
  </references>
  <cities>
    <city aid="52">
      <title>Нижний Новгород</title>
      <stocks>
        <stock aid="830" lat="56.296348" lon="43.924713" dropshipping="0">
          <title>ЕАптека Московское шоссе ост Березовская</title>
          <address>603079, г.Нижний Новгород, Московское шоссе, 179</address>
          <address-short>Н.Новгород,Московское ш.,179</address-short>
          <phone>+7 (831) 215-51-41</phone>
          <shedule desc="ПН-ПТ 8:00 – 20:00&lt;br&gt;СБ-ВС 9:00 – 20:00">  
          </shedule>
        </stock>
        <stock aid="831" lat="56.296348" lon="43.924713">
          <title>ЕАптека Терешковой</title>
          <address>603081, г.Нижний Новгород, ул. Терешковой, 6а</address>
          <phone>+7 (831) 215-51-40</phone>
          <shedule desc="ПН-ПТ 8:00 – 20:00&lt;br&gt;СБ-ВС 9:00 – 20:00">
            <days>
             <day num="1" purchase_end="18:30" duration="1">
             <day num="2" purchase_end="18:30" duration="1">
             <day num="3" purchase_end="18:30" duration="1">
             <day num="4" purchase_end="18:30" duration="1">
             <day num="5" purchase_end="18:00" duration="1">
             <day num="6"><!-- нельзя заказывать, но можно забрать -->
            </days>
          </shedule>
        </stock>
      </stocks>
    </city>
  </cities>
</data>

Получениe данных с портала

Параметры передаются в виде POST или GET запроса.

orderItems

имя сайта/?option=com_wmartalpha&task=system.orderItems

Получает xml документ с данными заказов измененных начиная с времени date_change

Запрос

АргументОписаниеТипПо-умолчанию
date_changeВремя изменения заказаdatetime dd.mm.YYYY HH:mm:ss00.00.0000 00:00:00
Пример

https://sitename.ru?option=com_wmartalpha&task=system.orderItems&date_change=01.01.2020%2023:00