मैं विक्रय> आदेश के अंतर्गत व्यवस्थापक अनुभाग में ग्रिड में एक कॉलम कैसे जोड़ सकता हूं?
मैं विक्रय> आदेश के अंतर्गत व्यवस्थापक अनुभाग में ग्रिड में एक कॉलम कैसे जोड़ सकता हूं?
जवाबों:
इंचू ने ऑर्डर ग्रिड को विस्तारित करने पर एक शानदार लेख लिखा । और अटविक्स ब्लॉग पर एक अलग तालिका से एक कॉलम जोड़ने पर एक लेख है ।
इनचू ब्लॉग पोस्ट मूल रूप से एक कस्टम एक्सटेंशन के साथ इसे विस्तारित करता है। यदि आप अपना स्वयं का विस्तार लिखने से परिचित नहीं हैं, तो मैं आपको सुझाव दूंगा कि आप एलन स्टॉर्म ट्यूटोरियल या मैगेंटो 4 यू से एक लूट लें ।
आप Mage_Adminhtml_Order_Grid
ब्लॉक वर्ग को _prepareColumns
विधि में एक कॉलम जोड़कर और _prepareCollection
अपने कस्टम फ़ील्ड के साथ विधि को फिर से लिखेंगे
इसकी एक 2 सरल प्रक्रिया है। (उदाहरण के लिए। मैं इस ऑर्डर ग्रिड में ईमेल एड्रेस और ऑर्डर सिटी जोड़ना चाहता हूं )।
इस कोर फाइल को आप उसी डायरेक्टरी में पहले लोकल कॉपी करें। एप्लिकेशन / कोड / कोर / दाना / Adminhtml / ब्लॉक / बिक्री / आदेश / Grid.php
चरण 1: फ़ंक्शन में कोड की निम्न पंक्ति जोड़ें _prepareColumns ()
$this->addColumn('email', array(
'header' => Mage::helper('catalog')->__('Customer Email'),
'index' => 'email',
'type' => 'text'
));
$this->addColumn('city', array(
'header' => Mage::helper('catalog')->__('Order From City'),
'index' => 'city',
'type' => 'text'
));
चरण 2: फ़ंक्शन में कोड की निम्न पंक्ति जोड़ें _prepareCollection ()
$collection->getSelect()->join('sales_flat_order_address', 'main_table.entity_id = sales_flat_order_address.parent_id' ,array('email'=> 'email', 'city'=> 'city' ));
$collection->addFieldToFilter('sales_flat_order_address.address_type', array('eq' => 'billing'));
समग्र क्वेरी निम्नानुसार होगी:
चयन करें main_table
। * sales_flat_order_address
,। email
के रूप में customer_email
, sales_flat_order_address
। city
से sales_flat_order_grid
के रूप में main_table
अंदरूनी शामिल हों sales_flat_order_address
पर main_table.entity_id = sales_flat_order_address.parent_id कहां (sales_flat_order_address.address_type = 'बिलिंग')
अपनी आवश्यकता के अनुसार कोड को संशोधित करें।
उम्मीद है की वो मदद करदे।
आप एक कॉलम (पर्यवेक्षक) में कॉलम पर पिछले पोस्ट से मेरे उत्तर का उपयोग कर सकते हैं - स्तंभ 'store_id' जिसमें बिक्री आदेश ग्रिड में अतिरिक्त कॉलम जोड़ने के लिए अस्पष्ट मुद्दा है एक पर्यवेक्षक के माध्यम से।
कल फिर से शुरू कर रहे हैं;)
आप घटनाओं का उपयोग करके ऐसा कर सकते हैं। पिछला उत्तर यहां देखें:
ऑब्ज़र्वर के साथ कस्टमर ग्रिड पर कंपनी कॉलम जोड़ें
जिसमें फ़िल्टर समायोजित करने का एक तरीका भी शामिल है।
आपको कोड के पहले बिट में लक्षित ग्रिड को समायोजित करने की आवश्यकता है:
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {