Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

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

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Не дать купить товара больше, чем находится на определнных складах

Задача: в магазине 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'];
}
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Загрузить файлы
 

Блог-note Заметки по 1С-Битрикс