Вопрос по php, magento – Добавить пользовательский атрибут в шаблоне заказа электронной почты - Magento

7

Я создал «Название компании» атрибут, который добавляется в информацию об учетной записи моего Клиента и является обязательным полем.

Он заполняется при регистрации, формируется и корректно редактируется, а также отображается в сетке клиента в фоновом режиме.

Однако я не могу отображать название компании ни в одном из шаблонов электронной почты моего заказа.

Я полагаю, что это связано с тем, что нет ни одного столбца с именем «название компании»; в моих таблицах заказов также нет никакой пользовательской переменной, которую я могу передать шаблонам заказов / счетов / отгрузок, чтобы отображать название компании рядом со строкой после имени клиента.

Может ли кто-нибудь указать на файл, в котором я могу создать эту пользовательскую переменную, содержащую мое пользовательское «имя компании»; атрибут и передать его всем типам шаблонов продаж электронной почты

Спасибо

Ваш Ответ

1   ответ
19

. Так как у меня уже было «название компании» в качестве одного из моих атрибутов я извлек значение этого поля и передал его в качестве параметра в следующей функции

Приложение / код / ядро / Mage / Продажа / Модель / 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')}}

Если название вашей компании будет сохранено как часть Информации о клиенте, это будет отображаться в вашем электронном письме с заказом в разделе «Адрес доставки». Информация прямо на старте.

Вы можете сделать то же самое для счетов-фактур и почтовых отправлений.

Надеюсь, это поможет кому-то !!! :-)

Вы никогда не должны ни при каких обстоятельствах редактировать основные файлы! & # X2026; Если вы не видите никакой другой возможности изменить основной код, скопируйте этот файл и поместите его в app / code / local / Mage / Sales / Model / Order.php

Похожие вопросы