Nachdem immer wieder die Frage nach verschiedenen Variablen in Magento Transaktionsemails gekommen ist, hier eine kleine Übersicht, die ich aus dem Magento Wiki entnommen habe.
Email Variables
Following is a compiled list of variables you can use in e-mail templates. NOT VERIFIED; TEST FIRST!
Please add or edit as necessary.
– For registration:
{{var customer}} Will print out all customer information
{{var customer.ID}}
{{var customer.email}}
{{var customer.firstname}}
{{var customer.lastname}}
{{var customer.name}}
{{var customer.password}}
{{var customer.created_in}} Store Name
{{var customer.dob}} Date of Birth
{{var customer.password_hash}}
{{var customer.prefix}}
{{var customer.middlename}} Initial
{{var customer.suffix}}
{{var customer.group_id}}
{{var customer.taxvat}}
{{var customer.store.name}} What store they registered with (On Demo store this will display as ‘English’
{{var customer.store.group.name}} The actual Store’s name (not the Store View’s)
– To subscribe/unsubscribe newsletter:
{{var subscriber.getConfirmationLink()}}
{{var subscriber.getUnsubscriptionLink()}}
{{var subscriber.email}}
– Send to a friend:
{{var product_image}}
{{var name}} Recipient’s Name
{{var email}} Recipient’s Email
{{var product_name}} Product Name
{{var product_url}} Product Url
{{var message}} Message Text
{{var sender_name}} Sender’s Name
{{var sender_email}} Sender’s Email
{{var product_image}} Product Image
– Block
{{block type=’core/template’ area=’frontend’ template=’email/order/shipment/track.phtml’ shipment=$shipment order=$order}}
– Depend Condition
{{depend order.getIsNotVirtual()}}
{{/depend}}
{{depend salable}}
{{/depend}}
– If Condition
{{if order.getIsNotVirtual()}}
{{else}}
{{/if}}
(else is optional)
– Layout
Layout “handles” contain small code blocks for reuse. Handles are stored in a different location than regular templates. This location is found in the layout configuration file for the specific module you are working on. For example, the “sales_email_order_invoice_items” handle would be found in the sales.xml configuration file found in:
/app/design/frontend/default/layout/sales.xml
You will find the element:
<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>
</sales_email_order_items>
From there we can find where the template is being pulled from, and how it is being constructed. In this case:
/app/design/frontend/default/{your_theme}/template/email/order/items.phtml
is the parent template with the default template being used:
/app/design/frontend/default/{your_theme}/template/email/order/items/order/default.phtml
{{layout area=”frontend” handle=”sales_email_order_invoice_items” invoice=$invoice order=$order}}
{{layout handle=”sales_email_order_items” order=$order}}
{{layout handle=”sales_email_order_creditmemo_items” creditmemo=$creditmemo order=$order}}
{{layout handle=”sales_email_order_shipment_items” shipment=$shipment order=$order}}
– Skin
{{skin url=”‘}}
– Store
{{store url=””}}
name
– Other
{{var addAllLink}}
{{var alertGrid}}
{{var billingAddress.format(‘html’)}}
{{var checkoutType}}
{{var comment}}
{{var creditmemo.id}}
{{var creditmemo.increment_id}}
{{var data.comment}}
{{var data.email}}
{{var data.name}}
{{var data.telephone}}
{{var dateAndTime}}
{{var invoice.id}}
{{var invoice.increment_id}}
{{var invoice.created_at}}
{{var items}}
{{var items_html}}
{{var message}}
{{var name}}
{{var order.customer_email}}
{{var order.getBillingAddress().format(‘html’)}}
{{var order.getBillingAddress().getName()}}
{{var order.getCreatedAtFormated(‘long’)}}
{{var order.getCustomerName()}}
{{var order.getCustomerFirstname()}}
{{var order.getCustomerLastName()}}
{{var order.getEmailCustomerNote()}} Currently unknwon how to test this variable for being set/empty
{{var order.getShippingAddress().format(‘html’)}}
{{var order.getShippingDescription()}}
{{var order.getStatusLabel()}}
{{var order.getStoreGroupName()}}
{{var order.id}}
{{var order.increment_id}}
{{var password}}
{{var payment_html}}
{{var paymentMethod}}
{{var product_name}}
{{var product_url}}
{{var reason}} Reason for payment failure
{{var shipment.increment_id}}
{{var shippingAddress.format(‘html’)}}
{{var shippingMethod}}
{{var total}}
{{var user.name}}
{{var viewOnSiteLink}}
{{var warnings}}
{{var billing.name}} Uses the fullname from billing information (to prevent e-mail being sent to ‘Dear Guest, etc’.
Hallo,
sehr gute Aufstellung – hab ich mir gleich mal als Lesezeichen gemerkt.
Ich habe gerade das Problem bei einem Multistore in Verbindung mit dem Transaktions-E-Mails. Es wird irgendwie immer das Standardbild verwendet und nicht das aus dem Skin des Stores – kennst Du dafür evtl. eine Lösung (ausser dass man für jeden Store eigene Transaktions-E-Mails erstellen muss).
Gruß
Christian
Hi!
Ist mit dem “Standardbild” das Logo des jeweiligen Shops gemeint? Wenn ja, kann dieses bei System > Konfiguration > Verkäufe > Rechnungs- und Lieferscheingestaltung eingestellt werden. Dort gibt es das “Logo für HTML Druckansicht (auch für E-Mail Vorlagen)”
VG!
Hallo,
wird das Standardbild auch für das Template “Neue Bestellung” genutzt und je nach Storeview angezogen? Laut meinen Tests: nein!
Bitte um einen Hinweis dazu, was man da evtl. ändern muss.
Soweit ich es bisher ausprobiert habe: Ja. Sonst mal schauen (hatte ich heute den Fall), dass mglw. der Link zum Standardbild nicht richtig ist. Bei mir ist dieser z.B.
<td valign="top"></td>
Hier wird also Bezug genommen zu logo_email.gif Diese muss also richtig sein.
Hi, ich such jetzt schon eine ganze Weile und hoffe auf einen Hinweis hier: Wir möchten gerne die custom comments in der Transaktions E-Mail (Bestellung / Bestellung Gast) sichtbar machen. Haben schon {{var comment}} und {{var order.comment}} versucht, aber es funktioniert nicht. Hat jemand eine Idee? Magneto 1.7 (Onepage checkout IWD)
Wenn die Extension dies zulässt, sollte dies kein Problem sein. Was sagen denn die Entwickler dazu? Bei anderen OSC Extensions (z.B. http://www.commercers.com/blog/magento-onestepcheckout-osc-fur-ihren-shop-von-mageworld/ ) ist dies nach einer kleinen Variablenanpassung möglich.
Danke für die Antwort, die Entwickler haben sich bisher nicht gemeldet, wahrscheinlich, weil die Extension kostenlos zur Verfügung gestellt wird. Das Kommentarfeld kommt ja aus dem Magento, deshalb dachte ich man könne mit Variablen etwas erreichen… wir testen weiter…
Das hier schon gesehen? http://stackoverflow.com/questions/12510808/magento-add-existing-comment-to-order-email
bzw.
http://www.forum2tech.com/discussion/26/add-comment-to-new-order-email/p1
Do anyone know how can i show a product image in the “Send a friend” template?
So if i need {{var product_image}} it shows only the link to the product.
Thank you,
Jan
Hallo,
ich komme zwar einige Jahr zu spät, aber dennoch ist dieses Thema für mich noch aktuell 🙂
Wie ist den die Email-Variable für die ANREDE ? Ich will diese in der Email anzeigen, nur leider finde ich diese nirgendwo heraus 🙁
Hallo, schon einmal mit “prefix” rumexperimentiert?
Hallo,
sorry, hatte mich falsch ausgedrückt. Ich frage das Geschlecht ab und verwende das dann als Anrede. 🙂 Wie bekomme ich also den GENDER in die Email ?
Danke 😉
Wie kann ich die E-Mail Adresse des Kunden in die Bestellbestätigungs E-Mail einbauen? Ich habe es schon mit {{var order.getcustomer.email()}} probiert, funktioniert leider nicht.
Über eine Antwort würde ich mich sehr freuen!
VG
Hi, schon einmal {{htmlescape var=$customer_email}} probiert?
Hallo,
ich muss das Thema auch nochmal aufgreifen. Ich versuche schon ein ganzes Stück die Steuer und die Versandkosten in die Bestellbestätigung und die Rechnung zu bekommen. Leider klappt das nicht.
Wäre sehr schön, wenn ihr helfen könntet.
Vielen Dank schon mal
Moin!
Wenn es um die eMails geht, sollte dies nicht über eine Variable von oben gehen, sondern über einen Magento-Block, der über {{layout handle=”sales_email_order_items” order=$order}} geladen wird. Dieser steht wieder (zum Teil) in Verbindung mit der sales.xml des eigenen Templates (app\design\frontend\Eigenes Theme\Theme\layout\). Weiterhin spielen hier auch die totals und die items (app\design\frontend\Eigenes Theme\Theme\template\email\order\) eine wichtige Rolle.
Wir hatten gestern einen Fall in dem eine Extension ein paar der o.g. Dateien überschrieben hat und daher plötzlich der Totals-Block aus den Mails weg war.
Hoffentlich hilft dies ein wenig?!
VG
Hallo,
vielen Dank für die Antwort. Die Files habe ich mir gestern angeschaut und mit einer alten Sicherung verglichen, bei der die Emails i.O. sind. Die Files haben den gleichen Inhalt, wie in der Sicherung. Gibt es noch einen anderen Ort, an dem die Mails erzeugt werden?
Generell läuft es auch hier nach dem Motto:
Base > Default > Theme bzw.
Base > Theme bzw.
Theme (wobei dies eher ungewöhnlich wäre).
Bei der eMail-Generierung wird in 99% der Fällen also zuerst im eigenen / verwendeten Theme nach den benötigten Files geschaut. Ist dort nichts, geht es eine Stufe weiter runter usw.
Ich würde daher dies probieren:
1. Das Template des Shops, welches für die eMails verwendet wird, testweise auf “base” umstellen.
2. Cache löschen
3. eMail senden
4. Somit kann man ausschließen, dass es am eigenen Theme liegt. Gibt es den Fehler immernoch, liegt das Problem schon in der base-Ebene.
5. Nun kann man schauen, ob es evtl. eine Extension gibt, die hierauf Einfluss hat (teilweise reicht es nicht nur die Extension zu deaktivieren – mussten wir gerade feststellen)
6. Ansonsten muss man mal die Original Template-Dateien ausprobieren – evtl. als eigenes Testtheme auf den Server kopieren (“base2” z.B.)