Метод устарел. Используйте методы класса \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);
?>