관리> 영업> 주문 그리드에 열 추가


답변:


20

Inchoo는 주문 그리드 확장에 대한 훌륭한 기사 를 썼습니다 . Atwix 블로그에는 다른 테이블에서 열을 추가하는 방법에 대한 기사 가 있습니다.

Inchoo 블로그 게시물은 기본적으로 사용자 정의 확장으로 게시물을 확장합니다. 자신의 확장 기능을 작성하는 데 익숙하지 않은 경우 Alan Storms 자습서 또는 Magento 4U 의 전리품을 가져 오는 것이 좋습니다 .

Mage_Adminhtml_Order_Grid블록 클래스를 다시 작성하여 _prepareColumns메소드에 열을 추가하고 _prepareCollection사용자 정의 필드로 메소드를 확장합니다


7

2 단계의 간단한 프로세스입니다. (예 : 이 주문 그리드에 이메일 주소와 주문 도시 를 추가하고 싶습니다 ).
이 코어 파일을 동일한 디렉토리에서 로컬로 복사하십시오. app / code / core / Mage / Adminhtml / Block / Sales / Order / 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. emailAS customer_email, sales_flat_order_address. cityFROM sales_flat_order_gridAS main_tableINNER JOIN sales_flat_order_address(sales_flat_order_address.address_type = '결제') = ON main_table.entity_id sales_flat_order_address.parent_id WHERE

필요에 따라 코드를 수정하십시오.
희망이 도움이됩니다.



1

다시 작성은 어제;)

이벤트를 사용하여이를 수행 할 수 있습니다. 여기에 이전 답변을 참조하십시오.

관찰자를 사용하여 Customers Admin Grid에 회사 열 추가

여기에는 필터를 조정하는 방법도 포함됩니다.

첫 번째 코드에서 타겟팅하려는 그리드를 조정하기 만하면됩니다.

if ($event->getBlock() instanceof
                Mage_Adminhtml_Block_Newsletter_Subscriber_Grid 
            ) {
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.