getIdBySku($post['sku']); $response = ''; if($productId){ $_product = Mage::getModel('catalog/product')->load((int)$productId); $response .= 'Product update on PRODUCT_ID -> ' . $productId; }else{ $_product = Mage::getModel('catalog/product'); $_product->setCreatedAt(strtotime('now')) ->setWebsiteIds(array(1)); $response .= 'NEW Product! '; } $_product->addData($post) ->setTypeId($this->_getTypeId($post['type'])) ->setVisibility($this->_getVisibility($post['type'])); try{ $_product->save(); $stockItem = Mage::getModel('cataloginventory/stock_item'); $stockItem->loadByProduct($_product->getId()); $stockItem->setData('is_in_stock', 1) ->setData('qty', 0) ->setData('manage_stock', 0); $stockItem->save(); $_stockItem = Mage::getModel('cataloginventory/stock_item'); $_stockItem->loadByProduct($_product->getId()); $_stockItem->setData('is_in_stock', 1) ->setData('qty', 0) ->setData('manage_stock', 0); $_stockItem->save(); if(!$productId){ $response .= 'ID -> ' . $_product->getId(); } }catch(Exception $e){ $response .= 'An error ocurred: ' . $e->getMessage(); } return $response; } private function _getTypeId($value) { return strtolower($value); } private function _getVisibility($value) { switch ($value) { case 'Search': $visibility = Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH; break; case 'Catalog': $visibility = Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG; break; case 'Both': $visibility = Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH; break; default: $visibility = 1; break; } return $visibility; } }