Pim-community-dev: Erreurs dans l'exportation du produit pdf à partir de la page d'enrichissement

Créé le 16 juin 2020  ·  6Commentaires  ·  Source: akeneo/pim-community-dev

:bug: Je signale un bug :bug:

Version Akeneo : CE 4.0.31

Lors du téléchargement d'un pdf à partir de la page d'enrichissement du produit, il accède à l'URL ci-dessous et affiche une erreur : 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)

Cela arrive parce que pour pim_catalog_simpleselect et pim_catalog_multiselect type content est déjà converti en chaîne dans cette ligne 114 :
{% set content = optionLabels[attribute.code] %}

Un autre problème connexe sur la même page est à la ligne 110 :
Pour le type pim_catalog_image , le content est une instance de Akeneo\Pim\Enrichment\Component\Product\Value\MediaValue qui a la propriété data mais pas la propriété media . Mais cette ligne utilise content.media provoquant une erreur.

Commentaire le plus utile

Désolé de ne pas avoir répondu plus tôt.

J'ai examiné la question et ouvert un PR à ce sujet : https://github.com/akeneo/pim-community-dev/pull/12496
Devrait être bientôt fusionné dans 4.0.x.

Tous les 6 commentaires

Le diff suivant pourrait résoudre le problème pour le moment

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 %}

Bonjour @adhocore ,
Merci d'avoir ouvert ce sujet avec une description aussi précise.

concernant votre premier problème avec __toString , une solution rapide devrait bientôt être fusionnée en 4.0.x : https://github.com/akeneo/pim-community-dev/pull/12430

Pour le second numéro, je vais essayer de prendre le temps de me pencher dessus au plus vite.

Bonjour,

avez-vous des nouvelles du second numéro ?

Merci beaucoup 🙏

Le correctif pourrait être d'utiliser la fonction twig définie sur l'attribut media comme ceci :

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

Désolé de ne pas avoir répondu plus tôt.

J'ai examiné la question et ouvert un PR à ce sujet : https://github.com/akeneo/pim-community-dev/pull/12496
Devrait être bientôt fusionné dans 4.0.x.

Merci beaucoup 👍 💪

n'hésitez pas à fermer ce problème si nous avons une nouvelle version d'akeneo avec les correctifs, merci

Cette page vous a été utile?
0 / 5 - 0 notes