Меню

Не дать купить товара больше, чем находится на определнных складах

Не дать купить товара больше, чем находится на определнных складах

Задача: в магазине 20 складов, на всех есть остатки но нужно ограничить покупку товара только остатками на двух складах, не меняя параметр "Доступное количество" и не включая складской учет.
Аналог CCatalogStoreProduct::GetList на D7 это \Bitrix\Catalog\StoreProductTable
Код
use Bitrix\Catalog\StoreProductTable;
use Bitrix\Main\Entity\Query;

// ID товара и ID складов
$productId = $arResult['ID'];
$storeIds = [6, 13];

// Инициализация результата
$arResult['HAS_QUANTITY'] = 0;

// Выполняем запрос с использованием ORM
$storeRes = StoreProductTable::getList([
    'filter' => [
        'PRODUCT_ID' => $productId,
        'STORE_ID' => $storeIds,
    ],
    'select' => ['AMOUNT'],
]);

// Обрабатываем результат
while ($arStoreParam = $storeRes->fetch()) {
    $arResult['HAS_QUANTITY'] += (int)$arStoreParam['AMOUNT'];
}
Видеоуроки по
1С-Битрикс
на моем Boosty канале Видео
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Прятать или показывать описание раздела каталога

В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый параметр: "Скрывать описание раз...

Фиксированная корзина с обновлением, без перезагрузки страницы.

Иногда нужно сделать так, чтобы корзина в интернет магазине, созданном на Битрикс, была постоянно на виду, при этом обно...

Как вывести картинки к разделам на базе _ext меню

Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. Достаточно популярный метод, э...

Создание мобильного приложения на cordova, для любого сайта.

Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данной заметкой. Постарался сделать...

Удалить товары из корзины, если есть определенные товары.

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

Создание скидки на общую сумму покупки в Битрикс корзине

Функционал интернет-магазина, работающего под управлением 1С Битрикс, позволяет задавать множество условий скидок в корз...

Базовая защита "Битрикс виртуальная машина" от DDoS атак.

Данный способ защиты не панацея, и скорее всего не спасет от профессиональной DDoS атаки, когда ваш сервер на CentOS под...

Получить и вывести данные из профиля покупателя в кабинете пользователя 1С-Битрикс

Задача: вывести пользователю информацию по всем, его, профилям покупателя в компоненте sale.personal.profile.list без пе...

Сортировать товары по названию, цене и дате поступления в каталоге Битрикс

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