2010-08-12 6 views
2

가져 오기 제품 프로필을 사용하면 이름으로 제품을 내보낼 때 필터링 할 수 있습니다. 제품 관리 페이지에서 동일한 기능을 사용하고 싶습니다. 관리자는 그리드의 제품을 필터링 한 다음 "내보내기"버튼을 클릭하여 필터링 된 제품을 가져옵니다.관리 제품 표에서 CSV로 제품을 내 보냅니다.

"내보내기"버튼을 어떻게 추가 할 수 있습니까? 어떤 템플릿/블록을 덮어 써야합니까? 관리자가 버튼을 클릭하면 필터링 된 컬렉션을 어떻게 얻을 수 있습니까? 필터링 된 컬렉션을 CSV 파일로 내보내려면 어떻게해야합니까? 데이터 흐름을 사용할 수 있습니까?

감사

답변

9

당신은 관리 제품 컨트롤러의 새로운 massAction를 구현해야합니다. 좋은 시작 방법은 제품 컨트롤러를 살펴보고 다른 massActions가 어떻게 구현되는지 확인하는 것입니다.

먼저 살펴보기 ... 먼저 대량 작업 선언을 눈금에 추가해야합니다. 이것은 app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php에서 수행 할 수 있습니다. 당신은 _prepareMassaction 방법에 다음을 추가해야

이제
$this->getMassactionBlock()->addItem('export', array(
       'label' => Mage::helper('catalog')->__('Export to CSV'), 
       'url' => $this->getUrl('*/*/massExport', array('_current'=>true)), 
      )); 

당신이 제품 컨트롤러에서이 새로운 액션을 구현해야합니다 (응용 프로그램/코드/코어/마법사/Adminhtml/컨트롤러/카탈로그/ProductController.php) :

코드는 대부분 massDeleteAction에서 복사되지만 제품을 삭제하는 대신 $ content 변수에 추가해야합니다. csv 내보내기의 내용을 만들었 으면 (다른 필드를 추가해야 할 것입니다) 컨트롤러 클래스의 _prepareDownloadResponse 메서드를 호출해야합니다. 즉, 사용자 정의 내보내기가 있습니다! 변경 사항은 해당 지역의 코드 풀로 이동 기억에 만족하면 마지막 주에

, 그래서 당신의 젠토 설치 갱신 방지 :

+0

이 관리 제품 컨트롤러 남아? Mage_Adminhtml_Catalog_ProductController에서 massAction을 볼 수 없습니다. 코드를 찾을 수 있으면 좋을 것입니다. 감사합니다 – pablo

+0

@ 파블로 : 나는 내 반응을 반겼다. 위의 작업 코드 샘플을 참조하십시오 ... – silvo

+0

직접 csv를 만드는 대신 제품 ID 나 필터를 데이터 흐름에 전달하여 csv를 만들 수 있습니까? 그리드에 범주 필터를 추가 할 수 있습니까? – pablo

관련 문제