Тонкости в работе с 1С-Битрикс 3

Обзор обновления aveCRM 7.7
Обзор обновления aveCRM 7.8
Тонкости в работе с 1С-Битрикс 3

Добавление сортировки в каталоге

В шаблоне компонента умный фильтр catalog.smart.filter находим шаблон и прописываем в форме поиска

<a class="<? if($_GET['sort'] == 'popular') {?>activ<?}?>" href="<?=$arResult["SECTION_PAGE_URL"]?>?sort=popular&order=<?=($_GET['order'] == 'up' ? 'down' : 'up');?>"> По популярности</a>
<a class="<? if($_GET['sort'] == 'price') {?>activ<?}?>" href="<?=$arResult["SECTION_PAGE_URL"]?>?sort=price&order=<?=($_GET['order'] == 'up' ? 'down' : 'up');?>"> По цене</a>

В компоненте catalog, смотрим файл section_horizontal.php, в котором добавляем следующий код перед вызовом умного фильтра bitrix:catalog.smart.filter

if ($_GET["sort"] === "price")   $arParams["ELEMENT_SORT_FIELD"] = "CATALOG_PRICE_1";
if ($_GET["sort"] === "popular")   $arParams["ELEMENT_SORT_FIELD"] = "SHOW_COUNTER";
if ($_GET["order"] === "up")     $arParams["ELEMENT_SORT_ORDER"] = "asc";
if ($_GET["order"] === "down")   $arParams["ELEMENT_SORT_ORDER"] = "desc";                      

Получение товаров в корзине в форме заказа

Если вам нужно на главной странице или внутреннем разделе в форме добавления товаров выводить актуальное количество товара в корзине, то можно доработать шаблон вывода. На примере компонента news.list, добавим в шаблон template.php в самое начало

use Bitrix\Main\Loader;

$arResult['basket'] = array();
if($isSaleModuleInstalled=Loader::includeModule('sale'))
{
	$basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), Bitrix\Main\Context::getCurrent()->getSite());
	foreach ($basket as $basketItem)
		$arResult['basket'][$basketItem->getProductId()] = $basketItem->getQuantity();
}   

А в самой форме на месте количества товара добавим

<?=$arResult['basket'][$arItem['ID']]?>

Вы готовы начать работу или получить консультацию?

Самый простой способ - написать нам. Не стесняйтесь задавать вопросы. Мы готовы начать обсуждение вашего проекта сейчас, сделайте следующий шаг, напишите нам.