カスタム/ catalogsearch /フィルター


7

私はMagentoで合計n00bです。知っておく必要があるのは、(記録的な時間で)aを維持する必要があるため、Magentoで実現する方法についての「一般的な慣習」または「標準」です。 Magentoディストリビューション(おそらく、以前の開発者が私が尋ねることを行うための汚い方法を作成しましたが、標準的な方法がわからない場合、汚い方法を推測する機会はさらに少なくなります)以下で説明するように、あなたが釘を打つことを期待していませんが、いくつかのガイダンスを教えてください。

どれどれ...

標準の検索クエリを/index.php/catalogsearch/result/?q=に送信すると、多くの「状態」に存在しない製品が見つかりました。「状態」とは、「estado」属性(製品のカスタム属性)の可能な個別の値を意味します。

私が見ることができるように、「estado」の特定の値を持つ製品は結果に表示されません(Visibilityが検索結果にそれらの製品を含めるように設定されている場合でも)。

質問:(検索クエリから取得した)製品リストに使用するカスタムフィルターを設定して、特定の状態の製品のみを保持できる場所はありますか?それに関してMagentoは標準で何をサポートしていますか?

「場所」の意味は、管理バックエンドのオプション、または最後のオプションとして、コード、イベント、コールバック、フック、インターセプター、ミドルウェアなどです(私はn00bなので、本当のことはわかりません)これらのケースでは、magentoで使用される用語がクエリをインターセプトするために使用されます。

:app / design / frontend / caramel / template / catalog / product / list.phtmlでは、反復前の最初の行は次のとおりです。

<?php
    $_productCollection=$this->getLoadedProductCollection();
    $_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<p>No encontraste lo que buscabas, <a href="<?php $_SERVER['HTTP_HOST']?>/index.php/pidenos?tipo=pidenos">p&iacute;denos</a> y lo buscamos por ti.</p>
<?php else: ?>
<!-- more code here ... -->

そして、私が見ることができるように、フィルターはここでは適用されていませんが、どこか他の場所から来ています。


1
私にとってもう1つのタンブルウィード:(
Luis Masuelli、2014年

回答:


0
app/design/frontend/caramel/template/catalog/product/list.phtml

このファイルで、すべてのフィルター、並べ替え、ページネーションなどを含むmagento出力結果コレクション。

app/code/core/Mage/CatalogSearch/Model/Layer.php
method prepareProductCollection

magento select 'clear collection(メソッドgetProductCollection)を選択し、このコレクションにカタログ検索フィルター(where条件)を適用して、レイヤードナビゲーションにコレクションをルーティングします。

** <?php echo $_productCollection->getSelect() ?>現在のSQLクエリをデータベースに出力するためのテンプレートで使用できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.