Bitrix-D7  20.0.0
Класс BasketComponentHelper

Открытые статические члены

static getFUserBasketQuantity ($fuserId, $siteId=null)
 
static getFUserBasketPrice ($fuserId, $siteId=null)
 
static clearFUserBasketQuantity ($fUserId, $siteId=null)
 
static clearFUserBasketPrice ($fUserId, $siteId=null)
 
static updateFUserBasketPrice ($fuserId, $siteId=null, $basketList=null)
 
static updateFUserBasketQuantity ($fuserId, $siteId=null, $basketList=null)
 
static updateFUserBasket ($fuserId, $siteId=null)
 
static onSaleBasketItemEntitySaved (Main\Event $event)
 
static onSaleBasketItemDeleted (Main\Event $event)
 
static checkQuantityRatio (Basket $basket, BasketItem $item=null)
 
static correctQuantityRatio (Basket $basket, BasketItem $item=null)
 
static getRatio (Basket $basket, BasketItem $item=null)
 
static getRatioCache ()
 
static getRatioDataCache ()
 

Статические открытые данные

static $cacheRatio = array()
 
static $cacheRatioData = array()
 

Защищенные статические члены

static setFUserBasketQuantity ($fUserId, $quantity, $siteId=null)
 
static setFUserBasketPrice ($fUserId, $price, $siteId=null)
 
static getFUserBasketList ($fuserId, $siteId=null)
 
static calculatePrice ($fuserId, array $basketList)
 
static calculateBasketCost (Basket $basket)
 

Подробное описание

См. определение в файле basketcomponenthelper.php строка 10

Методы

◆ calculateBasketCost()

static calculateBasketCost ( Basket  $basket)
staticprotected
Аргументы
Basket$basket
Возвращает
int|float

См. определение в файле basketcomponenthelper.php строка 647

648  {
649  if ($basket->count() == 0)
650  return 0;
651 
652  $oldApiStatus = Compatible\DiscountCompatibility::isUsed(); // TODO: remove this code after refactoring DiscountCompatibility
653  if ($oldApiStatus)
656  $basket->refreshData(array('PRICE', 'COUPONS'));
657  $discounts = Discount::buildFromBasket($basket, new Discount\Context\Fuser($basket->getFUserId(true)));
658  $discounts->calculate();
659  $discountResult = $discounts->getApplyResult();
661  if ($oldApiStatus)
663 
664  if (empty($discountResult['PRICES']['BASKET']))
665  return 0;
666 
667  $result = 0;
668  $discountResult = $discountResult['PRICES']['BASKET'];
669  /** @var BasketItem $basketItem */
670  foreach ($basket as $basketItem)
671  {
672  if (!$basketItem->canBuy())
673  continue;
674  $code = $basketItem->getBasketCode();
675  if (!empty($discountResult[$code]))
676  $result += $discountResult[$code]['PRICE'] * $basketItem->getQuantity();
677  unset($code);
678  }
679  unset($basketItem);
680  unset($discountResult);
681 
682  return $result;
683  }

◆ calculatePrice()

static calculatePrice (   $fuserId,
array  $basketList 
)
staticprotected
Аргументы
int$fuserId
array$basketList
Возвращает
array

См. определение в файле basketcomponenthelper.php строка 260

261  {
262  $totalPrice = 0;
263  $totalWeight = 0;
264 
265  foreach ($basketList as $basketData)
266  {
267  $totalPrice += $basketData["PRICE"] * $basketData["QUANTITY"];
268  $totalWeight += $basketData["WEIGHT"] * $basketData["QUANTITY"];
269  }
270 
271  $orderData = array(
272  'SITE_ID' => SITE_ID,
273  'ORDER_PRICE' => $totalPrice,
274  'ORDER_WEIGHT' => $totalWeight,
275  'BASKET_ITEMS' => $basketList
276  );
277 
279  /** @var Sale\Basket $basketClassName */
280  $basketClassName = $registry->getBasketClassName();
281 
282  $basket = $basketClassName::create(SITE_ID);
283  $basket->setFUserId($fuserId);
284  foreach ($basketList as $oldItem)
285  {
286  $item = $basket->createItem($oldItem['MODULE'], $oldItem['PRODUCT_ID']);
287  unset($oldItem['MODULE'], $oldItem['PRODUCT_ID']);
288  $item->initFields($oldItem);
289  }
290  $orderData['ORDER_PRICE'] = self::calculateBasketCost($basket);
291  unset($basket);
292 
293  return $orderData;
294  }

