Разработка функционала автоматического обновления товаров по xml

Бюджет: По договоренности
Необходимо разработать функционал автоматического обновления по расписанию. От поставщика получаем yml файл, по которому надо обновить, либо добавить товары.

Интересует: Ваши предложения по поводу реализации, сроки, стоимость разработки.

Структура файла:
<yml_catalog date="2015-12-14 19:09">
<shop>
<categories>...</categories>  // Дерево каталога
<offers>...</offers>          // Товары
</shop>
</yml_catalog>

Структура товара:


<offer id="77756" type="vendor.model" available="true" updated="23:03:41 04.04.2017">
  <categoryId>7120</categoryId> // Категория товара
    <pictures updated="23:03:41 04.04.2017"> 
      <picture>http://srv.limelin.com/img/0/1/0/1/1/117248.jpg</picture>
      <picture>http://srv.limelin.com/img/1/0/1/1/1/117249.jpg</picture>
      <picture>http://srv.limelin.com/img/0/1/1/0/1/117250.jpg</picture>
    </pictures>
  <vendor>SAD</vendor>   // Бренд
  <model>Туника</model>  // Название товара
  <groups>
    <group id="261">Общее</group>
    <group id="264">Состав</group>
  </groups>
  <params> // Опции товара
    <param name="Цвет" group="261">Разноцветный</param>
    <param name="Модель" group="261">туника</param>
    <param name="Сезон" group="261">лето</param>
    <param name="Узор" group="261">полоска</param>
    <param name="Рукав" group="261">отсутствует</param>
    <param name="хлопок" group="264">65%</param>
    <param name="полиэстер" group="264">35%</param>
  </params>
  <price_offers> // Товарные предложения
    <price_offer id="2500000003223" cost="590" param1="42" param2="">размер:    42</price_offer>
    <price_offer id="2500000003224" cost="590" param1="44" param2="">размер:  44</price_offer>
    <price_offer id="2500000003225" cost="590" param1="46" param2="">размер: 46</price_offer>
    <price_offer id="2500000003226" cost="590" param1="48" param2="">размер: 48</price_offer>
  </price_offers>
</offer>

Товар делальнее:

// Шапка
<offer 
  id="77756"
  type="vendor.model" 
  available="true" 
  updated="23:03:41 04.04.2017"
>

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

type, aviable = не используются

updated = используется для предотвращения повторного импорта/перезаписи товара, если товар в ценральной базе не был изменен.


// Фотографии
    <pictures updated="23:03:41 04.04.2017"> 
      <picture>http://srv.limelin.com/img/0/1/0/1/1/117248.jpg</picture>
      <picture>http://srv.limelin.com/img/1/0/1/1/1/117249.jpg</picture>
      <picture>http://srv.limelin.com/img/0/1/1/0/1/117250.jpg</picture>
    </pictures>

updated так же используется для предотвращения повторной загрузки фото

Фотографии в комплексном

теге <pictures> идут в порядке необходимом для нумерации изображений на сайте,

главная фотография всегда первая. Все изображения имеют максимальный размер

1500 на 1500.


// Одно товарное предложение

<price_offer 
  id="2500000003223" 
  cost="590" 
  param1="42" 
  param2=""
>размер: 42</price_offer>

id товарного предложения должен обязательно привязываться к каждому размеру. Далее он будет использоваться для передачи товара на сборку в центральную систему. Все товары собираются по уникальному коду товарного предложения.

Не смотря на то, что у массива товарных предложений у каждого элемента проставлена цена, по факту нужно брать максимальную цену из всех товарных предложений и использовать ее как основную для всего товара. В текущий момент разделение цен по размерам не используется.

Для записи размера в систему необходимо использовать параметр param1.

Для уменьшения трудоемкости связи двух каталогов (сайта и файла) и сохранения текущего дерева сайта необходимо у каждой категории товара создать дополнительную опцию, например xml_tree_id. В эту опцию категории на сайте будет записываться id ветки из файла.
В момент работы импорта необходимо по параметру <categoryId> определить к какой категории должен отнестись текущий товар. Возможно, необходимо реализовать поддержку нескольоких <categoryId> на одну категорию сайта.


Главное условие: полная автоматизация процесса. Поэтому использование плагина конвертации xml не рассматривается.

С уважением.

3 ответа

Откликнуться на заказ

Отклики на заказы могут добавлять только зарегистрированные эксперты Webasyst. Стать экспертом.

Чтобы добавить комментарий, зарегистрируйтесь или войдите