Структура XML-файла партнерского интернет-магазина
Каталог товаров интернет магазинов партнерской программы PowerPartners формируется на основе автоматически обновляемого файла shop.xml
из каталога products
. Для обеспечения уникальности текстов описывающих продукцию в вашем интернет магазине и увеличения его индивидуальности предусмотрена возможность переопределения параметров продукции. О том как это сделать Вы можете прочитать в статье Кастомизация XML-фида. Цель создания этого документа — предоставить всем заинтересованным лицам справочные материалы, описывающие содержание файлов shop.xml.
С технической точки зрения файлы shop.xml должны отвечать стандартам предъявляемым к структуре XML файлов. Поэтому нельзя забывать, что файл обязан начинаться с указания версии XML и кодировки в которой хранятся данные.
<?xml version="1.0" encoding="UTF-8"?>
Второе требование предъявляемое к любому XML документу: должен быть определен единственный корневой узел (нода), в нашем случае речь о ноде shop
. Это означает, что все данные которые мы хотим получить или изменить будут являться потомками узла shop
В файле products/shop.xml
потомков корневого узла shop
можно разделить на три группы
contacts
- определяющие контактные данныеdeliveries
- определяющие возможные способы доставки и их параметрыproducts
- содержащие список товаров интернет магазина
<?xml version="1.0" encoding="UTF-8"?>
<shop>
<contacts>
...
</contacts>
<deliveries>
...
</deliveries>
<products>
...
</products>
</shop>
В дальнейшем для того чтобы сконцентрироваться на главном будем опускать перечисление всех элементов XML документа и будем указывать только родительские узлы относительно которых определены описываемые данные. В конце статьи будет приведена вся структура XML-файла, чтобы ещё раз закрепить все аспекты, описанию которых, посвящен этот документ.
В первую очередь будут описаны параметры, описывающие характеристики конкретного товара, а затем будет освещён раздел со способами доставки и параметрами которые в нём определены. Порядок следования этих узлов не имеет значения, но будет не лишним упомянуть, что в файлах которые интернет магазины получает с сервера партнерской программы первым идёт узел <deliveries>
а за ним узел <products>
, что ни как не влияет на работоспособность системы.
Каталог продукции
Рассмотрим более внимательно ту часть XML документа products/shop.xml
, которая описывает каждый товар интернет магазина и разберёмся какие характеристики в ней определены.
Каждый товар обособлен в отдельный узел product
для которого всегда определяется уникальный атрибут code
. Критически важно соблюдать точное соответствие кода продукта если вы хотите переопределить его характеристики. Все характеристики, определяющие принадлежность данного товара к той или иной категории являются потомками для узла product
. Код продукта не отображается на страницах интернет магазина. Ниже в таблице перечислены базовые характеристики товара и дана расшифровка их возможных значений
Узел | Возможные значения | Описание |
---|---|---|
category | | Значение узла определяет категорию, к которой относится товар |
trademark | | Наименование производителя продукта |
series | | Код серии (линейки) к которое принадлежит товар. |
model | СНВТ-500/1 | Значение этого параметра определяет наименование товара, которое отображается в описании товара в магазине |
price | {целое число} | Цена на товар в рублях. В параметрах базового магазина настроено ежедневное обновление информации о цене и наличие товаров. Поставщиком установлены цены в долларах США и ежедневно производится пересчёт и обновление цен в зависимости от колебаний курса ЦБ РФ |
description | {текст} | Это короткое описание продукта, которое отображается на титульной странице интернет магазина в каталоге, а так же в результатах поиска. Обратите внимание на то, что объём текста содержащийся в этом узле существенно влияет на отображение товара в каталоге для шаблонов "классик" и "оранж" которые предоставляет партнерская программа. |
type | 0 | Генераторы синхронные |
1 | Стабилизатор электромеханического типа | |
2 | Стабилизатор релейного типа | |
3 | Стабилизатор тиристорного типа | |
4 | Генераторы инверторные | |
5 | Стабилизатор инверторный | |
6 | Зарядное устройство | |
7 | Онлайн ИБП | |
8 | Онлайн ИБП со встроенными АКБ | |
9 | Другое | |
case | 0 | Стандартное (напольное) исполнение |
1 | Возможность крепления на стене | |
2 | Автомобильный инвертор | |
3 | Универсальное (напольное или настенное) | |
4 | Другое | |
phases | | Число фаз |
power | {целое число} |
Полная мощность оборудования указанная в вольт-амперах (ВА) или значение основной характеристики для иных товаров |
weight | {вещественное число} | Вес товара (дробная часть отделяется точкой) |
volume | {вещественное число} | Объём товара в м3 (дробная часть отделяется точкой, 4 знака после запятой) |
image | voltron-rsn-10000h.jpg | Название файла изображения товара отображаемого в описании товара |
image_big | voltron-rsn-10000h_big.jpg | Название файла увеличенного изображения товара отображаемого в подробном описании товара при нажатии на исходное маленькое изображение |
image_big_2 ... image_big_6 | voltron-rsn-10000h_big_2.jpg |
Дополнительные файлы изображений товара увеличенного формата. Мелкоразмерных изображений для дополнительных фотографий не предусмотрено Необязательные. Могут отсутствовать |
html | svc-30000-3.htm | Название файла содержащего полное описание товара, включающее расширенные технические данные и ссылки на сертификаты и другие доступные документы |
available | Наличие товара на складе | |
0 | товар отсутствует | |
1 | товар в наличие | |
bestseller | Признак приоритетности товара. Определяет нужно ли выводить товар на титульной странице магазина | |
0 | не отображать на титульной странице магазина | |
1 | отображать на титульной странице | |
characteristics | <chracteristic> | Дополнительные характеристики отображаемые в виде таблицы в кратком описании товара |
chracteristic | Дополнительные характеристики отображаемые в виде таблицы в кратком описании товара <chracteristic name="{text}" value="{text}"> | |
name={текст} | расшифровка значения характеристики | |
value={текст} | значение характеристики | |
barcode | {13 цифр} | Штрих-код товара (EAN-13) |
article | Е0101-0041 | Артикул |
certificate | pages/img/energy-2015-cert.jpg | Имя файла с сертификатом (РосТест). Полный путь относительно корня магазина. |
manual | pages/img/energy_hybrid_passport.pdf | Имя файла с техническим паспортом изделия. Полный путь относительно корня магазина. |
В результате каждый товар в XML-файле представлен в следующем виде:
...
<products>
<product code="svc-500">
<category>Стабилизатор напряжения</category>
<trademark>Sassin</trademark>
<model>SVC-500</model>
<price>1780</price>
<description>Бытовой стабилизатор переменного напряжения. Предназначен для питания различной бытовой техники и защиты от перепадов напряжения и сетевых помех.</description>
<characteristics>
<chracteristic name="Напряжение входа, В" value="150 - 260" />
<chracteristic name="Напряжение выхода, В" value="220 ± 3%" />
<chracteristic name="Мощность, кВА" value="0.5" />
</characteristics>
<type>1</type>
<case>0</case>
<phases>1</phases>
<power>500</power>
<weight>4</weight>
<image>svc-500.jpg</image>
<image_big>svc-500_big.jpg</image_big>
<html>svc-500.htm</html>
<available>1</available>
<bestseller>1</bestseller>
<barcode>4607110188022</barcode>
<certificate>pages/img/energy-2015-cert.jpg</certificate>
<manual>pages/img/energy_hybrid_passport.pdf</manual>
</product>
<product code="svc-1000">
...
</products>
...
Помните, что вы можете переопределить и дополнить эти характеристики (кроме характеристики price
) и таким образом прибавить индивидуальности вашей торговой площадке.
Доставка
В файле products/shop.xml
нода deliveries
содержит данные о способах доставки. Наша партнерская программа постоянно развивается и старается обеспечить клиентам интернет магазинов большое число способов оплаты и доставки. В связи с этим структура построена таким образом, чтобы по мере добавления новых способов оплаты и доставки партнеры автоматически получали в своих магазинах не только оперативную информацию о продукции и ценах на неё, но и позволяли обслужить максимальное количество клиентов. Так например появление оплаты по безналичному рассчёту и доставка в регионы транспортной компанией привело к тому, что география успешно выполненных заказов существенно расширилась.
Информация в данном разделе описывает два возможных на текущий момент способа доставки: курьером <delivery code="0">
и самовывоз <delivery code="1">
. В реальности существует возможность заказать товар в другой город средствами транспортной компании. В этом случае клиент выбирает доставку курьером. Обрабатывая заказ менеджер связывается с клиентом и сообщает варианты доставки заказанного оборудования и способ оплаты заказа. Для оплаты заказа с отправкой его транспортной компанией возможна отгрузка товара только при условии его оплаты по безналичному расчету или при помощи WebMoney платежа.
Узлы delivery
содержат потомков наименований:
Узел | Возможные значения | Описание |
---|---|---|
name | Курьер | Название способа доставки (используется в форме оформления заказа) |
Самовывоз | ||
price | 400 | Стоимость доставки выбранным способом по Москве в пределах МКАД |
0 | ||
free_limit | 10000 | Сумма заказа (в рублях), превысив которую доставка в пределах МКАД осуществляется бесплатно |
extra_pay | 20 | рублей за километр. Параметр определяет стоимость доставки в Подмосковье в зависимости от удалённости от МКАД |
В результате блок описывающий возможные способы доставки имеет вид:
...
<deliveries>
<delivery code="0">
<name>Курьер</name>
<price>400</price>
<free_limit>10000</free_limit>
<extra_pay>20</extra_pay>
</delivery>
<delivery code="1">
<name>Самовывоз</name>
<price>0</price>
</delivery>
</deliveries>
...
Собрав воедино информацию о доставке и о продукции, получаем вот такой документ:
<?xml version="1.0" encoding="UTF-8"?>
<shop>
<deliveries>
<delivery code="0">
<name>Курьер</name>
<price>400</price>
<free_limit>10000</free_limit>
<extra_pay>20</extra_pay>
</delivery>
<delivery code="1">
<name>Самовывоз</name>
<price>0</price>
</delivery>
</deliveries>
<products>
<product code="svc-500">
<category>Стабилизатор напряжения</category>
<trademark>Sassin</trademark>
<model>SVC-500</model>
<price>1780</price>
<description>Бытовой стабилизатор переменного напряжения. Предназначен для питания различной бытовой техники и защиты от перепадов напряжения и сетевых помех.</description>
<characteristics>
<chracteristic name="Напряжение входа, В" value="150 - 260" />
<chracteristic name="Напряжение выхода, В" value="220 ± 3%" />
<chracteristic name="Мощность, кВА" value="0.5" />
</characteristics>
<type>1</type>
<case>0</case>
<phases>1</phases>
<power>500</power>
<weight>4</weight>
<image>svc-500.jpg</image>
<image_big>svc-500_big.jpg</image_big>
<html>svc-500.htm</html>
<available>1</available>
<bestseller>1</bestseller>
<barcode>4607110188022</barcode>
</product>
<product code="svc-1000">
...
</products>
</shop>
Контактные данные
Узел contacts
XML-файла содержит контактные данные, которые передаются
в каждый шаблон магазина.
Узел | Переменная шаблона | Возможные значения | Описание |
---|---|---|---|
phone | PHONE | +7(495)255-19-70 | Номер телефона в человекочитаемом формате |
example@mail.com | Рабочий e-mail адрес | ||
icq | ICQ | 162423 | ICQ дежурного менеджера |
skype | SKYPE | skypeaccname | Skype дежурного менеджера |
Пример XML-файла:
<?xml version="1.0" encoding="windows-1251"?>
<shop>
...
<contacts>
<phone>+7(495)255-19-70</phone>
<email>example@mail.com</email>
<icq>162423</icq>
<skype>skypeaccname</skype>
</contacts>
...
</shop>
При изменении шаблонов магазина, следует избегать жёсткого прописывания контактных данных, и использовать переменные шаблона:
<h2>Наши контакты</h2>
тел. <TMPL_VAR NAME="PHONE"><br>
icq <TMPL_VAR NAME="ICQ"><br>
Кроме того, для удобства вёрстки, движок магазина передаёт в шаблоны дополнительные переменные, содержащие составные части номера телефона:
Переменная | Возможные значения | Описание |
---|---|---|
PHONE_CODE | 495 | Телефонный код города |
PHONE_NUM | 255-19-70 | Номер телефона без кода города |
PHONE_FULL | +74952551970 | Полный номер телефона без разделителей (может использоваться для автоматизации, например функция обратного звонка) |
И в шаблоне можно использовать следующую конструкцию:
<h2>Наш телефон</h2>
(<TMPL_VAR NAME="PHONE_CODE">) <TMPL_VAR NAME="PHONE_NUM">