Transakcyjny e-mail: Jak utworzyć szablon „Sales_email_order_items” (lub jak zastąpić szablon adminhtml)

15

W transakcyjnym kodzie e-mail widzę to:

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

Które, jak sądzę, odnosi się do tego pliku szablonu:

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

Próbowałem utworzyć nowy folder z naszym motywem, aby uniknąć zastąpienia podstawowych plików:

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

Ale to nie wydaje się działać, czy istnieje właściwy sposób na zastąpienie tego pliku bez zwykłego zastąpienia rdzenia?

gofr
źródło

Odpowiedzi:

20

W rzeczywistości odnosi się do uchwytu XML układu, który można znaleźć w sales.xmlpliku wokół linii 268.

Tam znajdziesz następujące tagi

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

Możesz skopiować to do własnych motywów local.xmli edytować wszystko, czego potrzebujesz. W twoim przypadku resetowanie pliku szablonu wyglądałoby tak:

<sales_email_order_items>
    <reference name="items">
        <action method="setTemplate">
            <template>yourdirectory/order/items.phtml</template>
        </action>
    </reference>
</sales_email_order_items>
Sander Mangel
źródło
Ups, masz całkowitą rację. Dziękuję Ci! Przyjmę, jeśli to możliwe :)
waffl
Nie ma problemu, może być nieco mylące :)
Sander Mangel
@SanderMangel Jak mogę utworzyć {{układ uchwytu = "sales_email_order_items" zamówienie = $ zamówienie}} inne niż domyślne, którego będę używać w szablonach e-mail (innych niż szablon e-maila z potwierdzeniem zamówienia)
Mukesh
Nie jestem pewien, co masz na myśli, ale możesz wywołać dowolny uchwyt z pliku local.xml ze swojego szablonu wiadomości e-mail. Możesz więc utworzyć nowy, jeśli chcesz
Sander Mangel
6

Możesz zobaczyć, który szablon „sales_email_order_items” odnosi się podczas wyszukiwania

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

Na app/design/frontend/base/default/layout/sales.xmlprzykład zobaczysz:

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

Tutaj możesz znaleźć ścieżkę: template="email/order/items.phtml"

Twoja struktura katalogów /app/design/our_theme/default/default/template/email/order/items.phtmlwydaje się nieprawidłowa, szczególnie część /app/design/our_theme/default/default/template...- powinna być /app/design/our_theme/default/template...(domyślnie jedna mniejsza, tak sądzę).

Anna Völkl
źródło