Magento 2: no se puede cargar un logotipo de correo electrónico transaccional del administrador

27

Estoy tratando de cambiar el logotipo de correo electrónico transaccional de.

Admin> Contenido> Diseño> Configuración> Editar cualquier registro -> Correos electrónicos transaccionales

Está en Magento 2.1 pero el logotipo muestra una imagen rota después de guardar. consulte la captura de pantalla adjunta.

ingrese la descripción de la imagen aquí

Lalit Kaushik
fuente
1
La imagen no se encuentra, por lo que muestra su. Haga clic con el botón derecho e inspeccione la página de imagen del elemento y
verifíquela. Puede
1
después de que el elemento de inspección muestra /pub/media/email/logo/stores/1/email_logo.png pero actualmente el logotipo de correo electrónico está guardado en el directorio /pub/media/logo/websites/1/email_logo.png
Lalit Kaushik el
1
Siento que es un error en Magento 2.1
Lalit Kaushik
1
Todavía estoy enfrentando este problema en Magento 2.1.3. ¿Hay alguna solución que no sea cambiar en los archivos principales?
BornCoder
Ejecutar la última versión de 2.2.6 sigue siendo un problema. Intenté crear manualmente los directorios y archivos sin ningún éxito. Es más que ridículo que los desarrolladores de magento no hayan resuelto algunas de las funciones más básicas de CMS 101.
Marco Yammine

Respuestas:

9

También encontré este problema e hice una solución temporal:

Lo comprobé Magento/Config/Model/Config/Backend/Email/Logoy encontré esta constante:

const UPLOAD_DIR = 'email/logo';

y lo cambió a:

const UPLOAD_DIR = 'logo';

También en Magento/Email/etc/di.xml, lo reemplacé email/logocon solo logo:

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

a:

<item name="value" xsi:type="string">logo</item>
reuelab
fuente
Está funcionando pero no se reflejará en los correos electrónicos
Rajan Soni
Está funcionando pero no se reflejará en los correos electrónicos. ¿Alguna idea?
Magento2 Devloper
9

La solución más fácil sin modificar el código es

1) crear el directorio pub/media/email/logo/default o pub/media/email/logo/stores/1/(funciona en 2.1.2)

2) copie el logotipo al directorio manualmente.

3) Luego, a través del procedimiento correcto Contenido> Diseño> Configuración> Editar> Correos electrónicos transnacionales>

Ahora cargue el mismo logotipo que agregó manualmente al directorio recién creado.

Darren Sutherland
fuente
ESTO ES TODAVÍA UN PROBLEMA EN LA VERSIÓN 2.1.7 !!!
styzzz
esta solución fue sorprendentemente efectiva (recuerde establecer los permisos)
nicolallias
no funciona para mí
Sarvesh Tiwari
@ ErSarveshVTiwari Tenía una ruta de directorio para la versión 2.1.2. ¿Funciona con su versión? ¿Puede usted specifiy su versión en respuesta por favor
Nolwennig
@styzzz Tenía una ruta de directorio para la versión 2.1.2. ¿Funciona con su versión 2.1.7?
Nolwennig
3

Este es un error en 2.1.2 y versiones inferiores. Después de cargar la imagen, va al directorio incorrecto en pub / media / email / logo / websites / 1 /

Debe ser pub / media / logo / websites / 1 /

Archivo de referencia: aplicación / código / Magento / Email / Model / AbstractTemplate.php

Todavía no está incluido en la última 2.1.2. Puede cargar la imagen en el directorio correcto mientras espera que se implemente la corrección en la próxima versión.

jehzlau
fuente
1

¡El error aún está vivo! Siga estos pasos para corregirlo:

  • crear di.xml en tu módulo personalizado
  • añadir <preference for="Magento\Theme\Model\Design\Backend\Logo" type="Vendor\YouModuleName\Model\Design\Backend\Logo"/>
  • cree el archivo Vendor \ YouModuleName \ Model \ Design \ Backend \ Logo.php
  • reemplace el const UPLOAD_DIR = 'logo'; con const UPLOAD_DIR = 'email / logo';
  • ¡Pruébalo! ;)
Casian
fuente
1

Esta solución me funcionó:

Agregue un archivo llamado logo_email.png a un directorio Magento_Email / web en su tema personalizado:

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

Copia el

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

archivo en un directorio Magento_Email / email en su tema.

Edite los atributos de ancho y alto de la etiqueta para reflejar el área en la que desea que se muestre su logotipo (por ejemplo, 200 × 100).

Ejemplo:

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

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

Debe dejar la instrucción condicional if / else en su lugar en caso de que quiera anular estos valores utilizando el Administrador.

styzzz
fuente
1

Abra la nueva plantilla de correo electrónico, cargue cualquier plantilla y haga clic en Vista previa. Después de la vista previa, haga clic en el logotipo. Mostrará el camino donde Magento lo elige. Vaya a la ruta, elimine el logotipo anterior y cárguelo. Su problema será resuelto.

imaangems
fuente
1

Magento corrigió el error en la versión 2.2.6.

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

Aquí tienes su compromiso.

Victor Piolin
fuente
¿Está esto arreglado en 2.1? He actualizado mi instalación 2.1 con el compositor, pero no parece estar solucionado. ¿Cómo podemos actualizar?
cha
No sé si está arreglado ahora. Hago el cambio manualmente.
Victor Piolin
1
Todavía no se ha solucionado a partir de 2.1.2.
jehzlau
1
Todavía no está arreglado en 2.1.3 también.
BornCoder
1
No arreglado en 2.1.4, broma completa.
LM_Fielding
1

Si el problema ocurre en 2.3.0

Para el logotipo de correo electrónico: Reemplace fileUploader a imageUploader en

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

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

Para el logotipo del sitio: Reemplace fileUploader a imageUploader en

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

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

Y

<field name="header_logo_src" formElement="imageUploader">
Bala Sivagnanam
fuente
0

Mi solución para este error.
1. Copie este módulo a la aplicación / código / Icube / EmailLogo
2. configuración de php bin / magento: actualización
Implemente y limpie la memoria caché.
https://github.com/quannh02/EmailLogoMagento2.1

Nguyễn Hồng Quân
fuente
0

Lo siguiente es una solución simple. No es necesario cambiar la estructura del archivo, etc.

Primero, cree un bloque estático con una imagen de su logotipo. Agregue los textos necesarios si lo desea.
Nombre el bloque estático email-logo.
Inserte el bloque en el html de su plantilla de correo electrónico de esta manera:

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

Ahora puede eliminar el encabezado de correo electrónico predeterminado de su correo electrónico:

{{template config_path="design/email/header_template"}}
Els den Iep
fuente