19 BasketPropertyItem::class,
21 function($className, $id)
26 $basketPropertyClass = $registry->getBasketPropertyItemClassName();
28 $b = $basketPropertyClass::getList([
37 if ($bRow = $b->fetch())
40 $basketClass = $registry->getBasketClassName();
42 $r = $basketClass::getList([
47 '=ID' => (
int)$bRow[
'BASKET_ID'],
51 if ($row = $r->fetch())
54 $orderClass = $registry->getOrderClassName();
56 $order = $orderClass::load($row[
'ORDER_ID']);
57 $basket =
$order->getBasket()->getItemByBasketCode($bRow[
'BASKET_ID']);
60 $property = $basket->getPropertyCollection()->getItemById($id);
69 $this->
addError(
new Error(
'basket property is not exists', 200240400003));
82 'BASKET_PROPERTIES' =>
$entity->prepareFieldInfos(
$entity->getFields()),
91 bool $__calculateTotalCount =
true
97 $iterator = Sale\Internals\BasketPropertyTable::getList([
101 'offset' => $pageNavigation->
getOffset(),
102 'limit' => $pageNavigation->
getLimit(),
103 'count_total' => $__calculateTotalCount,
115 'BASKET_PROPERTY' => $this->
get($basketProperty),
121 if (!isset(
$fields[
'BASKET_ID']))
123 $this->
addError(
new Error(
'Basket item id is absent', 200240400004));
128 $basketId = (int)
$fields[
'BASKET_ID'];
131 $this->
addError(
new Error(
'Basket item id is bad', 200240400005));
140 $basketClass = $registry->getBasketClassName();
155 $this->
addError(
new Error(
'Basket item not exists', 200240400002));
161 $orderClass = $registry->getOrderClassName();
163 $order = $orderClass::load($row[
'ORDER_ID']);
164 $basketItem =
$order->getBasket()->getItemByBasketCode($basketId);
166 if (!($basketItem instanceof Sale\BasketItem))
168 $this->
addError(
new Error(
'Basket item not exists', 200240400001));
174 $propertyCollection = $basketItem->getPropertyCollection();
175 $basketProperty = $propertyCollection->createItem();
180 $r = $this->
save($basketProperty);
181 if (!$r->isSuccess())
183 $result->addErrors($r->getErrors());
202 'BASKET_PROPERTY' => $this->
get($basketProperty),
209 $r = $basketProperty->setFields(
$fields);
211 if (!$r->isSuccess())
218 if ($r->hasWarnings())
225 $r = $this->save($basketProperty);
226 if (!$r->isSuccess())
234 'BASKET_PROPERTY' => $this->
get($basketProperty),
240 $r = $basketProperty->
delete();
242 if (!$r->isSuccess())
249 if ($r->hasWarnings())
256 $r = $this->save($basketProperty);
257 if (!$r->isSuccess())
272 $basketItem = $properties->getBasketItem();
274 $basket = $basketItem->getCollection();
276 $order = $basket->getOrder();
278 $basketItems = $this->toArray(
$order,
$fields)[
'ORDER'][
'BASKET_ITEMS'];
279 foreach ($basketItems as $item)
281 foreach ($item[
'PROPERTIES'] as $property)
283 if ($property[
'ID'] == $basketProperty->getId())
293 private function save(BasketPropertyItem $basketProperty): Result
297 $properties = $basketProperty->getCollection();
298 $basketItem = $properties->getBasketItem();
300 $basket = $basketItem->getCollection();
302 $order = $basket->getOrder();
305 if (!$r->isSuccess())
307 $result->addErrors($r->getErrors());
309 elseif ($r->hasWarnings())
311 $result->addErrors($r->getWarnings());
getPrimaryAutoWiredParameter()
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)