magento从搜索结果中排除捆绑的项目

时间:2012-05-03 09:43:06

标签: search magento bundle magento-1.4

目前,当搜索某个项目时,快速搜索还会显示包含符合搜索条件的项目的任何包。我怎么能阻止这个?

从搜索结果中过滤掉所有捆绑项目的解决方案也可以。

  

更新

我不希望这些项目显示在目录或搜索中,而是将它们用作加售项目。这似乎有两个选择:

  1. 我可以修改搜索结果控制器以省略捆绑的项目(我询问的方法),或
  2. 我可以更改Upsell.php脚本以包含“不要单独显示”项目。
  3. 第二个可能更容易?目前应用的过滤器是:

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

    我如何更改此内容以显示不单独显示项目?

    对不完整的初始问题抱歉。

      

    第二次更新:

    好的,我添加了

    ->setVisibility(null)
    

    它已经有了

    ->addStoreFilter()
    

    但没有变化。

    基本上,如果我没有:

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

    然后我收到以下错误:

      

    SELECT 1 AS statuseentity_idetype_ideattribute_set_id,{{ 1}}。price_indexpriceprice_indextax_class_idprice_index,IF(price_index.tier_price IS NOT NULL,LEAST(price_index.min_price,price_index) .tier_price),price_index.min_price)AS final_priceminimal_priceprice_indexmin_priceprice_indexmax_priceprice_indextier_priceenameeshort_descriptioneskue,{ {1}}。priceespecial_priceespecial_from_dateespecial_to_date,{{1 } {。{}},emanufactureremanufacturer_valueesmall_imageethumbnailenews_from_dateenews_to_dateetax_class_ide。{ {1}},url_keyerequired_optionseimage_labelesmall_image_label。{{1 },ethumbnail_labeleprice_typeeweight_typeeprice_vieweshipment_typeelinks_purchased_separatelyelinks_existeis_imported,{ {1}}。erc_manufacturererc_manufacturer_valueerc_vehiclee,{{1 } {。{}},rc_vehicle_valueerc_assembly_typeerc_assembly_type_valueesurface_typeesurface_type_valueerc_driveerc_drive_valueerc_scale。{ {1}},erc_scale_valueerc_motor_typeerc_motor_type_valuee。{{1 },rc_engine_start_typeerc_engine_start_type_valueerc_engine_sizeerc_engine_size_valueerc_form_factorerc_form_factor_valueerc_frequencyerc_frequency_valuee,{ {1}}。rc_gear_materialerc_gear_material_valuee。{ {1}},rc_operationerc_operation_valueerc_torque_6verc_torque_6v_value。{{1 },erc_speed_6verc_speed_6v_valueerc_bearing_typeerc_bearing_type_valueerc_waterproofingerc_waterproofing_valueerc_battery_applicationerc_battery_application_value,{ {1}}。erc_input_supplyerc_input_supply_valueerc_power_output_ampse,{{1 } {。{}},rc_power_output_amps_valueerc_power_output_wattserc_power_output_watts_valueerc_lead_connector_typeerc_lead_connector_type_valueerc_gear_pitcherc_gear_pitch_valueerc_nitro_content。{ {1}},erc_nitro_content_valueerc_exhaust_typeerc_exhaust_type_valuee。{{1 },rc_engine_starter_typeerc_engine_starter_type_valueerc_head_fittingerc_head_fitting_valueerc_temperature_ratingerc_temperature_rating_valueerc_oil_typeerc_oil_type_valuee,{ {1}}。rc_container_sizeerc_container_size_valueerc_classerc_class_value,{{1 } {。{}},erc_paint_applicationerc_paint_application_valueerc_sizeerc_size_valueerc_colourerc_colour_valueerc_pack_contentse。{ {1}},rc_pack_contents_valueerc_spare_part_typeerc_spare_part_type_valueerc_oil_weight。{{1 },erc_oil_weight_valueerc_glue_typeerc_glue_type_valueerc_usageerc_usage_valueerc_tool_typeerc_tool_type_valueerc_engine_spare_type,{ {1}}。erc_engine_spare_type_valueerc_tune_up_typeerc_tune_up_type_valuee,{{1 } {。{1}},rc_bearing_pack_typeerc_bearing_pack_type_valueerc_driver_typee AS rc_driver_type_value来自e AS rc_nut_type    INNER JOIN e AS rc_nut_type_value ON price_index.entity_id = e.entity_id AND price_index.website_id ='1'AND price_index.customer_group_id = 0    INNER JOIN e AS rc_plane_type ON links.linked_product_id = e.entity_id AND links.link_type_id = 4    LEFT JOIN e AS rc_plane_type_value ON link_attribute_position_int.link_id = links

    我也尝试过以下操作,但得到错误:

    e

    感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

根据您更新的问题: 如果您没有使用Enterprise Edition TargetRule或其他自动加售的模块(即加售是由管理员明确定义的),那么最简单的方法可能是您指定的方法 - 重写Upsell块以不添加可见性过滤器。作为猜测,为了达到最佳效果,您可能需要在集合上调用setVisibility(null)addStoreFilter()来触发正常的限制行为。

编辑:原始答案

  • 管理员>目录>管理产品网格
  • 从顶部的过滤器区域选择“捆绑产品”,然后单击“搜索”
  • 点击“全选”
  • 从群组操作块的“操作”下拉列表中选择“更新属性”,然后单击“提交”
  • 将“可见性”属性更改为“目录”

答案 1 :(得分:0)

我通过修改自定义模块解决了这个问题,所以我不需要担心这个问题。它可能有一些用途,因为它涉及使用:

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

其中只排除了集合中的所有捆绑项目。

相关问题