/** * * @param Varien_Event_Observer $observer * @return Zoffio_WmsApi_Model_Observer */ public function orderItemRemoveAfter(Varien_Event_Observer $observer) { // $event = $observer->getEvent()->getData(); Mage::log(__CLASS__ . "_" . __FILE__ . "_" . __LINE__, null, 'wms-api.log'); Mage::log(__CLASS__ . "_" . __FUNCTION__ . " " . self::$_observerExecutionCounter, null, 'shebin.log'); // ################################################################### /** * Order Item remove after event to handle the remove Order. */ $order = $observer->getOrder(); $order_status = $order->getData('status'); // return if the order status is not set if (!isset($order_status) || trim($order_status) === '') { return $this; } // Do not push Order that are not approved. if ($order_status != 'approved' && $order_status != 'canceled') { Mage::log('Order not pushed in WMS. Status: ' . $order_status, null, 'wms-api.log', true); return $this; } // Get increment Order Id $zoffio_order_id = $order->getIncrementId(); // connect to the WMS API $proxy = new SoapClient(self::$_apiUrl); $sessionId = $proxy->login(self::$_apiUser, self::$_apiPassword); // Check Order existence in WMS try { $order_existWms = $proxy->salesOrderList($sessionId, $order_complexFilter); } catch (Exception $e) { Mage::log($e->getMessage(), null, 'shebin.log'); Mage::log($e->getTraceAsString(), null, 'shebin.log'); } // Do not push the cancell orders that was not approved to WMS if ($order_status == 'canceled' && count($order_existWms) < 1) { /* * Order should not be pushed when the cancelled order is not there * in the WMS. ie., the Order was not approved. */ Mage::log('Order canceled which is not in WMS ' . $zoffio_order_id, null, 'wms-api.log', true); return $this; } if (count($order_existWms) > 0) { $order_item = $observer->getOrderItem(); $order_product = array(); $item_sku = $order_item->getSku(); $item_qty = 0; // remove product $item_price = 0; $order_products[] = array('sku' => $item_sku, 'qty' => $item_qty, 'price' => $item_price, 'order_increment_id' => $zoffio_order_id); try { $result = $proxy->mdnapiOrderupdateOrderItems($sessionId, $order_products); $result = $proxy->salesOrderAddComment($sessionId, $zoffio_order_id, $order_status); } catch (Exception $e) { Mage::log($e->getMessage(), null, 'wms-api.log'); Mage::log($e->getTraceAsString(), null, 'wms-api.log'); } } // ################################################################### return $this; }