- Архив в формате
- Modules
- Установка на хостинг
- Распаковать архив в папку bitrix/modules и установить из админ. панели сайта
Описание:
Модуль создаёт агент, который обходит товары выбранных каталогов, вычисляет для каждого товара цену со скидками, применяемыми в каталоге, и записывает это значение, а также другие полезные сведения, связанные со скидками - цену без скидки, процент скидки, список применённых скидок - в свойства товара.
В SEO-поля элементов инфоблоков можно, таким образом, сохранять информацию о ценах и скидках на товар из данных свойств.
Модуль работает аналогично модулю Долганина "Скидки и акции расширенные", однако тот модуль больше не поддерживается разработчиком и корректная работа в последних версиях каталога и магазина не гарантируется. Наш модуль уверенно работает с несколькими последними версиями Битрикса, в том числе с 17 версией каталога и магазина, с конвертированными скидками, также, использует, где это возможно, функционал D7, и отличается достаточно гибкими возможностями по настройке.
Для чего можно использовать модуль:
1) Продающие метатеги в SEO
С помощью модуля можно указывать в SEO-данных элементов каталога информацию не только о цене товара, но также и помещать туда актуальные цены с учётом скидок и даже размер скидки.
2) Каталог - раздел "распродажа"
Вы можете отобрать все товары со скидкой и выводить их на отдельной странице с помощью компонента "Каталог::Элементы раздела" (bitrix:catalog.section), указав соответствующий фильтр. Также, можно создать страницы для каждой отдельной акции. Код фильтра необходимо размещать перед кодом вызова компонента и указывать в параметрах компонента имя переменной, содержащей фильтр (по умолчанию - arrFilter).
Примеры задания фильтра для случая торговых предложений:
Для простых товаров фильтр строится значительно проще, без использования подзапросов:
Также можно сделать фильтр, объединяющий оба варианта:
Модуль создаёт агент, который обходит товары выбранных каталогов, вычисляет для каждого товара цену со скидками, применяемыми в каталоге, и записывает это значение, а также другие полезные сведения, связанные со скидками - цену без скидки, процент скидки, список применённых скидок - в свойства товара.
В SEO-поля элементов инфоблоков можно, таким образом, сохранять информацию о ценах и скидках на товар из данных свойств.
Модуль работает аналогично модулю Долганина "Скидки и акции расширенные", однако тот модуль больше не поддерживается разработчиком и корректная работа в последних версиях каталога и магазина не гарантируется. Наш модуль уверенно работает с несколькими последними версиями Битрикса, в том числе с 17 версией каталога и магазина, с конвертированными скидками, также, использует, где это возможно, функционал D7, и отличается достаточно гибкими возможностями по настройке.
Для чего можно использовать модуль:
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,
),
),
);
}?>