Magento 2: ne parvient pas à télécharger un logo d'e-mail transactionnel depuis l'administrateur


27

J'essaie de changer le logo de l'e-mail transactionnel.

Admin> Contenu> Conception> Configuration> Modifier n'importe quel enregistrement -> Emails transactionnels

C'est sur Magento 2.1 mais le logo montre une image cassée après la sauvegarde. veuillez vous référer à la capture d'écran ci-jointe.

entrez la description de l'image ici


1
L'image n'est pas trouvée donc elle montre leur. clic droit et Inspecter l'élément afficher la page d'image et vérifier. peut-être que vous trouvez une solution
Hitesh Vaghasiya

1
après l'inspection, l'élément affiche /pub/media/email/logo/stores/1/email_logo.png mais le logo de l'e-mail est actuellement enregistré dans le répertoire /pub/media/logo/websites/1/email_logo.png
Lalit Kaushik

1
Je pense que c'est un bug dans Magento 2.1
Lalit Kaushik

1
Je suis toujours confronté à ce problème dans Magento 2.1.3. Existe-t-il une solution autre que la modification des fichiers de base ??
BornCoder

L'exécution de la dernière version de 2.2.6 est toujours un problème. J'ai essayé de créer manuellement les répertoires et les fichiers sans succès. Il est au-delà du ridicule que les développeurs de magento n'aient pas résolu certaines des fonctionnalités les plus basiques de CMS 101.
Marco Yammine

Réponses:


9

J'ai également rencontré ce problème et j'ai proposé une solution temporaire:

J'ai vérifié Magento/Config/Model/Config/Backend/Email/Logoet trouve cette constante:

const UPLOAD_DIR = 'email/logo';

et l'a changé en:

const UPLOAD_DIR = 'logo';

aussi dans Magento/Email/etc/di.xml, j'ai remplacé email/logopar juste logo:

<item name="value" xsi:type="string">email/logo</item>

à:

<item name="value" xsi:type="string">logo</item>

Cela fonctionne, mais cela ne se reflétera pas sur les e
Rajan Soni

Cela fonctionne, mais cela ne se reflétera pas sur les e-mails. Même idée?
Magento2 Devloper

9

Le travail le plus simple sans modifier le code consiste à

1) créer le répertoire pub/media/email/logo/default ou pub/media/email/logo/stores/1/(fonctionne sur 2.1.2)

2) copiez manuellement le logo dans le répertoire.

3) Puis via la bonne procédure Contenu> Conception> Configuration> Edition> E-mails transnationaux>

Téléchargez maintenant le même logo que vous avez ajouté manuellement dans le répertoire nouvellement créé.


C'EST ENCORE UN PROBLÈME DANS LA VERSION 2.1.7 !!!
styzzz

cette solution a été étonnamment efficace (n'oubliez pas de définir les autorisations)
nicolallias

ça ne marche pas pour moi
Sarvesh Tiwari

@ErSarveshVTiwari J'avais un chemin de répertoire pour la version 2.1.2 - Est-ce que ça fonctionne avec votre version? Pouvez-vous spécifier votre version en réponse s'il vous plaît
Nolwennig

@styzzz J'ai eu le chemin du répertoire pour la version 2.1.2 - Est-ce que cela fonctionne avec votre version 2.1.7?
Nolwennig

3

Il s'agit d'un bogue dans 2.1.2 et inférieur. Après avoir téléchargé l'image, elle va dans le mauvais répertoire dans pub / media / email / logo / website / 1 /

Ce devrait être pub / média / logo / sites web / 1 /

Réf fichier: app / code / Magento / Email / Model / AbstractTemplate.php

Il n'est pas encore inclus dans la dernière version 2.1.2. Vous pouvez simplement télécharger l'image dans le bon répertoire en attendant que le correctif soit implémenté dans la prochaine version.


1

Le bug est toujours vivant! Suivez ces étapes pour le corriger:

  • créez di.xml dans votre module personnalisé
  • ajouter <preference for="Magento\Theme\Model\Design\Backend\Logo" type="Vendor\YouModuleName\Model\Design\Backend\Logo"/>
  • créer le fichier Vendor \ YouModuleName \ Model \ Design \ Backend \ Logo.php
  • remplacer le const UPLOAD_DIR = 'logo'; avec const UPLOAD_DIR = 'email / logo';
  • Essaye-le! ;)

1

Cette solution de contournement a fonctionné pour moi:

Ajoutez un fichier nommé logo_email.png à un répertoire Magento_Email / web dans votre thème personnalisé:

app/design/frontend/Vendor/yourtheme/Magento_Email/web directory

Copiez le

<Magento_Email_module_dir>/view/frontend/email/header.html

fichier dans un répertoire Magento_Email / email dans votre thème.

Modifiez les attributs de largeur et de hauteur de la balise pour refléter la zone dans laquelle vous souhaitez que votre logo s'affiche (par exemple, 200 × 100).

Exemple:

{{if logo_width}}
    width="{{var logo_width}}"
{{else}}
    width="200"
{{/if}}

{{if logo_height}}
    height="{{var logo_height}}"
{{else}}
    height="100"
{{/if}}

Vous devez laisser l'instruction conditionnelle if / else en place au cas où vous souhaiteriez remplacer ces valeurs à l'aide de l'administrateur.


1

Ouvrez le nouveau modèle d'e-mail, chargez n'importe quel modèle et cliquez sur Aperçu. Après l'aperçu, cliquez sur le logo. Il montrera le chemin où Magento le choisit. Accédez au chemin, supprimez le logo précédent et téléchargez. Votre problème sera résolu.


1

Magento a corrigé le bogue dans la version 2.2.6.

https://github.com/magento/magento2/commit/23103c03c527fe1ed3e1a3be691436818b7963fe#diff-6b96f29ad945c7cea90267bd4f533218L12

Vous avez ici leur engagement.


Est-ce corrigé en 2.1? J'ai mis à jour mon installation 2.1 avec composer mais elle ne semble pas être corrigée. Comment pouvons-nous mettre à jour?
cha

Je ne sais pas si c'est réparé maintenant. J'effectue la modification manuellement.
Victor Piolin

1
Ce n'est pas encore corrigé au 2.1.2.
jehzlau

1
Ce n'est pas encore corrigé dans 2.1.3 également.
BornCoder

1
Non corrigé dans 2.1.4, blague complète.
LM_Fielding

1

Si le problème se produit dans 2.3.0

Pour le logo de l'e-mail: remplacez fileUploader par imageUploader dans

fournisseur / magento / module-email / view / adminhtml / ui_component / design_config_form.xml

<field name="email_logo" formElement="imageUploader">

Pour le logo du site: remplacez fileUploader par imageUploader dans

fournisseur / magento / module-theme / view / adminhtml / ui_component / design_config_form.xml

 <field name="head_shortcut_icon" formElement="imageUploader">

&

<field name="header_logo_src" formElement="imageUploader">


0

Voici un travail simple. Pas besoin de changer la structure du fichier, etc.

Créez d'abord un bloc statique avec une image de votre logo. Ajoutez les textes nécessaires si vous le souhaitez.
Nommez le logo électronique du bloc statique.
Insérez le bloc dans le code HTML de votre modèle d'e-mail comme ceci:

{{block class="Magento\Cms\Block\Block" area='frontend' block_id="email-logo"}}

Vous pouvez maintenant supprimer l'en-tête d'e-mail par défaut de votre e-mail:

{{template config_path="design/email/header_template"}}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.