我目前正在尝试设置导入脚本,该脚本将从CSV文件中读取带有ID号的类别列表,我想要做的是将类别插入默认网站的根类别,但具有特定的ID这样我就可以按ID号将产品插入类别。
http://www.sonassi.com/knowledge-base/quick-script-batch-create-magento-categories/
我目前正在使用上面链接中的脚本,想知道是否有人可以告诉我在哪里插入setId()代码,我在几个地方尝试过它只是取消了parentId所以所有类别在系统的根目录中创建,而不是在默认存储的根文件夹中创建。
我已经手动将parentId设置为默认站点的主根文件夹,因此它们都应该在同一个地方创建,如果我没有手动设置ID,它会在正确的位置创建它们,所以我认为问题只是语法,唯一的问题是如果我在正确的位置创建根文件夹时没有设置它们,那么它们的动态类别ID不是必需的静态文件夹。
先谢谢。 布拉德
答案 0 :(得分: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];
祝你好运
答案 1 :(得分: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();
看起来有点像黑客,但我遇到的其他任何建议都没有帮助,所以我希望这有助于某人!