26 ноября 2022
529
Большинство свойств 1С-Битрикс передает в корзину sale.basket.basket автоматически, но вывод свойств из массива ложится на разработчиков.

Для того, чтобы вывести наличие товара в корзине, необходимо немного доработать вывод 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(),
    ]);
  • в конце массива $rowData добавляем:
'QUANTITY_DATA' => $arQuantityData,

    2. Открываем шаблон корзины Аспро (v1 или v2) в котором находится файл, отвечающий за вывод элементов строк
    /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;
    }

Другие шаблоны

Шаблонов в Маркетплейсе много и описать решение для каждого практически невозможно, но вы можете заказать доработку своего шаблона у нас.
Позвоните нам!
Личный кабинет
Вам будет доступна история заказов, управление рассылками, свои цены и скидки для постоянных клиентов и прочее.
Ваш логин
Ваш пароль