Шаблоны мета-тегов (шаблоны SEO) в интернет-магазине

Шаблоны мета-тегов предназначены для гибкой и простой настройки SEO-тегов. Шаблоны задаются как целиком для магазина, так и для его конкретных групп.

Если у группы не задан тот или иной шаблон, то будет использоваться шаблон от магазина. Для корневой страницы задается отдельный шаблон.
Мета-теги, явно заполненные у групп и товаров на вкладке SEO, имеют приоритет перед шаблонами мета-тегов.

Перейдите в раздел Контент → Интернет-магазины и отредактируйте сам магазин. На вкладке Шаблоны SEO доступны поля для внесения шаблонов.

В системе есть заранее сформированный список подстановок, которые можно добавить в шаблон:

При выборе значения из списка в поле будет добавлена подстановка. Например, создадим шаблон следующего вида:

Теперь находясь в группе с названием "Плиты" получим результат:

Лучшие Плиты в Москве! Техника для кухни → Плиты

Полный список предустановленных подстановок

Подстановка Описание
{shop.name} Добавляет название текущего интернет-магазина
{group.name} Добавляет название текущей группы
{group.description} Добавляет описание текущей группы
{this.seoFilter ": " ", "} Добавляет опции, заданные фильтру. Может принимать 2 параметра:
первый — разделитель между названием и списком значений свойства, по умолчанию ': ';
второй — разделитель между значениями, по умолчанию ', '
{this.filterProducer}
Добавляет название производителя, по которому осуществляется фильтрация.
{group.propertyValue ID}

Добавляет значения свойств группы с идентификатором ID. Может принимать 3 параметра:
первый — идентификатор свойства;
второй — шаблон вывода значения свойства, по умолчанию '%2$s' выводит только значения, чтобы вывести название свойства со значением задайте шаблон '%s: %s';
третий — разделитель, по умолчанию ', '

Для вывода значений свойств с ID 17 с указанием названия свойства и собственным разделителем используйте вызов {group.propertyValue 17 '%s: %s' ' / '}

{group.groupPathWithSeparator} Добавляет путь к группе, в виде Видеокамеры → Цифровые. Сепаратор можно изменить передав в качестве аргумента. Например, {group.groupPathWithSeparator " / "}, также можно ограничить количество групп, удалив текущую группу, для этого передается второй аргумент {group.groupPathWithSeparator " / " 1}
{this.pageNumber ", страница %d"} Добавляет номер страницы, в виде ", страница 2".
{item.name} Добавляет название текущего товара
{item.description} Добавляет краткое описание товара
{item.text} Добавляет текст товара
{item.priceWithCurrency} Добавляет цену товара (с учетом скидки) и валюту товара. Необязательным параметром задается шаблон вывода, по умолчанию '%s %s'
{item.currencyName} Добавляет валюту товара (не путать с валютой магазина, может использоваться с {item.price})
{item.propertyValue ID}

Добавляет значения свойств товара с идентификатором ID. Может принимать 3 параметра:
первый — идентификатор свойства;
второй — шаблон вывода значения свойства, по умолчанию '%2$s' выводит только значения, чтобы вывести название свойства со значением задайте шаблон '%s: %s';
третий — разделитель, по умолчанию ', '

Для вывода значений свойств с ID 17 с указанием названия свойства и собственным разделителем используйте вызов {item.propertyValue 17 '%s: %s' ' / '}

Собственные подстановки

Помимо предустановленных подстановок вы можете использовать любое свойство модели магазина, групп, товара или метод модели, например,

Подстановка Описание
{shop.description} Добавляет описание текущего интернет-магазина
{group.id} Добавляет идентификатор текущей группы
{item.marking} Добавляет артикул текущего товара
{item.producerName} Добавляет название производителя товара товара

Префиксы

В качестве префикса может быть использован toLower для приведения к нижнему регистру {toLower item.name}, toUpper для приведения к верхнему {toUpper item.name}, а также любая php-функция, например, {mb_strtolower item.currencyName}

Обработка H1

Если заданы шаблоны для H1, то сформированные значения будут в тегах /shop/seo_item_h1 и /shop/seo_group_h1. Пример проверки для товара в XSL-шаблоне:

		<!-- Название товара или SEO-шаблон для H1 товара -->
		<xsl:choose>
			<xsl:when test="/shop/seo_item_h1/node()">
				<h1><xsl:value-of select="/shop/seo_item_h1"/></h1>
			</xsl:when>
			<xsl:otherwise>
				<h1 hostcms:id="{@id}" hostcms:field="name" hostcms:entity="shop_item"><xsl:value-of select="name"/></h1>
			</xsl:otherwise>
		</xsl:choose>