◆ checkQuantityRatio()

static checkQuantityRatio ( Basket  $basket,
BasketItem  $item = null 
)
static
Аргументы
Basket$basket
BasketItem | null$item
Возвращает
Result
Исключения
Main

См. определение в файле basketcomponenthelper.php строка 397

398  {
399  $result = new Result();
400 
401  $basketItemRatioList = array();
402  $ratioList = array();
403  $ratioResult = static::getRatio($basket, $item);
404 
405  if ($ratioResult->isSuccess())
406  {
407  $ratioData = $ratioResult->getData();
408 
409  if (!empty($ratioData['RATIO_LIST']) && is_array($ratioData['RATIO_LIST']))
410  {
411  $ratioList = $ratioData['RATIO_LIST'];
412  }
413  }
414 
415  /** @var BasketItem $basketItem */
416  foreach ($basket as $basketItem)
417  {
418  $basketItemCode = $basketItem->getBasketCode();
419 
420  if ($item === null || $item->getBasketCode() === $basketItemCode)
421  {
422  $basketItemRatioList[$basketItemCode] = false;
423 
424  if (isset($ratioList[$basketItemCode]))
425  {
426  $basketItemQuantity = $basketItem->getQuantity();
427  $basketItemRatio = (float)$ratioList[$basketItemCode];
428 
429  $mod = roundEx(($basketItemQuantity / $basketItemRatio - round($basketItemQuantity / $basketItemRatio)), 6);
430 
431  if ($mod == 0)
432  {
433  $basketItemRatioList[$basketItemCode] = true;
434  }
435  }
436  }
437  }
438 
439  if (!empty($basketItemRatioList))
440  {
441  $result->addData(array('CHECK_RATIO_LIST' => $basketItemRatioList));
442  }
443 
444  return $result;
445  }

◆ clearFUserBasketPrice()

static clearFUserBasketPrice (   $fUserId,
  $siteId = null 
)
static
Аргументы
$fUserId
null$siteId

См. определение в файле basketcomponenthelper.php строка 123

124  {
125  if ($siteId === null)
126  {
127  $siteId = SITE_ID;
128  }
129 
130  unset($_SESSION['SALE_USER_BASKET_PRICE'][$siteId][$fUserId]);
131  }

◆ clearFUserBasketQuantity()

static clearFUserBasketQuantity (   $fUserId,
  $siteId = null 
)
static
Аргументы
$fUserId
null$siteId

См. определение в файле basketcomponenthelper.php строка 93

94  {
95  if ($siteId === null)
96  {
97  $siteId = SITE_ID;
98  }
99 
100  unset($_SESSION['SALE_USER_BASKET_QUANTITY'][$siteId][$fUserId]);
101  }

◆ correctQuantityRatio()

static correctQuantityRatio ( Basket  $basket,
BasketItem  $item = null 
)
static
Аргументы
Basket$basket
BasketItem | null$item
Возвращает
Result
Исключения
Main

См. определение в файле basketcomponenthelper.php строка 456

