magento的php脚本

magento的php脚本,php,magento,categories,Php,Magento,Categories,我有一家magento商店,拥有3000多种产品和1000多种商品 Category I Category 1 Category 2 Category II Category 3 Category 4 我的问题是,所有的产品都只属于最深的类别。例如:类别3中的产品也必须属于类别II,但它不是。有没有办法通过所有产品的php脚本来实现这一点 提前谢谢 您可以创建一个简单的模块,该模块将包含一个数据安装脚本,其中包含以下内容: $categoryi

我有一家magento商店,拥有3000多种产品和1000多种商品

Category I
      Category 1
      Category 2
Category II
      Category 3
      Category 4
我的问题是,所有的产品都只属于最深的类别。例如:类别3中的产品也必须属于类别II,但它不是。有没有办法通过所有产品的php脚本来实现这一点


提前谢谢

您可以创建一个简单的模块,该模块将包含一个数据安装脚本,其中包含以下内容:

$categoryi = array(6);
$category2 = 20;

$category = Mage::getModel('catalog/category')->load($category2);
/* @var $category Mage_Catalog_Model_Category */

$productsCollection = $category->getProductCollection();
/* @var $productsCollection Varien_Data_Collection_Db */

$products = $productsCollection->getItems();
/* @var $products array of Mage_Catalog_Model_Product */

foreach($products as $product) {
    /* @var $product Mage_Catalog_Model_Product */
    $categories = $product->getCategoryIds();
    $categories = array_unique(array_merge($categories, $categoryi));
    $product->setCategoryIds($categories);
    $product->save();
}
基本上,$categoryi是您希望分配给产品的类别$category2是从中检索产品的类别


这个脚本只是一个例子。您将不得不修改它以适应您的类别ID,并可能添加一个循环,使其适用于您的所有类别

您只需激活“在类别中定位”选项,即可在其上显示子类别产品。

我认为不需要任何编码。您可以尝试以下操作:

公开组1 转到显示设置 设置为从“否”到“是” 保存类别1 转到索引管理 重新索引索引项类别产品 检查前端。子类别中的产品现在也应显示在父类别中。如果有效,请更改所有类别的设置。或者制作一个脚本来更新此类别设置


祝你好运

正确的做法是,尽管需要一些计划来确保它移动正确的产品:你能发布一些你的实际结构、关于这个问题的尝试、最少的可验证的例子吗…?最简单的可能是购买一些现有的模块,像这样:甚至可能有免费的替代品。这是当前的商店:你需要浏览所有的父类别才能找到最深类别中的产品。设置父类别作为锚来显示子类别中的产品怎么样??