Magento将产品分类为类别

Dan*_*lai 3 product magento categories mass-assignment

正如标题所说,我需要将产品批量分配到一个类别,而从管理员我只能一次编辑一个产品; 我不知道为什么它不能从类别页面的"类别产品"选项卡中大量添加它们.
这就是为什么我需要另一种快速的方法,比如使用phpMyAdmin或类似的东西.

有帮助吗?

提前致谢!

nac*_*ito 10

我在Magento之外创建了一个简单的脚本.请务必首先在单个产品上进行测试,并确保它看起来像您期望的那样.

// Load Magento
require_once 'path/to/app/Mage.php';
Mage::app();

// $productIds is an array of the products you want to modify.
// Create it however you want, I did it like this...
$productsIds = Mage::getModel('catalog/product')->getCollection()
    ->addAttributeToFilter('sku', array('like' => 'something'))
    ->getAllIds();

// Array of category_ids to add.
$newCategories = array(20);
foreach ($productIds as $id) {
    $product = Mage::getModel('catalog/product')->load($id);
    $product->setCategoryIds(
        array_merge($product->getCategoryIds(), $newCategories)
    );
    $product->save();
}
Run Code Online (Sandbox Code Playgroud)

如果您希望覆盖产品的现有类别,请更改array_merge(...)为just $newCategories.


RTh*_*mas 6

我会回避从数据库方面解决这个问题.如果您确实朝这个方向前进,请确保并进行大量备份并在低使用率期间执行此操作.

上Magento的论坛以下螺纹标识同样的问题.一张海报通过示例推荐了一个原始的sql方法.再次,我会小心 - 确保你采取备份.

我最喜欢的帖子(由Magento MVP发布):

进入您不想要的类别,找到产品列表.单击要删除的产品上的复选框,然后从小下拉列表中选择删除.

现在进入您想要的类别,转到产品列表.选择NO下拉列表,以显示不在类别中的项目.您可能必须进行选择性搜索以限制内容并在几次迭代中执行.单击复选框并告诉它添加内容.