อีเมลการทำธุรกรรม: วิธีการเทมเพลต 'sales_email_order_items' (หรือวิธีการแทนที่เทมเพลต adminhtml)


15

ในรหัสอีเมลธุรกรรมฉันเห็นสิ่งนี้:

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

ซึ่งฉันเชื่อว่าหมายถึงไฟล์เทมเพลตนี้:

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

ฉันพยายามสร้างโฟลเดอร์ใหม่ด้วยธีมของเราเพื่อหลีกเลี่ยงการเขียนทับไฟล์หลัก:

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

แต่ดูเหมือนจะใช้งานไม่ได้มีวิธีที่เหมาะสมในการแทนที่ไฟล์นี้โดยไม่ต้องเขียนทับแกนหรือไม่?

คำตอบ:


20

จริงๆแล้วมันหมายถึงหมายเลขอ้างอิง XML ที่คุณสามารถหาได้ในsales.xmlไฟล์รอบ ๆ บรรทัดที่ 268

มีคุณสามารถค้นหาแท็กต่อไปนี้

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

คุณสามารถคัดลอกสิ่งนี้ไปยังธีมของคุณเองlocal.xmlและแก้ไขสิ่งที่คุณต้องการ ในกรณีของคุณมันจะเป็นการรีเซ็ตไฟล์แม่แบบดังนี้: -

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

โอ๊ะคุณพูดถูก ขอขอบคุณ! จะยอมรับเมื่อเป็นไปได้ :)
waffl

ไม่มีปัญหาอาจทำให้สับสนได้ :)
Sander Mangel

@SanderMangel ฉันจะสร้าง {{layout handle = "sales_email_order_items" order = $ order}} นอกเหนือจากค่าเริ่มต้นซึ่งฉันจะใช้ในแม่แบบอีเมล (นอกเหนือจากแม่แบบอีเมลยืนยันการสั่งซื้อ)
Mukesh

ฉันไม่แน่ใจว่าคุณหมายถึงอะไร แต่คุณสามารถเรียกหมายเลขอ้างอิงใด ๆ จาก local.xml จากเทมเพลตอีเมลของคุณ ดังนั้นคุณสามารถสร้างใหม่ได้หากคุณต้องการ
Sander Mangel

6

คุณสามารถดูเทมเพลต "sales_email_order_items" ที่อ้างอิงเมื่อดู

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

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

ที่นี่คุณสามารถค้นหาเส้นทาง: template="email/order/items.phtml"

โครงสร้างไดเรกทอรีของคุณ/app/design/our_theme/default/default/template/email/order/items.phtmlดูเหมือนผิดโดยเฉพาะส่วนที่/app/design/our_theme/default/default/template...ควรจะเป็น/app/design/our_theme/default/template...(ค่าเริ่มต้นที่น้อยกว่าฉันเดา)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.