/** * Returns the item specific values. * * @param Mage_Sales_Model_Order_Item $item The item to get values from * @param Mage_Sales_Model_Order $order The order the item belongs to * @return Array The array containing the item specific values */ protected function getOrderItemValues($item, $order, $itemInc = 1) { return array($itemInc, $item->getName(), $item->getStatus(), $this->getItemSku($item), $this->getItemOptions($item), $this->formatPrice($item->getOriginalPrice(), $order), $this->formatPrice($item->getData('price'), $order), (int) $item->getQtyOrdered(), (int) $item->getQtyInvoiced(), (int) $item->getQtyShipped(), (int) $item->getQtyCanceled(), (int) $item->getQtyRefunded(), $this->formatPrice($item->getTaxAmount(), $order), $this->formatPrice($item->getDiscountAmount(), $order), $this->formatPrice($this->getItemTotal($item), $order)); }
/** * Creates OCL OrderStatus record * * @param Mage_Sales_Model_Order_Item $item * @return string */ protected function _createOrderItemStatus(Mage_Sales_Model_Order_Item $item) { switch ($item->getStatusId()) { case Mage_Sales_Model_Order_Item::STATUS_SHIPPED: return self::STATUS_SHIPPED; case Mage_Sales_Model_Order_Item::STATUS_BACKORDERED: return self::STATUS_BACKORDERED; case Mage_Sales_Model_Order_Item::STATUS_CANCELED: return self::STATUS_CANCELLED; case Mage_Sales_Model_Order_Item::STATUS_PARTIAL: return self::STATUS_PARTIALLY_SHIPPED; case Mage_Sales_Model_Order_Item::STATUS_REFUNDED: case Mage_Sales_Model_Order_Item::STATUS_RETURNED: return self::STATUS_PROCESSING_RETURN; } $orderState = $item->getOrder()->getState(); switch ($orderState) { case Mage_Sales_Model_Order::STATE_NEW: return self::STATUS_NEW; case Mage_Sales_Model_Order::STATE_HOLDED: return self::STATUS_ON_HOLD; case Mage_Sales_Model_Order::STATE_COMPLETE: case Mage_Sales_Model_Order::STATE_CLOSED: return self::STATUS_COMPLETED; } if ($orderState == Mage_Sales_Model_Order::STATE_PROCESSING && $item->getStatus() == Mage_Sales_Model_Order_Item::STATUS_INVOICED) { return $item->getIsVirtual() ? self::STATUS_PAID : self::STATUS_READY_TO_SHIP; } return self::STATUS_NEW; }
/** * 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; }