/**
  * 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;
 }
示例#2
0
 /**
  * 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;
     }
 }