- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/helpers/order/builder/basketbuilderexist.php
- Класс: BitrixSaleHelpersOrderBuilderBasketBuilderExist
- Вызов: BasketBuilderExist::setItemData
public function setItemData($basketCode, &$productData, &$item)
{
if ($basketCode != $productData["BASKET_CODE"])
$productData["BASKET_CODE"] = $item->getBasketCode();
if(isset($productData["OFFER_ID"]) && intval($productData["OFFER_ID"]) > 0)
$productData["PRODUCT_ID"] = $productData["OFFER_ID"];
$itemFields = array_intersect_key($productData, array_flip($item::getAvailableFields()));
if(isset($itemFields["MEASURE_CODE"]) && $itemFields["MEASURE_CODE"] <> '')
{
$measures = $this->builder->getCatalogMeasures();
if(isset($measures[$itemFields["MEASURE_CODE"]]) && $measures[$itemFields["MEASURE_CODE"]] <> '')
$itemFields["MEASURE_NAME"] = $measures[$itemFields["MEASURE_CODE"]];
}
$providerData = [];
if(!empty($productData["PROVIDER_DATA"]) && !$this->builder->isNeedUpdateNewProductPrice() && CheckSerializedData($productData["PROVIDER_DATA"]))
{
$providerData = unserialize($productData["PROVIDER_DATA"], ['allowed_classes' => false]);
}
if (is_array($providerData) && !empty($providerData))
{
$this->builder->sendProductCachedDataToProvider($item, $this->builder->getOrder(), $providerData);
}
if(!empty($productData["SET_ITEMS_DATA"]) && CheckSerializedData($productData["SET_ITEMS_DATA"]))
$productData["SET_ITEMS"] = unserialize($productData["SET_ITEMS_DATA"], ['allowed_classes' => false]);
$this->builder->setBasketItemFields($item, $itemFields);
}