E-mail transazionale: come modellare "sales_email_order_items" (o come sovrascrivere il modello adminhtml)


15

Nel codice e-mail transazionale, vedo questo:

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

Che, credo, si riferisce a questo file modello:

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

Ho provato a creare una nuova cartella con il nostro tema per evitare di sovrascrivere i file core:

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

Ma questo non sembra funzionare, c'è un modo corretto di sovrascrivere questo file senza semplicemente sovrascrivere il core?

Risposte:


20

In realtà si riferisce a un handle XML di layout che puoi trovare nel sales.xmlfile attorno alla riga 268.

Qui puoi trovare i seguenti tag

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

Puoi copiarlo sui tuoi temi local.xmle modificare tutto ciò di cui hai bisogno. Nel tuo caso sarebbe reimpostare il file modello in questo modo: -

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

Oops, hai perfettamente ragione. Grazie! Accetterà quando possibile :)
— Waffl,

Nessun problema, può essere un po 'confuso :)
— Sander Mangel

@SanderMangel Come posso creare {{handle handle = "sales_email_order_items" ordine = $ ordine}} diverso da quello predefinito, che userò nei modelli di e-mail (diversi dal modello di e-mail di conferma dell'ordine)
— Mukesh

Non sono sicuro di cosa intendi, ma puoi chiamare qualsiasi handle da local.xml dal tuo modello di email. Quindi puoi crearne uno nuovo, se lo desideri
— Sander Mangel

6

Puoi vedere quale modello "sales_email_order_items" fa riferimento quando guardi dentro

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

Ad app/design/frontend/base/default/layout/sales.xmlesempio vedrai:

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

Qui puoi scoprire il percorso: template="email/order/items.phtml"

La struttura della directory /app/design/our_theme/default/default/template/email/order/items.phtmlsembra errata, in particolare la parte /app/design/our_theme/default/default/template...: dovrebbe essere /app/design/our_theme/default/template...(un valore predefinito in meno, immagino).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.