public function setQuoteItem(Mage_Sales_Model_Quote_Item $item) { $this->setQuoteItemId($item->getId()); $this->setQuoteId($item->getQuoteId()); $this->setProductId($item->getProductId()); $this->setStoreId($item->getStoreId()); $this->setQty($item->getQty()); $this->setIsActive(true); $expireDateTime = Mage::helper('zab_timedcart')->getExpireDatetime(now()); $this->setExpireDatetime($expireDateTime); return $this; }
/** * Make sure that a gift is only added once, create a free item and add it to the cart. * * @param Mage_Sales_Model_Quote $quote * @param Mage_Sales_Model_Quote_Item $item * @param Mage_SalesRule_Model_Rule $rule */ protected static function _handleGift(Mage_Sales_Model_Quote $quote, Mage_Sales_Model_Quote_Item $item, Mage_SalesRule_Model_Rule $rule) { if ($rule->getIsApplied()) { return; } $qty = (int) $rule->getDiscountAmount(); if ($qty) { $freeItem = self::_getFreeQuoteItem($quote, $rule->getGiftSku(), $item->getStoreId(), $qty); self::_addAndApply($quote, $freeItem, $rule); } }
/** * Add row total item amount to subtotal * * @param Mage_Sales_Model_Quote_Address $address * @param Mage_Sales_Model_Quote_Item $item * @return $this */ protected function _addSubtotalAmount(Mage_Sales_Model_Quote_Address $address, $item) { if ($this->_getTaxDataHelper()->priceIncludesTax($item->getStoreId())) { $subTotal = $item->getRowTotalInclTax() - $item->getRowTax(); $baseSubTotal = $item->getBaseRowTotalInclTax() - $item->getBaseRowTax(); $address->setTotalAmount('subtotal', $address->getTotalAmount('subtotal') + $subTotal); $address->setBaseTotalAmount('subtotal', $address->getBaseTotalAmount('subtotal') + $baseSubTotal); } else { $address->setTotalAmount('subtotal', $address->getTotalAmount('subtotal') + $item->getRowTotal()); $address->setBaseTotalAmount('subtotal', $address->getBaseTotalAmount('subtotal') + $item->getBaseRowTotal()); } $address->setSubtotalInclTax($address->getSubtotalInclTax() + $item->getRowTotalInclTax()); $address->setBaseSubtotalInclTax($address->getBaseSubtotalInclTax() + $item->getBaseRowTotalInclTax()); return $this; }