E-mail transactionnel: comment modèle "sales_email_order_items" (ou comment remplacer le modèle adminhtml)

15

Dans le code e-mail transactionnel, je vois ceci:

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

Ce qui, je crois, fait référence à ce fichier modèle:

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

J'ai essayé de créer un nouveau dossier avec notre thème pour éviter d'écraser les fichiers principaux:

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

Mais cela ne semble pas fonctionner, existe-t-il un moyen approprié de remplacer ce fichier sans simplement écraser le noyau?

gaufre
la source

Réponses:

20

En fait, il fait référence à un descripteur XML de mise en page que vous pouvez trouver dans le sales.xmlfichier autour de la ligne 268.

Vous y trouverez les balises suivantes

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

Vous pouvez le copier dans vos propres thèmes local.xmlet modifier tout ce dont vous avez besoin. Dans votre cas, ce serait réinitialiser le fichier modèle comme suit: -

<sales_email_order_items>
    <reference name="items">
        <action method="setTemplate">
            <template>yourdirectory/order/items.phtml</template>
        </action>
    </reference>
</sales_email_order_items>
Sander Mangel
la source
Oups, vous avez tout à fait raison. Je vous remercie! Acceptera si possible :)
waffl
Pas de problème, cela peut être un peu déroutant :)
Sander Mangel
@SanderMangel Comment puis-je créer {{layout handle = "sales_email_order_items" order = $ order}} autre que par défaut, que j'utiliserai dans les modèles d'e-mail (autre que le modèle d'e-mail de confirmation de commande)
Mukesh
Je ne sais pas ce que vous voulez dire, mais vous pouvez appeler n'importe quel descripteur du fichier local.xml à partir de votre modèle d'e-mail. Vous pouvez donc en créer un nouveau si vous le souhaitez
Sander Mangel
6

Vous pouvez voir à quel modèle "sales_email_order_items" fait référence lorsque vous examinez

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

Dans app/design/frontend/base/default/layout/sales.xmlpar exemple, vous verrez:

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

Ici vous pouvez trouver le chemin: template="email/order/items.phtml"

Votre structure de répertoire /app/design/our_theme/default/default/template/email/order/items.phtmlsemble incorrecte, en particulier la partie /app/design/our_theme/default/default/template...- elle devrait l'être /app/design/our_theme/default/template...(une par défaut de moins, je suppose).

Anna Völkl
la source