在我的新订单电子邮件中,我有产品的 SKU,但我想从订单电子邮件中删除它。我怎样才能做到这一点?
1 回答
这实际上是一个很好的问题。感谢您询问帕特里克。
由于带有订单项的块已插入到模板中,因此无法从管理界面执行此操作。如果您查看一下,app/locale/en_US/template/email/sales/order_new.html
您将看到以下代码,在渲染期间将替换为有序项目块:
{{layout handle="sales_email_order_items" order=$order}}
如您所见,块的句柄是sales_email_order_items
,它的声明可以在app/design/frontend/base/default/layout/sales.xml
. 这里是:
<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>
<block type="core/text_list" name="additional.product.info" />
</sales_email_order_items>
在这里,您将看到提到的两个模板/design/frontend/base/default/template/sales/order/items.phtml
和app/design/frontend/base/default/template/sales/order/items/renderer/default.phtml
. 将它们复制到您的主题中并进行修改。
第一个保留带有项目的表格标题。您将不得不删除第 37 行:
<th><?php echo $this->__('SKU') ?></th>
第二个渲染表格主体的行。在那里你必须删除第 64 行:
<td><?php echo $this->htmlEscape(Mage::helper('core/string')->splitInjection($this->getSku())) ?></td>
您不需要将布局 xml 复制到您的主题。就这两个模板文件。
不幸的是,它还会从客户帐户的订单视图中删除 SKU 列,因为这些模板也在那里使用。因此,如果您只想从电子邮件中删除 SKU 列,则必须在local.xml
主题文件中创建一个新句柄,该句柄与sales.xml
. 然后,您必须在 Magento 管理员处创建您的电子邮件模板的自定义副本,并将您的新句柄放入{{layout}}
短代码中。当然,这两个模板也需要使用不同的名称进行复制。