2

我目前正在尝试设置一个导入脚本,该脚本将从 CSV 文件中读取带有 ID 号的类别列表,我想做的是将类别插入到默认网站的根类别中,但具有特定的 ID,以便我可以通过 ID 号将产品插入类别。

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

我目前正在使用上面链接中的脚本,想知道是否有人能告诉我我在哪里插入 setId() 代码,我已经在几个地方尝试过,它只是取消了 parentId,所以所有类别都是在系统的根目录而不是默认存储的根文件夹中。

我已手动将 parentId 设置为默认站点的主根文件夹,因此它们都应该在同一个位置创建,如果我不手动设置 ID,它确实会在正确的位置创建它们,所以我认为问题只是语法,如果我在正确的位置创建它们时没有设置根文件夹,那么唯一的问题是它们具有动态类别 ID,而不是所需的静态 ID。

提前致谢。布拉德

4

2 回答 2

1

只需在 CSV 文件中添加第三列:

3、子猫、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、位置、级别和路径。

根据您拥有的类别数量,我会或多或少手动执行此操作,在 csv 中再添加一列并添加如下行:

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

祝你好运

于 2012-06-27T20:25:18.340 回答
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();

看起来有点像黑客,但我遇到的其他建议都没有帮助,所以我希望这对某人有所帮助!

于 2013-04-11T03:54:53.017 回答