magento 제품 페이지 판매량 정렬 - 문자 속성 숫자별 정렬 - CAST (`sell number` AS SIGNED)
제품에 속성을 추가한 후 이 속성에 따라 정렬합니다
그런데 마젠토 백엔드에 varchar, 유형을 추가했어요.
정렬할 때는 문자에 따라 정렬하고,
프로그램 변경 필요
Mage_Catalog_Block_Product_List
함수는 다음과 같습니다.
protected function _getProductCollection()
    {
        if (is_null($this->_productCollection)) {
            $layer = $this->getLayer();
            /* @var $layer Mage_Catalog_Model_Layer */
            if ($this->getShowRootCategory()) {
                $this->setCategoryId(Mage::app()->getStore()->getRootCategoryId());
            }
            // if this is a product view page
            if (Mage::registry('product')) {
                // get collection of categories this product is associated with
                $categories = Mage::registry('product')->getCategoryCollection()
                    ->setPage(1, 1)
                    ->load();
                // if the product is associated with any category
                if ($categories->count()) {
                    // show products from this category
                    $this->setCategoryId(current($categories->getIterator()));
                }
            }
            $origCategory = null;
            if ($this->getCategoryId()) {
                $category = Mage::getModel('catalog/category')->load($this->getCategoryId());
                if ($category->getId()) {
                    $origCategory = $layer->getCurrentCategory();
                    $layer->setCurrentCategory($category);
                }
            }
            $this->_productCollection = $layer->getProductCollection();
            $this->prepareSortableFieldsByCategory($layer->getCurrentCategory());
            if ($origCategory) {
                $layer->setCurrentCategory($origCategory);
            }
        }
		
		
		$dir = $this->getRequest()->getParam('dir');
		if(!$dir){
			$dir = "DESC";
		}
		$order = $this->getRequest()->getParam('order');
		if(!$order){
			$order = "sell_number";
		}
		if($order == "sell_number"){
			$this->_productCollection->setOrder('sell_number', $dir);
			$this->_productCollection->getSelect()->reset(Zend_Db_Select::ORDER);
			$this->_productCollection->getSelect()->order('CAST(`sell_number` AS SIGNED) '.$dir.' ');
		}
		
		
        return $this->_productCollection;
    }이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.