Возможности и особенности модуля
149 / 177
Данный модуль с помощью агента записывает в свойства товаров информацию о ценах и скидках.

Для чего можно использовать модуль:

1) Продающие метатеги в SEO

С помощью модуля можно указывать в SEO-данных элементов каталога информацию не только о цене товара, но также и помещать туда актуальные цены с учётом скидок и даже размер скидки.

2) Каталог - раздел "распродажа"

Вы можете отобрать все товары со скидкой и выводить их на отдельной странице с помощью компонента "Каталог::Элементы раздела" (bitrix:catalog.section), указав соответствующий фильтр. Также, можно создать страницы для каждой отдельной акции. Код фильтра необходимо размещать перед кодом вызова компонента и указывать в параметрах компонента имя переменной, содержащей фильтр (по умолчанию - arrFilter).

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

<?//Для отдельной акции
$arrFilter = array(
    'ID' => CIBlockElement::SubQuery('PROPERTY_CML2_LINK', array(
        'IBLOCK_ID' => 3, //инфоблок торговых предложений
        'PROPERTY_AFP_DISCOUNT_LIST' => 2 //ID скидки
    ))
); ?>

<?//Все товары со скидкой
$arrFilter = array(
    'ID' => CIBlockElement::SubQuery('PROPERTY_CML2_LINK', array(
        'IBLOCK_ID' => 3, //инфоблок торговых предложений
        '>PROPERTY_AFP_DISCOUNT_VALUE' => 0
    ))
); ?>

Для простых товаров фильтр строится значительно проще, без использования подзапросов:

<?//Для отдельной акции
$arrFilter = array(
    'PROPERTY_AFP_DISCOUNT_LIST' => 2 //ID скидки
); ?>

<?//Все товары со скидкой
$arrFilter = array(
    '>PROPERTY_AFP_DISCOUNT_VALUE' => 0
); ?>

Также можно сделать фильтр, объединяющий оба варианта:

<?//Для отдельной акции
if ( CModule::IncludeModule( "iblock" ) )
{
    $arrFilter = array();

    $arSubQuery = array(
        "IBLOCK_ID" => 17, // инфоблок торговых предложений
        "PROPERTY_AFP_DISCOUNT_LIST" => 2 //ID скидки
    );
    $obSubQuery = CIBlockElement::SubQuery('PROPERTY_CML2_LINK', $arSubQuery);

    $arrFilter = array(
        array(
            "LOGIC" => "OR",
            array(
                "PROPERTY_AFP_DISCOUNT_LIST" => 2, //ID скидки
            ),
            array(
                "ID" => $obSubQuery,
            ),
        ),
    );
}?>

<?//Все товары со скидкой
if ( CModule::IncludeModule( "iblock" ) )
{
    $arrFilter = array();

    $arSubQuery = array(
        "IBLOCK_ID" => 17, // инфоблок торговых предложений
        ">PROPERTY_AFP_DISCOUNT_VALUE" => 0
    );
    $obSubQuery = CIBlockElement::SubQuery('PROPERTY_CML2_LINK', $arSubQuery);

    $arrFilter = array(
        array(
            "LOGIC" => "OR",
            array(
                ">PROPERTY_AFP_DISCOUNT_VALUE" => 0,
            ),
            array(
                "ID" => $obSubQuery,
            ),
        ),
    );
}?>

В последних версиях компонента фильтр можно задавать непосредственно при настройке компонента из публичной части.

3) Каталог - честная сортировка по цене (для простых товаров)

Компонент каталога позволяет использовать для простых товаров сортировку по цене, но эта сортировка не учитывает скидки. Используя этот модуль, вы можете выводить товары, отсортированные по цене с учётом скидки.

4) Быстрый вывод цены в каталоге

Для разработчиков: может так оказаться, что страницы каталога на вашем сайте работают очень медленно, и даже после всей возможной оптимизации последнее оставшееся узкое место - это вычисление и вывод цены на детальной странице или на странице списка, особенно когда недоступно кэширование (например, при использовании фильтра). В таком случае, вы можете отключить вычисление цены в настройках компонента и вместо этого выводить в шаблоне компонента свойства, заполненные данным модулем.

5) Быстрый вывод цены для выгрузки на Яндекс.Маркет и другие площадки

Аналогично предыдущему пункту, если создание файла выгрузки происходит слишком долго, замедляет сайт или же даже не успевает завершиться вовремя, чтобы вернуть файл, можно модифицировать генерацию файла таким образом, чтобы цена бралась из свойств, а не вычислялась - это значительно менее ресурсоёмкий процесс.

В каких случаях модуль вам не поможет:

1) Цены вычисляются для группы пользователей [2] (то есть, "все пользователи"). Если для задания цен в магазине вы активно используете различные группы пользователей с привязкой различных типов цен или различными скидками, то данные, записываемые агентом в свойства товаров, не будут достоверны и вряд ли вам пригодятся.

2) Как правило, даже в случае многосайтовости на отдельных сайтах используются раздельные каталоги. Однако, если у вас многосайтовость, при этом товары из одного и того же каталога выводятся на нескольких разных сайтах, и к тому же, что важно, на этих сайтах по-разному задаётся цена (например, используются разные скидки), то модуль будет вычислять правильные цены только для одного из сайтов (и точно неизвестно, для какого именно), поскольку разные наборы свойств в товарах для этого случая не предусмотрены.

Прочие советы:

Агент оптимизирован для работы с большими каталогами, дополнительные возможности по ускорению работы включаются в настройках модуля. На больших каталогах агент может работать достаточно долго, от нескольких секунд, до нескольких минут, поэтому рекомендуем использовать для запуска агентов cron. Чтобы это сделать, можете воспользоваться нашим бесплатным модулем "Агенты на кроне".

0  


 Цены и скидки для SEO. Запись в свойства товаров | Описание курса | Страница настроек модуля