Akeneo:克隆产品
Akeneo: Clone a product
我们需要在 Akeneo 1.4 中克隆一个产品(只有 SKU 应该改变)。
我在 Akeneo 论坛中发现了类似的问题 (1, 2),但最有趣的部分没有答案:
- 克隆产品 (PimCatalogProduct)
- 克隆产品值列表 (PimCatalogProductValue) 和属性
- ...
我应该使用 ProductPropertyCopier
、ProductTemplateBuilder
、...吗?
使用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);
您的产品现已复制并可以使用!
我们需要在 Akeneo 1.4 中克隆一个产品(只有 SKU 应该改变)。
我在 Akeneo 论坛中发现了类似的问题 (1, 2),但最有趣的部分没有答案:
- 克隆产品 (PimCatalogProduct)
- 克隆产品值列表 (PimCatalogProductValue) 和属性
- ...
我应该使用 ProductPropertyCopier
、ProductTemplateBuilder
、...吗?
使用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);
您的产品现已复制并可以使用!