Update
Описание и параметры
bool CPrice::Update( int ID, array arFields, boolean $boolRecalc = false, );
Метод изменяет параметры ценового предложения (цены) для товара на значения из массива arFields. Нестатический метод.
Важно! С версии 16.0.3 модуля Торговый каталог при передаче ключа PRICE настоятельно рекомендуется передавать также ключ CURRENCY. Это позволит исключить дополнительный запрос к базе внутри метода.
Метод работоспособен, но устарел. Вместо него рекомендуется использовать \Bitrix\Catalog\Model\Price::update
.
Параметры вызова
Параметр | Описание | С версии |
---|---|---|
ID | Код ценового предложения. Код необходимо получать с помощью этого метода. | |
arFields | Ассоциативный массив новых параметров ценового предложения, ключами в котором являются названия полей предложения, а значениями - новые значения.
Допустимые ключи:
| |
boolRecalc | Пересчитать цены. Если передать true, то включается механизм пересчета цен.
Если обновляется базовая цена (в CATALOG_GROUP_ID задан тип цен, являющийся базовым), будут пересчитаны все остальные типы цен для товара, если у них задан код наценки. Если обновляется иная цена (не базовая), для нее задан код наценки и уже существует базовая - значения PRICE и CURRENCY буду пересчитаны. Необязательный параметр. По умолчанию - false. | 11.0.0 |
Возвращаемые значения
Возвращает ID обновляемой цены в случае успешного сохранения цены и false - в противном случае. Для получения детальной информации об ошибке следует вызвать $APPLICATION->GetException().
События
Метод работает с событиями OnBeforePriceUpdate и OnPriceUpdate.
Примечания:
- Если параметр $boolRecalc = true, все равно необходимо указывать цену и валюту (в том случае, когда тип цены - не базовый). Если существует базовая цена, значения цены и валюты будут изменены, если нет - код наценки будет изменен на ноль.
- В обработчиках события OnBeforePriceUpdate можно запретить или, наоборот, включить пересчет цены. За это отвечает ключ RECALC массива данных, передаваемых в обработчик.
Смотрите также
Примеры использования
<? // Установим для товара с кодом 15 цену типа 2 в значение 29.95 USD $PRODUCT_ID = 15; $PRICE_TYPE_ID = 2; $arFields = Array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, "PRICE" => 29.95, "CURRENCY" => "USD", "QUANTITY_FROM" => 1, "QUANTITY_TO" => 10 ); $res = CPrice::GetList( array(), array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID ) ); if ($arr = $res->Fetch()) { CPrice::Update($arr["ID"], $arFields); } else { CPrice::Add($arFields); } ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.