XML-YML Общее

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

Последнее время, все чаще приходится сталкиваться с прайс листами в таком формате. Здесь не имеется в виду прайс лист в формате "Таблица xml", созданных Excel-ем.

Прайс лист в формате "Таблица xml" является обычным табличным прайс листом. Он открывается Excel-ем в виде таблицы, номера колонок которой, видны невооруженным глазом:

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


Формат xml/yml с произвольными тегами.

Также имеет строки и столбцы, ограниченные тегами с двух сторон. Если открыть файл NotePad-ом или Блокнотом, то можно увидеть товар, как строку прайс листа:

На рисунке видно, что каждая строка прайс листа начинается с тега <offer  (с пробелом в конце) и заканчивается тегом </offer> (подчеркнуто красными линиями).

Пробел в конце тега <offer необходим для того, чтобы плагин не воспринял тег <offers>, как начало строки.

На рисунке красными числами пронумерованы колонки. Это те самые номера колонок, которые используются в настройке формы поставщика.

Тег <offer - не единственный тег с которого может начинаться строка прайс листа. Формат "с произвольными тегами" допускает использование любых тегов:

например, тега  <model


Повторяющиеся теги.

Повторяющиеся в файле теги представляют собой массив данных, находящихся в одной колонке. Например:

В колонке <pictures> находятся три ссылки на фото товара. В табличном прайс листе это выглядело бы так:

Плагин использует свой разделитель |*|

А колонка <param заняла бы две колонки табличного прайс листа 9 и 10:


Категории.

Формат xml-yml с произвольными тегами допускает размещение в начале файла списка категорий. Если этот список построен по следующему стандарту

то плагин сможет с ним работать:

  • создать категории в магазине
  • заполнить вкладку "Категории и наценки".

Символы CRLF на рисунке обозначают Enter.


XML-YML Номера колонок

Поскольку прайс лист в формате xml-yml с произвольными тегами не всегда можно открыть приложением Excel чтобы увидеть номера колонок, в плагине сделана специальная функция:

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

В некоторых случаях, приходится прописывать не только тег начала товара, но и тег конца:

Плагин просмотрит до 10000 товаров и составит список номеров колонок - файл admin/uploads/columns.tmp

(покажет "шапку" прайс листа).

Это те номера колонок, которые следует прописывать в форме поставщика.

Содержимое файла columns.tmp примерно следующее:

Внимание.

Если из прайс листа выделить всего несколько товаров в отдельный файл, то номера колонок могут оказаться другими, поскольку некоторые колонки могут появится в товарах, позже. Например колонка <vendor> появляется только в четвертом товаре:

если выделить в отдельный прайс лист первые 3 товара, то плагин не увидит колонку <vendor>. Чего бы никогда не произошло в случае с табличным прайс листом:

Здесь колонка №3 всегда существует, даже если она пустая.


User Schema.

Поставщик может вообще удалить колонку <vendor> из прайс листа, тогда колонки сместятся, их номера изменятся и настройки формы поставщика окажутся неверными. Также, он может менять колонки местами и добавлять новые.

Чтобы не перенастраивать каждый раз форму поставщика (тем более, что при обработке через Крон это сделать невозможно), лучше создать собственную схему расположения колонок и, таким образом, зафиксировать их номера, как в табличном прайс листе.

Для этого нужно в любом текстовом редакторе создать файл, содержащий названия колонок в порядке, который вас устраивает. Файл должен называться user_schemaN.csv (где N - номер формы поставщика):

и находиться на сайте, в папке admin/uploads:

Названия колонок нужно скопировать из файла columns.tmp:

Например, для обновления цен и остатков, нам достаточно иметь прайс лист всего с тремя колонками: артикул, цена, остаток. Тогда содержимое файла user_schema14.csv будет таким:

(разделитель - запятая, пробелы не допускаются).

В настройках формы поставщика будет достаточно прописать:

  • колонку №1 - артикул
  • колонку №2 - цена
  • колонку №3 - остаток

и действие "Только обновлять".


XML-YML Категории

Авто-создание категорий.

Плагин может создать категории в магазине автоматически, используя список категорий, расположенный в начале прайс листа:

Требуется, чтобы список категорий был представлен именно в таком виде, как на рисунке (CRLF обозначает перевод строки).

Достаточно включить Действие:

сохранить форму поставщика и отправить прайс лист в обработку.

В данном случае, нет необходимости создавать вручную опорные категории.


Заполнение вкладки "Категории и наценки".

В каждом товаре, младшая категория представлена, как правило в теге <category_id> собственным id:

Этот id фигурирует в списке категорий, расположенном в начале прайс листа (см. рисунок выше). Сопоставив эти данные, плагин может автоматически заполнить вкладку "Категории и наценки", как левую сторону вкладки, так и правую:

Результат:

Папки для фото придется создавать и прописывать вручную, однако, и этот процесс можно автоматизировать, если включить Действие:


XML-YML Артикул

Прайс лист в формате xml-yml с произвольными тегами может содержать артикулы товаров в отдельном теге:

(на рисунке - колонка №7  <sku>).

Тогда, в качестве артикула товара можно использовать колонку 7. Но обычно, поставщик уверен, что самым надежным и неизменным артикулом является его product id (колонка №1).

И он в чем-то прав. Хотя, если у вас несколько поставщиков, то теоретически, id разных товаров от разных поставщиков могут случайно совпасть.

В 95% случаев, удобнее всего использовать в качестве артикула тег id


Опции.

Если в товарах, кроме тега id имеется еще и тег group_id, то можно уверенно утверждать, что этим, поставщик сообщает о находящихся в прайс листе товарах с опциями.

Видно, что тег group_id повторяется в разных товарах, напоминая прайс лист с опциями в разных строках.


В таких случаях, в качестве артикула следует выбрать group_id (колонка №3).


Серии.

Тег group_id можно также использовать для создания серий товаров.

Несколько товаров, имеющих какой-либо общий признак (например одинаковый group_id) можно объединить в серию с помощью плагинов "HYPER PRODUCT MODELS" или "KIT SERIES".

Серии используются тогда, когда есть желание отказаться от опций.

Чтобы объединить товары в серии, достаточно прописать номер колонки содержащий признак серии group_id в поле "Серии" формы поставщика:

Опционально, можно указать и колонку содержащую порядок сортировки и колонку с иконкой товара:


Фото иконки должно быть заранее загружено в папку image/catalog/,  а в колонке 9 прайса листа должен находится путь к фото в таком виде:


XML-YML Атрибуты и Опции


Как должно быть.

Теоретически, опции и атрибуты должны находиться в разных тегах. Например:

Такое представление опций и атрибутов в прайс листе:

позволяет без проблем настроить их загрузку или обновление.

Опции:

Атрибуты:

Название опции находится справа от значения потому, что колонка 12 находится правее колонки 11


Как на самом деле.

К сожалению, поставщики часто объединяют атрибуты и опции в одном теге:

Для того чтобы плагин не создал опции Color и Size в атрибутах, а атрибуты Warranty, Composition и Brand в опциях, следует создать эти опции и атрибуты в админ панеле OpenCart заранее, руками и запретить плагину создавать их автоматически:

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


usergio Copyright © 2022