Задача: показать остаток каждого товара в корзине 1С-Битрикс, что бы покупатель сразу знал предельное колличество товара для покупки.
Добавление данных для вывода в корзине
Для начала скопируйте шаблон корзины в шаблон своего сайта (если еще не сделали этого) и откройте на редактирование файл mutator.php, который отвечает за накопление данных о каждом товаре в корзине.
Перед строкой $result['BASKET_ITEM_RENDER_DATA'][] = $rowData; (конечный массив с накопленными данными) добавьте следующий код:
$arProduct = CCatalogProduct::GetByID($rowData['PRODUCT_ID']);
$quantity = $arProduct['QUANTITY'];
$rowData['PRODUCT_QUANTITY'] = $quantity;
Здесь, с помощью метода CCatalogProduct::GetByID получаем всю информацию о конкретном товаре по его ID и дополняем массив $rowData['PRODUCT_QUANTITY'] данными о доступном количестве товара.
CCatalogProduct::GetByID: Метод по коду товара ID возвращает массив параметров товара (которые относятся к товару как к таковому) или false, если код товара задан некорректно или отсутствует запись в базе. Статический метод.
Выводим данные в шаблоне Mustache
За вывод каждого товара в шаблоне корзины отвечает файл, находящийся по пути /шаблон_корзины/js-templates/basket-item.php. Открываем его и в нужном месте, где хотим вывести остаток товара, добавляем:
Доступно:
{{PRODUCT_QUANTITY}}
{{MEASURE_RATIO}}
Собственно: вывели количество товара и его единицу измерения. На этом все.