457  {
458  $result = new Result();
459  $changedItems = array();
460 
461  $checkRatioList = array();
462  $checkRatioResult = static::checkQuantityRatio($basket, $item);
463 
464  if ($checkRatioResult->isSuccess())
465  {
466  $checkRatioData = $checkRatioResult->getData();
467 
468  if (!empty($checkRatioData['CHECK_RATIO_LIST']) && is_array($checkRatioData['CHECK_RATIO_LIST']))
469  {
470  $checkRatioList = $checkRatioData['CHECK_RATIO_LIST'];
471  }
472  }
473 
474  $basketItemRatioList = array();
475  $ratioList = null;
476 
477  /** @var BasketItem $basketItem */
478  foreach ($basket as $basketItem)
479  {
480  $basketItemCode = $basketItem->getBasketCode();
481 
482  if ($item === null || $item->getBasketCode() === $basketItemCode)
483  {
484  $basketItemRatioList[$basketItemCode] = false;
485 
486  if (isset($checkRatioList[$basketItemCode]) && $checkRatioList[$basketItemCode] === false)
487  {
488  if ($ratioList === null)
489  {
490  $ratioList = array();
491  $ratioResult = static::getRatio($basket, $item);
492 
493  if ($ratioResult->isSuccess())
494  {
495  $ratioData = $ratioResult->getData();
496 
497  if (!empty($ratioData['RATIO_LIST']) && is_array($ratioData['RATIO_LIST']))
498  {
499  $ratioList = $ratioData['RATIO_LIST'];
500  }
501  }
502  }
503 
504  if (!isset($ratioList[$basketItemCode]))
505  {
506  $result->addError(new ResultError(Main\Localization\Loc::getMessage('SALE_BASKET_COMPONENT_HELPER_PRODUCT_RATIO_NOT_FOUND', array(
507  '#PRODUCT_NAME#' => $basketItem->getField('NAME')
508  )), 'SALE_BASKET_COMPONENT_HELPER_PRODUCT_RATIO_NOT_FOUND'));
509  continue;
510  }
511 
512  $basketItemQuantity = $basketItem->getQuantity();
513  $basketItemRatio = (float)$ratioList[$basketItemCode];
514 
515  $mod = roundEx(($basketItemQuantity / $basketItemRatio - round($basketItemQuantity / $basketItemRatio)), 6);
516 
517  if ($mod != 0)
518  {
519  $changedItems[] = $basketItemCode;
520 
521  $closestQuantity = round($basketItemQuantity / $basketItemRatio) * $basketItemRatio;
522  if ($closestQuantity < $basketItemRatio)
523  {
524  $closestQuantity = $basketItemRatio;
525  }
526 
527  $r = $basketItem->setField('QUANTITY', $closestQuantity);
528  if (!$r->isSuccess())
529  {
530  $floorQuantity = floor(ceil($basketItemQuantity) / $basketItemRatio) * $basketItemRatio;
531  if ($floorQuantity < $basketItemRatio)
532  {
533  $floorQuantity = $basketItemRatio;
534  }
535 
536  if ($floorQuantity != $closestQuantity)
537  {
538  $r = $basketItem->setField('QUANTITY', $floorQuantity);
539  }
540  }
541 
542  if (!$r->isSuccess())
543  {
544  $result->addErrors($r->getErrors());
545 
546  $r = $basketItem->setField('CAN_BUY', 'N');
547  if (!$r->isSuccess())
548  {
549  $result->addErrors($r->getErrors());
550  }
551  }
552  }
553  }
554  }
555  }
556 
557  $result->addData(array('CHANGED_BASKET_ITEMS' => $changedItems));
558 
559  return $result;
560  }

◆ getFUserBasketList()

static getFUserBasketList (   $fuserId,
  $siteId = null 
)
staticprotected
Аргументы
int$fuserId
string | null$siteId
Возвращает
array

См. определение в файле basketcomponenthelper.php строка 217

