Всем Салам. Все чаще в работе сталкиваюсь с интернет-магазинами на Битрикс и учитывая, что эта CMS система набирает сильную популярность в странах СНГ, особенно часто используют для создания интернет-магазинов, хотел бы поделится одним полезным лайфхаком.
[0] - Немного теории
Так как уже во многих проектах сталкивался с задачей вывода минимальной цены по разделу в мета-тегах. У меня для решения данной задачи есть 2 способа, но 1 из них рассматривать не буду, так как после того вы сдадите проект, 100% у заказчика будут проблемы с дальнейшими манипуляциями с мета-тегами.
Поэтому я распишу способ полегче в реализации и он мне больше нравится.
[1] - Реализация
Нусс, начнем. В первую очередь нам нужно создать пользовательское поле для сохранения нашего вычисленного среднего ценника по разделу.
Поле у нас готово, теперь создаем файл типа price.php, сейчас я это сделаю в корне, но лучше где-нибудь в самом шаблоне его разместить. А в файле собственно у нас будет лежать такой код:
Пройдемся кратко по коду. Подключаем наш информационный блок с каталогами, указываем нужные нам параметры и соответственно выкачиваем оттуда нужные нам данные по циклу. После отделяем от всего нашу цену и кладем его в пользовательское поле. Ну и вывод в конце, чтобы удостовериться, что все прошло успешно.
После идем в раздел настройки SEO раздела и там ставим как свойство, наше пользовательское поле
Готово. Осталось запустить файл и в Title будет выводится минимальная цена по разделу.
При запуске получим результат, true значит что все прошло успешно, а его количество это разделы.
Чтобы не запускать его вручную, вещаем на крон вместе с вашим кроном по обновлению цен или интеграцию с 1с или вообще отдельный крон для обновления страницы раз в 1 или в неделю.
На этом у меня все. Дайте обратную связь, если вам нравится всяко-разно полезное по cms и фреймам.
[0] - Немного теории
Так как уже во многих проектах сталкивался с задачей вывода минимальной цены по разделу в мета-тегах. У меня для решения данной задачи есть 2 способа, но 1 из них рассматривать не буду, так как после того вы сдадите проект, 100% у заказчика будут проблемы с дальнейшими манипуляциями с мета-тегами.
Поэтому я распишу способ полегче в реализации и он мне больше нравится.
[1] - Реализация
Нусс, начнем. В первую очередь нам нужно создать пользовательское поле для сохранения нашего вычисленного среднего ценника по разделу.
Поле у нас готово, теперь создаем файл типа price.php, сейчас я это сделаю в корне, но лучше где-нибудь в самом шаблоне его разместить. А в файле собственно у нас будет лежать такой код:
Код:
require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
if(CModule::IncludeModule('iblock')){
$objectSection = new CIBlockSection;
$arSelect = Array('ID');
$arFilter = Array('IBLOCK_ID'=>18, 'ACTIVE'=>'Y', 'GLOBAL_ACTIVE'=>'Y');
$resultSection = CIBlockSection::GetList(Array('SORT'=>'ASC'), $arFilter, false, $arSelect);
while($arSection = $resultSection->GetNext()) {
$dbElements = CIBlockElement::GetList(
array('CATALOG_PRICE_1'=>'ASC'),
array("IBLOCK_ID" => 18,"SECTION_ID"=>$arSection['ID'], "INCLUDE_SUBSECTIONS" => "Y"),
false,
array('nTopCount'=>1),
array("IBLOCK_ID","ID", "NAME","CATALOG_PRICE_1")
);
if($arElement = $dbElements->GetNext(false,false)){
$Result = $objectSection->Update($arSection['ID'], array('UF_MIN_PRICE' => round($arElement['CATALOG_PRICE_1'])));
var_dump($Result);
}
}
}
Пройдемся кратко по коду. Подключаем наш информационный блок с каталогами, указываем нужные нам параметры и соответственно выкачиваем оттуда нужные нам данные по циклу. После отделяем от всего нашу цену и кладем его в пользовательское поле. Ну и вывод в конце, чтобы удостовериться, что все прошло успешно.
После идем в раздел настройки SEO раздела и там ставим как свойство, наше пользовательское поле
Готово. Осталось запустить файл и в Title будет выводится минимальная цена по разделу.
При запуске получим результат, true значит что все прошло успешно, а его количество это разделы.
Чтобы не запускать его вручную, вещаем на крон вместе с вашим кроном по обновлению цен или интеграцию с 1с или вообще отдельный крон для обновления страницы раз в 1 или в неделю.
На этом у меня все. Дайте обратную связь, если вам нравится всяко-разно полезное по cms и фреймам.