2012-07-09 23 views
7

Utworzono atrybut "Nazwa firmy", który dodaje się do informacji o koncie mojego klienta i jest polem wymaganym.Dodaj niestandardowy atrybut w szablonach zamówień e-mail - Magento

Zapełnia się przy rejestracji, tworzy i edytuje strony w porządku, a także wyświetla się w Siatce Klienta na zapleczu.

Jednak nie mogę wyświetlić nazwy firmy w żadnym z szablonów wiadomości e-mail dotyczących zamówień.

Uważam, że dzieje się tak dlatego, że w tabelach zamówień nie ma żadnej kolumny o nazwie "nazwa firmy" ani nie mam żadnej zmiennej niestandardowej, którą można przekazać do szablonów zamówień/faktur/przesyłek, aby wyświetlić nazwę firmy tuż obok wiersza po Nazwa klienta.

Może ktoś wskazać plik, w którym mogę stworzyć tę zmienną niestandardową zawierający mój zwyczaj „Nazwa firmy” atrybut i przekazać go do wszystkich typów szablonów e-mail sprzedaży

Dzięki

Odpowiedz

17

Po trochę poszukiwania Znalazłem odpowiedni plik, aby wprowadzić zmiany. Ponieważ miałem już „companyname” jako jednego z moich atrybutów I pobrana wartość tego pola i przekazał go jako param w następującej funkcji

app/code/core/Mage/Sprzedaż/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*/ 
} 

Po wprowadzeniu tej zmiany. Zmieniłem mój adres transakcyjny, aby uwzględnić ten parametr. Ponieważ chciałem, aby wyświetlić wewnątrz Shipping Address Położyłem zmienną tuż przed tej linii w

System > Transactional Emails > New Order Email 

    {{ var companyname }} 
    {{var order.getShippingAddress.format('html')}} 

Jeśli firmy jest coraz zapisany jako część informacji o klientach wtedy to się wyświetlanym w zamówieniu Email w „Shipping Address "Informacje na samym początku.

Możesz zrobić to samo dla faktur i e-maili wysyłkowych.

Mam nadzieję, że to pomoże komuś !!! :-)

+2

W żadnym wypadku nie wolno edytować plików podstawowych! ... Jeśli nie widzisz innej szansy na zmianę kodu podstawowego, zrób kopię tego pliku i umieść go w aplikacji/code/local/Mage/Sales/Model/Order.php –

Powiązane problemy