Блог Горошко Андрея 1C-Битрикс Обновление количества товара на складе в Bitrix

Обновление количества товара на складе в Bitrix

Средний рейтинг
Еще нет оценок

Обновление количества товара на складе в Bitrix можно сделать так

В коде ниже происходит следующее:

  1. Сначала мы получаем ID склада, используя XML_ID из переменной $deliveryProp.
  2. Затем мы получаем текущее количество товара на этом складе для конкретного товара.
  3. Мы вычисляем новое количество товара, добавляя к текущему количеству количество из $arAddProductXmlID['QUANTITY'].
  4. Наконец, мы обновляем количество товара на складе, используя метод update класса \Bitrix\Catalog\StoreProductTable.
// Получить ID склада по XML_ID
$deliveryPropertyXmlId = $deliveryProp;
$storeData = Bitrix\Catalog\StoreTable::getList(array(
'filter' => array('XML_ID' => $deliveryPropertyXmlId),
'select' => array('ID'),
))->fetch();
$storeId = $storeData['ID'];

// Получить текущее количество товара на складе
$productId = $arFields['ID'];
$storeProductData = \Bitrix\Catalog\StoreProductTable::getList(array(
'filter' => array('PRODUCT_ID' => $productId, 'STORE_ID' => $storeId),
))->fetch();
$currentAmount = $storeProductData['AMOUNT'];

// Добавить количество товара, которое нужно при добавлении
$additionalQuantity = $arAddProductXmlID['QUANTITY'];
$newAmount = $currentAmount + $additionalQuantity;

// Обновить количество товара на складе
$updateFields = Array(
"PRODUCT_ID" => $productId, //ID товара
"STORE_ID" => $storeId, //ID склада
"AMOUNT" => $newAmount, //Количество
'AVAILABLE' => 'Y',
);
\Bitrix\Catalog\StoreProductTable::update($storeProductData['ID'], $updateFields);

Мой рейтинг:

Добавить комментарий

Related Post

Компонент main.ui.filter: Подключение и обработка фильтра для ГридаКомпонент main.ui.filter: Подключение и обработка фильтра для Грида

Средний рейтинг Еще нет оценок Таблица данных (main.ui.grid) почти всегда требует фильтрации. Для этого используется парный компонент bitrix:main.ui.filter. Он отображает строку поиска и выпадающую панель с условиями, сохраняет пресеты и настройки

Работа с коллекциями данных: Классы Bitrix\Main\Type\Dictionary и ParameterDictionaryРабота с коллекциями данных: Классы Bitrix\Main\Type\Dictionary и ParameterDictionary

Средний рейтинг Еще нет оценок В ядре D7 для работы с наборами данных (параметрами запроса, опциями, конфигурациями) вместо обычных массивов часто используются объекты-коллекции. Базовым классом для них является \Bitrix\Main\Type\Dictionary. Зачем это

Создание административных интерфейсов: CAdminList и CAdminForm для своих данныхСоздание административных интерфейсов: CAdminList и CAdminForm для своих данных

Средний рейтинг Еще нет оценок Когда вы создаете собственный модуль или сущность, важно предоставить администратору удобный интерфейс для управления этими данными. Битрикс предлагает мощные классы CAdminList и CAdminForm для создания списков и форм, которые