XML-документы
Настройки импорта произвольных XML-файлов
Дополнительные возможности окна «Поле импорта»
Приложение WinShop предоставляет контент-менеджерам интернет-магазинов возможность:
- добавления и обновления информации о товарах;
- обновления цен на товары;
из прайс-листов поставщиков, предоставляемых в формате XML-файлов произвольной структуры, размещенных как в сети интернет, так и на локальном компьютере.
XML-документы
XML (от английского eXtensible Markup Language) — расширяемый язык разметки.
XML разрабатывался как язык удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком.
Язык называется расширяемым, так как он позволять создавать разметку в соответствии с потребностями пользователей.
Открыть для просмотра или редактирования файл с расширением .xml можно с помощью обычного текстового редактора или интернет-браузера.
Содержание XML-документа оформляется наборами тегов и их атрибутов. Сочетание простой разметки, удобство восприятия человеком или программами, а также поддержка Юникод-кодировки привело к широкому использованию данного формата.
Теги, элементы и атрибуты XML-документа
Есть три термина, используемые для описания структуры и содержания XML-документов, это:
- Элементы (от англ. element) - определяют логическую структуру документа. Каждый XML-документ содержит один или несколько элементов. Границы элементов указываются начальным и конечным тегами. Элементы могут содержать в себе вложенные или дочерние элементы.
- Теги (от англ. tag) — конструкция разметки, которая содержит имена элементов и их содержание.
- Атрибуты (от англ. attribute) — конструкция разметки, которая содержит дополнительные свойства элементов.
Пример XML-документа с пояснениями
<?xml version="1.0" encoding="UTF-8"?>
<address>
<name>
<title>
Mrs.</title>
<first-name>
Mary</first-name>
<last-name>
McGoon</last-name>
</name>
<street>
1401 Main Street</street>
<city state="NC">
Anytown</city>
<postal-code>
34829</postal-code>
<empty-element />
</address>
Элемент <address>
содержит вложенные элементы <name>
, <street>
,<city>
и <postal-code>
.
Элемент <name>
содержит вложенные элементы <title>
, <first-name>
и<last-name>
.
Соответственно, элементы <address>
, <name>
,<street>
, <city>
, <postal-code>
, <title>
,<first-name>
и <last-name>
формируют структуру XML-файла рассмотренного в данном примере.
Пояснения:
<?xml version="1.0" encoding="UTF-8"?>
— указание на то, что перед нами XML-файл; <address>
— начальный (открывающий) тег элемента address; </address>
— конечный (закрывающий) тег элемента address; <title>
Mrs.</title>
— Mrs. — это содержимое (значение) элемента <title>
; <city state="NC">
Anytown</city>
— state="NC" — это атрибут и значение атрибута элемента <city>
; <empty-element />
— пример пустого элемента.
Настройки импорта произвольных XML-файлов
Используя функцию «Импорт товаров» вы можете настроить ручной или автоматический импорт необходимых данных о товарах и/или разделах каталога интернет-магазина из XML-файла.
При клике на кнопку «Далее», если в качестве файла импорта импорта указан xml-файл, вы перейдете к окну «Настройка xml разметки для "..." импорта». Здесь и нужно настроить соответствия, при помощи которых из древовидной структуры xml-файла будет получена таблица. Эта таблица будет использована для последующей загрузки информации о товарах в приложение WinShop.
WinShop автоматически считает структуру XML-файла и сформирует ее в левой части окна «Ветки товаров (разделов)». Интерфейс «Ветки товаров (разделов)» раскрывает дерево элементов и связанных с ними атрибутов для импортируемого XML-файла.
В правой части окна «Поля товаров (разделов)» необходимо создать те поля, в которые будут импортироваться содержимое элементов и атрибутов.
Переходим к настройке импорта данных о товарах и XML-файла.
Шаг 1.
В окне «Ветки товаров (разделов)» отмечаем галочками базовые ветки xml-файла. Базовая ветка — это ветка товара и/или раздела, которая содержит внутри себя все данные товара, и количество этих веток в xml-файле будет равно количеству импортируемых товаров. Т.е. одна базовая ветка в xml-файле создаст одну строку в таблице импорта.
Как правило, вам нужно определить и отметить только одну ветку как базовую.
Например, если мы хотим импортировать данные из XML-файла следующей структуры:
<offers>
<item id="128" group_id="16408">
<main_fields>
<item_code>
128</item_code>
<__manufacturer_code>
art-multi-10</__manufacturer_code>
<name>
Мультиварка PANASONIC SR-TMH10</name>
<headline>
Мультиварка PANASONIC SR-TMH10</headline>
<abstract>
<STRONG>
Компактная мультиварка с функциями варки, приготовления на пару, тушения и выпечки.</STRONG>
Таймер отсрочки до 13 часов. Возможность длительного, до 12 часов, тушения позволит не только приготовить традиционную или необычную еду, но и справиться с любым жестким мясом.</abstract>
<info>
<P>
<STRONG>
Характеристики</STRONG>
<BR>
Объем, л 2.5<BR>
Тип управления Электронное<BR>
Потребляемая мощность, Вт 490<BR>
Таймер 13 ч.<BR>
Отложенный старт Есть<BR>
Автоподогрев Есть<BR>
Ускоренное приготовление Есть<BR>
Дисплей Светодиодный (LED)<BR>
<STRONG>
Режимы работы</STRONG>
<BR>
Выпечка Есть<BR>
Приготовление на пару Есть<BR>
Тушение Есть<BR>
Суп Есть<BR>
Каша Есть<BR>
Рис Есть<BR>
<STRONG>
Размеры и вес</STRONG>
<BR>
Ширина, см 25.5<BR>
Высота, см 24.5<BR>
Глубина, см 24.8<BR>
Вес, кг 2.4</P>
</info>
<currency_id>
BYN</currency_id>
<price>
270.2</price>
<__wholesale_price>
100</__wholesale_price>
<__purchase_price>
99</__purchase_price>
<order_delay>
0</order_delay>
<__quantity>
50</__quantity>
<image>
PANASONIC_SR-TMH10.jpeg</image>
<seo.title>
Мультиварка PANASONIC SR-TMH10 купить в Минске</seo.title>
<seo.description>
Мультиварка PANASONIC SR-TMH10 купить в Минске — название магазина</seo.description>
<seo.keywords>
Мультиварка PANASONIC SR-TMH10</seo.keywords>
</main_fields>
</item>
</offers>
в качестве базовой ветки необходимо выбрать ветку <item>
.
Шаг 2
Для каждой базовой ветки в окне «Поля товаров (разделов)» необходимо настроить набор полей, каждое из которых предназначено для получения значения одной характеристики товара. Одно такое поле создаст один столбец в таблице импорта.
Вы можете: Добавить новое поле; Отредактировать выделенное; и/или Удалить выделенные поля при помощи кнопок выше окна или из контекстного меню.
Поле импорта задается в виде текстовой формулы с определенным синтаксисом (описан ниже), для его настройки служит окно «Поле импорта». Здесь вы можете настроить поле, используя графический интерфейс или вводя формулу в поле «Формула».
В подавляющем большинстве случаев достаточно вызвать выпадающий список (дерево) в поле «Формула», выбрать нужный атрибут или ветку, в котором(ой) находится значение характеристики, и нажать кнопку «ОК».
Дерево в поле «Формула» формируется исходя из веток или элементов, входящих в базовую ветку.
На скриншоте представленном выше, показано как мы сопоставили содержимое ветки XML-файла <item_code>
со столбцом id.
Шаги 1 и 2 необходимо повторить для всех свойств товаров, который мы хотим загрузить в WinShop из импортируемого XML-файла.
Шаг 3
Допустим, что на шагах 1 и 2 мы сделали сопоставление для 4-х полей:
- id
- name
- price
- rub
Далее нам необходимо указать, как названия столбцов будут связаны со свойствами карточки товара, существующими в приложении WinShop. Например, Столбец «Price» будет соответствовать свойству цена.
Далее нажимаем на кнопку «Импортировать».
При наличии ошибок или конфликтов при импорте данных приложение выдаст соответствующие ошибки. Их необходимо исправить.
В данном примере мы настроили сопоставление только 4-х полей. Для реального использования вы можете настроить сопоставление для всех свойств карточки товара и заданных значений групповых полей. Указанные настройки сохраняться для выполнения последующих обновлений.
Обратите внимание!
Вы можете сохранить настройки импорта для XML-файлов предоставляемых определенным поставщиком и использовать их в режиме ручного или автоматического, по расписанию, обновления данных.
При импорте характеристик товаров, поля для этих характеристик должны быть определены в карточке товара или в групповых полях.
Обработав информацию о товарах в приложении WinShop, используя модуль «Экспорт данных» вы можете управлять структурой каталога, товарами, их ценами и характеристиками для интернет-магазинов созданных на любой CMS: 1С-Битрикс, CS-Cart, Drupal, HostCMS, ImageCMS, Joomla!, Magento, MODX, NetCat, OpenCart, PHPShop, PrestaShop, Shop-Script, UMI.CMS, WordPress, OcStore, VirtueMart, JoomShopping, eCommerce, WooCommerce, InSales, Digistr, Recommerce.
Дополнительные возможности окна «Поле импорта»
Фильтры
Для каждой ветки на пути к значению характеристики вы можете настроить один или несколько фильтров.
Рассмотрим настройку фильтров на нескольким примерах.
Пример 1
<row status="1">
<field>
13623</field>
<field>
Стиральная машина Indesit WISN 82</field>
<field>
Стиральная машина Indesit WISN 82</field>
<field>
526</field>
</row>
В данном случае все вложенные характеристики расположены в ветках с одинаковым именем «field», с определенной последовательностью. Для структур такого типа следует использовать индексный фильтр, в результате поля будут выглядеть следующим образом.
Пример 2
<row status="1">
<field name="item_code">
13623</field>
<field name="name">
Стиральная машина Indesit WISN 82</field>
<field name="headline">
Стиральная машина Indesit WISN 82</field>
<field name="price">
526</field>
</row>
В данном случае все вложенные характеристики расположены в ветках с одинаковым именем "field", но, в отличие от предыдущего примера, идентифицировать их можно по значению атрибута "name". Для структур такого типа следует использовать фильтр по значению. В результате поля будут выглядеть следующим образом.
Результат
«Атрибут» — значение атрибута; доступен и выбран, если в поле формула выбран атрибут (начинается с символа "@").
«Значение» — значение ветки; доступен и выбран по умолчанию, если в поле формула выбрана ветка;
«Текст» — возвращает текст указанной ветки, включая текст вложенных в нее веток.
Например, для структуры:
<info>
Характеристики:
<field>
Количество оборотов:</field>
<value>
800</value>
<field>
Класс энергопотребления:</field>
<value>
A</value>
</info>
результат будет: "Характеристики: Количество оборотов: 800 Класс энергопотребления: A", а не "Характеристики: ".
«Список» — для списка указанных веток вернет значения в виде списка, пригодное для импорта, в списковые групповые поля;
Например, для структуры:
<row>
<options>
<option>
Блокировка</option>
<option>
Предварительное полоскание</option>
<option>
Ручная стирка</option>
</options>
</row>
и формулы "options/option#list", результат будет: "Блокировка|Предварительное полоскание|Ручная стирка".
«Постоянное» — при существовании указанной ветки или атрибута, любое его значение будет заменено на указанное пользователем постоянное значение.