mengurutkan produk berdasarkan ulasan terbaru, diskon, paling banyak terjual, "di halaman daftar produk

10

Pada halaman daftar produk, kita dapat melihat urutkan berdasarkan "Posisi, nama, harga" seperti pada Magento default.

Cara mengurutkan berdasarkan

  1. produk terbaru (baru-baru ini diunggah)
  2. Diskon (produk diskon tertinggi lebih dulu)
  3. Penjual terbaik (produk yang paling banyak dijual terlebih dahulu)
  4. Ulasan (produk dengan nilai tinggi ditampilkan pertama kali)

Tolong beri tahu saya jika Anda membutuhkan klarifikasi ...

Baby di Magento
sumber

Jawaban:

7

untuk -> Baru Dilihat lihat di sini

untuk -> Menyortir berdasarkan peringkat

Salin file tersebut

app/code/core/Mage/Catalog/Block/Product/List.php untuk

app/code/local/Mage/Catalog/Block/Product/List.php

di list.phptemukan untuk baris ini

$this->_productCollection =$layer->getProductCollection();

yang akan di sekitar line no 86tambahkan kode berikut setelah itu

$this->_productCollection->joinField('rating_summary', 'review_entity_summary', 'rating_summary', 'entity_pk_value=entity_id', array('entity_type'=>1, 'store_id'=> Mage::app()->getStore()->getId()), 'left')

sekarang salin

app/code/core/Mage/Catalog/Model/Config.php untuk

app/code/local/Mage/Catalog/Model/Config.php

di config.php cari kode ini

$options = array(
    'position'  => Mage::helper('catalog')->__('Position')
);

ubah dengan

$options = array(
    'position'  => Mage::helper('catalog')->__('Position'),
    'rating_summary' => Mage::helper('catalog')->__('Rating')
);

- >> untuk BESTSELLER

ikuti prosedur ini membuat folder penamaan Inchoodan di dalam tempat folder Catalogdan di dalam katalog membuat 3 folder Block, etcdan ModelDi Blockadd Productdi Productadd Listdan di Listmembuat file dan nama itu sebagai Toolbar.phpdan iklan kode ini ke dalamnya

<?php
class Inchoo_Catalog_Block_Product_List_Toolbar extends Mage_Catalog_Block_Product_List_Toolbar
{
    public function setCollection($collection)
    {
        parent::setCollection($collection);

        if ($this->getCurrentOrder()) {
            if($this->getCurrentOrder() == 'qty_ordered') {
                $this->getCollection()->getSelect()
                     ->joinLeft(
                            array('sfoi' => $collection->getResource()->getTable('sales/order_item')),
                             'e.entity_id = sfoi.product_id',
                             array('qty_ordered' => 'SUM(sfoi.qty_ordered)')
                         )
                     ->group('e.entity_id')
                     ->order('qty_ordered ' . $this->getCurrentDirection());
            } else {
                $this->getCollection()
                     ->setOrder($this->getCurrentOrder(), $this->getCurrentDirection())->getSelect();
            }
        }

        return $this;
    }
}

sekarang di etcfolder buat file dengan nama config.xmldan tambahkan kode ini

<config>
    <modules>
        <Inchoo_Catalog>
            <version>0.1.0</version>
        </Inchoo_Catalog>
    </modules>
    <global>
        <blocks>
            <catalog>
                <rewrite>
                    <product_list_toolbar>Inchoo_Catalog_Block_Product_List_Toolbar</product_list_toolbar>
                </rewrite>
            </catalog>
        </blocks>
        <models>
            <catalog>
                <rewrite>
                    <config>Inchoo_Catalog_Model_Config</config>
                </rewrite>
            </catalog>
            <catalog_resource>
                <rewrite>
                    <product_collection>Inchoo_Catalog_Model_Resource_Product_Collection</product_collection>
                </rewrite>
            </catalog_resource>
        </models>
    </global>
</config>

Sekarang, Modelbuat penamaan file Config.phpdan tambahkan kode ini.

<?php class Inchoo_Catalog_Model_Config extends Mage_Catalog_Model_Config
{
    public function getAttributeUsedForSortByArray()
    {
        return array_merge(
            parent::getAttributeUsedForSortByArray(),
            array('qty_ordered' => Mage::helper('catalog')->__('Sold quantity'))
        );
    }
}

juga membuat Resourcefolder di Modeldan di Resourcefolder membuat Productfolder dan membuat penamaan file Collection.phpdan menambahkan kode berikut.

<?php
class Inchoo_Catalog_Model_Resource_Product_Collection extends Mage_Catalog_Model_Resource_Product_Collection
{
    protected function _getSelectCountSql($select = null, $resetLeftJoins = true)
    {
       $this->_renderFilters();
       $countSelect = (is_null($select)) ?
           $this->_getClearSelect() :
           $this->_buildClearSelect($select);

       if(count($countSelect->getPart(Zend_Db_Select::GROUP)) > 0) {
           $countSelect->reset(Zend_Db_Select::GROUP);
       }

       $countSelect->columns('COUNT(DISTINCT e.entity_id)');
       if ($resetLeftJoins) {
           $countSelect->resetJoinLeft();
       }
       return $countSelect;
    }
}

Sekarang akhirnya aktifkan modul ini dengan membuka app/etc/modulesfile Inchoo_Catalog.xmltambahkan kode ini.

<?xml version="1.0"?>
<!--
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Mage
 * @package     Mage_Connect
 * @copyright   Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
-->
<config>
    <modules>
        <Inchoo_Catalog>
            <active>true</active>
            <codePool>community</codePool>
            <depends />
        </Inchoo_Catalog>
    </modules>
</config>

dan untuk SALEsaya sarankan Anda ekstensi ini karena saya tidak dapat menemukan cara terprogram untuk mencapai ini.

Dh47
sumber
hai, terima kasih banyak atas balasannya, saya akan segera memeriksa dan memberi tahu Anda ....
Baby in Magento
apakah ada hal lain yang harus saya lakukan untuk mendapatkan opsi "peringkat" di "urutkan berdasarkan" di halaman daftar produk. saya melakukan cache dan manajemen indeks tetapi opsi peringkat tidak ditampilkan di bawah: urutkan berdasarkan "di halaman daftar produk.
Baby in Magento
pastebin.com/5403TsLa => list.php pastebin.com/Z7WK7C1m => config.php silakan periksa file di atas ....
Baby in Magento
hmm kode berfungsi dengan baik untuk saya, saya tidak bisa mengerti apa yang salah dengan Anda
dh47
saya akan memeriksanya sekali lagi ....
Baby in Magento