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?

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>

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.