gpt4 book ai didi

magento - 如何以编程方式在 magento 中为产品分配类别

转载 作者:行者123 更新时间:2023-12-04 14:27:44 26 4
gpt4 key购买 nike

我是 magento 的新手。基本上,我想将多个产品分配给多个类别。我已关注 this post我已经完成了以下工作正常的代码:

   $collection = Mage::getModel('catalog/product')->getCollection();//my coustom collection
$categorys_ids = array(1,2,3,4,5);//Array of ids etc
if ($categorys_ids != NULL && $collection->getData()!= NULL)
{
foreach ($collection as $product)
{
$categories_pd = $product->getCategoryIds();
$product->setCategoryIds(array_merge($product->getCategoryIds(),array($categorys_ids)));
$product->save();
}
}

现在,主要问题是当我为产品分配 set category id 时需要很多时间。我有 200 种产品,这需要两分钟左右的时间,这是很多时间。

我想知道是否有一种方法可以将类别分配给产品数组,而不是将产品分配给类别或可以优化且花费更少时间的东西。

最佳答案

以下是如何将多个产品分配到一个类别并与现有产品合并的方法。
该示例仅针对一个类别,但您可以将其转换为循环以使其适用于更多类别。

$categoryId = 6; 
$category = Mage::getModel('catalog/category')->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID)->load($categoryId);
//get the current products
$products = $category->getProductsPosition();
//now attach the other products.
$newProductIds = array(1,2,3,4,5);
foreach ($newProductIds as $id){
$products[$id] = 1;//you can put any other position number instead of 1.
}
//attach all the products to the category
$category->setPostedProducts($products);
//save the category.
$category->save();

如果您想要更快的方法,您可以在表中直接插入 catalog_category_product .
只需确保在完成后重新索引即可。

关于magento - 如何以编程方式在 magento 中为产品分配类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24548352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com