Корректировка типовой динамической страницы

Для использования SEO-шаблонов мета-тегов необходимо отредактировать код типовой динамической страницы магазина. Закомментировать строки, начинающиеся с $aTitle = array(); и по Core_Page::instance()->object = $Shop_Controller_Show;

Пример:

/*
$aTitle = array();
$aDescription = array();
$aKeywords = array();

...

if (count($aTitle) > 1)
{
    $aTitle = array_reverse($aTitle);
    $aDescription = array_reverse($aDescription);
    $aKeywords = array_reverse($aKeywords);

    Core_Page::instance()->title(implode($pageSeparator, $aTitle));
    Core_Page::instance()->description(implode($pageSeparator, $aDescription));
    Core_Page::instance()->keywords(implode($pageSeparator, $aKeywords));
}*/

Core_Page::instance()->object = $Shop_Controller_Show;

Функционал доступен с версии 6.7.8

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.

Комментарии

  • Без темы

    Очистить все мета-теги товаров магазина номер 1 SQL-запросами:
    UPDATE `shop_items` SET `seo_title` = '' WHERE shop_id = 1;
    UPDATE `shop_items` SET `seo_description` = '' WHERE shop_id = 1;
    UPDATE `shop_items` SET `seo_keywords` = '' WHERE shop_id = 1;

    06.02.2024 09:15:10
    hostcms
  • Вывод текущей даты в seo шаблоны

    Можно ли сделать, чтобы в сео шаблоны выводилась текущая дата в формате день/месяц/год, если можно то как?

    28.05.2022 13:44:24
    Seo Art

    Без темы

    Используйте {date(d/m/Y)}, только необходимо будет обновить Core_Meta, запросить файл можно в поддержке.

    30.05.2022 13:02:00
    hostcms
  • Доп. свойство "флажок"

    Если выбрано доп. свойство флажок, то при подстановке {this.seoFilter ": " ", "} в результате выводится название свойства и его значение - "1". Возможно ли избавиться от значения для этого конкретного типа доп. свойства?

    30.09.2021 02:28:30
    yestravel
  • Удаление лишних пробелов

    При фильтре по производителю нужно добавить наименование производителя в заголовок. Но если фильтр не используется, остается лишний пробел, как это можно исправить?

    10.06.2021 18:28:15
    DmitryOpalev

    Без темы

    В версии 6.9.8β лишние пробелы удаляются, если у вас уже установлена версия, нужно повторно установить обновление, порядок установки уточните в поддержке.

    11.06.2021 10:13:04
    hostcms
  • Без темы

    А шаблон поддерживает конструкции синонимов? Например можно ли написать вместо "багаж" такую конструкцию "[вещи | кладь | поклажа | клажа | ноша | груз | фрахт]" для большей уникальности.

    05.06.2020 21:15:55
    aporf
    aporf

    Без темы

    Синонимы в шаблоне не используются, функции шаблона описаны на этой странице.

    06.06.2020 11:37:29
    hostcms
  • Без темы

    Как написать проверку, если Шаблон seo не пуст, то title брать от туда. мне не надо удалять c SEO Заголовок (title)! так как в тдс уже прописана проверка
    if ($Shop_Controller_Show->item)
    {
    $oShop_Item = Core_Entity::factory('Shop_Item', $Shop_Controller_Show->item);

    Core_Page::instance()->title($oShop_Item->name. ': купить, цены, характеристики – ььььььььь');

    25.04.2020 17:42:01
    lyubaaa

    Без темы

    Обработка SEO-шаблонов производится внутри метода parseUrl() класса Shop_Controller_Show, в трех строчках применение SEO-шаблона за пределами контроллера в коде ТДС не получится. Если очень хочется, то посмотрите как это делается через $oCore_Meta и дерзайте в ТДС.

    27.04.2020 15:37:29
    hostcms
  • Без темы

    В системе в заранее сформированном списке подстановок для шаблонов есть подстановка "Производитель" с подставляемой переменной {this.filterProducer}.
    Какое значение она должна добавлять в шаблон?

    11.03.2020 00:55:27
    MaximM
    MaximM

    Без темы

    {this.filterProducer} добавляет название производителя, по которому осуществляется фильтрация

    11.03.2020 09:15:40
    alexander.egorov

    Без темы

    О какой фильтрации идет речь ? Подскажите как его применять для seo-шаблонов, а то не очень понятно.

    11.03.2020 09:43:43
    MaximM
    MaximM

    Без темы

    Вы комментарии к статье с поддержкой путаете. Направьте интересующие вас вопросы на support@hostcms.ru.

    11.03.2020 09:46:12
    alexander.egorov
  • Получить шаблон в коде.

    Я поправил ТДС, как написано и шаблоны применились. Подскажите пожалуйста, как получить текст шаблона в коде? Чтобы, например, я шаблон мог сравнить с значением переменной и в случае совпадения передать в тайтл другое значение. Спасибо

    20.06.2019 15:18:27
    BlackOverlord
    BlackOverlord

    Без темы

    Шаблоны мета-тегов применяются в методе parseUrl() контроллера показа, получить установленные значения вы можете через Core_Page, примеры в API

    20.06.2019 15:28:03
    hostcms

    Без темы

    Спасибо)

    20.06.2019 15:33:58
    BlackOverlord
    BlackOverlord
  • Как удалить старые мета-теги

    У товаров нужно удалить старые мета-теги, которые уже были прописаны без шаблонов.
    Ведь пока их не удалишь, шаблоны мета-тегов не будут работать у этих товаров.
    Каким SQL запросом очистить мета теги у товаров определенной группы ?
    И желательно чтобы можно было чистить не обязательно сразу все поля ( title, description, keywords) , а какие-то определенные.

    13.11.2018 22:25:59
    MaximM
    MaximM

    Без темы

    > Каким SQL запросом очистить мета теги у товаров определенной группы ?
    UPDATE к shop_items. С ограничением по shop_group_id. Посмотрите структуру таблицы и увидите названия полей для title, description и keywords в таблице.

    14.11.2018 09:19:15
    alexander.egorov
  • Title

    А кроме готовых подстановок можно подставить данные из доп.свойств товара? Если можно, то как?

    17.05.2018 21:44:04
    Dmitry K.

    Без темы

    В версии 6.8.1 добавлен вывод значений свойства для товара используя {item.propertyValue ID}

    18.05.2018 11:18:16
    hostcms
  • Без темы

    А можно добавить подстановку из Дополнительного свойства товара? К примеру, мне нужно добавить к названию товара цвет или размер из допсвойства. Менять вкладку seo вручную у нескольких тысяч товаров крайне затратно по времени, а шаблон подстановки решил бы эту задачу быстро.

    13.05.2018 01:36:12
    iNik

    Без темы

    см. ответ выше.

    18.05.2018 11:18:29
    hostcms
  • Без темы

    в новых версиях если в Шаблонах пусто и на вкалдке SEO пусто то по умолчанию выдает навзание Группы\Элемента
    Как сделать чтоб выдавало пустоту если везде пустота?

    06.04.2018 12:39:04
    Puma

    Без темы

    Только переопределять контроллер и в нем parseUrl(), т.к. не может быть пустого заголовка, если нет шаблона и нет SEO-заголовка, то в заголовок идет название товары (группы).

    06.04.2018 12:41:28
    hostcms
  • Без темы

    Каким префиксом можно привести к нижнему символу не всю строку как делает {toLower item.name}, а только первый символ строки?

    09.03.2018 01:18:36
    MaximM
    MaximM

    Без темы

    Добавили в 6.7.9. Можно так:

    {uppercaseFirst item.name}

    или так:

    {Core_Str::ucfirst item.name}

    12.03.2018 16:13:14
    alexander.egorov
  • Без темы

    Только надо видимо поправить настройки ТДС

    20.02.2018 12:47:19
    Varkolak
  • Без темы

    ТДС называется Интернет-магазинСайт ?
    В коде страницы близко нет $aTitle = array(); в настройках страницы есть Core_Page::instance()->object = $Shop_Controller_Show; но не срабатывает

    11.02.2018 17:50:50
    id55048

    Без темы

    Значит в вашей ТДС этого нет или она переписана. Обратитесь в поддержку, смысл здесь об этом писать?!

    11.02.2018 17:53:20
    hostcms