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

Update

Метод устарел. Используйте методы класса \Bitrix\Sale\Basket нового ядра.

Описание и параметры

int 
CSaleBasket::Update(
 int ID,
 array arFields
);

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

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

ПараметрОписание
ID Код элемента корзины.
arFields Ассоциативный массив новых параметров элемента корзины, содержащий следующие ключи:
  • PRODUCT_ID - уникальный в рамках модуля код товара;
  • PRODUCT_PRICE_ID - дополнительный код товара;
  • PRICE - стоимость единицы товара ;
  • CUSTOM_PRICE Указывает на то могут ли, например, скидки изменять стоимость позиции или нет. Обычно этот флаг выставляется в административном отделе, когда в форме редактирования вручную правится цена. Значение Y/N (N - по умолчанию).
  • CURRENCY - валюта стоимости единицы товара;
  • WEIGHT - вес единицы товара;
  • QUANTITY - количество единиц товара, если значение элемента массива с этим ключем равно нулю, то товар удаляется из корзины;
  • LID - сайт, на котором сделана покупка;
  • DELAY - флаг "товар отложен" (Y/N);
  • CAN_BUY - флаг "товар можно купить" (Y/N) - может устанавливаться автоматически про наличии функции обратного вызова для поддержки актуальности корзины;
  • NAME - название товара (обязательное поле);
  • CALLBACK_FUNC* - название функции обратного вызова для поддержки актуальности корзины (подробности в описании метода CSaleBasket::Add);
  • MODULE - модуль, добавляющий файл в корзину;
  • ORDER_ID - идентификатор заказа. Ключ позволяет добавить товар к уже оформленному заказу (добавить к заказу можно только тот товар, который не был привязан к заказу). Важный момент: при этом общая сумма заказа не пересчитается, нужно дополнительно обновить сам заказ (общую стоимость) через CSaleOrder::Update.
  • NOTES - особые заметки, например, тип цены;
  • ORDER_CALLBACK_FUNC* - название функции обратного вызова для оформления заказа (подробности в описании метода CSaleBasket::Add);
  • DETAIL_PAGE_URL - ссылка на страницу детального просмотра товара;
  • PROPS - массив свойств товара, который сохраняется в корзине. Каждый элемент этого массива является массивом следующего формата:
    array("NAME" => "Название свойства", "CODE" => "Код свойства", "VALUE" => "Значение свойства", "SORT" => "Индекс сортировки")

    Параметр PROPS должен содержать массив из всех предыдущих значений, иначе они будут затерты. Но если надо, наоборот, очистить свойства у элемента корзины, передаем пустой массив array();

    Максимальная длина значения свойства товара 255 символов.

  • PRODUCT_PROVIDER_CLASS** - содержит имя класса, реализующего интерфейс IBXSaleProductProvider. Торговый каталог записывает в это поле имя класса CCatalogProductProvider. Если поле пусто, то возникает попытка использовать старые поля:CALLBACK_FUNC, ORDER_CALLBACK_FUNC.
  • IGNORE_CALLBACK_FUNC - Y\N. По умолчанию N. Если выставить параметру Y то CALLBACK_FUNC и PRODUCT_PROVIDER_CLASS вызываться не будут.

* - поля считаются устаревшими, начиная с версии 12.5. Вместо них используется PRODUCT_PROVIDER_CLASS.
** - поле доступно, начиная с версии 12.5.

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

Метод возвращает true или false.

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

<?
// Изменим количество товара в записи $ID корзины на 2 штуки и отложим товар
$arFields = array(
   "QUANTITY" => 2,
   "DELAY" => "Y"
);
CSaleBasket::Update($ID, $arFields);
?>


© «Битрикс», 2001-2023, «1С-Битрикс», 2023