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.