Email transaksional: Cara membuat templat 'sales_email_order_items' (atau cara mengganti templat adminhtml)


15

Dalam kode email transaksional, saya melihat ini:

{{layout handle="sales_email_order_items" order=$order}}
{{var items_html}}

Yang, saya percaya, merujuk ke file templat ini:

/app/design/adminhtml/default/default/template/email/order/items.phtml

Saya sudah mencoba membuat folder baru dengan tema kami untuk menghindari menimpa file inti:

/app/design/our_theme/default/default/template/email/order/items.phtml

Tapi ini sepertinya tidak berhasil, adakah cara yang tepat untuk mengganti file ini tanpa hanya menimpa inti?

Jawaban:


20

Sebenarnya ini mengacu pada pegangan Layout XML yang dapat Anda temukan di sales.xmlfile sekitar baris 268.

Di sana Anda dapat menemukan tag berikut

<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>

Anda dapat menyalin ini ke tema Anda sendiri local.xmldan mengedit apa pun yang Anda butuhkan. Dalam kasus Anda, itu akan mengatur ulang file template seperti: -

<sales_email_order_items>
    <reference name="items">
        <action method="setTemplate">
            <template>yourdirectory/order/items.phtml</template>
        </action>
    </reference>
</sales_email_order_items>

Ups, Anda sepenuhnya benar. Terima kasih! Akan menerima bila memungkinkan :)
waffl

Tidak masalah, bisa jadi agak membingungkan :)
Sander Mangel

@SanderMangel Bagaimana saya bisa membuat {{layout handle = "sales_email_order_items" order = $ order}} selain default, yang akan saya gunakan dalam templat email (Selain templat email konfirmasi pesanan)
Mukesh

Saya tidak yakin apa yang Anda maksud tetapi Anda dapat memanggil pegangan apa pun dari local.xml dari templat email Anda. Jadi, Anda dapat membuat yang baru jika Anda mau
Sander Mangel

6

Anda dapat melihat templat mana yang "dirujuk oleh sales_email_order_items" saat melihatnya

app/design/frontend/base/default/layout/sales.xml
app/design/frontend/base/default/layout/bundle.xml
app/design/frontend/base/default/layout/downloadable.xml

Sebagai app/design/frontend/base/default/layout/sales.xmlcontoh, Anda akan melihat:

<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>

Di sini Anda dapat menemukan jalannya: template="email/order/items.phtml"

Struktur direktori Anda /app/design/our_theme/default/default/template/email/order/items.phtmltampaknya salah, terutama bagian /app/design/our_theme/default/default/template...- seharusnya /app/design/our_theme/default/template...(salah satu kurang standar, kurasa).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.