Thêm Cột vào Quản trị> Bán hàng> Lưới đơn hàng


Câu trả lời:


20

Inchoo đã viết một bài viết tuyệt vời về việc mở rộng lưới đặt hàng. Và trên blog Atwix có một bài viết về việc thêm một cột từ một bảng khác.

Bài viết trên blog Inchoo về cơ bản mở rộng nó với một phần mở rộng tùy chỉnh. Trong trường hợp bạn không quen với việc viết phần mở rộng của riêng mình, tôi khuyên bạn nên tham gia vào hướng dẫn của Alan Storms hoặc phần mở rộng từ Magento 4U .

Bạn sẽ viết lại Mage_Adminhtml_Order_Gridlớp khối thêm một cột vào _prepareColumnsphương thức và mở rộng _prepareCollectionphương thức với trường tùy chỉnh của bạn


7

Đây là một quá trình đơn giản gồm 2 bước. (ví dụ: tôi muốn thêm Địa chỉ Email và Thành phố đặt hàng trong lưới đơn hàng này).
Sao chép tập tin cốt lõi này cho bạn cục bộ đầu tiên trong cùng thư mục. ứng dụng / mã / lõi / Pháp sư / adminhtml / Chặn / Bán hàng / Đặt hàng / Grid.php

Bước 1: Thêm dòng mã sau vào hàm _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'
    ));

Bước 2: Thêm dòng mã sau vào hàm _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'));

Truy vấn tổng thể sẽ như sau:

CHỌN main_table. * , sales_flat_order_address. emailNHƯ customer_email, sales_flat_order_address. cityTỪ sales_flat_order_gridNHƯ main_tableTHAM GIA sales_flat_order_addressVÀO main_table.entity_id = sales_flat_order_address.parent_id WHERE (sales_flat_order_address.address_type = 'billing')

Sửa đổi mã theo nhu cầu của bạn.
Mong rằng sẽ giúp.



1

Viết lại là như vậy ngày hôm qua;)

Bạn có thể làm điều này bằng cách sử dụng các sự kiện. Xem câu trả lời trước đây tại đây:

Thêm cột Công ty vào Lưới quản trị khách hàng bằng Observer

trong đó cũng bao gồm một cách để điều chỉnh các bộ lọc.

Bạn chỉ cần điều chỉnh lưới bạn đang nhắm mục tiêu trong bit mã đầu tiên:

if ($event->getBlock() instanceof
                Mage_Adminhtml_Block_Newsletter_Subscriber_Grid 
            ) {
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.