2012-07-09 36 views
7

Tôi đã tạo thuộc tính 'Companyname' được thêm vào thông tin Tài khoản của Khách hàng và là trường bắt buộc.Thêm thuộc tính tùy chỉnh vào các mẫu email đặt hàng - Magento

Nó được lấp đầy trên đăng ký, tạo biểu mẫu và chỉnh sửa trang tốt và được hiển thị trên lưới của Khách hàng trong phần cuối.

Tuy nhiên, tôi không thể hiển thị tên Công ty trong bất kỳ mẫu email đặt hàng nào của tôi.

Tôi tin rằng điều này là do không có bất kỳ cột nào được gọi là 'tên công ty' trong bảng đơn đặt hàng của tôi và tôi không có bất kỳ biến tùy chỉnh nào mà tôi có thể chuyển sang đơn đặt hàng/hóa đơn/lô hàng để hiển thị Tên công ty ngay bên cạnh dòng sau Tên khách hàng.

Bất kỳ một thể chỉ ra những tập tin mà tôi có thể tạo biến tùy chỉnh này chứa tùy chỉnh của tôi 'CompanyName' thuộc tính và vượt qua nó để tất cả các loại mẫu email bán hàng

Cảm ơn

Trả lời

17

Sau một chút tìm kiếm Tôi đã tìm thấy tệp phù hợp để thực hiện các thay đổi. Vì tôi đã có 'tên công ty' là một trong các thuộc tính của tôi nên tôi đã lấy giá trị của trường này và chuyển nó làm thông số trong hàm sau

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*/ 
} 

Sau khi thực hiện thay đổi này. Tôi đã chỉnh sửa Email giao dịch của mình để bao gồm thông số này. Vì tôi muốn hiển thị bên trong địa chỉ giao hàng, tôi đặt biến của tôi ngay trước khi dòng này trong

System > Transactional Emails > New Order Email 

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

Nếu CompanyName của bạn là nhận được lưu lại dưới dạng một phần của thông tin khách hàng thì đây sẽ được hiển thị trong thứ tự của bạn Email trong 'địa chỉ giao hàng 'Thông tin ngay tại Start.

Bạn có thể làm tương tự cho các email hóa đơn và lô hàng.

Hy vọng điều này sẽ giúp ai đó !!! :-)

+2

Bạn sẽ không bao giờ, trong mọi trường hợp chỉnh sửa tệp lõi! … Nếu bạn không thấy bất kỳ cơ hội nào khác để thay đổi mã lõi, hãy sao chép tệp đó và đặt nó vào ứng dụng/mã/local/Mage/Sales/Model/Order.php –

Các vấn đề liên quan