Для того, чтобы вывести наличие товара в корзине, необходимо немного доработать вывод basket-item.php для вашего шаблона.
Обработка файла basket-item.php имеет некоторые особенности, например условие записывается в формате {{#NOT_AVAILABLE}} Ваш HTML Код {{/NOT_AVAILABLE}} или вывод значения массива echo $arResult['COLUMN_LIST'][2]['NAME']; необходимо выводить так: {{COLUMN_LIST.2.NAME}}
Решение для корзин Аспро (Максимум, Некст и т.д.)
1. Открываем шаблон корзины Аспро (v1 или v2) в котором находится файл, отвечающий за формирование массивов строк/bitrix/templates/aspro_max/components/bitrix/sale.basket.basket/v1/js-templates/mutator.php или /bitrix/templates/aspro_max/components/bitrix/sale.basket.basket/v2/js-templates/mutator.php
- перед формированием $rowData добавляем код, который через API Аспро получает настройки "Отображения наличия товаров" из Админки:
$arQuantityData = CMax::GetQuantityArray([
'totalCount' => $row['AVAILABLE_QUANTITY'],
'arItemIDs' => ['ID' => $row['PRODUCT_ID']],
'useStoreClick' => "N",
'dataAmount' => array(),
]);
'totalCount' => $row['AVAILABLE_QUANTITY'],
'arItemIDs' => ['ID' => $row['PRODUCT_ID']],
'useStoreClick' => "N",
'dataAmount' => array(),
]);
- в конце массива $rowData добавляем:
'QUANTITY_DATA' => $arQuantityData,
/bitrix/templates/aspro_max/components/bitrix/sale.basket.basket/v1/js-templates/basket-item.php или /bitrix/templates/aspro_max/components/bitrix/sale.basket.basket/v2/js-templates/basket-item.php
3. Находим блок, который выводит единицу измерения <div class="basket-item-amount-field-description"> и перед закрывающим </div> вставляем код:
<div class="quantity_block_wrapper">
{{^NOT_AVAILABLE}}
<div class="item-stock">
<span class="stock"></span>
<span class="value font_sxs">
<span class="store_view">{{QUANTITY_DATA.TEXT}}</span></span>
</div>
{{/NOT_AVAILABLE}}
{{#NOT_AVAILABLE}}
<div class="item-stock">
<span class="order"></span>
<span class="value font_sxs">
<span class="store_view">{{QUANTITY_DATA.TEXT}}</span></span>
</div>
{{/NOT_AVAILABLE}}
</div>
4. В custom.css переопределяем стили
.basket-item-amount-field-description .quantity_block_wrapper > div{
padding: 0;
}
Решение для корзины 1С-Битрикс: Современный интернет-магазин
1. Открываем шаблон корзины Аспро (v1 или v2) в котором находится файл, отвечающий за вывод элементов строк/bitrix/templates/eshop_bootstrap_v4/components/bitrix/sale.basket.basket/bootstrap_v4/js-templates/basket-item.php
2. Находим блок, который выводит единицу измерения <div class="basket-item-amount-field-description"> и перед закрывающим </div> вставляем код:
<div class="quantity_block_wrapper">
{{^NOT_AVAILABLE}}
<div class="item-stock">
<span class="stock"></span>
<span class="value font_sxs">
<span class="store_view">Есть в наличии</span>: {{AVAILABLE_QUANTITY}}</span>
</div>
{{/NOT_AVAILABLE}}
{{#NOT_AVAILABLE}}
<div class="item-stock order">
<span class="order"></span>
<span class="value font_sxs">
<span class="store_view">Нет в наличии</span>
</div>
{{/NOT_AVAILABLE}}
</div>
3. В style.css добавляем стили
.basket-item-amount-field-description .quantity_block_wrapper > div{ padding: 0;
}
.basket-item-amount-field-description .item-stock > span {
display: inline-block;
vertical-align: top;
color: #5fa800;
line-height: 15px;
}
.basket-item-amount-field-description .item-stock.order > span {
color: #e10000;
}