2

新しい注文メールに製品のSKUがありますが、注文メールから削除したいと思います。これどうやってするの?

4

1 に答える 1

10

これは実際には良い質問です。パトリックに聞いてくれてありがとう。

注文アイテムを含むブロックがテンプレートに挿入されるため、この操作は管理インターフェイスから実行できません。調べて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>

ここでは、 と という 2 つのテンプレートが表示さ/design/frontend/base/default/template/sales/order/items.phtmlapp/design/frontend/base/default/template/sales/order/items/renderer/default.phtmlます。それらをテーマにコピーして変更します。

最初のものは、アイテムを含むテーブルの見出しを保持します。37 行目を削除する必要があります。

<th><?php echo $this->__('SKU') ?></th>

2 つ目は、テーブル本体の行をレンダリングします。64 行目を削除する必要があります。

<td><?php echo $this->htmlEscape(Mage::helper('core/string')->splitInjection($this->getSku())) ?></td>

レイアウト xml をテーマにコピーする必要はありません。これら 2 つのテンプレート ファイルだけです。

残念ながら、これらのテンプレートはそこでも使用されているため、顧客アカウントの注文ビューから SKU 列も削除されます。そのため、メールのみから SKU 列を削除したい場合local.xmlは、テーマのファイルに新しいハンドルを作成する必要がありますsales.xml。次に、Magento 管理者でメール テンプレートのカスタマイズされたコピーを作成し、新しいハンドルを{{layout}}ショートコードに入れる必要があります。もちろん、両方のテンプレートも異なる名前で複製する必要があります。

于 2012-10-22T19:40:26.907 に答える