Pim-community-dev: Ошибки при экспорте продукта в pdf со страницы обогащения

Созданный на 16 июн. 2020  ·  6Комментарии  ·  Источник: akeneo/pim-community-dev

:bug: Сообщаю об ошибке :bug:

Версия Акенео: CE 4.0.31

При загрузке pdf со страницы обогащения продукта он переходит по указанному ниже URL-адресу и показывает ошибку: http://<pimhost>/enrich/product/1018/download-pdf?dataLocale=en_US&dataScope=ecommerce

Impossible to invoke a method ("__toString") on a string variable ("Some value")
in vendor/akeneo/pim-community-dev/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig (line 118)

Это происходит потому, что для pim_catalog_simpleselect и pim_catalog_multiselect тип content уже преобразован в строку в этой строке 114 :
{% set content = optionLabels[attribute.code] %}

Другая связанная проблема на той же странице находится в строке 110 :
Для типа pim_catalog_image content является экземпляром Akeneo\Pim\Enrichment\Component\Product\Value\MediaValue , который имеет свойство data , но не свойство media . Но в этой строке используется content.media , вызывающая ошибку.

Самый полезный комментарий

Извините, что не ответил раньше.

Я изучил это и открыл PR об этом: https://github.com/akeneo/pim-community-dev/pull/12496 .
Должны быть скоро объединены в 4.0.x.

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

Следующий diff может исправить проблему на данный момент

diff --git a/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig b/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
index 3730bea3c2b..7576ad0ef82 100644
--- a/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
+++ b/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
@@ -107,11 +107,12 @@
                                 {% set content = product.getValue(attribute.code, locale_attribute, channel_attribute) %}
                                 {% set manualHeight = true %}

-                                {% if 'pim_catalog_image' == attribute.type and content.media is not null %}
-                                    {% set content = content.media.originalFilename %}
+                                {% if 'pim_catalog_image' == attribute.type and content.data is not null %}
+                                    {% set content = content.data.originalFilename %}
                                     {% set manualHeight = false %}
                                 {% elseif ('pim_catalog_simpleselect' == attribute.type or 'pim_catalog_multiselect' == attribute.type) and attribute.code in optionLabels|keys %}
                                     {% set content = optionLabels[attribute.code] %}
+                                    {% set manualHeight = false %}
                                 {% endif %}

                                 {% if content != null and manualHeight == true %}

Привет @adhocore ,
Спасибо, что открыли этот выпуск с таким точным описанием.

что касается вашей первой проблемы с __toString , быстрое исправление должно быть скоро добавлено в 4.0.x: https://github.com/akeneo/pim-community-dev/pull/12430

Что касается второго вопроса, я постараюсь найти время, чтобы изучить его как можно скорее.

Привет,

есть новости по второму номеру?

Большое спасибо 🙏

Исправление может заключаться в использовании функции twig, определенной в атрибуте media, например:

{% if 'pim_catalog_image' == attribute.type and content.media is defined and content.media is not null %}

Извините, что не ответил раньше.

Я изучил это и открыл PR об этом: https://github.com/akeneo/pim-community-dev/pull/12496 .
Должны быть скоро объединены в 4.0.x.

Большое спасибо 👍 💪

пожалуйста, не стесняйтесь закрыть эту проблему, если у нас есть новая версия akeneo с исправлениями, спасибо

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