タグ付けされた質問 「layered-navigation」

階層化されたナビゲーションにより、カテゴリ、価格帯、またはその他の利用可能な属性に基づいて製品を簡単に見つけることができます。

2
Magento 2レイヤードナビゲーションで複数のカテゴリフィルターを実装する方法
階層化されたナビゲーション用に複数のカテゴリフィルターを実装しています。要件に従って結果を取得していますが、コレクションサイズが間違っているのは、親カテゴリのコレクションサイズと同じままです。 この機能を実装する他の方法はありますか。 私は次のコードを変更しました: public function apply(\Magento\Framework\App\RequestInterface $request) { $categoryId = $request->getParam($this->_requestVar) ?: $request->getParam('id'); if (empty($categoryId)) { return $this; } $this->dataProvider->setCategoryId($categoryId); $category = $this->dataProvider->getCategory(); **$this->getLayer()->getProductCollection()->addCategoryFilter($category);** if ($request->getParam('id') != $category->getId() && $this->dataProvider->isValid()) { $this->getLayer()->getState()->addFilter($this->_createItem($category->getName(), $categoryId)); } return $this; } 交換しaddCategoryFilter($category)てaddCategoriesFilter('eq' => $categoriesArray); しかし、階層化されたナビゲーションのカウントは、製品コレクションではなく、他のどこかから来ています。 どこから知りたいですか。そして、そこに複数のカテゴリーフィルターを適用するにはどうすればよいですか?

2
階層化ナビゲーションのレイアウトを変更する
階層化されたナビゲーションがあり、顧客<select/>はリンクの長いリストの代わりにフィールドを持つことを望んでいます。 フィルターの名前/ IDが一致する場合、オブザーバーでテンプレートを変更することを考えました。 より良いアイデアや推奨事項はありますか?テンプレートを変更する代わりに、ブロックを上書き/書き換えするか、2つのフィルターのブロッククラスのみを変更しますか? テンプレートの変更に使用するイベントは何ですか? 私はレイアウトのものを変更するオブザーバーを持っているため、ここで/programming/14524791/magento-enable-or-disable-a-module-in-code/14529629と同じ問題を抱えています。これはテーマにのみ関連します。更新を実行する前にテーマをチェックするのは良いアイデアかもしれませんか?

2
Magento 2:カスタム製品割引を適用した後、レイヤードナビゲーション価格フィルターが機能しない
製品割引モジュールに取り組んでいます。私はプラグインとオブザーバーでそれをしました。製品ページとリストページで正常に機能しています。ただし、更新された製品価格に応じて価格フィルターは機能しません。 価格をカスタマイズするために使用しているコードは次のとおりです。 VendorName / ModuleName / etc / di.xml <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Catalog\Pricing\Price\FinalPrice"> <plugin name="custom_discount_catalog_pricing_price_finalprice" type="VendorName\ModuleName\Plugin\FinalPrice" /> </type> </config> VendorName / ModuleName / etc / events.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <event name='catalog_product_get_final_price'> <observer name='customdiscount_finalprice' instance='VendorName\ModuleName\Observer\ProcessFinalPrice'/> </event> </config> VendorName / ModuleName / Observer / ProcessFinalPrice.php <?php namespace VendorName\ModuleName\Observer; use …

