Структура 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-файла содержит контактные данные, которые передаются
в каждый шаблон магазина. При этом, имя ноды переводится в верхний регистр и используется
в качестве названия переменной.
Например, если в XML содержатся такие данные:
<?xml version="1.0" encoding="UTF-8"?>
<shop>
...
<contacts>
<phone>+7(495)255-19-70</phone>
<email>example@mail.com</email>
<skype>skypeaccname</skype>
<address>ул.Стромынка, д.12</address>
<telegram>https://t.me/+7XXXXXXXXXX</telegram>
</contacts>
...
</shop>
То, в каждый шаблон скина будут передаваться переменные PHONE
, EMAIL
, SKYPE
,
ADDRESS
и TELEGRAM
с соответсвующими значениями. И эти переменные можно использовать
в шаблонах при помощи конструкции TMPL_VAR.
Особым образом обрабатывается нода //contacts/phone
, её одержимое будет разобрано, и в дополнении к переменной PHONE
,
в шаблон будут переданы следующие переменные:
Переменная | Возможные значения | Описание |
---|---|---|
PHONE_CODE | 495 | Телефонный код города |
PHONE_NUM | 255-19-70 | Номер телефона без кода города |
PHONE_FULL | +74952551970 | Полный номер телефона без разделителей |
Эти дополнительные переменные могут быть использованы для удобства вёрстки или для функций автоматизации при помощи JavaScript, например, для виджета обратного звонка.
При кастомизации шаблонов магазина, следует избегать жёсткого прописывания контактных данных, и использовать для этого переменные. Т.е. вместо
<h2>Наши контакты</h2>
тел. +7(495)123-45-67<br>
email sales@myshop.ru<br>
Следует использовать конструкцию
<h2>Наши контакты</h2>
тел. <TMPL_VAR NAME="PHONE"><br>
email <TMPL_VAR NAME="EMAIL"><br>
По умолчанию, все шаблоны способны отображать следующие контактные данные:
Нода | Назначение |
---|---|
phone | Телефон магазина |
email | Электронная почта |
city | Город магазина |
address | Адрес магазина |
telegram | Ссылка на Telegram-аккаунт магазина (пример: https://t.me/+7XXXXXXXXXX) |
whatsup | Ссылка на WhatsApp-аккаунт магазина (пример: https://api.whatsapp.com/send/?phone=7XXXXXXXXXX) |
vk | Ссылку на страницу магазина во ВКонтакте |
instagram | Ссылка на Instagram-аккаунт магазина |
youtube | Ссылка на YouTube-аккаунт магазина |
dzen | Ссылка на Дзен-блог магазина |
fb | Ссылка на Facebook-аккаунт магазина |
ok | Ссылка на страницу магазина в Одноклассники |
twitter | Ссылка на Twitter-аккаунт магазина |
legal_name | Реквизиты магазина: Наименование организации |
legal_address | Реквизиты магазина: Юридический адрес |
legal_inn | Реквизиты магазина: ИНН организации |
legal_ogrn | Реквизиты магазина: ОГРН организации (для ООО) |
legal_ogrnip | Реквизиты магазина: ОГРНИП (для ИП) |
legal_kpp | Реквизиты магазина: КПП организации |
legal_ks | Реквизиты магазина: Корр. счет |
legal_bank | Реквизиты магазина: Банк организации |
legal_bik | Реквизиты магазина: БИК банка |
И, если кастомизировать XML, определив все контактные данные в файле
/custom/shop.xml
, например, так:
<?xml version="1.0" encoding="utf-8"?>
<shop>
<contacts>
<phone>+7(495)111-11-11</phone>
<email>sales@my_shop.ru</email>
<city>Москва</city>
<address>ул.Стромынка, д.12</address>
<telegram>https://t.me/+7XXXXXXXXXX</telegram>
<whatsup>https://api.whatsapp.com/send/?phone=74952222222</whatsup>
<vk>https://vk.com/my_shop</vk>
<instagram>https://www.instagram.com/my_shop/</instagram>
<youtube>https://www.youtube.com/@my_shop</youtube>
<dzen>https://dzen.ru/my_shop</dzen>
<twitter>https://dzen.ru/my_shop</twitter>
<legal_name>ООО «Рога и Копыты»</legal_name>
<legal_address>123298, Москва, ул.Хромовская, д.11</legal_address>
<legal_inn>300700578317</legal_inn>
<legal_ogrn>623400217000032</legal_ogrn>
<legal_kpp>654321</legal_kpp>
<legal_rs>987654321</legal_rs>
<legal_ks>1234567890</legal_ks>
<legal_bank>ПАО "Сбербанк", г.Москва</legal_bank>
<legal_bik>1234567</legal_bik>
</contacts>
</shop>
То, страница "Контакты" приобретёт следующий вид: