0

現在、アイテムを検索すると、検索条件に一致するアイテムを含むバンドルもクイック検索で表示されます。どうすればこれを止めることができますか?

検索結果からすべてのバンドルされたアイテムをまとめて除外するソリューションも問題ありません。

アップデート

商品をカタログにも検索にも表示させたくありませんが、アップセル商品として使用しています。これには2つのオプションが残っているようです:

  1. 検索結果コントローラーを修正して、バンドルされたアイテムを省略することができます (私が尋ねていた方法)、または
  2. スクリプトを変更しUpsell.phpて、「個別に表示しない」項目を含めることができます。

2番目はおそらく簡単ですか?現在適用されているフィルターは次のとおりです。

Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($this->_itemCollection);

個々のアイテムが表示されないようにするにはどうすればよいですか?

最初の質問が不完全で申し訳ありません。

2 回目の更新:

わかりました、追加しました

->setVisibility(null)

そしてそれはすでに持っています

->addStoreFilter()

しかし、変化はありません。

基本的に、次のいずれも持っていない場合:

Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($this->_itemCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($this->_itemCollection);

次に、次のエラーが表示されます。

1 ASstatusを選択しeます。entity_idetype_ideattribute_set_idprice_indexpriceprice_indextax_class_idprice_indexfinal_price, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS minimal_price, price_index. min_priceprice_indexmax_priceprice_indextier_priceenameeshort_descriptioneskuepriceespecial_priceespecial_from_dateespecial_to_dateemanufactureremanufacturer_valueesmall_imageethumbnailenews_from_dateenews_to_dateetax_class_ideurl_keyerequired_optionseimage_labelesmall_image_labelethumbnail_labeleprice_typeeweight_typeeprice_vieweshipment_typeelinks_purchased_separatelyelinks_existeis_importederc_manufacturererc_manufacturer_valueerc_vehicleerc_vehicle_valueerc_assembly_typeerc_assembly_type_valueesurface_typeesurface_type_valueerc_driveerc_drive_valueerc_scaleerc_scale_valueerc_motor_typeerc_motor_type_valueerc_engine_start_typeerc_engine_start_type_valueerc_engine_sizeerc_engine_size_valuee. rc_form_factorerc_form_factor_valueerc_frequencyerc_frequency_valueerc_gear_materialerc_gear_material_valueerc_operationerc_operation_valueerc_torque_6verc_torque_6v_valueerc_speed_6verc_speed_6v_valueerc_bearing_typeerc_bearing_type_valueerc_waterproofingerc_waterproofing_valueerc_battery_applicationerc_battery_application_valueerc_input_supplyerc_input_supply_valueerc_power_output_ampserc_power_output_amps_valueerc_power_output_wattserc_power_output_watts_valueerc_lead_connector_typeerc_lead_connector_type_valueerc_gear_pitcherc_gear_pitch_valueerc_nitro_contenterc_nitro_content_valueerc_exhaust_typeerc_exhaust_type_valueerc_engine_starter_typeerc_engine_starter_type_valueerc_head_fittingerc_head_fitting_valueerc_temperature_ratingerc_temperature_rating_valueerc_oil_typeerc_oil_type_valueerc_container_sizeerc_container_size_valueerc_classerc_class_valueerc_paint_applicationerc_paint_application_valueerc_sizeerc_size_valueerc_colourerc_colour_valueerc_pack_contentserc_pack_contents_valueerc_spare_part_typeerc_spare_part_type_valueerc_oil_weighterc_oil_weight_valueerc_glue_typeerc_glue_type_valueerc_usagee. rc_usage_valueerc_tool_typeerc_tool_type_valueerc_engine_spare_typeerc_engine_spare_type_valueerc_tune_up_typeerc_tune_up_type_valueerc_bearing_pack_typeerc_bearing_pack_type_valueerc_driver_typeerc_driver_type_valueerc_nut_typeerc_nut_type_valueerc_plane_typeerc_plane_type_valueerc_boat_typeerc_boat_type_valueepre_orderepre_order_valueemsrp_enabledemsrp_display_actual_price_typeemsrplinkslink_idlink_attribute_position_intvalueAS positionFROM catalog_product_flat_1AS e INNER AS AS JOIN catalog_product_index_priceASprice_indexオン price_index.entity_id = e.entity_id AND price_index.website_id = '1' AND price_index.customer_group_id = 0 INNER JOIN catalog_product_linkAS linksON links.linked_product_id = e.entity_id AND links.link_type_id = 4 LEFT JOIN catalog_product_link_attribute_intAS link_attribute_position_intON link_attribute_position_int.link_id = links

次のことも試しましたが、エラーが発生します。

Mage::getSingleton('catalog/product_status')->addSaleableFilterToCollection($this->_itemCollection);
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($this->_itemCollection);

助けてくれてありがとう。

4

2 に答える 2

1

更新された質問に基づいて: Enterprise Edition TargetRule またはアップセルを自動化する他のモジュールを使用していない場合 (つまり、アップセルが管理者によって明示的に定義されている場合)、おそらく最も簡単なアプローチは、指定したものです - Upsell ブロッ​​クを書き換えます可視性フィルターを追加しないようにします。推測として、最適であるためには、コレクションに対して呼び出して、通常の制限動作をトリガーすることをお勧めしsetVisibility(null)ますaddStoreFilter()

編集:以下の元の回答

  • 管理者 > カタログ > 製品の管理グリッド
  • 上部のフィルター領域から「バンドル製品」を選択し、「検索」をクリックします
  • 「すべて選択」をクリック
  • 一括アクション ブロックの [アクション] ドロップダウンから [属性の更新] を選択し、[送信] をクリックします。
  • 「可視性」属性を「カタログ」に変更します
于 2012-05-03T10:40:01.850 に答える
0

これについて心配する必要がないように、カスタムモジュールを変更することで解決しました。以下を使用する必要があるため、多少役立つ場合があります。

$collection->addAttributeToFilter('type_id', array('neq' => 'bundle'));

コレクションからすべてのバンドル アイテムを除外するだけです。

于 2012-05-10T14:50:18.523 に答える