Add
Описание и параметры
mixed CPrice::Add( array arFields, boolean $boolRecalc = false );
Метод добавляет новое ценовое предложение (новую цену) для товара. Нестатический метод.
Метод работоспособен, но устарел. Вместо него рекомендуется использовать \Bitrix\Catalog\Model\Price::add
.
Параметры вызова
Параметр | Описание | С версии |
---|---|---|
arFields | Ассоциативный массив параметров ценового предложения. Допустимые параметры:
| |
boolRecalc | Пересчитать цены. Если передать true, то включается механизм пересчета цен.
Если добавляется базовая цена (в CATALOG_GROUP_ID задан тип цен, являющийся базовым), будут пересчитаны все остальные типы цен для товара, если у них задан код наценки. Если добавляется иная цена (не базовая), для нее задан код наценки и уже существует базовая - значения PRICE и CURRENCY буду пересчитаны. Необязательный параметр. По умолчанию - false. | 11.0.0 |
Возвращаемые значения
Возвращает идентификатор добавленной цены в случае успешного сохранения и false - в противном случае. Для получения детальной информации об ошибке следует вызвать $APPLICATION->GetException().
События
Метод работает с событиями OnBeforePriceAdd и OnPriceAdd.
Примечания:
- Если параметр $boolRecalc = true, все равно необходимо указывать цену и валюту (в том случае, когда тип цены - не базовый). Если существует базовая цена, значения цены и валюты будут изменены, если нет - код наценки будет изменен на ноль.
- В обработчиках события OnBeforePriceAdd можно запретить или, наоборот, включить пересчет цены. За это отвечает ключ 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); } ?>
Добавление цены с пересчетом (базовая существует)
$PRODUCT_ID = 15; $PRICE_TYPE_ID = 2; $arFields = array( "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, "PRICE" => 0, "CURRENCY" => "RUB", "EXTRA_ID" => 4, "QUANTITY_FROM" => 1, "QUANTITY_TO" => 10 ); $obPrice = new CPrice(); $obPrice->Add($arFields,true);
Величина и валюта цены будет расчитана исходя из наценки и базовой цены.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024