Неправильное изображение продукта в электронном письме с заказом на продажу в производственном режиме - Magento2.3.5
Мы используем следующий код для загрузки изображения продукта в электронное письмо с заказом на продажу. Это отлично работает в режиме разработчика, но когда мы переключаемся в производственный режим, изображения не подходят для тех, у кого нет изображения.
В этом случае отображается продукт, у которого нет изображения, а не заполнитель, как и следовало ожидать, а отображается то же изображение продукта, что и продукт выше.
Следующий продукт в линейке, у которого есть какое-либо изображение, которое затем хорошо отображается.
Видеть:

Как мы можем это решить?
Шаблон: /app/design/frontend/theme/theme/Magento_Sales/templates/email/items/invoice/default.phtml
КОД:
<?php $_item = $block->getItem()
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $product_id = $_item->getProductId(); $product = $objectManager->get('Magento\Catalog\Model\Product')->load($product_id);
$_imagehelper = $objectManager->get('Magento\Catalog\Helper\Image');
$image_url = $_imagehelper->init($product, 'cart_page_product_thumbnail')->getUrl();?> <img src="<?= $image_url;?>"
Ответы
вы можете использовать помощника, как показано ниже:
<?php
namespace Mbs\OrderEmail\Helper;
use Magento\Framework\App\Helper\AbstractHelper;
use Magento\Framework\App\Helper\Context;
class GetItemImage extends AbstractHelper
{
/**
* @var \Magento\Catalog\Block\Product\ImageBuilder
*/
private $imageBuilder; public function __construct( Context $context,
\Magento\Catalog\Block\Product\ImageBuilder $imageBuilder ) { parent::__construct($context);
$this->imageBuilder = $imageBuilder;
}
public function getCartItemImage($item) { if ($item->getProduct() instanceof \Magento\Catalog\Model\Product) {
return $this->imageBuilder->create($item->getProduct(), 'category_page_grid')->toHtml();
}
return '';
}
}
тогда этот помощник нужно будет использовать в вашем шаблоне электронной почты: строка ниже будет выводить изображение: шаблон электронной почты по умолчанию для элемента в Magento vendor/magento/module-sales/view/frontend/templates/email/items/order/default.phtml
. Возможно, вы настроили этот шаблон, и поэтому вам нужно будет загрузить его в папке своей темы.
<?= $helper->getCartItemImage($_item) ?>