Magento – Remove shipping from transactional email totals

shippingtransactional-mail

In Magento's transactional emails at the bottom of the mail you will see an overview of the order (totals.phtml). This has an output of something like:

Subtotal € 99,00
Shipping & Handling € 0,00
Total (Excl. Belasting) € 99,00
Tax € 0,00
Grand total (Incl. Belasting) € 99,00

Shipping & Handling is set to € 0,00. But not actually free (it is just not paid online). So I want to remove the line containing:

shipping & handling – € 0,00.

I cannot seem to find the lines to edit.

Totals.phtml loops true all available options. It seems that editing this will also change other options and layouts

I could also make changes in sales.xml (of course a copy). But also I cannot find the desired line. Is there any way to remove only this line.

<sales_email_order_items>
    <block type="sales/order_email_items" name="items" template="email/order/items.phtml">
        <action method="addItemRender"><type>default</type><block>sales/order_email_items_order_default</block><template>email/order/items/order/default.phtml</template></action>
        <action method="addItemRender"><type>grouped</type><block>sales/order_email_items_order_grouped</block><template>email/order/items/order/default.phtml</template></action>
        <block type="sales/order_totals" name="order_totals" template="sales/order/totals.phtml">
            <action method="setLabelProperties"><value>colspan="3" align="right" style="padding:3px 9px"</value></action>
            <action method="setValueProperties"><value>align="right" style="padding:3px 9px"</value></action>
            <block type="tax/sales_order_tax" name="tax" template="tax/order/tax.phtml">
                <action method="setIsPlaneMode"><value>1</value></action>
            </block>
        </block>
    </block>
</sales_email_order_items>

Best Answer

Try copy sales/order/totals.phtml to your current theme

Then add

<?php foreach ($this->getTotals() as $_code => $_total): ?>
    if($_code == Shipping Code(s) here){
        continue;
     }
 ....

Please note: this may remove the shipping cost from other template, so you may want to consider setting a new template for <block type="sales/order_totals" name="order_totals" template="sales/order/totals.phtml">

Related Topic