Akeneo 2.1.4: почему Akeneo не позволяет вам изменить семейный вариант?

Когда я импортирую новые модели продуктов в 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 ответ

Эта функция на самом деле находится в резерве Akeneo (хотя нет ETA).
Изменение семейного варианта модели продукта оказывает огромное влияние на каталог и требует много проверок:

  • Вы должны убедиться (по крайней мере), что семейный вариант происходит из той же предыдущей семьи
  • Как насчет значений, поступивших от его предыдущего родителя?
  • Необходимо выполнить задание, чтобы рекурсивно редактировать каждого из его потомков, чтобы применить новые значения / изменение варианта семейства.
  • Что если новый семейный вариант не имеет одинакового количества уровней вариантов?
  • (и еще много вариантов использования...)

По всем этим причинам в настоящее время пока невозможно обновить семейный вариант модели продукта.

Другие вопросы по тегам