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.