Добавьте пользовательский атрибут в шаблоны электронной почты для заказа - Magento
Я создал атрибут "Имя компании", который добавляется в информацию об учетной записи моего клиента и является обязательным полем.
Он заполняется на страницах регистрации, формы и редактирования, а также отображается в сетке клиента в фоновом режиме.
Однако я не могу отобразить название компании ни в одном из шаблонов электронной почты для заказа.
Я полагаю, что это связано с тем, что в моих таблицах заказов нет ни одного столбца с названием "имя компании", и у меня нет никаких пользовательских переменная, которую я могу передать в шаблоны заказов/счетов/отгрузок для отображения названия компании рядом со строкой после имени клиента.
Может ли кто-нибудь указать файл, в котором я могу создать эту пользовательскую переменную, содержащую мой пользовательский атрибут "имя компании", и передать его во все типы шаблонов электронной почты для продаж
Спасибо
1 answers
После небольшого поиска я нашел нужный файл для внесения изменений. Поскольку у меня уже было "имя компании" в качестве одного из моих атрибутов, я извлек значение этого поля и передал его в качестве параметра в следующей функции
App/code/core/Mage/Sales/Model/Order.php
public function sendNewOrderEmail()
{
/*Existing Code*/
if ($this->getCustomerIsGuest()) {
$templateId = Mage::getStoreConfig(self::XML_PATH_EMAIL_GUEST_TEMPLATE, $storeId);
$customerId = Mage::getModel('customer/customer')->load($this->getCustomerId());
$companyname = $customerId->getCompanyname();
$customerName = $this->getBillingAddress()->getName();
} else {
$templateId = Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE, $storeId);
$customerId = Mage::getModel('customer/customer')->load($this->getCustomerId());
$companyname = $customerId->getCompanyname();
$customerName = $this->getCustomerName();
}
/*Existing Code*/
$mailer->setTemplateParams(array(
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml,
'companyname' => $companyname
));
/*Rest of the code remains the same*/
}
После внесения этого изменения. Я отредактировал свое транзакционное электронное письмо, чтобы включить этот параметр. Поскольку я хотел отобразить внутренний адрес доставки, я разместил свою переменную непосредственно перед этой строкой в
System > Transactional Emails > New Order Email
{{ var companyname }}
{{var order.getShippingAddress.format('html')}}
Если имя вашей компании сохраняется как часть информации о клиенте, то оно будет отображаться в вашем электронном письме с заказом в разделе "Адрес доставки" в самом начале.
Вы можете сделать то же самое для электронных писем со счетами и отправками.
Надеюсь, это кому-то поможет!!! :-)