2013-04-06 53 views
0

我有一個小腳本,可以在我的Magento商店中導入我的賣家庫存。 它適用於簡單的產品和兒童產品,但對可配置產品有一些奇怪的問題。 腳本運行時將隨機產品配置爲「不可用」。 我必須去管理員,選擇所有可配置視圖「目錄/搜索」的產品(確保只選擇父配置產品),並將庫存中的所有屬性更改爲「可用」。Magento可配置產品導入庫存的可用性錯誤csv

有沒有辦法可以不用庫存檢查只能在可配置的產品上工作? 這是我的腳本,任何人都看到錯誤的東西或可以幫助我如何把所有可配置的產品作爲可用的和另一個recoursive檢查?

<?php 
define('MAGE_BASE_DIR', realpath(dirname(__FILE__))); 
require_once(MAGE_BASE_DIR.'/app/Mage.php'); 

$file = MAGE_BASE_DIR."/var/import/stock.csv"; 


$handle = @fopen($file, "r"); 
if ($handle) { 
require_once(MAGE_BASE_DIR.'/app/Mage.php'); 
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 

while (!feof($handle)) { 
    $linea = fgets($handle); 
    $linea2 = str_replace('"', '', $linea); 
    $dati = explode(";", $linea2); 



$ref = trim($dati[0]); 
    $sku = trim($dati[1]); 
    $titolo = trim ($dati[2]); 
    $qta = trim($dati[3]); 
    $disponibile = trim($dati[4]); 

    $product = Mage::getModel('catalog/product'); 
    $stockItem = Mage::getModel('cataloginventory/stock_item'); 

    $productId = $product->getIdBySku($sku); 
    if ($productId !== false) { 
     $product->load($productId); 

     $stockItem->loadByProduct($productId); 
     $stockItem->setData('qty', $qta); 
     $stockItem->setData('is_in_stock', ($qta > 0) ? 1 : 0); 

     try { 
      $stockItem->save(); 
      echo "<span style='color:#ff0000; weight:bold;'>{$sku} elaborato  correttamente.</span> "; 
     } catch(Exception $e) { 
      $countException++; 
      echo "{$sku} errore ({$e->getMessage()}). "; 
     } 
    } else { 
     echo "{$sku} non trovato."; 
    } 

    unset($product); 
    unset($stockItem); 
} 
fclose($handle);  
} else { 
echo "Errore apertura file. ({$file})"; 
exit();} 

?> 

輸入代碼在這裏

感謝所有

回答

0

我認爲有錯誤的輸入數據。 Magento不會爲可配置產品節省數量。我認爲你不應該更新可配置產品的庫存項目。

此外,您正在加載產品型號,但您沒有使用它。嘗試評論此行

$product->load($productId); 

您的腳本應該快得多。