3
カスタムページのカスタムコレクションの階層化ナビゲーション-magento2
カスタム製品コレクションのmagento2でレイヤードナビゲーションを取得する作業をしています。レイヤードナビゲーションを表示する必要があるカスタムページで既にカスタムコレクションを取得しています。この magento1ソリューションを適応させようとしましたが、遠くまで行くことはできませんでした。 どのようにmagento2でそれを達成できますか?これまでに行ったことは以下のとおりです。 カスタムページのカスタム製品リストのCatalog ListProductブロックを拡張しました。 class View extends \Magento\Catalog\Block\Product\ListProduct { public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Data\Helper\PostHelper $postDataHelper, \Magento\Catalog\Model\Layer\Resolver $layerResolver, CategoryRepositoryInterface $categoryRepository, \Magento\Framework\Url\Helper\Data $urlHelper, array $data = [], \Custom\LayerNavigation\Model\Layer $testlayerobj ) { parent::__construct($context,$postDataHelper,$layerResolver, $categoryRepository,$urlHelper,$data); $this->_coreRegistry = $context->getRegistry(); $this->_testlayer = $testlayerobj; } protected function _getProductCollection() { if ($this->_productCollection === null) { $this->_productCollection …

3
Magento 1.9.2レイヤーナビゲーションを追加して検索を進める
高度な検索レイヤーナビゲーションの次の3つの手順を実行しましたが、機能しません。任意のアイデア/提案または高度な検索でレイヤーナビゲーションを実装する方法 1)local.xmlのcatalogsearch_advanced_resultタグの下に追加します。 <reference name="left"> <block type="catalogsearch/layer" name="catalogsearch.leftnav" after="currency" template="catalog/layer/view.phtml"/> </reference> 2)catalogsearch / model / Layer.phpのprepareProductCollection関数をオーバーライドします public function prepareProductCollection($collection){ if(Mage::helper('catalogsearch')->getQuery()->getQueryText())//for normal search we get the value from query string q=searchtext return parent::prepareProductCollection($collection); else{ $collection->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()); /** * make sure you cross check the $_REQUEST with $attributes */ $attributes = Mage::getSingleton('catalog/product')->getAttributes(); Mage::log(print_r($_REQUEST,1)); foreach($attributes …

2
階層化されたナビゲーションで複数のアイテムを選択する(複数の選択/チェックボックス)
どのようにタイプの属性のチェックボックスまたは複数の選択入力を使用するために、標準的な階層ナビゲーションを変換するか、ドロップダウンまたは複数選択? たとえば、ユーザーが色属性に青と赤を選択した場合、階層ナビゲーションには青または赤のいずれかに一致するすべてのアイテムが表示されます。 このページのツールバーの例を参照してください。


1
Magento 2-階層化されたナビゲーションとページネーションを備えたすべての製品ページ
私は、すべての製品ページを作成したいですfilters、toolbar、pagination。 名前で新しいカテゴリを作成し、その中のAll Productsすべての製品を割り当てることで、それを行うことができます。しかし、これは良いアプローチではないと思います。まるで、新製品がWebサイトに追加されるたびに、すべての製品カテゴリにも追加される必要があるからです。人為的ミスの可能性はたくさんあります。 ルートレベルのカテゴリでカテゴリページを呼び出す方法はありますか?からのようにID: 2 誰かが私のためにコードを書きたくない場合でも大丈夫ですが、誰かが私がそれを行うためのアプローチを見つけるのを助けることができればそれは素晴らしいでしょう。

1
Magento 2:レイヤードナビゲーションでファセットデータはどのように機能しますか?
レイヤードナビゲーションの価格帯を除き、すべてが正常に機能しているカテゴリページでカスタムフィルターのモジュールを作成しました。 誰でも私にgetFacetedData( 'price')がmagento2でどのように機能するか説明してください $productCollection->getFacetedData('price'); この関数は、フィルタリングされたコレクションではなく、デフォルトの製品コレクションに基づいた価格帯を提供します。 参考までに、次のようにコレクションをフィルタリングしました。 $productCollection = $layer->getProductCollection() ->clear() ->addAttributeToSelect(['name','price']) ->addAttributeToFilter('sku', array('in' => ['sku1','sku2']));


6
階層型ナビゲーションから「カテゴリ」フィルターを非表示または削除する
新しいWebサイトにカテゴリドロップダウンメニューが既にあるので、レイヤーからカテゴリフィルターを削除するのに苦労しています。 この問題はすでに何度も尋ねられて解決済みであることは知っていますが、すべての解決策を試しても成功しませんでした。これは私がウェブサイトで使用しているカスタムテンプレートに関連していると思います。 (テンプレートフォルダーにある)local.xmlファイルを確認した後、次の行を回避する必要があると思います。 <reference name="product_list"> <block type="core/text_list" name="category-right" as="category-right" translate="label"> <label>Right Column</label> <block type="catalog/navigation" name="catalog.category" before="-" template="catalog/navigation/category_nav.phtml"/> <block type="catalog/layer_view" name="catalog.leftnav" after="catalog.category" template="catalog/layer/view.phtml"/> <block type="filterproducts/bestsellers_home_list" name="bestseller" template="catalog/navigation/best_sellers.phtml"/> <block type="core/template" name="right.permanent.callout" template="callouts/right_col.phtml"> <block type="cms/block" name="cms_images_block"> <action method="setBlockId"><block_id>category_right_block</block_id></action> </block> </block> </block> </reference> 最初の- ブロックタイプ -はカテゴリメニューである必要があります(それで問題ありません)。2番目のブロックタイプは、カテゴリメニューのすぐ下にある「フィルター」メニューを構築します。問題はここにあると確信しています。 「catalog.leftnav」内の設定を解除する必要があると思いますが、このコードを追加しようとしても: <catalog_category_layered> <reference name="product_list"> <action method="unsetChild"><child>category_filter</child></action> </reference> </catalog_category_layered> …

2
カスタムの非属性ベースの階層化ナビゲーション。これが唯一の方法ですか?
今日、私は属性に基づいていないレイヤードナビゲーションオプションを使用しています。これは評価用なので、フロントエンドは素敵な光沢のある星を表示できます。 これを行うには私が持っています: モジュールを作成しました catalog_block_layer_viewを書き直しました <blocks> <catalog> <rewrite> <layer_view>Bob_Catalog_Block_Layer_View</layer_view> </rewrite> </catalog> </blocks> Mage_Catalog_Block_Layer_Viewを拡張するBob_Catalog_Block_Layer_Viewというクラスを作成しました _initBlocks()、getFilters()および_prepareLayout()を作成して、親クラスのメソッドをオーバーライドしました。これらはすべて、ある時点で親クラスを呼び出し、返されたデータの前に追加データを追加または追加します。 フィルターブロックBob_Catalog_Block_Layer_Filter_Ratingを作成します。このフィルターブロックは、Mage_Catalog_Block_Layer_Filter_Abstractを、filterModelNameを設定し、その親を呼び出し、次にカスタムテンプレートを設定するコンストラクターで拡張します。 Mage_Catalog_Model_Layer_Filter_Abstractを拡張し、apply()、getName()、_ getItemsData()を実装するモデルBob_Catalog_Model_Layer_Filter_Ratingを作成します。 これはすべて正常に動作します。素敵な光沢のある星がレイヤードナビゲーションに表示されます。 レイヤーステートテンプレートに関しては、カスタム評価フィルターを取得してレイアウトを変更するためにそこに条件を配置する必要があったため、何かが足りないという直感があります。また、私がする必要があるいくつかのこと(loadイベントがページネーションのコレクション数を台無しにしないように製品コレクションを複製する)は、私が丘を泳いでいるように感じさせます。 したがって、問題は、カスタムの非属性ベースのレイヤードナビゲーションフィルターを構築する方法について、より良い提案(またはおそらくブログ投稿wink)を得たかどうかです。 読んでくれてありがとう、 Si


2
階層型ナビゲーションの価格に類似した数値属性範囲をグループ化する方法は?
サイズ(cm)の数値属性があります。価格のグループ化と同様に、商品を属性の範囲にグループ化したいと思います。 したがって、サイズが151cm、152cm、153cmの製品が複数ある場合は、レイヤードナビゲーションで「150cm-155cm」オプションにグループ化する必要があります。 これを行うための最善の方法は何ですか?

2
レイヤードナビゲーションにコレクション属性が設定されていない-CMSページ
カスタム製品コレクション(「新しい」製品)を含むウィジェットを含むCMSページにレイヤードナビゲーションを追加しようとしています。このウィジェット内には、適切なパラメーターを指定してこのコレクションをフィルターする機能があります。このコレクションをレイヤードナビゲーションブロックに渡し、その属性を表示するにはどうすればよいですか? これは、CMSカスタムレイアウトXMLでレイヤードナビゲーションを呼び出す方法です。 <reference name="content"> <!-- Layered Navigation Block --> <block type="catalog/layer_view" name="catalog.leftnav" before="-" template="catalog/layer/view.phtml" > </block> </reference> これは、CMSページで製品コレクションを呼び出す方法です。 {{widget type="catalog/product_widget_new" display_type="new_products" show_pager="1" products_count="60" template="catalog/product/widget/new/content/new_grid.phtml"}} これは、ウィジェットブロックで製品コレクションを生成する方法です。 protected function _getProductCollection() { $todayStartOfDayDate = Mage::app()->getLocale()->date() ->setTime('00:00:00') ->toString(Varien_Date::DATETIME_INTERNAL_FORMAT); $todayEndOfDayDate = Mage::app()->getLocale()->date() ->setTime('23:59:59') ->toString(Varien_Date::DATETIME_INTERNAL_FORMAT); /** @var $collection Mage_Catalog_Model_Resource_Product_Collection */ $collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*')->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds()); $this->_addProductAttributesAndPrices($collection) ->addStoreFilter() ->addAttributeToFilter('news_from_date', …

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