В данной статье будут описаны принципы создания шаблона в формате XML для дальнейшей самостоятельной модификации. Стоит обратить внимание, что у каждого сайта свой набор полей, их можно и нужно прописывать в шаблоны самостоятельно. Я лишь показываю, что штатными средствами движка DLE можно генерировать XML файлы которые будут корректно обработаны при импорте на внешние сайты.
Выбрав в 2006 году DLE в качестве платформы для разработки сайтов все еще не пожалел. В том числе из-за шикарного шаблонизатора, благодаря которому с минимальными знаниями основ программирования любой начинающий вебмастер может адаптировать под себя внешний вид своего проекта.
В данной статье будут описаны принципы создания шаблона в формате XML для дальнейшей самостоятельной модификации.
Стандартный RSS поток DLE формируется на основе шаблона /tempates/rss.tpl и содержит в себе отдельные секции вывода информации в зависимости от настроек шаблона:
— Обычный RSS поток
— В формате Яндекс-Турбо
— В формате Яндекс Новости
Все три этих варианта объеденены единой оберткой описанной в файле /engine/rss.php
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
....
</channel>
</rss>
И именно в этом проблема, почему нельзя получить правильный YML формат для товарного фида Яндекс Маркета. Тоже самое для автоматического импорта новостей для avito.
Но все как оказалось решается штатными средствами движка — мы просто создаем новый шаблон для определенной категории сайта и именно его адрес в качестве ссылки на YML отдаем Яндексу.
Готовые шаблоны доступны в репозитории https://github.com/tcse/DLE-xml2tpl
Шаблон импорта в формате YML https://github.com/tcse/DLE-xml2tpl/tree/main/tempates/xml2yml
Шаблон импорта в формате XML для Avito https://github.com/tcse/DLE-xml2tpl/tree/main/templates/xml2avitoru
Что такое YML формат и зачем он нужен сайту
О формате YML вы можете прочитать по адресу https://yandex.ru/support/partnermarket/export/yml.html#yml-format Стандарт YML (Yandex Market Language )разработан Яндексом и основан на стандарте XML.Формат YML предоставляет больше возможностей и преимуществ, чем форматы XLS, CSV. Типовой пример в формате .yml https://yandex.ru/support/partnermarket/export/yml.html#yml_example
Нам данный формат интересен для создания Яндекс Турбо страниц интернет-магазинов. Заходим в свой кабинет на Яндекс Вебмастере https://webmaster.yandex.ru/ и ищем раздел «Турбо-страницы для интернет-магазинов»
Общая инструкция по подключению от яндекса тут https://yandex.ru/dev/turbo-shop/doc/quick-start/markets.html
Главное, без чего не будет произведен импорт — это цена товара. Если ваш сайт на DLE используется в том числе для создания витрину товаров, то отдельное дополнительное поле с ценой у вас скорее всего уже есть. После подключения турбо-страниц для магазинов у вас получиться что-то типа
И так, примеры шаблонов скачены и установлены на сайт. Остается добавить (при необходимости) нужные дополнительные поля. Для этого переходим Настройки скрипта -> Дополнительные поля новостей. Добавить в разделе дополнительных полей новостей следующие поля:
Либо открыть по ftp файл /engine/data/xfields.txt и дописать в самый конец
xml2tpl_io-yml|Включить вывод в формат YML||yesorno||0|0|0|0|||0|0|||||0|Если выключено - Данная новость не попадает в товарный фид||||||||
xml2tpl_io-avito|Включить вывод в формат Avito.ru||yesorno||0|0|0|0|||0|0|||||0|Если выключено - Данная новость не попадает в товарный фид||||||||
xml2tpl_price|Цена для xml2tpl||text||1|0|0|1|||0|0||||||Используется для импорта в форматы YML и Avito||||||||
xml2tpl_currencyid|Валюта, в которой указана цена товара для xml2tpl||select|RUR__NEWL__USD__NEWL__EUR__NEWL__BYN__NEWL__KZT__NEWL__UAH|0|0|0|0|||0|0||||||Цена и валюта должны соответствовать друг другу. Например, вместе с USD надо указывать цену в долларах, а не в рублях.||||||||
xml2tpl_vendor|Название производителя для xml2tpl||text||1|0|0|1|||0|0||||||||||||||
xml2tpl_vendorcode|Код товара, который ему присвоил производитель для xml2tpl||text||1|0|0|1|||0|0||||||||||||||
После чего при редактировании новостей появятся новые поля для корректного заполнения товарного фида.
Следующим шагом вам потребуется создать новую категорию сайта и в ее настройках выбрать в секции Установить другой шаблон для категории: шаблон с именем xml2yml для товарного фида YML
или шаблон с именем xml2avitoru для импорта объявлений на Avito
Так же рекомендуется установить в настройках категории запрет на поиск по сайту и отключить генерацию яндекс турбо страниц.
Далее получаем ссылки на категории сайтов внутри которых у нас формируются новости. Для демонстрации работы я сделал 2 таких категории https://tcse-cms.com/archive/xml2yml/ для формата YML.
и https://tcse-cms.com/archive/xml2avitoru/ для Avito
Переходим в Яндекс Вебмастер и добавляем ссылку на источник
там же можно посмотреть предварительную версию
Примерно так же все происходит и с форматом импорта на Avito.ru. Сам фид можно протестировать на соответствие по ссылке https://autoload.avito.ru/format/xmlcheck/
Стоит обратить внимание, что у каждого сайта свой набор полей, их можно и нужно прописывать в шаблоны самостоятельно.
Я лишь показал, что штатными средствами движка DLE можно генерировать XML файлы которые будут корректно обработаны при импорте на внешние сайты.
Скачать исходники шаблонов можно в репозитории https://github.com/tcse/DLE-xml2tpl
Версия шаблонов в виде плагина доступна по ссылке https://github.com/tcse/DLE-xml2tpl/releases/download/1.0/xml2tpl.zip
Комментарии