2012-06-27 62 views
2

我目前正在嘗試設置一個導入腳本,它將從CSV文件中讀取具有ID號的類別列表,並且我想要將類別插入默認的根類別網站,但具有特定的ID,以便我可以通過ID號將產品插入類別。Magento類別導入手動指定ID

http://www.sonassi.com/knowledge-base/quick-script-batch-create-magento-categories/

我目前使用從上面的鏈接腳本,並想知道是否有人能告訴我在哪裏,我插入SETID()的代碼,我已經在好幾個地方嘗試過了,它只是取消了parentId因此所有類別都在系統的根目錄中創建,而不是在默認存儲的根目錄中創建。

我已經手動將parentId設置爲默認網站的主根文件夾,因此它們應該全部在相同的位置創建,如果我沒有手動設置ID,它會在正確的位置創建它們,所以我認爲問題只是語法,唯一的問題,如果我沒有設置根文件夾,當他們在正確的地方創建他們有動態類別ID不是所需的靜態。

在此先感謝。 布拉德

回答

1

就在第三列添加到您的CSV文件:

3,SUBCAT,2700

然後用ENTITY_ID到腳本中添加一行。

$data['general']['path'] = $line[0]; 
$data['general']['name'] = $line[1]; 
$data['general']['entity_id'] = $line[2]; 
$data['general']['meta_title'] = ""; 

如果你想將類別添加到正確的位置,你應該看看parent_id,position,level和path。

取決於你有多少種類有,我會做更多的還是人工少,一個多列添加到CSV和添加一行:

$data['general']['path'] = $line[3]; 

祝你好運與此

+0

感謝您的快速回復,但不幸的是,這是行不通的,因爲行的格式必須是特定的,以便當前類別的ID是第一個字段。雖然我不認爲這是我將$ parentId更改爲靜態值的問題,然後只是將該列重新分配給一個新變量,我正在使用它來嘗試設置類別的標識。如果我沒有指定ID,則在正確的位置創建類別,但只要使用setId()方法,它就默認爲網站的根,因此我想知道我是否使用了正確的方法。 – Bradrob

1

我如果我使用setId()方法(或其他設置ID的方式),我的類別將永遠不會出現嵌套在其定義的父類別/路徑下。我發現我必須將它分爲兩​​部分:首先設置ID並保存類別,然後設置路徑並重新保存類別。

$categoryID = 999; //Your category ID 
$categoryName = 'Category Name'; //Your category name 

$parentCategory = Mage::getModel('catalog/category')->load(888); //Your parent category's ID 

//1st save with initial category information (inc. ID) 
$category = new Mage_Catalog_Model_Category(); 
$category->setName($categoryName); 
$category->setId($categoryID); 
$category->setPath($parentCategory->getPath()); //Shouldn't be needed here 
$category->save(); 

//2nd save with correct path underneath the parent category 
$category->setPath($parentCategory->getPath() . '/' . $categoryID); 
$category->save(); 

好像有點黑客,但沒有任何其他的建議,我曾經遇到過幫助,所以我希望這可以幫助別人!