Документация для разработчиков

Update

bool
CCatalogProduct::Update(
 int ID, 
 array arFields
);

Метод обновляет параметры товара, относящиеся к товару как к таковому. Нестатический метод.

Параметры вызова

ПараметрОписание
ID Код товара.
arFieldsАссоциативный массив, ключами которого являются названия параметров товара, а значениями - новые значения параметров. Допустимые ключи:

ключи, независящие от типа товаров:
  • QUANTITY - доступное количество товара;
  • QUANTITY_RESERVED - зарезервированное количество;
  • QUANTITY_TRACE - флаг (Y/N/D)* "включить количественный учет" (до версии 12.5.0 параметр назывался "уменьшать ли количество при заказе");

ключи для обычных товаров:
  • CAN_BUY_ZERO - флаг (Y/N/D)* "разрешить покупку при отсутствии товара";
  • NEGATIVE_AMOUNT_TRACE - флаг (Y/N/D)* "разрешить отрицательное количество товара";
  • SUBSCRIBE - флаг (Y/N/D)* "разрешить подписку при отсутствии товара";

  • PURCHASING_PRICE - закупочная цена;
  • PURCHASING_CURRENCY - валюта закупочной цены;

  • WEIGHT - вес единицы товара;

  • WIDTH - ширина товара (в мм);
  • LENGTH - длина товара (в мм);
  • HEIGHT - высота товара (в мм);
  • MEASURE - ID единицы измерения;

  • BARCODE_MULTI - (Y/N) определяет каждый ли экземпляр товара имеет собственный штрихкод;

ключи для продажи контента:
  • PRICE_TYPE - тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка);
  • RECUR_SCHEME_TYPE - тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год);
  • RECUR_SCHEME_LENGTH - длина периода подписки;
  • TRIAL_PRICE_ID - код товара, для которого данный товар является пробным;
  • WITHOUT_ORDER - флаг "Продление подписки без оформления заказа".
*D - значение берется из настроек модуля.

Возвращаемые значения

Возвращает true в случае успешного обновления параметров и false в противном случае.

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

Обновление зарезервированного количества товара

Cmodule::IncludeModule('catalog');
$PRODUCT_ID = 51; // id товара
$arFields = array('QUANTITY_RESERVED' => 11);// зарезервированное количество
CCatalogProduct::Update($PRODUCT_ID, $arFields);


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Денис Орехов
Если не указывать при обновлении количества ключ SUBSCRIBE, то уведомления о поступлении товара отправляться не будут.
Код
\Bitrix\Main\Loader::includeModule('catalog'); 
$obProduct = new CCatalogProduct(); 

// так не отправляется 
$obProduct->Update(3897, ['QUANTITY' => 10]); 

// а так отправляется 
$obProduct->Update(3897, ['QUANTITY' => 10, 'SUBSCRIBE' => 'D']); 
**********
Комментарий разработчика: на текущий момент (catalog 17.0.12), но будет исправлено.
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх