サイトカレンダをスキップ

«
2017年 12月
»
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

-

ログイン

ログイン

QRコード

QR code

商品一覧の表示順に「売れている商品順」を追加するには

ActiveCodelineに商品一覧の「表示順」に「売れている商品順」を追加するサンプルが紹介されています。


以下、コードの引用と手順です。

1.app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php

このファイルの中に、

$this->_availableOrder = array(
‘position’ => $this->__(’Best Value’),
‘name’ => $this->__(’Name’),
‘price’ => $this->__(’Price’)
);

という箇所があると思います。
ここを、

$this->_availableOrder = array(
‘position’ => $this->__(’Best Value’),
‘name’ => $this->__(’Name’),
‘price’ => $this->__(’Price’),
‘ordered_qty’ => $this->__(’Quantity soled’),
);

というように変更します。

2./template/catalog/product/list.phtml

このファイルの中に、

$_productCollection=$this->getLoadedProductCollection();

という箇所があります。
ここを以下のように変更します。

// Custom added
$orderFilterType = $this->getRequest()->getParam(’order’);

// Part of original template code, just moved to top of the file
$_productCollection=$this->getLoadedProductCollection();

// Custom added
if(isset($orderFilterType) && $orderFilterType === ‘ordered_qty’) {

$storeId = Mage::app()->getStore()->getId();

$_productCollection = null;
$_productCollection = Mage::getResourceModel(’reports/product_collection’)
->addAttributeToSelect(’*')
->addOrderedQty()
->setOrder(’ordered_qty’, $this->getRequest()->getParam(’dir’));
}

さらに、その後の行で、List表示とGrid表示のそれぞれに対応した記述があります。
(<?php //List Mode ?>と<?php //Grid Mode ?>というコメントがあります)
そこに書かれている以下のforeachループがあると思います。

<?php foreach ($_productCollection as $_product): ?>

このforeachの内側に、以下のような記述を加えます。

<?php if(isset($orderFilterType) && $orderFilterType === ‘ordered_qty’): ?>

// デフォルトのテンプレートに書かれていた記述

<?php else: ?>

// コピーしたデフォルトのテンプレートに書かれていた記述

<?php endif; ?>

これで画面上の「表示順」セレクトボックスには「Quantity Soled」というのが追加されます。
選択すると、その時点で売れている商品だけが表示されます。


売れてる商品一覧画面、などをカスタムで作成する場合には役に立つかもしれませんね。

トラックバック

このエントリのトラックバックURL:
http://www.magento-jp.com/trackback.php/20081109212625582
  • 商品一覧の表示順に「売れている商品順」を追加するには
  • 0件のコメント
  • アカウント登録
表示形式
コメント投稿

サイト管理者はコメントに関する責任を負いません。