2014-10-13 1 views
2

magento 번들 제품을 magento admin.i에서 선택한 정렬 순서로 정렬하려고합니다. 코드 파일 아래에서 변경되었지만 아무런 변화가 없습니다. 제품 모음을 수집하는 위치에서 알 수 없습니다. 이름으로 주문을 설정할 수 있습니다. 이 함수에서 이름순으로 순서를 설정했지만 아무 것도 변경되지 않았습니다.선택한 번들 제품 항목의 정렬 순서

Mage_Bundle_Block_Adminhtml_Catalog_Product_Edit_Tab_Bundle_Option

public function getOptions() 
{ 
    if (!$this->_options) { 
     $this->getProduct()->getTypeInstance(true)->setStoreFilter($this->getProduct()->getStoreId(), 
      $this->getProduct()); 

     $optionCollection = $this->getProduct()->getTypeInstance(true)->getOptionsCollection($this->getProduct()); 

     $selectionCollection = $this->getProduct()->getTypeInstance(true)->getSelectionsCollection(
      $this->getProduct()->getTypeInstance(true)->getOptionsIds($this->getProduct()), 
      $this->getProduct() 
     ); 

     $this->_options = $optionCollection->appendSelections($selectionCollection); 
     if ($this->getCanReadPrice() === false) { 
      foreach ($this->_options as $option) { 
       if ($option->getSelections()) { 
        foreach ($option->getSelections() as $selection) { 
         $selection->setCanReadPrice($this->getCanReadPrice()); 
         $selection->setCanEditPrice($this->getCanEditPrice()); 
        } 
       } 
      } 
     } 
    } 

    return $this->_options; 
} 

enter image description here

+0

사람이 당신이 이것을 달성하기 위해'Position' 열에서 약간의 순위를 넣을 수 있습니다, 마 젠토는 자신의 사이트 또는 지금 – Zaheerabbas

+0

게시물을 좀 도와주세요 . – Kalpesh

+0

없는거야 .. 답을 얻기 위해서 magento.stackexchange.com에 .... – subroutines

답변

1

수정/연장 할 클래스는 Mage_Bundle_Model_Product_Type이고, 그 다음은 getSelectionsCollection입니다.

public function getSelectionsCollection($optionIds, $product = null) 
{ 
    $keyOptionIds = (is_array($optionIds) ? implode('_', $optionIds) : ''); 
    $key = $this->_keySelectionsCollection . $keyOptionIds; 
    if (!$this->getProduct($product)->hasData($key)) { 
     $storeId = $this->getProduct($product)->getStoreId(); 
     $selectionsCollection = Mage::getResourceModel('bundle/selection_collection') 
       ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) 
       ->addAttributeToSelect('tax_class_id') //used for calculation item taxes in Bundle with Dynamic Price 
       ->setFlag('require_stock_items', true) 
       ->setFlag('product_children', true) 
       //->setPositionOrder() //comment this line 
       ->setOrder('name', 'asc') //add this line 
       ->addStoreFilter($this->getStoreFilter($product)) 
       ->setStoreId($storeId) 
       ->addFilterByRequiredOptions() 
       ->setOptionIdsFilter($optionIds); 

     if (!Mage::helper('catalog')->isPriceGlobal() && $storeId) { 
      $websiteId = Mage::app()->getStore($storeId)->getWebsiteId(); 
      $selectionsCollection->joinPrices($websiteId); 
     } 

     $this->getProduct($product)->setData($key, $selectionsCollection); 
    } 
    return $this->getProduct($product)->getData($key); 
} 
+0

감사합니다. 당신은 내 영웅입니다. – Zaheerabbas