218  {
219  if ($siteId === null)
220  {
221  $siteId = SITE_ID;
222  }
223 
225  /** @var Sale\Basket $basketClassName */
226  $basketClassName = $registry->getBasketClassName();
227 
228  $basketList = array();
229  $res = $basketClassName::getList(array(
230  'filter' => array(
231  'FUSER_ID' => $fuserId,
232  'ORDER_ID' => null,
233  'LID' => $siteId,
234  'CAN_BUY' => 'Y',
235  'DELAY' => 'N'
236  )
237  ));
238  while ($data = $res->fetch())
239  {
240  if (\CSaleBasketHelper::isSetItem($data))
241  continue;
242 
243  if (!isset($data['BASE_PRICE']) || (float)$data['BASE_PRICE'] <= 0)
244  {
245  $data['BASE_PRICE'] = $data['PRICE'] + $data['DISCOUNT_PRICE'];
246  }
247 
248  $basketList[] = $data;
249  }
250 
251  return $basketList;
252  }

◆ getFUserBasketPrice()

static getFUserBasketPrice (   $fuserId,
  $siteId = null 
)
static
Аргументы
int$fuserId
string | null$siteId
Возвращает
int|float

См. определение в файле basketcomponenthelper.php строка 50

51  {
52  if ($siteId === null)
53  {
54  $siteId = SITE_ID;
55  }
56 
57  $price = null;
58  if (!empty($_SESSION['SALE_USER_BASKET_PRICE'][$siteId]) && is_array($_SESSION['SALE_USER_BASKET_PRICE'][$siteId])
59  && array_key_exists($fuserId, $_SESSION['SALE_USER_BASKET_PRICE'][$siteId]))
60  {
61  $price = $_SESSION['SALE_USER_BASKET_PRICE'][$siteId][$fuserId];
62  }
63 
64  if ($price === null)
65  {
66  static::updateFUserBasketPrice($fuserId, $siteId);
67  $price = $_SESSION['SALE_USER_BASKET_PRICE'][$siteId][$fuserId];
68  }
69 
70  return $price;
71  }

◆ getFUserBasketQuantity()

static getFUserBasketQuantity (   $fuserId,
  $siteId = null 
)
static
Аргументы
int$fuserId
string | null$siteId
Возвращает
int|float

См. определение в файле basketcomponenthelper.php строка 21

22  {
23  if ($siteId === null)
24  {
25  $siteId = SITE_ID;
26  }
27 
28  $quantity = null;
29  if (!empty($_SESSION['SALE_USER_BASKET_QUANTITY'][$siteId]) && is_array($_SESSION['SALE_USER_BASKET_QUANTITY'][$siteId])
30  && array_key_exists($fuserId, $_SESSION['SALE_USER_BASKET_QUANTITY'][$siteId]))
31  {
32  $quantity = $_SESSION['SALE_USER_BASKET_QUANTITY'][$siteId][$fuserId];
33  }
34 
35  if ($quantity === null)
36  {
37  static::updateFUserBasketQuantity($fuserId, $siteId);
38  $quantity = $_SESSION['SALE_USER_BASKET_QUANTITY'][$siteId][$fuserId];
39  }
40 
41  return $quantity;
42  }

◆ getRatio()

static getRatio ( Basket  $basket,
BasketItem  $item = null 
)
static
Аргументы
Basket$basket
BasketItem | null$item
Возвращает
Result
Исключения
Main

См. определение в файле basketcomponenthelper.php строка 569

