ฉันจะเพิ่มคอลัมน์ในตารางในส่วนผู้ดูแลระบบภายใต้การขาย> คำสั่งซื้อได้อย่างไร
ฉันจะเพิ่มคอลัมน์ในตารางในส่วนผู้ดูแลระบบภายใต้การขาย> คำสั่งซื้อได้อย่างไร
คำตอบ:
Inchoo เขียนบทความที่ดีเกี่ยวกับการขยายตารางคำสั่ง และในบล็อก Atwix มีบทความเกี่ยวกับการเพิ่มคอลัมน์จากตารางอื่น
โพสต์บล็อก Inchoo โดยทั่วไปจะขยายด้วยส่วนขยายที่กำหนดเอง ในกรณีที่คุณไม่คุ้นเคยกับการเขียนนามสกุลของคุณเองผมขอแนะนำให้คุณใช้ยกเค้าที่อลันพายุกวดวิชาหรือหนึ่งจากวีโอไอพี 4U
คุณจะเขียนMage_Adminhtml_Order_Grid
คลาสบล็อกใหม่เพิ่มคอลัมน์ไปยัง_prepareColumns
เมธอดและขยาย_prepareCollection
เมธอดด้วยฟิลด์ที่กำหนดเองของคุณ
มันเป็นกระบวนการง่ายๆ 2 ขั้นตอน (เช่นฉันต้องการเพิ่มที่อยู่อีเมลและเมืองสั่งซื้อในตารางคำสั่งซื้อนี้)
คัดลอกไฟล์ core นี้ไปยังโลคัลคุณก่อนในไดเร็กทอรีเดียวกัน app / รหัส / core / Mage / 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'));
ข้อความค้นหาโดยรวมจะเป็นดังนี้:
SELECT main_table
. sales_flat_order_address
* email
AS ,customer_email
จากAS INNER JOIN ON main_table.entity_id = sales_flat_order_address.parent_id WHERE (sales_flat_order_address.address_type = 'การเรียกเก็บเงิน')sales_flat_order_address
city
sales_flat_order_grid
main_table
sales_flat_order_address
ปรับเปลี่ยนรหัสตามความต้องการของคุณ
หวังว่าจะช่วย
คุณสามารถใช้คำตอบของฉันจากโพสต์ก่อนหน้าใน เพิ่มคอลัมน์ในกริด (ผู้สังเกตการณ์) - คอลัมน์ 'store_id' ในกรณีที่คำสั่งย่อยเป็นปัญหาที่ไม่ชัดเจนในการเพิ่มคอลัมน์พิเศษลงในตารางใบสั่งขายผ่านผู้สังเกตการณ์
เขียนซ้ำเมื่อวานนี้;)
คุณสามารถทำได้โดยใช้กิจกรรม ดูคำตอบก่อนหน้าที่นี่:
เพิ่มคอลัมน์ บริษัท ไปยังกริดลูกค้าผู้ดูแลระบบด้วย Observer
ซึ่งรวมถึงวิธีการปรับตัวกรอง
คุณเพียงแค่ต้องปรับกริดที่คุณกำหนดเป้าหมายไว้ในรหัสบิตแรก:
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {