Akeneo:克隆产品

Akeneo: Clone a product

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

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

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

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

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

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);

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