/** * Add discounts for shipping discount amount. * * Does not use the eb2ccore/discount helper as shipping discount * data may not have been collected to be used by the helper - both * use the same event so order between the two cannot be guarantted * without introducing a hard dependency. In this case, however, * discount data is simple enough to collect independently. * * @param ITaxDiscountContainer * @return ITaxDiscountContainer */ protected function _addShippingDiscount(IDiscountContainer $discountContainer) { $shippingDiscountAmount = $this->_address->getShippingDiscountAmount(); if ($shippingDiscountAmount) { $discounts = $discountContainer->getDiscounts(); $shippingDiscount = $discounts->getEmptyDiscount()->setAmount($shippingDiscountAmount); $discounts[$shippingDiscount] = $shippingDiscount; $discountContainer->setDiscounts($discounts); } return $discountContainer; }
/** * Transfer discount data from Mage_Sales_Model_Qoute_Addresses * or Mage_Sales_Model_Quote_Items to TaxDutyFee\IDiscountContainer. * * @param Varien_Object * @param ITaxDiscountContainer * @return ITaxDiscountContainer */ public function transferTaxDiscounts(Varien_Object $salesObject, ITaxDiscountContainer $discountContainer) { /** @var ITaxDiscountIterable $discounts */ $discounts = $discountContainer->getDiscounts(); $data = $this->getDiscountsData($salesObject); foreach ($data as $loneDiscountData) { $discount = $this->_fillOutTaxDiscount($discounts->getEmptyDiscount(), $loneDiscountData); $discounts[$discount] = $discount; } return $discountContainer->setDiscounts($discounts); }