Akeneo 2.1.4:为什么Akeneo不允许你改变家庭变体?

时间:2018-02-26 15:56:11

标签: akeneo pim

当我将新产品模型导入Akeneo并且我想更改系列变体时,我收到以下消息:

15:25:11 WARNING   [batch] The Pim\Component\Connector\Processor\Denormalization\ProductModelProcessor was unable to handle the following item: 
[family_variant => name_of_family_variant] 
(REASON: family_variant: Property "family_variant" cannot be modified, "name_of_family_variant" given.) [] []

现在我可以通过扩展Pim\Component\Catalog\Updater\ProductModelUpdater来绕过这个例外:

/**
 * @param ProductModelInterface $productModel
 * @param array $data
 * @param array $options
 * @return $this|\Akeneo\Component\StorageUtils\Updater\ObjectUpdaterInterface
 */
public function update($productModel, array $data, array $options = [])
{
    try {
        return parent::update($productModel, $data, $options);
    } catch (ImmutablePropertyException $exception) {
        // Allow changing of the family_variant field for a product model
        if ($exception->getPropertyName() === 'family_variant') {
            if ($familyVariant = $this->familyVariantRepository->findOneByIdentifier($exception->getPropertyValue())) {
                $productModel->setFamilyVariant($familyVariant);
            }
        }

        return $this;
    }
}

但是我想知道(也许Akeneo团队的某个人可以回答这个问题)

  • 为什么我不允许更改系列变体?
  • 无论如何,这可能会产生什么副作用?

1 个答案:

答案 0 :(得分:1)

此功能实际上是Akeneo积压(尽管没有ETA) 更改产品模型的系列变体会产生巨大的目录影响,需要进行大量检查:

  • 您应该(至少)确保家庭变体来自以前的同一家庭
  • 来自以前的父级
  • 的价值怎么样?
  • 应运行作业以递归方式编辑每个其后代以应用新值/更改系列变体
  • 如果新的系列变体不同的变种等级计数会怎样?
  • (以及更多用例...)

由于所有这些原因,目前无法更新产品型号的系列变体尚未