/** * Quote item discount calculation process * * @param AbstractItem $item * @return $this */ public function process(AbstractItem $item) { $item->setDiscountAmount(0); $item->setBaseDiscountAmount(0); $item->setDiscountPercent(0); $itemPrice = $this->getItemPrice($item); if ($itemPrice < 0) { return $this; } $appliedRuleIds = $this->rulesApplier->applyRules($item, $this->_getRules(), $this->_skipActionsValidation, $this->getCouponCode()); $this->rulesApplier->setAppliedRuleIds($item, $appliedRuleIds); return $this; }
/** * @param \Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData * @param \Magento\Sales\Model\Quote\Item\AbstractItem $item * @return $this */ protected function setDiscountData($discountData, $item) { $item->setDiscountAmount($discountData->getAmount()); $item->setBaseDiscountAmount($discountData->getBaseAmount()); $item->setOriginalDiscountAmount($discountData->getOriginalAmount()); $item->setBaseOriginalDiscountAmount($discountData->getBaseOriginalAmount()); return $this; }