Меню

Показать доступный остаток каждого товара в корзине 1С-Битрикс

Просмотров: 2849

Задача: показать остаток каждого товара в корзине 1С-Битрикс, что бы покупатель сразу знал предельное колличество товара для покупки.

Показать доступный остаток каждого товара в корзине 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}}

Собственно: вывели количество товара и его единицу измерения. На этом все.

Михаил Базаров 01.05.2023
Аналогом метода CCatalogProduct::GetByID, на D7, является метод \Bitrix\Catalog\Model\Product::getById. Этот метод возвращает объект модели "Продукт" (Product) с указанным идентификатором.

Пример использования:

Код
use Bitrix\Catalog\Model\Product;
$product = Product::getById($productId);

if ($product)
{
    // Действия с объектом $product
}

Стоимость и сроки разработки сайтов и приложений

Окончательная стоимость и сроки разработки сайта формируются после обсуждения деталей на этапе заказа. Как правило, они редко выходят за обозначенные ниже рамки.

Интернет магазин: разработка с нуля от 400 000 руб.
от 5-ти недель

Cоздание интернет-магазина на 1С-Битрикс. Разработка с нуля, оптимизация кода под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Интернет-магазин на готовом решении от 100 000 руб.
от 7-ми дней

Готовое решение — вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Запускается на одном из 200-та (на ваш выбор) готовых решений.

Мобильное приложение от 400 000 руб.
от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Опросник на разработку. После ознакомления, задам уточняющие вопросы и оценю проект по стоимости и срокам разработки.