570  {
571  $result = new Result();
572  $ratioList = array();
573  if (Main\Loader::includeModule('catalog'))
574  {
575  $map = array();
576  $elementList = array();
577 
578  /** @var BasketItem $basketItem */
579  foreach ($basket as $basketItem)
580  {
581  $code = $basketItem->getBasketCode();
582  if ($item !== null && $item->getBasketCode() != $code)
583  {
584  continue;
585  }
586 
587  $hash = md5((strval($basketItem->getField("PRODUCT_PROVIDER_CLASS")) != '' ? $basketItem->getField("PRODUCT_PROVIDER_CLASS"): "")."|".(strval($basketItem->getField("MODULE")) != '' ? $basketItem->getField("MODULE"): "")."|".$basketItem->getField("PRODUCT_ID"));
588 
589  if (array_key_exists($hash, static::$cacheRatio))
590  {
591  $ratioList[$code] = static::$cacheRatio[$hash];
592  }
593  else
594  {
595  $elementList[$basketItem->getField("PRODUCT_ID")] = $basketItem->getField("PRODUCT_ID");
596  }
597 
598  if (!isset($map[$basketItem->getField("PRODUCT_ID")]))
599  {
600  $map[$basketItem->getField("PRODUCT_ID")] = array();
601  }
602 
603  $map[$basketItem->getField("PRODUCT_ID")][] = $code;
604  }
605 
606  if (!empty($elementList))
607  {
608  $res = Catalog\MeasureRatioTable::getList(array(
609  'select' => array('*'),
610  'filter' => array('@PRODUCT_ID' => $elementList, '=IS_DEFAULT' => 'Y')
611  ));
612  while ($ratioData = $res->fetch())
613  {
614  if (empty($map[$ratioData["PRODUCT_ID"]]))
615  continue;
616 
617  foreach ($map[$ratioData["PRODUCT_ID"]] as $key)
618  {
619  $ratioList[$key] = $ratioData["RATIO"];
620 
621  if (!$basketItem = $basket->getItemByBasketCode($key))
622  continue;
623 
624  $hash = md5((strval($basketItem->getField("PRODUCT_PROVIDER_CLASS")) != '' ? $basketItem->getField("PRODUCT_PROVIDER_CLASS"): "")."|".(strval($basketItem->getField("MODULE")) != '' ? $basketItem->getField("MODULE"): "")."|".$basketItem->getField("PRODUCT_ID"));
625 
626  static::$cacheRatio[$hash] = $ratioData["RATIO"];
627  static::$cacheRatioData[$hash] = $ratioData;
628  }
629  unset($key);
630  }
631  unset($ratioData, $dbRatio);
632  }
633  unset($elementList, $map);
634  }
635 
636  if (!empty($ratioList))
637  $result->addData(array('RATIO_LIST' => $ratioList));
638 
639  return $result;
640  }

◆ getRatioCache()

static getRatioCache ( )
static

См. определение в файле basketcomponenthelper.php строка 689

690  {
691  return static::$cacheRatio;
692  }

◆ getRatioDataCache()

static getRatioDataCache ( )
static

См. определение в файле basketcomponenthelper.php строка 698

699  {
700  return static::$cacheRatioData;
701  }

◆ onSaleBasketItemDeleted()

static onSaleBasketItemDeleted ( Main\Event  $event)
static
Аргументы
\Bitrix\Main\Event$event
Возвращает
\Bitrix\Main\EventResult

См. определение в файле basketcomponenthelper.php строка 375

376  {
377  $fuserId = Fuser::getId(true);
378  $originalValues = $event->getParameter('VALUES');
379  if ($originalValues['FUSER_ID'] != $fuserId)
380  {
381  return new Main\EventResult( Main\EventResult::SUCCESS, null, 'sale');
382  }
383 
384  static::clearFUserBasketPrice($fuserId, SITE_ID);
385  static::clearFUserBasketQuantity($fuserId, SITE_ID);
386 
387  return new Main\EventResult( Main\EventResult::SUCCESS, null, 'sale');
388  }

◆ onSaleBasketItemEntitySaved()

static onSaleBasketItemEntitySaved ( Main\Event  $event)
static
Аргументы
Main\Event$event
Возвращает
Main\EventResult

См. определение в файле basketcomponenthelper.php строка 302

