문제

나는 방법을 재정의하여 관리 > 판매 > 주문에 열을 추가하려고 합니다.앱/코드/코어/MAGE/AdminHTML/Block/Sales/Order/grid.php 복사 앱/코드/로컬/Mage/AdminHtml/Block/Sales/Order/Grid.php를 복사하십시오.

보호된 함수 _prepareCollection()에 이 코드를 추가하세요.

$collection->getSelect()->join('sales_flat_order_item', '`sales_flat_order_item`.order_id=`main_table`.entity_id', array('name'  => new Zend_Db_Expr('group_concat(`sales_flat_order_item`.name SEPARATOR ", ")')));

보호된 함수 _prepareColumns()에 이 코드를 추가하세요.

$this->addColumn('name', array(
        'header' => Mage::helper('sales')->__('Product Name'),
        'index' => 'name',
    ));

하지만 이미지와 같이 모든 주문의 모든 제품 이름을 모두 가져옵니다.enter image description here

도움이 되었습니까?

해결책

보세요 Sales_Order_Grid에 SKU 및 제품 이름을 표시하시겠습니까?

다음 두 가지 방법 중 하나로 이 작업을 수행할 수 있습니다.

1) "렌더러" 사용

$this->addColumn('name', array(
    ....                                        
    'renderer' => 'NameSpace_ModuleName_Block_Adminhtml_Renderer_Productsname',          
));


class NameSpace_ModuleName_Block_Adminhtml_Renderer_Productsname extends     Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
    public function render(Varien_Object $row)
    {                    
        $order=Mage::getModel('sales/order')->load($row->getData('entity_id'));              
        $str="";

        foreach($order->getAllVisibleItems() as $_item){                      
            $str .= $_item->getSku();
    }       
        unset($order);
        return $str;
    }
}

2) "join" 사용 참조 https://magento.stackexchange.com/a/14343/519

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top