Pim-community-dev: [Вопрос] Калькулятор полноты

Созданный на 18 апр. 2016  ·  5Комментарии  ·  Источник: akeneo/pim-community-dev

Я задаю вопрос

Мы используем версию PIM 1.4 в нашей интеграции и планируем обновление до 1.5 через месяц.

Сказка
У нас есть настраиваемая сущность продукта, которая добавляет новое отношение к продукту. Это однонаправленное отношение ManyToMany через таблицу соединений.

Вопрос
Как лучше всего обновить / перезаписать калькулятор полноты, чтобы иметь возможность добавлять дополнительные данные о продукте в его вычисления. Может быть, есть что-то вроде конфигурационного файла. Может быть есть другой лучший способ сделать это.

Спасибо!

question

Все 5 Комментарий

Привет @ a2xchip ,

К сожалению, на данный момент вам нужно переопределить CompletenessGenerator . Это печально, потому что это одно из последних мест в PIM, где настраиваемые типы атрибутов нелегко обрабатывать через реестр. Мы знаем, что нам нужно переписать эту часть, она в нашем списке дел, но я пока не могу предоставить вам расчетное время прибытия.

Эта часть довольно деликатная и сложная. Каков характер данных, полноту которых вы хотите рассчитать?

Если он связан с ProductValue, я предлагаю вам сделать то же самое, что мы сделали для цен. Взгляните на метод prepareCompletePrices . Это может быть хорошим началом того, чего вам нужно достичь. Вам также необходимо переопределить методы getExtraJoins и getExtraConditions чтобы присоединиться к новым таблицам и запросить их.

Не стесняйтесь объяснять подробнее вашу проблему или приводить пример, чтобы мы могли помочь вам лучше;)

Привет @jjanvier

Спасибо за быстрый и полный ответ! Думаю, это дает мне хорошее начало. Данные связаны не с сущностью стоимости продукта, а с сущностью продукта.

Я добавил вкладку изображений в форму редактирования продукта и создал свойство изображений (Коллекция), связанное с интерфейсом fileinfo.

manyToMany:
        images:
            targetEntity: Akeneo\Component\FileStorage\Model\FileInfoInterface

PS
Для экспорта мы используем EnhanceConnector, настроенный на экспорт 100% готовой продукции. И я не уверен, как сделать так, чтобы на 100% готовый продукт было хотя бы одно изображение, связанное с ним.

Вы должны посмотреть на метод getMainSqlPart @ a2xchip. Это генерирует сложный SQL-запрос, который заполнит полноту. Возможно, это сработает в вашем случае, просто переопределив методы getExtraJoins и getExtraConditions о которых я упоминал ранее. Переопределив эти 2 метода, вы добавите дополнительную логику в getMainSqlPart .

Но это зависит от ваших потребностей. Это зависит от того, считаете ли вы свой продукт завершенным, когда заполнено хотя бы одно (или 2, или 3, или X) или все изображения.

Итак, мой совет - сначала начать переопределить 2 метода getExtraJoins и getExtraConditions чтобы понять, как работает полнота. Если вам нужна дополнительная логика, ознакомьтесь с нашими ценами.

Надеюсь, мое объяснение вам поможет ^^
Не стесняйтесь возвращаться сюда, если у вас возникнут трудности;)

@jjanvier Большое спасибо, я буду следовать вашим рекомендациям :-) Думаю, они сэкономят мне много времени!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги