답변:
Inchoo는 주문 그리드 확장에 대한 훌륭한 기사 를 썼습니다 . Atwix 블로그에는 다른 테이블에서 열을 추가하는 방법에 대한 기사 가 있습니다.
Inchoo 블로그 게시물은 기본적으로 사용자 정의 확장으로 게시물을 확장합니다. 자신의 확장 기능을 작성하는 데 익숙하지 않은 경우 Alan Storms 자습서 또는 Magento 4U 의 전리품을 가져 오는 것이 좋습니다 .
Mage_Adminhtml_Order_Grid
블록 클래스를 다시 작성하여 _prepareColumns
메소드에 열을 추가하고 _prepareCollection
사용자 정의 필드로 메소드를 확장합니다
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
. email
AS customer_email
, sales_flat_order_address
. city
FROM sales_flat_order_grid
AS main_table
INNER JOIN sales_flat_order_address
(sales_flat_order_address.address_type = '결제') = ON main_table.entity_id sales_flat_order_address.parent_id WHERE
필요에 따라 코드를 수정하십시오.
희망이 도움이됩니다.
그리드 에 추가 열에 대한 이전 게시물의 답변 (관찰자)-관찰자가 통해 판매 주문 그리드에 추가 열을 추가하는 경우 절이 모호한 문제 인 'store_id' 열에 있습니다.
다시 작성은 어제;)
이벤트를 사용하여이를 수행 할 수 있습니다. 여기에 이전 답변을 참조하십시오.
관찰자를 사용하여 Customers Admin Grid에 회사 열 추가
여기에는 필터를 조정하는 방법도 포함됩니다.
첫 번째 코드에서 타겟팅하려는 그리드를 조정하기 만하면됩니다.
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {