cancel
Showing results for 
Search instead for 
Did you mean: 

Magento2 override sales email templates

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Magento2 override sales email templates

Hi to all, I'm going crazy. I've read a lot of tutorial and marked "as solved" topics on override template on sales email.

I'm trying to customize the sales_email_order_items, so I've create a file in [ModuleDir]/view/frontend/layout/sales_email_order_items.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="items">
            <block class="Magento\Sales\Block\Order\Email\Items"  template="Vendor_Module::email/items.phtml"/>
        </referenceBlock>
    </body>
</page>

and created my custom template in [ModuleDir]/view/frontend/templates/email/items.phtml

cleared cache and compiled, but nothing changed.

 

Someone can help me?

4 REPLIES 4

Re: Magento2 override sales email templates

hi @dandreoli

 

 if you want to override the template use below code.

 

 

 

<referenceBlock name="items">
            <action method="setTemplate" >
                <argument name="template" xsi:type="string">Vendor_Module::email/items.phtml</argument>
            </action>
</referenceBlock>
Find helpful ? Consider Giving Kudos to this post.
Problem solved? Click Accept as Solution!"
Qaisar Satti

Re: Magento2 override sales email templates

This solution with <action> is deprecated, anyway I've just tried and It doesn't work

Re: Magento2 override sales email templates

thanks for pointing that out for me. but it is working for me. Try this
<referenceBlock name="items">
            <arguments>
                <argument name="template" xsi:type="string">Vendor_Module::email/items.phtml</argument>
            </arguments>
        </referenceBlock>


Reference
Find helpful ? Consider Giving Kudos to this post.
Problem solved? Click Accept as Solution!"
Qaisar Satti

Re: Magento2 override sales email templates

I've already tried this solution. At the end I0ve found an alternative way to solve.

 

I've delcare in di.xml 

<preference for="Magento\Sales\Block\Order\Email\Items" type="Vendor\Module\Block\Order\Email\Items" />

and create a class 

Vendor\Module\Block\Order\Email\Items

 

<?php

namespace Vendor\Module\Block\Order\Email;

class Items extends \Magento\Sales\Block\Order\Email\Items
{
}

and finally It uses my  template file