Correo electrónico transaccional: cómo plantilla 'sales_email_order_items' (o cómo anular la plantilla adminhtml)


15

En el código de correo electrónico transaccional, veo esto:

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

Lo cual, creo, se refiere a este archivo de plantilla:

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

Intenté crear una nueva carpeta con nuestro tema para evitar sobrescribir los archivos principales:

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

Pero esto no parece funcionar, ¿hay una manera adecuada de anular este archivo sin simplemente sobrescribir el núcleo?

Respuestas:


20

En realidad, se refiere a un controlador XML de diseño que puede encontrar en el sales.xmlarchivo alrededor de la línea 268.

Allí puedes encontrar las siguientes etiquetas

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

Puede copiar esto a sus propios temas local.xmly editar lo que necesite. En su caso, restablecería el archivo de plantilla de la siguiente manera: -

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

Vaya, tienes toda la razón. ¡Gracias! Aceptará cuando sea posible :)
— waffl

No hay problema, puede ser algo confuso :)
— Sander Mangel

@SanderMangel ¿Cómo puedo crear {{layout handle = "sales_email_order_items" order = $ order}} que no sea el predeterminado, que usaré en las plantillas de correo electrónico (que no sea la plantilla de correo electrónico de confirmación del pedido)
— Mukesh

No estoy seguro de lo que quieres decir, pero puedes llamar a cualquier identificador desde el local.xml desde tu plantilla de correo electrónico. Para que pueda crear uno nuevo si lo desea
— Sander Mangel

6

Puede ver a qué plantilla se refiere "sales_email_order_items" cuando busca

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

En, app/design/frontend/base/default/layout/sales.xmlpor ejemplo, verá:

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

Aquí puedes encontrar el camino: template="email/order/items.phtml"

La estructura de su directorio /app/design/our_theme/default/default/template/email/order/items.phtmlparece incorrecta, especialmente la parte /app/design/our_theme/default/default/template..., debería serlo /app/design/our_theme/default/template...(uno predeterminado menos, supongo).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.