在单个产品上导入多个类别
Importing multiple categories on single products
我的问题是在导入数据时获取正确的菜单结构。
我使用 Magento 1.9.2.2
我收到这样的 CSV 格式的数据:
"sku","Cat1","Cat2","Cat3","Cat4"
"001","Plumbing","Pressfittings & pipes","Unipipe - MLC","Clutch"
"002","Tools","Handtools|Pipetools","Pipetools|Pipecutters & Scissors","Plastic scissors"
"003","Tools|Plumbing","Handtools|Pipetools|Pipes & Fittings","Pipetools|Calibration|Alupex fittings & tubes","Calibration tools|Tools for alupex"
我做了一个小程序去掉“|”以及之后发生的事情,因此:
"002","Tools","Handtools|Pipetools","Pipetools|Pipecutters & Scissors","Plastic scissors"
变成:
"002","Tools","Handtools","Pipetools","Plastic scissors"
但我很想创建所有底层类别,所以我也为 sku 002 获取了这个:
"002","Tools","Pipetools","Pipecutters & Scissors","Plastic scissors"
我相信 Magento 以某种方式使用了该结构,但我很难弄清楚如何导入它。
我在手动创建类别后尝试正常导入 Magento,但这没有用。
我也试过用 Magmi 创建它们,但我也无法让 Magmi 处理多个主要和子类别。
有没有人看到过这种数据格式并在正确的方向上有线索,如何将它导入菜单结构?
我总共有 2500 个主要类别和子类别,因此手动创建它们根本行不通。
欢迎提出想法、问题或意见! :)
您必须以编程方式创建这些类别,不能通过导入(也许通过 magmi 但我不知道)。将脚本放入您的 magento 根目录并 运行 它。这是您可以继续的方式(需要完善):
$category = Mage::getModel('catalog/category');
$f = fopen($file, "r");
$row = 0;
while ( ($data = fgetcsv( $f, 0, ",") ) !== FALSE) {
$multiple_categories = explode("|", $data);
//save main ones
$category->setName($multiple_categories[0])
->setIsActive(1)
->setDisplayMode('PRODUCTS')
->setIsAnchor(1)
->setAttributeSetId($category->getDefaultAttributeSetId()); //or the id of your attribute set, this is important.
$category->save();
unset($category);
//now deal with children
if(count($multiple_categories) > 1){
i = 1;
foreach($multiple_categories as $subcategory){
$category->setName($multiple_categories[i])
->setIsActive(1)
->setDisplayMode('PRODUCTS')
->setIsAnchor(1)
->setAttributeSetId($category->getDefaultAttributeSetId());
//manage parents now
$_category = Mage::getResourceModel('catalog/category_collection')
->addFieldToFilter('name', $multiple_categories[i-1])
->getFirstItem(); //this needs more work
$parentId = $_category->getId();
$parentCategory = Mage::getModel('catalog/category')->load($parentId);
$category->setPath($parentCategory->getPath());
$category->save();
unset($category);
i++;
}
}
$row++;
}
麦格米'on-the-fly category importer'一定会为您做到这一点。我建议您非常非常仔细地阅读 MAGMI wiki 上的说明:那里有您需要的所有信息,但我经常发现我必须 double-check 和 re-read MAGMI wiki 上的详细信息和示例。
MAGMI 下载安装说明 运行 : http://wiki.magmi.org/index.php?title=Main_Page#Download_and_Install_Magmi
on-the-fly 类别进口商的 MAGMI 说明:http://wiki.magmi.org/index.php?title=On_the_fly_category_creator/importer
如果您之前没有使用过 MAGMI,那么从一个简单的 CSV 开始,以确保您的安装设置正确,并且您能够导入一个创建简单产品的 csv。
我认为您面临的主要挑战是将问题中描述的 CSV 文件格式转换为 MAGMI 可以使用的 CSV 格式。或者,您可以在 MAGMI 中编写代码来转换 CSV 数据,但我认为如果这是一个 one-off 过程,那可能会过于复杂。
我不确定我是否遵循了您的 CSV 示例的语法,但如果第一个字符串始终是顶级类别,然后竖线符号表示 'subcategory follows',那么对于
"003","Tools|Plumbing","Handtools|Pipetools|Pipes & Fittings","Pipetools|Calibration|Alupex fittings & tubes","Calibration tools|Tools for alupex"
您想要制作这样的 MAGMI CSV
"sku","categories"
"003","Tools::1::1::1/Plumbing::1::0::1;;Handtools::1::1::1/Pipetools::1::0::1/Pipes & Fittings::1::0::1;;Pipetools::1::1::1/Calibration::1::0::1/Alupex fittings & tubes::1::0::1;;Calibration tools::1::1::1/Tools for alupex::1::0::1"
晦涩的::1::1::1
分别表示is_active
、is_anchor
、include_in_menu
,可以省略。
这是 none 我的事,但我对子类别标签 'Tools for alupex'
中的两个空格深感担忧(不要在 lower-case Alupex 或 AluPEX 上开始我)
我的问题是在导入数据时获取正确的菜单结构。
我使用 Magento 1.9.2.2
我收到这样的 CSV 格式的数据:
"sku","Cat1","Cat2","Cat3","Cat4"
"001","Plumbing","Pressfittings & pipes","Unipipe - MLC","Clutch"
"002","Tools","Handtools|Pipetools","Pipetools|Pipecutters & Scissors","Plastic scissors"
"003","Tools|Plumbing","Handtools|Pipetools|Pipes & Fittings","Pipetools|Calibration|Alupex fittings & tubes","Calibration tools|Tools for alupex"
我做了一个小程序去掉“|”以及之后发生的事情,因此:
"002","Tools","Handtools|Pipetools","Pipetools|Pipecutters & Scissors","Plastic scissors"
变成:
"002","Tools","Handtools","Pipetools","Plastic scissors"
但我很想创建所有底层类别,所以我也为 sku 002 获取了这个:
"002","Tools","Pipetools","Pipecutters & Scissors","Plastic scissors"
我相信 Magento 以某种方式使用了该结构,但我很难弄清楚如何导入它。
我在手动创建类别后尝试正常导入 Magento,但这没有用。 我也试过用 Magmi 创建它们,但我也无法让 Magmi 处理多个主要和子类别。
有没有人看到过这种数据格式并在正确的方向上有线索,如何将它导入菜单结构?
我总共有 2500 个主要类别和子类别,因此手动创建它们根本行不通。
欢迎提出想法、问题或意见! :)
您必须以编程方式创建这些类别,不能通过导入(也许通过 magmi 但我不知道)。将脚本放入您的 magento 根目录并 运行 它。这是您可以继续的方式(需要完善):
$category = Mage::getModel('catalog/category');
$f = fopen($file, "r");
$row = 0;
while ( ($data = fgetcsv( $f, 0, ",") ) !== FALSE) {
$multiple_categories = explode("|", $data);
//save main ones
$category->setName($multiple_categories[0])
->setIsActive(1)
->setDisplayMode('PRODUCTS')
->setIsAnchor(1)
->setAttributeSetId($category->getDefaultAttributeSetId()); //or the id of your attribute set, this is important.
$category->save();
unset($category);
//now deal with children
if(count($multiple_categories) > 1){
i = 1;
foreach($multiple_categories as $subcategory){
$category->setName($multiple_categories[i])
->setIsActive(1)
->setDisplayMode('PRODUCTS')
->setIsAnchor(1)
->setAttributeSetId($category->getDefaultAttributeSetId());
//manage parents now
$_category = Mage::getResourceModel('catalog/category_collection')
->addFieldToFilter('name', $multiple_categories[i-1])
->getFirstItem(); //this needs more work
$parentId = $_category->getId();
$parentCategory = Mage::getModel('catalog/category')->load($parentId);
$category->setPath($parentCategory->getPath());
$category->save();
unset($category);
i++;
}
}
$row++;
}
麦格米'on-the-fly category importer'一定会为您做到这一点。我建议您非常非常仔细地阅读 MAGMI wiki 上的说明:那里有您需要的所有信息,但我经常发现我必须 double-check 和 re-read MAGMI wiki 上的详细信息和示例。
MAGMI 下载安装说明 运行 : http://wiki.magmi.org/index.php?title=Main_Page#Download_and_Install_Magmi
on-the-fly 类别进口商的 MAGMI 说明:http://wiki.magmi.org/index.php?title=On_the_fly_category_creator/importer
如果您之前没有使用过 MAGMI,那么从一个简单的 CSV 开始,以确保您的安装设置正确,并且您能够导入一个创建简单产品的 csv。
我认为您面临的主要挑战是将问题中描述的 CSV 文件格式转换为 MAGMI 可以使用的 CSV 格式。或者,您可以在 MAGMI 中编写代码来转换 CSV 数据,但我认为如果这是一个 one-off 过程,那可能会过于复杂。
我不确定我是否遵循了您的 CSV 示例的语法,但如果第一个字符串始终是顶级类别,然后竖线符号表示 'subcategory follows',那么对于
"003","Tools|Plumbing","Handtools|Pipetools|Pipes & Fittings","Pipetools|Calibration|Alupex fittings & tubes","Calibration tools|Tools for alupex"
您想要制作这样的 MAGMI CSV
"sku","categories"
"003","Tools::1::1::1/Plumbing::1::0::1;;Handtools::1::1::1/Pipetools::1::0::1/Pipes & Fittings::1::0::1;;Pipetools::1::1::1/Calibration::1::0::1/Alupex fittings & tubes::1::0::1;;Calibration tools::1::1::1/Tools for alupex::1::0::1"
晦涩的::1::1::1
分别表示is_active
、is_anchor
、include_in_menu
,可以省略。
这是 none 我的事,但我对子类别标签 'Tools for alupex'
中的两个空格深感担忧(不要在 lower-case Alupex 或 AluPEX 上开始我)