0

Magentoショップで、何らかの分類メカニズム(例:タグ、カテゴリ、関連製品、またはその他の何か)によって製品を分類できるようにしたいと思います。

次に、すべての分類タイトルを表示するブロックを作成できます。次に、ユーザーはクリックして、この分類のすべての製品のページを取得できます。

例:

Honda
Toyota
Chevrolet
Hyundai
Chrysler

すでにカテゴリを使用しているため、この分類メカニズムを使用すると、多くの不要なエントリを含むリストが生成されます。タグシステムを使用することを考えていましたが、この方法でタグを使用することを説明しているリファレンスはWeb上に見つかりませんでした。多分パフォーマンスは良くありませんか?

これが最初の試みです

// Here is a first attempt - I get all products with Category=4 
// which is a "taggable" category. Then I list all related tags
require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app();

// Category 4 is called "Category with tags"
$_categoryId = "4";

$_productCollection = Mage::getModel('catalog/category')->load($_categoryId)
    ->getProductCollection()
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('status', 1)
    ->addAttributeToFilter('visibility', 4)
    ->setOrder('price', 'ASC');    


    foreach ($_productCollection as $_product):
        $model=Mage::getModel('tag/tag');
        $tags= $model->getResourceCollection()
            ->addPopularity()
            ->addStatusFilter($model->getApprovedStatus())
            ->addProductFilter($_product->getId())
            ->setFlag('relation', true)
            ->addStoreFilter(Mage::app()->getStore()->getId())
            ->setActiveFilter()
            ->load();

        if(isset($tags) && !empty($tags)):
            foreach($tags as $tag):            
                echo $tag->getName(). '<br/>';
            endforeach;
        endif;
    endforeach;

タグを一覧表示するためのコードサンプル、またはこれを行うためのより良い方法はありますか?

4

2 に答える 2

0

データベースをざっと見てみると、Magento の優れた生産性機能をバイパスすることが適切である可能性があると確信しました...

$sql = "SELECT * FROM tag WHERE status = '1'";
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
foreach ($connection->fetchAll($sql) as $arr_row) {
    print $arr_row['name'];
}
于 2012-09-20T18:27:14.353 に答える
0

階層化されたナビゲーションを試しましたか? 製品属性に基づいて分類メカニズムを作成します。レイヤード ナビゲーションを有効にしてカテゴリに入ると、そこに表示されるように設定されている製品属性のリストと、可能な値が表示されます。

レイヤード ナビゲーションを有効にするには、[カタログ] -> [カテゴリ] -> [カテゴリの管理] に移動します。そこで、いくつかのカテゴリを選択し、[表示設定] タブに移動して、[アンカー] を [はい] に設定します。

製品属性をレイヤード ナビゲーション リストに表示することを許可または禁止するには、[カタログ] -> [属性] -> [属性の管理] に移動します。そこで、必要な属性を選択し、[レイヤード ナビゲーションで使用] オプションを目的の値に設定します。

それはまさにあなたが望むものではないかもしれませんが、チェックする価値があります.

于 2012-09-23T10:57:41.390 に答える