/**
  * Gets the item price
  *
  * @param Mage_Sales_Model_Order_Item $item
  * @param string $priceAttr
  * @param boolean $inclTaxes
  * @param boolean $inclDiscounts
  * @return float
  */
 public function getItemPrice($item, $priceAttr, $inclTaxes, $inclDiscounts)
 {
     $base = $priceAttr == 'base' ? 'base_' : '';
     $rowTotal = $item->getData("{$base}row_total");
     $quantity = $item->getQtyOrdered();
     if ($inclTaxes) {
         $rowTotal += $item->getData("{$base}tax_amount");
     }
     if ($inclDiscounts) {
         $rowTotal -= $item->getData("{$base}discount_amount");
     }
     return !empty($quantity) ? max((double) ($rowTotal / $quantity), 0.0) : 0.0;
 }
Beispiel #2
0
 /**
  * Return the order items data in an array for easy processing 
  *
  * @param Mage_Sales_Model_Order_Item $item
  * @param Mage_Sales_Model_Order $order
  * @return array
  */
 protected function getOrderItemData($item, $order)
 {
     $data = array();
     /*
      * get applied coupon type on each iems
      */
     $rule = Mage::getModel('salesrule/rule')->load($item->getData('applied_rule_ids'), 'rule_id');
     $data['ItemId'] = $item->getItemId();
     $data['Name'] = $item->getName();
     $data['Status'] = $item->getStatus();
     $data['SKU'] = $this->getItemSku($item);
     $data['productId'] = $this->getOrderItemProductId($item->getItemId());
     $data['ProductType'] = $this->getOrderItemType($item->getItemId());
     $data['Options'] = $this->getItemOptions($item);
     $data['MRP'] = $item->getData('product_mrp');
     $data['OriginalPrice'] = $this->getOriginalPriceTotal($item);
     $data['Price'] = $item->getData('price');
     $data['QtyOrdered'] = (int) $item->getQtyOrdered();
     $data['QtyBackordered'] = (int) $item->getQtyBackordered();
     $data['QtyInvoiced'] = (int) $item->getQtyInvoiced();
     $data['QtyShipped'] = (int) $item->getQtyShipped();
     $data['QtyCanceled'] = (int) $item->getQtyCanceled();
     $data['QtyRefunded'] = (int) $item->getQtyRefunded();
     $data['Weight'] = $item->getWeight();
     $data['TotalWeight'] = $item->getRowWeight();
     $data['Tax'] = $item->getTaxAmount();
     $data['TaxPercent'] = $item->getTaxPercent();
     if (!empty($rule->getData('voucher_type'))) {
         $data['DiscountType'] = strtoupper($rule->getData('voucher_type'));
     } else {
         $data['DiscountType'] = null;
     }
     $data['Discount'] = $item->getDiscountAmount();
     $data['CatalogDiscount'] = round($this->getCatalogDiscountAmount($item));
     $data['Total'] = $this->getItemTotal($item);
     //Premium Packaging
     $pckOpt = $item->getPckOption();
     if ($pckOpt == 1) {
         $hasPremiumPackaging = "Yes";
     } else {
         $hasPremiumPackaging = "No";
     }
     $data['HasPremiumPackaging'] = $hasPremiumPackaging;
     $data['PremiumSKU'] = $item->getPckSku();
     $data['PremiumQty'] = (int) $item->getPckQty();
     return $data;
 }