在Magento中复制和粘贴类别

时间:2010-06-17 18:35:02

标签: php magento

我想将我的第一个类别复制到Magento的第二个类别。 我该怎么办?

谢谢, 韦斯利。

9 个答案:

答案 0 :(得分:4)

按代码:

<?php
$category = Mage::getModel('catalog/category')
    ->load(123); // The ID of the category you want to copy.
$copy = clone $category;
$copy->setId(null) // Remove the ID.
     ->save();

答案 1 :(得分:2)

如果您想以编程方式执行此操作,则可以使用Magento API。 使用:

catalog_category.info - to read a category
catalog_category.create - to create a new one by copying data from existing.

以下是category API

的文档

答案 2 :(得分:2)

我不会克隆类别对象,而是做类似这样的事情(使用Magento API - http://www.magentocommerce.com/wiki/doc/webservices-api/catalog_category):

  • 获取必须复制的类别

    $source_category = Mage::getModel('catalog/category')->load($id);
    
  • 使用API​​

    创建新类别
    $CategoryApi = new Mage_Catalog_Model_Category_Api();
    $parent_id = /* Location for the new category */
    
    $new_category_id = $CategoryApi->create(
        $parent_id,
        array(
            /* Attributes to fill with source category values. */
        )
    );
    
  • 获取源类别产品并再次使用API​​将其置于新类别中。

    $products = $CategoryApi->assignedProducts(source_category->getId());
    
    foreach($products as $product)
    {
        $CategoryApi->assignProduct($product->getId())
    }
    
  • 上面必须以递归方式为每个子类别完成。

注意:使用API​​可确保在升级Magento核心时代码仍然有效。

答案 3 :(得分:2)

此处的所有回复均未完整。我做了一个脚本,完成了创建新类别,子类别并为其分配产品的总数。

<link rel="stylesheet" type="text/css" href=""https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

答案 4 :(得分:0)

您无需使用管理界面。使用类别api创建脚本。

答案 5 :(得分:0)

很抱歉,您无法通过界面直接在Magento管理面板中复制/粘贴类别,目录产品可以借助“复制”按钮提供该界面。

我想你需要编写一个脚本来获取类别详细信息,首先加载具有所需类别ID的Category模型。

答案 6 :(得分:0)

forum post包含从CSV文件导入类别的说明和代码。

祝你好运, JD

答案 7 :(得分:0)

我认为您想要从特定的猫中导出产品并将其导入另一个。如果它是这样使用下面的步骤:

  • 登录magento后端
  • 导航至系统 - &gt;导入/导出
  • 为您的猫创建新的高级个人资料
  • 将其导出

现在以相同的方式导入

答案 8 :(得分:0)

有时我们需要将相同的产品复制到另一个类别。(就像我们有两个相同类别或同一商店的商店需要将类别产品复制到其他地方)

从后端添加产品是非常耗时的过程,您可以通过代码来完成。

您可以使用以下代码在根目录copy-products.php中创建一个文件来复制产品:

<?php
require_once ( "app/Mage.php" );
umask(0);

// Initialize Magento
Mage::app();

$category = Mage::getModel('catalog/category');
$category->load('24'); // Category id you want to copy
$collection = $category->getProductCollection();
$collection->addAttributeToSelect('*');
foreach ($collection as $product) {
       $product->getId();// Now get category ids and add a specific category to them and save?
       $categories = $product->getCategoryIds();
       $categories[] = 29; // Category id you want to add
       $product->setCategoryIds($categories);
       $product->save();
}
?>