303  {
304  $fuserId = Fuser::getId(true);
305  $basketItem = $event->getParameter('ENTITY');
306 
307  $originalValues = $event->getParameter('VALUES');
308  if ((!$basketItem instanceof BasketItem))
309  {
310  return new Main\EventResult( Main\EventResult::SUCCESS, null, 'sale');
311  }
312 
313  /** @var \Bitrix\Sale\Basket $basket */
314  if ((!$basket = $basketItem->getCollection())
315  || ($basketItem->getFUserId() != $fuserId)
316  )
317  {
318  return new Main\EventResult( Main\EventResult::SUCCESS, null, 'sale');
319  }
320 
321  if ($basketItem->isChanged())
322  {
323  $updateSessionData = false;
324 
325  if (!$basket->getOrder())
326  {
327  if (!$updateSessionData && array_key_exists('QUANTITY', $originalValues))
328  {
329  $updateSessionData = true;
330  }
331 
332  if (!$updateSessionData && (array_key_exists('PRICE', $originalValues) && PriceMaths::roundPrecision($originalValues['PRICE']) !== PriceMaths::roundPrecision($basketItem->getPrice())))
333  {
334  $updateSessionData = true;
335  }
336 
337  if (!$updateSessionData && (array_key_exists('DISCOUNT_PRICE', $originalValues) && PriceMaths::roundPrecision($originalValues['DISCOUNT_PRICE']) !== PriceMaths::roundPrecision($basketItem->getDiscountPrice())))
338  {
339  $updateSessionData = true;
340  }
341  }
342 
343  if (!$updateSessionData && (array_key_exists('ORDER_ID', $originalValues) && (intval($originalValues['ORDER_ID'])) == 0 && intval($basketItem->getField('ORDER_ID') > 0)))
344  {
345  $updateSessionData = true;
346  }
347 
348  if (!$updateSessionData
349  && (array_key_exists('CAN_BUY', $originalValues) && ($originalValues['CAN_BUY'] !== $basketItem->getField('CAN_BUY'))))
350  {
351  $updateSessionData = true;
352  }
353 
354  if (!$updateSessionData
355  && (array_key_exists('DELAY', $originalValues) && ($originalValues['DELAY'] !== $basketItem->getField('DELAY'))))
356  {
357  $updateSessionData = true;
358  }
359 
360  if ($updateSessionData)
361  {
362  static::clearFUserBasketPrice($fuserId, SITE_ID);
363  static::clearFUserBasketQuantity($fuserId, SITE_ID);
364  }
365  }
366 
367  return new Main\EventResult( Main\EventResult::SUCCESS, null, 'sale');
368  }

◆ setFUserBasketPrice()

static setFUserBasketPrice (   $fUserId,
  $price,
  $siteId = null 
)
staticprotected
Аргументы
int$fUserId
int | float$price
string | null$siteId
Возвращает
void

См. определение в файле basketcomponenthelper.php строка 109

110  {
111  if ($siteId === null)
112  {
113  $siteId = SITE_ID;
114  }
115 
116  $_SESSION['SALE_USER_BASKET_PRICE'][$siteId][$fUserId] = $price;
117  }

◆ setFUserBasketQuantity()

static setFUserBasketQuantity (   $fUserId,
  $quantity,
  $siteId = null 
)
staticprotected
Аргументы
int$fUserId
int | float$quantity
string | null$siteId
Возвращает
void

См. определение в файле basketcomponenthelper.php строка 79

80  {
81  if ($siteId === null)
82  {
83  $siteId = SITE_ID;
84  }
85 
86  $_SESSION['SALE_USER_BASKET_QUANTITY'][$siteId][$fUserId] = $quantity;
87  }

◆ updateFUserBasket()

static updateFUserBasket (   $fuserId,
  $siteId = null 
)
static
Аргументы
int$fuserId
string | null$siteId
Возвращает
void

См. определение в файле basketcomponenthelper.php строка 198

199  {
200  if ($siteId === null)
201  {
202  $siteId = SITE_ID;
203  }
204 
205  $basketList = static::getFUserBasketList($fuserId, $siteId);
206 
207  static::updateFUserBasketPrice($fuserId, $siteId, $basketList);
208  static::updateFUserBasketQuantity($fuserId, $siteId, $basketList);
209  }

◆ updateFUserBasketPrice()

static updateFUserBasketPrice (   $fuserId,
  $siteId = null,
  $basketList = null 
)
static
Аргументы
int$fuserId
string | null$siteId
array | null$basketList
Возвращает
void

