Example #1
0
 /**
  * Update stock data of multiple products at once
  *
  * @param array $itemData
  * @return array
  */
 public function inventoryPush($itemData)
 {
     if (isset($itemData['records'])) {
         $itemData = $itemData['records'];
     }
     $response = array();
     $response['records'] = array();
     $orderItemsCollection = Mage::getResourceModel('retailops_api/api')->getRetailopsReadyOrderItems();
     $orderItems = $this->filterOrderItems($orderItemsCollection);
     $productIds = $this->getProductIds($itemData);
     foreach ($itemData as $item) {
         try {
             $itemObj = new Varien_Object($item);
             Mage::dispatchEvent('retailops_inventory_push_record', array('record' => $itemObj));
             $result = array();
             $result['sku'] = $itemObj->getSku();
             $itemObj->setQty($itemObj->getQuantity());
             // api update accepts qty not quantity parameter
             $qty = $itemObj->getQty();
             if (isset($orderItems[$itemObj->getSku()])) {
                 $qty = $itemObj->getQty() - $orderItems[$itemObj->getSku()];
             }
             $itemObj->setQty($qty);
             Mage::dispatchEvent('retailops_inventory_push_record_qty_processed', array('record' => $itemObj));
             $this->update($productIds[$itemObj->getSku()], $itemObj->getData());
             $result['status'] = RetailOps_Api_Helper_Data::API_STATUS_SUCCESS;
         } catch (Mage_Core_Exception $e) {
             $result['status'] = RetailOps_Api_Helper_Data::API_STATUS_FAIL;
             $result['error'] = array('code' => $e->getCode(), 'message' => $e->getMessage());
         }
         $response['records'][] = $result;
     }
     return $response;
 }