Example #1
0
 /**
  *
  * @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;
 }