Magento Ver의 판매> 주문 그리드에 맞춤형 속성이있는 새 열을 추가하십시오.1.9.3.3.
-
12-12-2019 - |
문제
magento ver.1.9.3.3
** 사용자 정의 제품 속성 ** (나에게 의해 생성 된 게시자와 같은) Admin > sales >order
에서 열을 추가하려고합니다.
복사
.
app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php
~
.
app/code/local/Mage/Adminhtml/Block/Sales/Order/Grid.php
& 렌더러 만들기
.
app/code/local/Mage/Adminhtml/Block/Sales/Order/Renderer/Productspublisher.php
코드
.
Protected 함수의 <?php
class Mage_Adminhtml_Block_Sales_Order_Renderer_Productspublisher extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
$_item = $this->getItem());
$product=Mage::getModel('catalog/product')->load($_item->getProductId());
$str="";
foreach($product as $item)
{
$str .= $item->getAttributeText('publisher');
}
unset($product);
return $str;
}
}
?>
코드 _PREPERECOLUMNS () Grid.php
.
$this->addColumn('publisher', array(
'header' => Mage::helper('sales')->__('Publisher'),
'index' => 'publisher',
'renderer' => 'Mage_Adminhtml_Block_Sales_Order_Renderer_Productspublisher',
));
그러나 오류가 발생
구문 분석 오류 : 구문 오류, 예기치 않은 ')' siteDomain.com \ App \ code \ local \ mage \ adminhtml \ block \ sales \ order \ renderer \ productspublisher.php 6 호선
해결책
ProductsPublisher.php 에서이 코드를 사용하십시오.
<?php
class Mage_Adminhtml_Block_Sales_Order_Renderer_Productspublisher 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){
$product=Mage::getModel('catalog/product')->load($_item->getProductId());
$str .= $product->getAttributeText('publisher')."<br>";
}
unset($order);
return $str;
}
}
?>
. 다른 팁
atwix에서 "nofollow"> Magento Orders 그리드에 열 추가 -레이아웃 핸들을 사용하여 대체 방법
다음을 수행하는 모듈이 필요함을 제안합니다.
관리 이벤트 sales_order_grid_collection_load_before
를 듣고 Sales_Order 컬렉션에 올바른 속성 / 조인을 추가합니다.
public function salesOrderGridCollectionLoadBefore($observer)
{
$collection = $observer->getOrderGridCollection();
// Now you can add attributes to select or join onto this collection
}
.
모듈의 레이아웃 파일을 사용하여 올바른 열을 추가합니다.
<layout>
<sales_order_grid_update_handle>
<reference name="sales_order.grid">
<action method="addColumnAfter">
<columnId>column_id</columnId>
<arguments>
<header>Column Title</header>
<index>column_attribute</index>
<filter_index>column_attribute</filter_index>
<type>text</type>
</arguments>
<after>shipping_name</after>
</action>
</reference>
</sales_order_grid_update_handle>
<adminhtml_sales_order_grid>
<!-- apply layout handle defined above -->
<update handle="sales_order_grid_update_handle" />
</adminhtml_sales_order_grid>
<adminhtml_sales_order_index>
<!-- apply layout handle defined above -->
<update handle="sales_order_grid_update_handle" />
</adminhtml_sales_order_index>
</layout>
.
나는 이것을 나 자신을 시도하지 않았지만 완전한 블로그 게시물을 통해 읽는 것이 매우 기뻐할뿐만 아니라 재 작성 없이는 아주 좋은 접근 방식이 아닙니다.
코드에는 심각한 오류가 발생합니다.이것으로 무엇을 의미합니까 :
$order=Mage::getModel('catalog/product')->load($row->getData('getProductId'));
.
여기에 제품 모델을로드하고 주문 객체인가가 가정합니다.
foreach($order->getAllItems() as $_item){
.
제품 객체에서 getAllItems ()를 호출 할 수 없습니다.그것의 주문 모델의 함수.당신이 달성하려는 것을 공유하는 경우, 나는 당신을 도울 수 있습니다.