Плагин DLE importNews, позволяющий выгружать новости в CSV и загружать их на сайте. Оптимальное решение для быстрого наполнения CMS DLE товарами из прайс-листов получаемых от поставщиков в XLSX формате.
За прошедшие годы у нас появилось много постоянных клиентов, которые не только рекомендуют нас своим друзьям, знакомым и партнерам, но и сами продолжают заказывать у нас создание сайтов под новые проекты. Наша веб-студия не предлагает стандартных решений. Мы разрабатываем только индивидуальные интернет-проекты, предлагая заказчикам продукт, соответствующий их задачам.
Выбрав в 2006 году DLE в качестве платформы для разработки сайтов все еще не пожалел. В том числе из-за шикарного шаблонизатора, благодаря которому с минимальными знаниями основ программирования любой начинающий вебмастер может адаптировать под себя внешний вид своего проекта.
Если кратко - главная фича шаблонизатора DLE в том, что его синтаксис основан на правилах русского языка, а не как принято в php и всех прочих языках программирования на основе построения английских слов. И благодаря этой особенности составлять правила вывода блоков внутри шаблона значительно проще. Но это тема для отдельной статьи, возможно когда-нибудь потом она будет написана.
В данной статье будут описаны принципы создания шаблона в формате XML для дальнейшей самостоятельной модификации.
Стандартный RSS поток DLE формируется на основе шаблона /tempates/rss.tpl и содержит в себе отдельные секции вывода информации в зависимости от настроек шаблона: - Обычный RSS поток - В формате Яндекс-Турбо - В формате Яндекс Новости
Все три этих варианта объеденены единой оберткой описанной в файле /engine/rss.php
И именно в этом проблема, почему нельзя получить правильный YML формат для товарного фида Яндекс Маркета. Тоже самое для автоматического импорта новостей для avito.
Но все как оказалось решается штатными средствами движка - мы просто создаем новый шаблон для определенной категории сайта и именно его адрес в качестве ссылки на YML отдаем Яндексу.
Формат YML https://yandex.ru/support/partnermarket/export/yml.html#yml-format Стандарт YML (Yandex Market Language)разработан Яндексом и основан на стандарте XML.Формат YML предоставляет больше возможностей и преимуществ, чем форматы XLS, CSV.
Нам данный формат интересен для создания Яндекс Турбо страниц интернет-магазинов. Заходим в свой кабинет на Яндекс Вебмастере https://webmaster.yandex.ru/ и ищем раздел "Турбо-страницы для интернет-магазинов"
Главное, без чего не будет произведен импорт - это цена товара. Если ваш сайт на 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 файлы которые будут корректно обработаны при импорте на внешние сайты.
Формирует список категорий товаров на основе стандартного меню DLE сайта. Где значение id="90" означает, что у вас первая категория магазина в базе сайта имеет номер 90
Список своих категории смотрите в админке /admin.php?mod=categories
параметр subcat="yes" говорт, что будет генерирована в виде пунктов меню все подпункты. Таким образом в шаблон YML у нас формируется следующая структура:
В нем описывается каждое отдельное товарное предложение.
Раз родительская категория товаров у нас имеет номер 90, то для каждого товара мы указываем именно ее.
<categoryId>90</categoryId>
К сожалению на данный момент (DLE 15.2) в скрипте отсутствует такое полезный тег как {category-news-id} который бы выводил номер категории у публикации.
По этой причине приходится собирать костыль в виде
Передавая данные о своем контенте в Яндекс вы льете воду на чужую мельницу. Пока ваш проект на этапе роста, вам важен любой трафик. НО если вы уже большие и авторитетные, то любые варианты турбо страниц или amp версий только сильнее огораживают интернет в рамках технокомпаний без возможности выхода наружу.
Вот наглядный пример из товаров сгенерированных на основе данного шаблона: Когда в результате поиска Яндекса открывается турбо-версия магазина, Яндекс Браузер автоматически маскирует имя домена
При этом, если нажать на строку ввода адреса, то мы видим реальный адрес домена
Ну и конечно, далеко идущая идея с тем, что ссылки на оригинальный сайт в турбо-страницах есть только в одном единственном месте. И то, эта строка скрыта под скромной надписью "Официальный сайт".
На всякий случай напомню, что в Яндекс турбо страницах для константных сайтов, ссылка на оригинал материала была в каждой отдельной заметке.
И что дальше?
И вот тут мы переходим к самому интересному :) У вас есть новости-товары автоматически публикуемые на Яндекс Маркет и Авито. Каталог мы не особо стремитесь пополнять (он и так не маленький, условно более 100 позиций) менять цены руками каждый раз это вовсе не интересно и муторно.
Скачиваем с сайта нужные новости, открываем их в экселе и редактируем параметры цены и доступности для YML или XML файлов.
Уважаемые клиенты и посетители сайта, мы оказываем услуги по разработке на заказ отдельных XML шаблонов для Avito, Auto.ru и Drom.ru под ваши сферы деятельности.
Стоимость разработки одного шаблона составляет 6000 рублей.
Дополнительная информация на 31.03.2023
Яндекс Вебмастер при добавлении товарного фида реализованного через шаблонизатор DLE стал выдавать ошибку формата.
Некорректное значение Content-Type. Разрешенные значения Content-Type: application/xml, text/xml, application/octet-stream.
Решение проблемы реализовал следующим образом. На сайт добавляем маленький php файл, который будет брать ссылку на наш YML шаблон и преобразовывать его в XML файл, который мы размещаем в удобном месте. После чего ссылку на этот файл скармливаем Яндекс вебмастеру.
Сам файл помещаем в корне сайта. Например с именем ymlsync.php Следовательно клик по ссылке https://sitename.ru/ymlsync.php запустит скрипт, который возьмет данные из шаблона сайта /archive/xml2yml и сохранит их под именем yml.xml в папке /uploads/
Далее ссылка на XML будет доступна по адресу https://sitename.ru/uploads/yml.xml
Где https://sitename.ru надо заменить на имя вашего домена
Если ваши цены обновляются часто - то для обновления их значений в xml файле будет достаточно настроить его автоматическое выполнение через cron на стороне хостинга.
0 Комментарии