/** * Use our own method to get buyRequest * @param Mage_Sales_Model_Quote_Item $salesItem * @return Varien_Object * */ public function getBuyRequest($salesItem, $option = false) { if ($option) { $option = $salesItem->getOptionByCode('info_buyRequest'); $buyRequest = new Varien_Object($option && $option->getValue() ? unserialize($option->getValue()) : null); $buyRequest->setOriginalQty($buyRequest->getQty())->setQty($salesItem->getQty() * 1); return $buyRequest; } $option = $salesItem->getProductOptionByCode('info_buyRequest'); if (!$option) { $option = array(); } $buyRequest = new Varien_Object($option); $buyRequest->setQty($salesItem->getQtyOrdered() * 1); return $buyRequest; }
/** * Assigns totals values using variables passed in by reference. * * @param Mage_Sales_Model_Quote_Item $item * @param int $weight * @param int $qty * @param int $price * @param $freeMethodWeight * @param bool $useParent * @param bool $ignoreFreeItems * @param array $itemGroup * @param bool $useDiscountValue * @param bool $cartFreeShipping * @param bool $useBase * @param bool $useTax * @param int $basePriceInclTax * @return bool */ public static function getItemInclFreeTotals($item, &$weight, &$qty, &$price, &$freeMethodWeight, $useParent = true, $ignoreFreeItems = true, &$itemGroup = array(), $useDiscountValue = false, $cartFreeShipping = false, $useBase = false, $useTax = false, &$basePriceInclTax = 0) { $adminOrder = false; /** * if order is placed in admin and we're using the sales_order event qty isn't set. * DIMSHIP-143 */ if ($item->getQtyOrdered() && !$item->getQty()) { $item->setQty($item->getQtyOrdered()); $adminOrder = true; } $totals = Mage::helper('wsacommon/totals')->getTotals($item, $useParent, $ignoreFreeItems, $cartFreeShipping); if ($adminOrder) { self::removeQty($item); } if (!$totals) { return false; } else { $weight = $totals->getWeight(); $qty = $totals->getQty(); if (!$useDiscountValue) { $useTax && !$useBase ? $price = $totals->getPriceInclTax() : false; $useTax && $useBase ? $price = $totals->getBasePriceInclTax() : false; !$useTax && !$useBase ? $price = $totals->getPrice() : false; !$useTax && $useBase ? $price = $totals->getBasePrice() : false; } else { $useTax && !$useBase ? $price = $totals->getDiscountedPriceInclTax() : false; $useTax && $useBase ? $price = $totals->getBaseDiscountedPriceInclTax() : false; !$useTax && !$useBase ? $price = $totals->getDiscountedPrice() : false; !$useTax && $useBase ? $price = $totals->getBaseDiscountedPrice() : false; } $freeMethodWeight = $totals->getFreeMethodWeight(); self::processItemGroup($itemGroup, $item); return true; } }