Magento 2: falha ao carregar um logotipo de email transacional do admin

27

Estou tentando alterar o logotipo do email transacional.

Admin> Conteúdo> Design> Configuração> Editar qualquer registro -> Emails Transacionais

Está no Magento 2.1, mas o logotipo mostra uma imagem quebrada após o salvamento. consulte a captura de tela anexada.

insira a descrição da imagem aqui

Lalit Kaushik
fonte
11
A imagem não foi encontrada e mostra a sua. clique direito e inspecionar elemento de página show de imagem e confira .may ser você encontrar uma solução
Hitesh Vaghasiya
11
após inspecionar elemento está mostrando /pub/media/email/logo/stores/1/email_logo.png mas atualmente enviar e-mail logotipo salvos em /pub/media/logo/websites/1/email_logo.png diretório
Lalit Kaushik
11
Eu sinto que é bug no Magento 2.1
Lalit Kaushik
11
Ainda estou enfrentando esse problema no Magento 2.1.3. Existe alguma solução além da alteração nos arquivos principais?
precisa saber é o seguinte
A execução da versão mais recente do 2.2.6 ainda é um problema. Eu tentei criar manualmente os diretórios e arquivos com absolutamente nenhum sucesso. É mais do que ridículo que os desenvolvedores do magento não tenham resolvido alguns dos recursos mais básicos do CMS 101.
Marco Yammine

Respostas:

9

Eu também encontrei esse problema e fiz uma solução temporária:

Eu verifiquei Magento/Config/Model/Config/Backend/Email/Logoe encontrei esta constante:

const UPLOAD_DIR = 'email/logo';

e alterou para:

const UPLOAD_DIR = 'logo';

também em Magento/Email/etc/di.xml, substituí email/logopor logo:

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

para:

<item name="value" xsi:type="string">logo</item>
reuelab
fonte
Está funcionando, mas não refletirá nos e
Rajan Soni 23/02
Está funcionando, mas não refletirá nos emails Same.any idea?
Magento2 Devloper
9

A solução mais fácil sem modificar o código é:

1) crie o diretório pub/media/email/logo/default ou pub/media/email/logo/stores/1/(funciona em 2.1.2)

2) copie o logotipo para o diretório manualmente.

3) Em seguida, através do procedimento correto Conteúdo> Design> Configuração> Editar> E-mails transnacionais>

Agora carregue o mesmo logotipo que você adicionou manualmente ao diretório recém-criado.

Darren Sutherland
fonte
Ainda é um problema na versão 2.1.7 !!!
Styzzz
esta solução foi surpreendentemente eficaz (lembre-se de definir as permissões)
nicolallias
não o seu trabalho para mim
Sarvesh Tiwari
@ErSarveshVTiwari Eu tinha o caminho do diretório para a versão 2.1.2 - É trabalhar com a sua versão? Você pode especificar a sua versão em resposta, por favor
Nolwennig
@styzzz Eu tinha o caminho do diretório para a versão 2.1.2 - É trabalhar com a versão 2.1.7?
Nolwennig 5/11
3

Este é um erro no 2.1.2 e inferior. Após o upload da imagem, ela será direcionada para o diretório errado em pub / media / email / logo / websites / 1 /

Deve ser pub / media / logo / websites / 1 /

Ref do arquivo: app / code / Magento / Email / Model / AbstractTemplate.php

Ainda não está incluído no 2.1.2 mais recente. Você pode simplesmente carregar a imagem no diretório correto enquanto aguarda a correção ser implementada na próxima versão.

jehzlau
fonte
1

O bug ainda está vivo! Siga estas etapas para corrigi-lo:

  • crie di.xml no seu módulo personalizado
  • adicionar <preference for="Magento\Theme\Model\Design\Backend\Logo" type="Vendor\YouModuleName\Model\Design\Backend\Logo"/>
  • crie o arquivo Vendor \ YouModuleName \ Model \ Design \ Backend \ Logo.php
  • substitua a const UPLOAD_DIR = 'logo'; com const UPLOAD_DIR = 'email / logo';
  • Teste-o! ;)
Casian
fonte
1

Esta solução alternativa funcionou para mim:

Adicione um arquivo chamado logo_email.png a um diretório Magento_Email / web no seu tema personalizado:

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

Copie o

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

em um diretório Magento_Email / email no seu tema.

Edite os atributos de largura e altura da tag para refletir a área na qual você deseja que seu logotipo seja exibido (por exemplo, 200 × 100).

Exemplo:

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

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

Você deve deixar a declaração condicional if / else no lugar, caso queira substituir esses valores usando o Admin.

styzzz
fonte
1

Abra o novo modelo de email, carregue qualquer modelo e clique em Visualizar. Após a visualização, clique no logotipo. Ele mostrará o caminho onde o Magento o escolhe. Vá para o caminho, exclua o logotipo anterior e faça o upload. Seu problema será resolvido.

imaangems
fonte
1

Magento corrigiu o erro na versão 2.2.6.

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

Aqui você tem o seu commit.

Victor Piolin
fonte
Isso foi corrigido no 2.1? Atualizei minha instalação 2.1 com o compositor, mas ela não parece estar corrigida. Como podemos atualizar?
cha
Não sei se está consertado agora. Eu faço a alteração manualmente.
Victor Piolin
11
Ainda não está corrigido a partir do 2.1.2.
jehzlau
11
Ainda não foi corrigido no 2.1.3 também.
precisa saber é o seguinte
11
Não corrigido no 2.1.4, piada completa.
LM_Fielding 07/07
1

Se o problema estiver ocorrendo na 2.3.0

Para o logotipo do Email: Substitua fileUploader por imageUploader em

fornecedor / magento / email-do-módulo / view / adminhtml / ui_component / design_config_form.xml

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

Para o logotipo do site: Substitua fileUploader por imageUploader em

fornecedor / magento / tema do módulo / view / adminhtml / ui_component / design_config_form.xml

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

&

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

A seguir, é apresentado um trabalho simples. Não há necessidade de alterar a estrutura do arquivo, etc.

Primeiro, crie um bloco estático com uma imagem do seu logotipo. Adicione os textos necessários, se quiser.
Nomeie o bloco estático email-logo.
Insira o bloco no html do seu modelo de email da seguinte maneira:

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

Agora você pode remover o cabeçalho do email padrão do seu email:

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