2012-07-09 8 views
7

मैंने एक 'कंपनी नाम' विशेषता बनाई है जो मेरे ग्राहक की खाता जानकारी में जोड़ा जाता है और एक आवश्यक फ़ील्ड है।ईमेल टेम्पलेट्स के क्रम में कस्टम विशेषता जोड़ें - Magento

यह पंजीकरण, फॉर्म और पृष्ठों को ठीक से संपादित करता है और बैक एंड में भी ग्राहक के ग्रिड पर प्रदर्शित होता है।

हालांकि मैं अपने किसी भी आदेश ईमेल टेम्पलेट्स में कंपनी का नाम प्रदर्शित करने में सक्षम नहीं हूं।

मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि मेरे ऑर्डर टेबल में 'कंपनीनाम' नामक कोई भी कॉलम नहीं है और न ही मेरे पास कोई कस्टम वैरिएबल है जिसे मैं ऑर्डर/चालान/शिपमेंट टेम्पलेट्स में पास कर सकता हूं ताकि लाइन के ठीक बाद कंपनी का नाम प्रदर्शित हो सके ग्राहक का नाम।

किसी भी एक फ़ाइल का कहना है सकते हैं जहां मैं खोज का एक छोटा सा के बाद

उत्तर

17

अपने कस्टम 'companyname' विशेषता युक्त इस कस्टम चर बना सकते हैं और

धन्यवाद यह बिक्री ईमेल टेम्पलेट्स के सभी प्रकार के लिए पारित कर सकते हैं मुझे परिवर्तन करने के लिए सही फ़ाइल मिली। जब से मैं पहले से ही मेरे विशेषताओं में से एक के रूप में 'companyname' था मैं इस फ़ील्ड का मान लिया गया है और निम्नलिखित समारोह

एप्लिकेशन/कोड/कोर/दाना/बिक्री/मॉडल में एक परम/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')}} 

में इस लाइन से पहले अपने चर रखा अपने companyname ग्राहक सूचना का एक हिस्सा तो यह 'शिपिंग पता में अपने आदेश ईमेल में दिखाया जायेगा रूप में सहेजा जा रहा है, तो 'शुरुआत में सही जानकारी।

आप चालान और शिपमेंट ईमेल के लिए भी ऐसा ही कर सकते हैं।

उम्मीद है कि यह किसी की मदद करेगा !!! :-)

+2

आपको किसी भी परिस्थिति में कोर फाइलों को संपादित नहीं करना चाहिए! ... यदि आपको कोर कोड बदलने का कोई अन्य मौका नहीं दिखाई देता है, तो उस फ़ाइल की प्रति बनाएं और उसे ऐप/कोड/स्थानीय/मेज/सेल्स/मॉडल/ऑर्डर.एफ़पी में रखें –

संबंधित मुद्दे