См. определение в файле basketcomponenthelper.php строка 140

141  {
142  if ($siteId === null)
143  {
144  $siteId = SITE_ID;
145  }
146 
147  $price = 0;
148 
149  if ($basketList === null)
150  {
151  $basketList = static::getFUserBasketList($fuserId, $siteId);
152  }
153 
154  if (!empty($basketList) && is_array($basketList))
155  {
156  $orderData = static::calculatePrice($fuserId, $basketList);
157  $price = $orderData['ORDER_PRICE'];
158  }
159 
160  static::setFUserBasketPrice($fuserId, $price, $siteId);
161  }

◆ updateFUserBasketQuantity()

static updateFUserBasketQuantity (   $fuserId,
  $siteId = null,
  $basketList = null 
)
static
Аргументы
int$fuserId
string | null$siteId
array | null$basketList
Возвращает
void

См. определение в файле basketcomponenthelper.php строка 170

171  {
172  if ($siteId === null)
173  {
174  $siteId = SITE_ID;
175  }
176 
177  $quantity = 0;
178 
179  if ($basketList === null)
180  {
181  $basketList = static::getFUserBasketList($fuserId, $siteId);
182  }
183 
184  if (!empty($basketList) && is_array($basketList))
185  {
186  $quantity = count($basketList);
187  }
188 
189  static::setFUserBasketQuantity($fuserId, $quantity, $siteId);
190  }

Поля

◆ $cacheRatio

$cacheRatio = array()
static

См. определение в файле basketcomponenthelper.php строка 12

◆ $cacheRatioData

$cacheRatioData = array()
static

См. определение в файле basketcomponenthelper.php строка 13


Объявления и описания членов класса находятся в файле:
Bitrix\Sale\DiscountCouponsManagerBase\unFreezeCouponStorage
static unFreezeCouponStorage()
Enable get coupons for calculate discounts.
Definition: discountcouponsmanagerbase.php:384
Bitrix\Main\Localization\Loc\getMessage
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:29
Bitrix\Sale\DiscountBase\buildFromBasket
static buildFromBasket(BasketBase $basket, Context\BaseContext $context)
Builds discounts from basket.
Definition: discountbase.php:288
Bitrix\Sale\Registry\REGISTRY_TYPE_ORDER
const REGISTRY_TYPE_ORDER
Definition: sale/lib/registry.php:16
Bitrix\Sale\Fuser\getId
static getId($skipCreate=false)
Return fuserId.
Definition: fuser.php:29
Bitrix\Sale\Registry\getInstance
static getInstance($type)
Definition: sale/lib/registry.php:161
Bitrix\Sale\DiscountCouponsManagerBase\freezeCouponStorage
static freezeCouponStorage()
Disable get coupons for calculate discounts.
Definition: discountcouponsmanagerbase.php:394
Bitrix\Sale\Compatible\DiscountCompatibility\revertUsageCompatible
static revertUsageCompatible()
Reverts usage compatible mode.
Definition: discountcompatibility.php:386
Bitrix\Main\EventResult\SUCCESS
const SUCCESS
Definition: main/lib/eventresult.php:7
Bitrix\Sale\BasketComponentHelper\calculateBasketCost
static calculateBasketCost(Basket $basket)
Definition: basketcomponenthelper.php:647
Bitrix\Sale\Compatible\DiscountCompatibility\stopUsageCompatible
static stopUsageCompatible()
Stops usage compatible mode.
Definition: discountcompatibility.php:372
Bitrix\Sale\PriceMaths\roundPrecision
static roundPrecision($value)
Definition: pricemaths.php:17
Bitrix\Main\Loader\includeModule
static includeModule($moduleName)
Includes module by its name.
Definition: main/lib/loader.php:70
Bitrix\Sale\Compatible\DiscountCompatibility\isUsed
static isUsed()
Check used compatible calculate.
Definition: discountcompatibility.php:360