|
| __construct (\Magento\SalesRule\Model\Rule\Action\Discount\CalculatorFactory $calculatorFactory, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\SalesRule\Model\Utility $utility, ChildrenValidationLocator $childrenValidationLocator=null) |
|
| applyRules ($item, $rules, $skipValidation, $couponCode) |
|
| addDiscountDescription ($address, $rule) |
|
| maintainAddressCouponCode ($address, $rule, $couponCode) |
|
| setAppliedRuleIds (\Magento\Quote\Model\Quote\Item\AbstractItem $item, array $appliedRuleIds) |
|
Definition at line 17 of file RulesApplier.php.
◆ __construct()
- Parameters
-
\Magento\SalesRule\Model\Rule\Action\Discount\CalculatorFactory | $calculatorFactory | |
\Magento\Framework\Event\ManagerInterface | $eventManager | |
\Magento\SalesRule\Model\Utility | $utility | |
ChildrenValidationLocator | null | $childrenValidationLocator | |
Definition at line 47 of file RulesApplier.php.
53 $this->calculatorFactory = $calculatorFactory;
54 $this->validatorUtility = $utility;
55 $this->_eventManager = $eventManager;
56 $this->childrenValidationLocator = $childrenValidationLocator
◆ addDiscountDescription()
addDiscountDescription |
( |
|
$address, |
|
|
|
$rule |
|
) |
| |
Add rule discount description label to address object
- Parameters
-
Address | $address | |
\Magento\SalesRule\Model\Rule | $rule | |
- Returns
- $this
Definition at line 116 of file RulesApplier.php.
119 $ruleLabel =
$rule->getStoreLabel(
$address->getQuote()->getStore());
124 if (strlen(
$address->getCouponCode())) {
◆ applyRule()
applyRule |
( |
|
$item, |
|
|
|
$rule, |
|
|
|
$address, |
|
|
|
$couponCode |
|
) |
| |
|
protected |
- Parameters
-
\Magento\Quote\Model\Quote\Item\AbstractItem | $item | |
\Magento\SalesRule\Model\Rule | $rule | |
\Magento\Quote\Model\Quote\Address | $address | |
mixed | $couponCode | |
- Returns
- $this
Definition at line 145 of file RulesApplier.php.
getDiscountData($item, $rule)
addDiscountDescription($address, $rule)
maintainAddressCouponCode($address, $rule, $couponCode)
setDiscountData($discountData, $item)
◆ applyRules()
applyRules |
( |
|
$item, |
|
|
|
$rules, |
|
|
|
$skipValidation, |
|
|
|
$couponCode |
|
) |
| |
Apply rules to current order item
- Parameters
-
\Magento\Quote\Model\Quote\Item\AbstractItem | $item | |
\Magento\SalesRule\Model\ResourceModel\Rule\Collection | $rules | |
bool | $skipValidation | |
mixed | $couponCode | |
- Returns
- array @SuppressWarnings(PHPMD.CyclomaticComplexity)
Definition at line 70 of file RulesApplier.php.
76 if (!$this->validatorUtility->canProcessRule(
$rule,
$address)) {
80 if (!$skipValidation && !
$rule->getActions()->validate(
$item)) {
81 if (!$this->childrenValidationLocator->isChildrenValidationRequired(
$item)) {
84 $childItems =
$item->getChildren();
86 if (!empty($childItems)) {
87 foreach ($childItems as $childItem) {
88 if (
$rule->getActions()->validate($childItem)) {
99 $appliedRuleIds[
$rule->getRuleId()] =
$rule->getRuleId();
101 if (
$rule->getStopRulesProcessing()) {
106 return $appliedRuleIds;
applyRule($item, $rule, $address, $couponCode)
◆ eventFix()
Fire event to allow overwriting of discount amounts
- Parameters
-
\Magento\SalesRule\Model\Rule\Action\Discount\Data | $discountData | |
\Magento\Quote\Model\Quote\Item\AbstractItem | $item | |
\Magento\SalesRule\Model\Rule | $rule | |
float | $qty | |
- Returns
- $this
Definition at line 227 of file RulesApplier.php.
236 $this->_eventManager->dispatch(
237 'salesrule_validator_process',
244 'result' => $discountData
◆ getDiscountData()
getDiscountData |
( |
|
$item, |
|
|
|
$rule |
|
) |
| |
|
protected |
- Parameters
-
\Magento\Quote\Model\Quote\Item\AbstractItem | $item | |
\Magento\SalesRule\Model\Rule | $rule | |
- Returns
- \Magento\SalesRule\Model\Rule\Action\Discount\Data
We can't use row total here because row total not include tax Discount can be applied on price included tax
Definition at line 161 of file RulesApplier.php.
163 $qty = $this->validatorUtility->getItemQty(
$item,
$rule);
165 $discountCalculator = $this->calculatorFactory->create(
$rule->getSimpleAction());
166 $qty = $discountCalculator->fixQuantity($qty,
$rule);
167 $discountData = $discountCalculator->calculate(
$rule,
$item, $qty);
170 $this->validatorUtility->deltaRoundingFix($discountData,
$item);
177 $this->validatorUtility->minFix($discountData,
$item, $qty);
179 return $discountData;
eventFix(\Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData, \Magento\Quote\Model\Quote\Item\AbstractItem $item, \Magento\SalesRule\Model\Rule $rule, $qty)
◆ maintainAddressCouponCode()
maintainAddressCouponCode |
( |
|
$address, |
|
|
|
$rule, |
|
|
|
$couponCode |
|
) |
| |
Set coupon code to address if $rule contains validated coupon
- Parameters
-
Address | $address | |
\Magento\SalesRule\Model\Rule | $rule | |
mixed | $couponCode | |
- Returns
- $this
Definition at line 205 of file RulesApplier.php.
const COUPON_TYPE_NO_COUPON
◆ setAppliedRuleIds()
- Parameters
-
\Magento\Quote\Model\Quote\Item\AbstractItem | $item | |
| int[] | $appliedRuleIds |
- Returns
- $this
Definition at line 256 of file RulesApplier.php.
261 $item->setAppliedRuleIds(join(
',', $appliedRuleIds));
262 $address->setAppliedRuleIds($this->validatorUtility->mergeIds(
$address->getAppliedRuleIds(), $appliedRuleIds));
263 $quote->setAppliedRuleIds($this->validatorUtility->mergeIds(
$quote->getAppliedRuleIds(), $appliedRuleIds));
◆ setDiscountData()
setDiscountData |
( |
|
$discountData, |
|
|
|
$item |
|
) |
| |
|
protected |
- Parameters
-
\Magento\SalesRule\Model\Rule\Action\Discount\Data | $discountData | |
\Magento\Quote\Model\Quote\Item\AbstractItem | $item | |
- Returns
- $this
Definition at line 187 of file RulesApplier.php.
189 $item->setDiscountAmount($discountData->getAmount());
190 $item->setBaseDiscountAmount($discountData->getBaseAmount());
191 $item->setOriginalDiscountAmount($discountData->getOriginalAmount());
192 $item->setBaseOriginalDiscountAmount($discountData->getBaseOriginalAmount());
◆ $_eventManager
◆ $validatorUtility
The documentation for this class was generated from the following file: