2013-10-10 85 views
0

我有我使用的SKU爲它的一些PHP代碼:檢查如果產品已存在

$sku = $id 
$_product=Mage::getModel('catalog/product')->loadByAttribute('sku',$sku); //Get Product by ID (ASIN) 
$qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty(); //if in stock 
$_prodcats = $_product->getCategoryIds(); 

我想添加到這個代碼,如果$ SKU是錯誤的(與$ _產品線數據庫未找到)例如,如果$ sku不存在,將其手動更改爲$ sku =「909010」;

感謝您的幫助

回答

6
function get_product($sku){ 

$product=Mage::getModel('catalog/product')->loadByAttribute('sku',$sku); 
    if (!$product){ 
     $new_sku = '909010'; // If Real SKU doesn`t exsist, change to '909010' 
     $product=Mage::getModel('catalog/product')->loadByAttribute('sku',$new_sku); 
    } 
    return $product;   
} 

var_dump(get_product('your-sku')); // Real Sku 
+1

如果你需要一個更快的方法來檢查,如果SKU不存在,你可以做如下因素:'如果(法師:: getModel(! '目錄/產品') - > getIdBySku($ SKU))'。如果您正在遍歷大型數組,並且只需要創建新產品,並忽略已存在的產品,則這非常有用。 –

1
$sku = $id 
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku); //Get Product by ID (ASIN) 

$_product = !empty($product) ? $product : Mage::getModel('catalog/product')->loadByAttribute('sku','YOUR-ERROR-SKU'); 

$qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty(); //if in stock 
$_prodcats = $_product->getCategoryIds(); 
2
$sku = $id 
$_product=Mage::getModel('catalog/product')->loadByAttribute('sku',$sku); //Get Product by ID (ASIN) 
if(!is_object($_product) || !$_product->getId()){ 
    //do your stuff here 
} 
$qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty(); //if in stock 
$_prodcats = $_product->getCategoryIds(); 
相關問題