1.How to create the variables and make them available for templates?
There are two kinds of variables: configuration variables and static variables. I regards configuration variables as values set up by installation and admin back-end. They are created originally when your site is build up and go to live.
Static variables is another kind of parameter. It provides an utility for adding extra static variables.
public function getVariables()
{
$variables = array();
$variables[] = Mage::getModel('core/source_email_variables')
->toOptionArray(true);
$customVariables = Mage::getModel('core/variable')
->getVariablesOptionArray(true);
if ($customVariables) {
$variables[] = $customVariables;
}
/* @var $template Mage_Core_Model_Email_Template */
$template = Mage::registry('current_email_template');
if ($template->getId() && $templateVariables = $template->getVariablesOptionArray(true)) {
$variables[] = $templateVariables;
}
return $variables;
}
2. class Mage_Core_Model_Source_Email_Variables
In this class, it offers configuration variables' XML XPath for external usages. Magento email system can use the XML XPath and config class to get their values when it render the email content.