Инструменты пользователя

Инструменты сайта


xxx

Это старая версия документа!


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

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

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

  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
Пример

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
Пример

Коды ответов

Любой отличный от 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[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"
    >
      <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 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>
        <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
Пример
xxx.1708590917.txt.gz · Последние изменения: 2024/02/22 11:35 — melissa