Magento – Magento 2 : How to Override frontend Template File

magento-2.0magento-2.1overrides

enter image description hereI'm developing a custom module in magento 2. I need to change the file located in Magento/Sales/view/Frontend/Templates/Email/Items/Order/default.phtml.

Best Answer

You can override using below code in your module.

 <referenceBlock name="block_name" >
      <action method="setTemplate">
          <argument name="template" xsi:type="string">YourVendor_YourModuleName::email/items/order/default.phtml</argument>
      </action>
 </referenceBlock>

block_name: should be default block name of order.phtml template is calling.

Example

<referenceBlock name="customer_address_edit" >
        <action method="setTemplate">
            <argument name="template" xsi:type="string">Vendor_ModuleName::address/edit.phtml</argument>
        </action>
 </referenceBlock>

in my case, i want to override edit.phtml. so customer_address_edit block name I have used.

EDIT add this code in your Vendor/Module/view/frontend/layout/sales_email_order_renderers.xml

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd" label="Email Creditmemo Items List" design_abstraction="custom">
<body>
    <referenceBlock name="sales.email.order.renderers">
      <action method="setTemplate">
        <argument name="template" xsi:type="string">YourVendor_Module::email/items/order/default.phtml</argument>
      </action>
    </referenceBlock>
</body>
</page>
Related Topic