0

目前,当人们搜索一个项目时,快速搜索还会显示任何包含符合搜索条件的项目的捆绑包。我将如何阻止这一切?

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

更新

我不希望这些商品显示在目录或搜索中,而是将它们用作追加销售商品。这似乎留下了两个选择:

  1. 我可以修改搜索结果控制器以省略捆绑项目(我询问的方法),或者
  2. 我可以更改Upsell.php脚本以包含“不单独显示”项目。

第二个可能更容易?目前应用的过滤器是:

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);

然后我收到以下错误:

选择 1 作为status, e. entity_id, e. type_id, e. attribute_set_id, price_index. price, price_index. tax_class_id, price_index. final_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_price, price_index. max_price, price_index. tier_price, e. name, e. short_description, e. sku, e. price, e. special_price, e. special_from_date, e. special_to_date, e. manufacturer, e. manufacturer_value, e. small_image, e. thumbnail, e. news_from_date, e. news_to_date, e. tax_class_id, e.url_key, e. required_options, e. image_label, e. small_image_label, e. thumbnail_label, e. price_type, e. weight_type, e. price_view, e. shipment_type, e. links_purchased_separately, e. links_exist, e. is_imported, e. rc_manufacturer, e. rc_manufacturer_value, e. rc_vehicle, e. rc_vehicle_value, e. rc_assembly_type, e. rc_assembly_type_value, e. surface_type, e. surface_type_value, e. rc_drive, e. rc_drive_value, e. rc_scale, e. rc_scale_value, e. rc_motor_type, e. rc_motor_type_value, e. rc_engine_start_type, e. rc_engine_start_type_value, e. rc_engine_size, e. rc_engine_size_value,e. rc_form_factor, e. rc_form_factor_value, e. rc_frequency, e. rc_frequency_value, e. rc_gear_material, e. rc_gear_material_value, e. rc_operation, e. rc_operation_value, e. rc_torque_6v, e. rc_torque_6v_value, e. rc_speed_6v, e. rc_speed_6v_value, e. rc_bearing_type, e. rc_bearing_type_value, e. rc_waterproofing, e. rc_waterproofing_value, e. rc_battery_application, e. rc_battery_application_value, e. rc_input_supply, e. rc_input_supply_value, e. rc_power_output_amps, e. rc_power_output_amps_value, e. rc_power_output_watts, e. rc_power_output_watts_value, e. rc_lead_connector_type, e. rc_lead_connector_type_value, e. rc_gear_pitch, e. rc_gear_pitch_value, e. rc_nitro_content, e.rc_nitro_content_value, e. rc_exhaust_type, e. rc_exhaust_type_value, e. rc_engine_starter_type, e. rc_engine_starter_type_value, e. rc_head_fitting, e. rc_head_fitting_value, e. rc_temperature_rating, e. rc_temperature_rating_value, e. rc_oil_type, e. rc_oil_type_value, e. rc_container_size, e. rc_container_size_value, e. rc_class, e. rc_class_value, e. rc_paint_application, e. rc_paint_application_value, e. rc_size, e. rc_size_value, e. rc_colour, e. rc_colour_value, e. rc_pack_contents, e. rc_pack_contents_value, e. rc_spare_part_type, e. rc_spare_part_type_value, e. rc_oil_weight, e. rc_oil_weight_value, e. rc_glue_type, e. rc_glue_type_value, e. rc_usage,e. rc_usage_value, e. rc_tool_type, e. rc_tool_type_value, e. rc_engine_spare_type, e. rc_engine_spare_type_value, e. rc_tune_up_type, e. rc_tune_up_type_value, e. rc_bearing_pack_type, e. rc_bearing_pack_type_value, e. rc_driver_type, e. rc_driver_type_value, e. rc_nut_type, e. rc_nut_type_value, e. rc_plane_type, e. rc_plane_type_value, e. rc_boat_type, e. rc_boat_type_value, e. pre_order, e. pre_order_value, e. msrp_enabled, e. msrp_display_actual_price_type, e. msrp, links. link_id, link_attribute_position_int. valueAS positionFROM catalog_product_flat_1AS e INNER JOIN catalog_product_index_priceASprice_indexON 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 回答