Magento 2: не удается загрузить логотип транзакционной электронной почты от администратора

27

Я пытаюсь изменить логотип транзакционной электронной почты.

Администратор> Содержание> Дизайн> Конфигурация> Редактировать любую запись -> Транзакционные электронные письма

Это на Magento 2.1, но логотип, показывающий разбитое изображение после сохранения. пожалуйста, обратитесь приложенный снимок экрана.

введите описание изображения здесь

Лалит Каушик
источник
1
Изображение не найдено, поэтому оно показывает их. щелкните правой кнопкой мыши и просмотрите страницу с изображением элемента и проверьте его. Может быть, вы найдете решение
Hitesh Vaghasiya
1
после того, как элемент проверки показывает /pub/media/email/logo/stores/1/email_logo.png, но в настоящее время логотип электронной почты сохранен в каталоге /pub/media/logo/websites/1/email_logo.png
Лалит Каушик
1
Я чувствую, что это ошибка в Magento 2.1
Лалит Каушик
1
Я все еще сталкиваюсь с этой проблемой в Magento 2.1.3. Есть ли какое-либо решение, кроме изменения в основных файлах?
BornCoder
Запуск последней версии 2.2.6 это все еще проблема. Я попытался вручную создать каталоги и файлы, но безуспешно. Это просто смешно, что разработчики в magento не решили некоторые из основных функций CMS 101.
Марко Яммин

Ответы:

9

Я также столкнулся с этой проблемой и сделал временное решение:

Я проверил Magento/Config/Model/Config/Backend/Email/Logoи нашел эту константу:

const UPLOAD_DIR = 'email/logo';

и изменил его на:

const UPLOAD_DIR = 'logo';

также Magento/Email/etc/di.xml, я заменил email/logoпросто logo:

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

чтобы:

<item name="value" xsi:type="string">logo</item>
reuelab
источник
Это работает, но это не отразится на электронных письмах
Раджан Сони
Это работает, но это не отразится на электронной почте Same.any идею?
Magento2 Devloper
9

Самым простым способом обхода без изменения кода является

1) создать каталог pub/media/email/logo/default или pub/media/email/logo/stores/1/(работает на 2.1.2)

2) скопировать логотип в каталог вручную.

3) Затем с помощью правильной процедуры Содержание> Дизайн> Конфигурация> Редактировать> Транснациональные электронные письма>

Теперь загрузите тот же логотип, который вы добавили вручную, во вновь созданный каталог.

Даррен Сазерленд
источник
ЭТО ЕЩЕ ПРОБЛЕМА В ВЕРСИИ 2.1.7 !!!
Styzzz
Это решение было удивительно эффективным (не забудьте установить разрешения)
nicolallias
это не работает для меня
Сарвеш Тивари
@ErSarveshVTiwari У меня был путь к каталогу для версии 2.1.2 - Это работает с вашей версией? Можете ли вы указать свою версию в ответ, пожалуйста
Nolwennig
@styzzz У меня был путь к каталогу для версии 2.1.2 - Это работает с вашей версией 2.1.7?
Nolwennig
3

Это ошибка в 2.1.2 и ниже. После загрузки изображение переходит в неправильный каталог pub / media / email / logo / website / 1 /.

Это должен быть паб / медиа / логотип / сайты / 1 /

Ссылка на файл: приложение / код / ​​Magento / электронная почта / модель / AbstractTemplate.php

Это еще не включено в последнюю версию 2.1.2. Вы можете просто загрузить изображение в правильный каталог, ожидая исправления, которое будет реализовано в следующем выпуске.

jehzlau
источник
1

Ошибка все еще жива! Выполните следующие шаги, чтобы исправить это:

  • создать di.xml в свой пользовательский модуль
  • Добавлять <preference for="Magento\Theme\Model\Design\Backend\Logo" type="Vendor\YouModuleName\Model\Design\Backend\Logo"/>
  • создайте файл Vendor \ YouModuleName \ Model \ Design \ Backend \ Logo.php
  • заменить const UPLOAD_DIR = 'логотип'; с const UPLOAD_DIR = 'электронная почта / логотип';
  • Попробуй это! ;)
Касьян
источник
1

Этот обходной путь работал для меня:

Добавьте файл с именем logo_email.png в каталог Magento_Email / web в вашей пользовательской теме:

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

Скопируйте

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

файл в директорию Magento_Email / email в вашей теме.

Отредактируйте атрибуты ширины и высоты тега, чтобы отразить область, в которой вы хотите, чтобы ваш логотип отображался (например, 200 × 100).

Пример:

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

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

Вы должны оставить условный оператор if / else на случай, если вы когда-нибудь захотите переопределить эти значения с помощью Admin.

styzzz
источник
1

Откройте новый шаблон электронной почты, загрузите любой шаблон и нажмите «Просмотр». После предварительного просмотра нажмите на логотип. Он покажет путь, по которому его выбирает Magento. Перейти к пути, удалить предыдущий логотип и загрузить. Ваша проблема будет решена.

imaangems
источник
1

Magento исправил ошибку в версии 2.2.6.

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

Здесь у вас есть свой коммит.

Виктор Пиолин
источник
Это исправлено в 2.1? Я обновил установку 2.1 с помощью composer, но она, похоже, не исправлена. Как мы можем обновить?
тя
Я не знаю, исправлено ли это сейчас. Я делаю изменения вручную.
Виктор Пиолин
1
Это еще не исправлено в 2.1.2.
Jehzlau
1
Это еще не исправлено в 2.1.3 также.
BornCoder
1
Не исправлено в 2.1.4, полная шутка.
LM_Fielding
1

Если проблема возникает в 2.3.0

Для логотипа электронной почты: замените fileUploader на imageUploader в

продавец / Magento / модуль-почта / просмотр / adminhtml / ui_component / design_config_form.xml

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

Для логотипа сайта: замените fileUploader на imageUploader в

продавец / Magento / модуль Тема / просмотр / adminhtml / ui_component / design_config_form.xml

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

&

<field name="header_logo_src" formElement="imageUploader">
Бала Шивагнанам
источник
0

Мое решение для этой ошибки.
1. Скопируйте этот модуль в app / code / Icube / EmailLogo
2. php bin / magento setup: обновите
Разверните и очистите кеш.
https://github.com/quannh02/EmailLogoMagento2.1

Нгуен Хонг Куан
источник
0

Следующее - простая работа вокруг. Не нужно менять структуру файла и т. Д.

Сначала создайте статический блок с изображением вашего логотипа. Добавьте необходимые тексты, если хотите.
Назовите статический блок email-логотипом.
Вставьте блок в html вашего почтового шаблона следующим образом:

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

Теперь вы можете удалить заголовок электронной почты по умолчанию из вашей электронной почты:

{{template config_path="design/email/header_template"}}
Эльс ден Ип
источник