Var $payment_html is injected in email variables in Mage_Sales_Model_Order::sendNewOrderEmail()
and not available for update emails.
Since exact block wich is rendered depends on payment method you will need to get that HTML using same way as in Mage_Sales_Model_Order::sendNewOrderEmail()
. You can either extend and overwrite Mage_Sales_Model_Order::sendNewOrderEmail()
or create your own block and reference it in the email template.
{{block type="your/block_type"}}
The only problem is how to pass order to your block. I am not sure if var order
will work in this context.
For logo:
There is an email var for that:
{{skin url="images/logo_email.gif" _area='frontend'}}
To make it your own, upload and replace logo_email.gif
For email variables:
Some of these exist by default:
General Store Email address:
{{config path="trans_email/ident_general/email"}}
Store Name:
{{config path="general/store_information/name"}}
Store Code is trickier. This is not exposed in the config to my knowledge for use by the email templates. I suggest using a custom template file, and refer this way:
{{block type="core/template" template="custom/storecode.phtml"}}
storecode.phtml:
<?php
echo Mage::app()->getStore()->getCode();
Alternatively, and maybe less-desirable, are Custom Variables.
Custom Variables
System > Custom Variable > Add New Variable
To Implement a custom variable into a Transactional Email, do the
following: In the Admin Panel, select System > Transactional Emails
Click the row of predefined template to edit or click [Add New
Template] button to create a new one. Create a new transactional email
first if needed. In the Template Content field, select a location for
your custom variable. Click [ Insert Variable ] and select the Custom
Variable you would like to insert.
Source: http://www.magentocommerce.com/knowledge-base/entry/creating-custom-variables
Best Answer
To send different order conformation email depending on specific criteria you would either have to :
Rewrite
sendNewOrderEmail()
in Mage_Sales_Model_Order and add logic to check the templateDisable magento "order confirmation email" in system config, then create a custom module to send your email by coping logic from sendNewOrderEmail() using event/observer
For simple text changes, you could use template logic
{{if order.customer_group_id}}
or{{depend order.customer_group_id}}
but they seem to only evaluate true/false condition, therefore for more advance logic you could include a blockIn custom_logic.phtml
See Magento Email Template If Statements