/** * 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; }
/** * 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; }