Структура XML-файла партнерского интернет-магазина

Каталог товаров интернет магазинов партнерской программы PowerPartners формируется на основе автоматически обновляемого файла shop.xml из каталога products. Для обеспечения уникальности текстов описывающих продукцию в вашем интернет магазине и увеличения его индивидуальности предусмотрена возможность переопределения параметров продукции. О том как это сделать Вы можете прочитать в статье Кастомизация XML-фида. Цель создания этого документа — предоставить всем заинтересованным лицам справочные материалы, описывающие содержание файлов shop.xml.

С технической точки зрения файлы shop.xml должны отвечать стандартам предъявляемым к структуре XML файлов. Поэтому нельзя забывать, что файл обязан начинаться с указания версии XML и кодировки в которой хранятся данные.

<?xml version="1.0" encoding="windows-1251"?>
Второе требование предъявляемое к любому XML документу: должен быть определен единственный корневой узел (нода), в нашем случае речь о ноде shop. Это означает, что все данные которые мы хотим получить или изменить будут являться потомками узла shop

В файле products/shop.xml потомков корневого узла shop можно разделить на два типа

  • deliveries - определяющие возможные способы доставки и их параметры
  • products - содержащие список товаров интернет магазина
  • <?xml version="1.0" encoding="windows-1251"?>
    
    <shop>
    	<deliveries>
    	 ...
    	</deliveries>
    	
    	<products>
    	...
    	</products>
    </shop>
    

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

    В первую очередь будут описаны параметры, описывающие характеристики конкретного товара, а затем будет освещён раздел со способами доставки и параметрами которые в нём определены. Порядок следования этих узлов не имеет значения, но будет не лишним упомянуть, что в файлах которые интернет магазины получает с сервера партнерской программы первым идёт узел <deliveries> а за ним узел <products>, что ни как не влияет на работоспособность системы.

    Каталог продукции

    Рассмотрим более внимательно ту часть XML документа products/shop.xml, которая описывает каждый товар интернет магазина и разберёмся какие характеристики в ней определены.

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

    Узел Возможные значения Описание
    category
  • Стабилизатор напряжения
  • Бензогенератор
  • Инвертор
  • Значение узла определяет категорию, к которой относится товар
    trademark
  • Sassin
  • Энергия
  • UPower
  • Voltron
  • Etalon
  • Наименование производителя продукта
    model СНВТ-500/1 Значение этого параметра определяет наименование товара, которое отображается в описании товара в магазине
    price {целое число} Цена на товар в рублях. В параметрах базового магазина настроено ежедневное обновление информации о цене и наличие товаров. Поставщиком установлены цены в долларах США и ежедневно производится пересчёт и обновление цен в зависимости от колебаний курса ЦБ РФ
    description {текст} Это короткое описание продукта, которое отображается на титульной странице интернет магазина в каталоге, а так же в результатах поиска. Обратите внимание на то, что объём текста содержащийся в этом узле существенно влияет на отображение товара в каталоге для шаблонов "классик" и "оранж" которые предоставляет партнерская программа.
    type 0 Генераторы
    1 Стабилизатор электромеханического типа
    2 Стабилизатор релейного типа
    3 Стабилизатор тиристорного типа
    case 0 Стандартное (напольное) исполнение
    1 Возможность крепления на стене
    2 Автомобильный инвертор
    3 Универсальное (напольное или настенное)
    phases
  • 1
  • 3
  • Число фаз
    power {целое число} Полная мощность оборудования указанная в вольт-амперах (ВА)
    weight {вещественное число} Вес товара (дробная часть отделяется точкой)
    image voltron-rsn-10000h.jpg Название файла изображения товара отображаемого в описании товара
    image_big voltron-rsn-10000h_big.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)

    В результате каждый товар в 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>
      </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="windows-1251"?>
    
    <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>