24 return (mb_strpos($basketCode,
'n') === 0);
38 public function itemsDataPreparation()
40 foreach($this->formData[
"PRODUCT"] as $basketCode => $productData)
42 if (($productData[
'IS_SET_ITEM'] ??
null) ===
'Y')
47 if(!isset($productData[
"PROPS"]) || !is_array($productData[
"PROPS"]))
48 $productData[
"PROPS"] =
array();
50 if(self::isBasketItemNew($basketCode) ==
true)
52 $item = $this->
createItem($basketCode, $productData);
57 $item = $this->getItemFromBasket($basketCode, $productData);
61 $this->builder->getErrorsContainer()->addError(
new Error(
'basketItem - is not exists ['.$basketCode.
']'));
62 throw new BuildingException();
66 foreach ($productData[
"PROPS"] as &$prop)
68 unset($prop[
'BASKET_ID']);
71 if(!empty($productData[
"PROPS"]) && is_array($productData[
"PROPS"]))
74 $property = $item->getPropertyCollection();
76 if(!$property->isPropertyAlreadyExists($productData[
"PROPS"]))
77 $property->setProperty($productData[
"PROPS"]);
89 public function setItemsFields()
94 foreach ($basket as $basketItem)
96 $basketCode = $basketItem->getBasketCode();
97 if(isset($this->formData[
'PRODUCT'][$basketCode]))
99 $itemFields = $this->formData[
'PRODUCT'][$basketCode];
101 if(isset($itemFields[
'OFFER_ID']))
103 $itemFields[
'PRODUCT_ID'] = $itemFields[
'OFFER_ID'];
106 if(isset($itemFields[
'PRICE']))
108 $itemFields[
'CUSTOM_PRICE'] =
'Y';
111 $fields = array_intersect_key($itemFields, array_flip($basketItem::getAvailableFields()));
113 $r = $basketItem->setFields(
$fields);
114 if($r->isSuccess() ==
false)
117 throw new BuildingException();
130 foreach ($basket as $basketItem)
132 if(self::isBasketItemNew($basketItem->getBasketCode()))
134 $strategy = RefreshFactory::createSingle($basketItem->getBasketCode());
135 $basket->refresh($strategy);