В рамках сео-продвижения сайта на битриксе (готовое решение Аспро Максимум) столкнулись с проблемой вывода в метатегах цен в рублях.
Клиент использует цены в долларах, евро и рублях для разных категорий товаров.
При настройке метатегов на SEO-вкладке раздела каталога ("Настройки для элементов") в подсказках
в ценах выпадает три варианта цены - рубли, доллары, евро.
Например,
"Купить { =lower this.Name } по цене { =this.catalog.price.8 } в Компании. Закажите и оплатите онлайн на сайте. { =parent.Name } с доставкой по всей России."
где catalog.price.8
- цена в евро.
В результате на сайте мы видим description:
Купить ботинки унисекс по цене 57.10 € в Компании. Закажите и оплатите онлайн на сайте. Мужская обувь с доставкой по всей России.
Такой вариант не приемлем по двум причинам:
Использование цен в описаниях повышает CTR и позиции. Поэтому вариант убирать валютные цены из метатегов (или заменить на общее название "по разумной цене") — мы откинули.
Необходимо было реализовать конвертацию цен в метатегах. Задача не сложная. Сложность в том, что любой допил шаблона Аспро слетит после обновления, если пользовательские функции вызваны прямо в коде.
Часть функционала готовых решений Аспро хранится в файлах модуля. Менять код в них не рекомендуется, поскольку при установке обновления шаблона внесенные доработки не сохранятся. Чтобы этого избежать, в модуле мы добавили пользовательские события и функции...
В результате мы написали обработчик в /bitrix/php_interface/init.php, который переводит евро и доллар в рубли.
"Купить { =lower this.Name } по цене { =ccrus this.catalog.price.8 } в Компании. Закажите и оплатите онлайн на сайте. { =parent.Name } с доставкой по всей России."
где ccrus
- наш обработчик, который конвертирует цену из евро/долларов в рубли.
Итоговый результат:
Купить ботинки унисекс по цене 7 639,09 руб./пар в Компании. Закажите и оплатите онлайн на сайте. Мужская обувь с доставкой по всей России.