среда, 3 сентября 2014 г.

Добавление магазина MODx в каталог Яндекс Маркета



В данной статье мы подробно рассмотрим создание YML-файла для магазинов, построенных на CMS MODx Evo. Для этого мы воспользуемся сниппетом Ditto, входящим в MODx.



Создаем шаблон "YML" c примерно такой разметкой:

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="[*editedon:date=`%Y-%m-%d %H:%M`*]">
<shop>
<name>Европейский Образовательный Центр "S.M.A.R.T."</name>
<company>Европейский Образовательный Центр "S.M.A.R.T."</company>
<url>[(site_url)]</url>
<currencies>
<currency id="BYR" rate="1"/>
</currencies>
<categories>
[!Ditto? &id=`category` &parents=`4` &depth=`1` &display=`all` &tpl=`yml_cat_tpl`!]
</categories>
<offers>
[!Ditto? &id=`yml` &parents=4` &depth=`2` &display=`all` &tpl=`yml_tpl` &paginate=`0` &showPublishedOnly=`1` &filter=`template,8,1`!]
</offers>
</shop>
</yml_catalog>

Создаем новый документ в дереве MODx с шаблоном YML и типом text/xml с именем YML.


Создаем Чанк для Ditto с названием yml_tpl - чанк представления отдельного товара в YML файле:

<offer id="[+id+]" available="true">
<url>[(site_url)][~[+id+]~]</url>
<price>[+price_group+]</price>
<currencyId>BYR</currencyId>
<categoryId>[+parent+]</categoryId>
<picture>[+tvimg3:ifnotempty=`[(site_url)][+img3+]`+]</picture>
<delivery>false</delivery>
<name>[+pagetitle:notags+]</name>
<description>
[+description:notags+]
</description>
</offer>

Где [+price_group+] - стоимость обучения, [+img3+] - изображения курса.


И создаем чанк yml_cat_tpl для отображения отдельной категории товаров в yml файле:
<category id="[+id+]"> [+pagetitle+] </category>

И последнее, что нам нужно сделать - это создать php файл для вывода yml файла. Создаем на сервере файл yml.php со следующий исходным кодом:
<?php
header("Content-type: text/xml");
$content=file_get_contents("http://obrazovan.by/index.php?id=201");
print iconv("UTF-8","Windows-1251", $contents);
?>

Где 201 - ID документа с именем YML в дереве MODx.

Комментариев нет:

Отправить комментарий