【问题标题】:Akeneo: Clone a productAkeneo:克隆产品
【发布时间】:2015-11-20 09:41:16
【问题描述】:

我们需要在 Akeneo 1.4 中克隆一个产品(只有 SKU 应该改变)。

我在 Akeneo 论坛中发现了类似的问题(12),但最有趣的部分没有答案:

  • 克隆产品 (PimCatalogProduct)
  • 克隆产品值列表 (PimCatalogProductValue) 和属性
  • ...

我应该为此使用ProductPropertyCopierProductTemplateBuilder、...吗?

使用ProductPropertyCopier时,目标属性是否已经存在?

现在 Akeneo 1.4 中是否有更简单的方法来克隆产品?

【问题讨论】:

    标签: akeneo


    【解决方案1】:

    Akeneo 没有提供复制产品的本机方式,但这是一种常见需求,我们知道这个问题,我们可能会在未来优先处理它。

    复制产品的最简单方法是对其进行规范化,然后立即对其进行非规范化:

    $normalizedProduct = $this->serializer->normalize($sourceProduct, 'csv');
    $duplicatedProduct = $this->serializer->denormalize(
        $normalizedProduct,
        'Pim\Bundle\CatalogBundle\Model\Product',
        'csv',
        [
             'entity' => new Pim\Bundle\CatalogBundle\Model\Product()
        ]
    );
    
    // You can now modify the product identifier :)
    
    $this->productSaver->save($duplicatedProduct);
    

    您的产品现已复制并可以使用了!

    【讨论】:

    • 太好了,没想到这么简单的解决方案,谢谢!
    • denormalize 不适用于 Akeneo 1.5:“无法对 Pim\Bundle\CatalogBu​​ndle\Model\Product 类型的对象进行非规范化,找不到支持的规范化器。”。您能否给我一个提示,如何将其迁移到 Akeneo 1.5?
    • 来自 Akeneo 论坛的 Ronan:“该方法仍然有效,但 Product 类已被移动。尝试将 Pim\Bundle\CatalogBu​​ndle\Model\Product 更改为 Pim\Component\Catalog\Model\Product在你的代码中。”
    猜你喜欢
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    相关资源
    最近更新 更多