bitrix:catalog.element
в шаблоне компонента детальной страницы находим файл result_modifier.php и в самый конец файла (до закрывающего тега ?> ) добавляем:
if (CModule::IncludeModule('yenisite.market')) {
$prices = CMarketPrice::GetItemPriceValues($arResult["ID"], $arResult['PRICES']);
if(count($prices)>0)
unset ($arResult["PRICES"]);
$minPrice = false;
foreach ($prices as $k => $pr) {
$pr = floatval($pr);
$arResult["PRICES"][$k]["VALUE"] = $pr;
$arResult["PRICES"][$k]["PRINT_VALUE"] = $pr;
if ((empty($minPrice) || $minPrice > $pr) && $pr > 0) {
$minPrice = $pr;
$minPriceId = $k;
}
}
if ($minPrice !== false) {
$arResult['MIN_PRICE']['PRICE_ID'] = $minPriceId;
$arResult['MIN_PRICE']['VALUE'] = $minPrice;
$arResult['MIN_PRICE']['PRINT_VALUE'] = $minPrice;
$arResult['MIN_PRICE']['DISCOUNT_VALUE'] = $minPrice;
$arResult['MIN_PRICE']['PRINT_DISCOUNT_VALUE'] = $minPrice;
$arResult['CAN_BUY'] = true;
}
$arResult['CHECK_QUANTITY'] = (CMarketCatalog::UsesQuantity($arParams['IBLOCK_ID']) == 1);
$arResult['CATALOG_QUANTITY'] = intval($arResult['PROPERTIES']['MARKET_QUANTITY']['VALUE']);
if ($arResult['CHECK_QUANTITY'] && $arResult['CATALOG_QUANTITY'] <= 0) {
$arResult['CAN_BUY'] = false;
}
$arResult['CATALOG_TYPE'] = 1; //simple product
}
Что делает этот код.
- Выборка минимальной цены из имеющихся в Киоске с учётом права на просмотр.
- Проверка количественного учёта.
- Установка типа продукта для корректной работы шаблона и скриптов.
bitrix:catalog.section
в шаблоне компонента страницы раздела каталога находим файл result_modifier.php и в самый конец файла (до закрывающего тега ?> ) добавляем:
if (CModule::IncludeModule('yenisite.market')) {
$arResult['CHECK_QUANTITY'] = (CMarketCatalog::UsesQuantity($arParams['IBLOCK_ID']) == 1);
foreach ($arResult['ITEMS'] as $index => &$arItem) {
$prices = CMarketPrice::GetItemPriceValues($arItem['ID'], $arItem['PRICES']);
if (count($prices) > 0) {
unset($arItem['PRICES']);
}
$minPrice = false;
foreach ($prices as $k => $pr) {
$pr = floatval($pr);
$arItem['PRICES'][$k]['VALUE'] = $pr;
$arItem['PRICES'][$k]['PRINT_VALUE'] = $pr;
if ((empty($minPrice) || $minPrice > $pr) && $pr > 0) {
$minPrice = $pr;
}
}
if ($minPrice !== false) {
$arItem['MIN_PRICE']['VALUE'] = $minPrice;
$arItem['MIN_PRICE']['PRINT_VALUE'] = $minPrice;
$arItem['MIN_PRICE']['DISCOUNT_VALUE'] = $minPrice;
$arItem['MIN_PRICE']['PRINT_DISCOUNT_VALUE'] = $minPrice;
$arItem['CATALOG_MEASURE_RATIO'] = 1;
$arItem['CAN_BUY'] = true;
}
$arItem['CHECK_QUANTITY'] = $arResult['CHECK_QUANTITY'];
$arItem['CATALOG_QUANTITY'] = CMarketCatalogProduct::GetQuantity($arItem['ID'], $arItem['IBLOCK_ID']);
if ($arItem['CHECK_QUANTITY'] && $arItem['CATALOG_QUANTITY'] <= 0) {
$arItem['CAN_BUY'] = false;
}
$arItem['CATALOG_TYPE'] = 1; //simple product
}
unset($arItem);
}
bitrix:catalog.top
в шаблоне компонента страницы топа каталога находим файл result_modifier.php и в самый конец файла (до закрывающего тега ?> ) добавляем:
if (CModule::IncludeModule('yenisite.market')) {
$arResult['CHECK_QUANTITY'] = (CMarketCatalog::UsesQuantity($arParams['IBLOCK_ID']) == 1);
foreach ($arResult['ITEMS'] as &$itemSection)
{
foreach ($itemSection as $index => &$arItem) {
$prices = CMarketPrice::GetItemPriceValues($arItem['ID'], $arItem['PRICES']);
if (count($prices) > 0) {
unset($arItem['PRICES']);
}
$minPrice = false;
foreach ($prices as $k => $pr) {
$pr = floatval($pr);
$arItem['PRICES'][$k]['VALUE'] = $pr;
$arItem['PRICES'][$k]['PRINT_VALUE'] = $pr;
if ((empty($minPrice) || $minPrice > $pr) && $pr > 0) {
$minPrice = $pr;
}
}
if ($minPrice !== false) {
$arItem['MIN_PRICE']['VALUE'] = $minPrice;
$arItem['MIN_PRICE']['PRINT_VALUE'] = $minPrice;
$arItem['MIN_PRICE']['DISCOUNT_VALUE'] = $minPrice;
$arItem['MIN_PRICE']['PRINT_DISCOUNT_VALUE'] = $minPrice;
$arItem['CATALOG_MEASURE_RATIO'] = 1;
$arItem['CAN_BUY'] = true;
}
$arItem['CHECK_QUANTITY'] = $arResult['CHECK_QUANTITY'];
$arItem['CATALOG_QUANTITY'] = CMarketCatalogProduct::GetQuantity($arItem['ID'], $arItem['IBLOCK_ID']);
if ($arItem['CHECK_QUANTITY'] && $arItem['CATALOG_QUANTITY'] <= 0) {
$arItem['CAN_BUY'] = false;
}
$arItem['CATALOG_TYPE'] = 1; //simple product
}
unset($arItem);
}
}
bitrix:catalog
в параметрах комплексного компонента необходимо указать путь к странице, на которой расположен компонент с большой корзиной Киоска: