Продолжение учета количества товаров на складах

В прошлом посте я описывал общую схему и два основных компонента каталога.

Сейчас будем изменять остальные компоненты каталога.

Внимание!

Во всех компонентах должно быть включено отображение артикула, иначе он не выбирается, и отбор по артикулу не срабатывает.

В компонентах catalog.bigdata.products, catalog.top

в result_modifier.php:

после

switch ($arItem['CATALOG_TYPE'])
{
   case CCatalogProduct::TYPE_SET:
      $arItem['OFFERS'] = array();
      $arItem['CATALOG_MEASURE_RATIO'] = 1;
      $arItem['CATALOG_QUANTITY'] = 0;
      $arItem['CHECK_QUANTITY'] = false;
      break;
   case CCatalogProduct::TYPE_SKU:
      break;
   case CCatalogProduct::TYPE_PRODUCT:
   default:
      $arItem['CHECK_QUANTITY'] = ('Y' == $arItem['CATALOG_QUANTITY_TRACE'] && 'N' == $arItem['CATALOG_CAN_BUY_ZERO']);
      break;
}

добавляем

$arItem['CAN_BUY']=false;
$arItem['CAN_ORDER']=$APPLICATION->IncludeComponent("spl:instock","",Array("SKU" => $arItem["PROPERTIES"]["CML2_ARTICLE"]["VALUE"]));
if ($arItem['CATALOG_QUANTITY']){$arItem['CAN_BUY']="Y";$arItem['MAX_QUANTITY']=$arItem['CATALOG_QUANTITY'];$arItem['CHECK_QUANTITY']="Y";}
if ($arItem['CAN_ORDER']){$arItem['CAN_BUY']="Y";$arItem['MAX_QUANTITY']=null;}

В файл шаблона template.php если надо, то вносим коррективы, но оно и само нормально работает. Нужно только в

$arJSParams = array(

опцию

'MAX_QUANTITY' => $arItem['CATALOG_QUANTITY'],

во всех компонентах нужно заменить на

'MAX_QUANTITY' => $arItem['MAX_QUANTITY'],

Для компонента поиска по сайту search.page в свой шаблон добавлял такой код для цикла вывода результатов

Наличие:
<?if ($arFields["CATALOG_QUANTITY"]):?>
    На складе
<?else:?>
    <?$canorder=$APPLICATION->IncludeComponent("spl:instock","",Array("SKU" => $arFields["PROPERTY_CML2_ARTICLE_VALUE"]));?>
    <?if ($canorder):?>
        Доступен к заказу (+2-4 дня к поставке товара)
    <?else:?>
        <span style="color: red"><strong>Временно нет в продаже</strong></span>
    <?endif;?>
<?endif?>

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *