Добавление сортировки в каталоге
В шаблоне компонента умный фильтр 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']]?>