Email giao dịch: Cách tạo mẫu 'sales_email_order_items' (hoặc cách ghi đè mẫu adminhtml)


15

Trong mã email giao dịch, tôi thấy điều này:

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

Trong đó, tôi tin rằng, đề cập đến tệp mẫu này:

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

Tôi đã thử tạo một thư mục mới với chủ đề của chúng tôi để tránh ghi đè các tệp lõi:

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

Nhưng điều này dường như không hoạt động, có cách nào thích hợp để ghi đè tệp này mà không chỉ đơn giản là ghi đè lõi?

Câu trả lời:


20

Trên thực tế, nó đề cập đến một trình xử lý Bố cục XML mà bạn có thể tìm thấy trong sales.xmltệp xung quanh dòng 268.

Ở đó bạn có thể tìm thấy các thẻ sau

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

Bạn có thể sao chép nó vào chủ đề của riêng bạn local.xmlvà chỉnh sửa bất cứ điều gì bạn cần. Trong trường hợp của bạn, nó sẽ được đặt lại tệp mẫu như sau: -

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

Rất tiếc, bạn hoàn toàn đúng. Cảm ơn bạn! Sẽ chấp nhận khi có thể :)
waffl

Không vấn đề gì, nó có thể hơi khó hiểu :)
Sander Mangel

@SanderMangel Làm cách nào tôi có thể tạo {{layout handle = "sales_email_order_items" order = $ order}} ngoài mặc định, mà tôi sẽ sử dụng trong các mẫu email (Khác với mẫu email xác nhận đơn hàng)
Mukesh

Tôi không chắc ý của bạn là gì nhưng bạn có thể gọi bất kỳ xử lý nào từ tệp local.xml từ mẫu email của bạn. Vì vậy, bạn có thể tạo một cái mới nếu bạn muốn
Sander Mangel

6

Bạn có thể xem mẫu "sales_email_order_items" đề cập đến khi xem xét

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

Trong app/design/frontend/base/default/layout/sales.xmlví dụ, bạn sẽ thấy:

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

Tại đây bạn có thể tìm hiểu đường dẫn: template="email/order/items.phtml"

Cấu trúc thư mục của bạn /app/design/our_theme/default/default/template/email/order/items.phtmlcó vẻ sai, đặc biệt là phần /app/design/our_theme/default/default/template...- nó phải là /app/design/our_theme/default/template...(một mặc định ít hơn, tôi đoán vậy).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.