---
title: "Keyword Search Module"
description: "Build a dynamic product pool with rules for tags, names, keywords, product types, and price, or use Shopify search syntax directly."
url: https://docs.orderediting.com/en/articles/15323539-keyword-search-module
collection: "Product Modules"
updated: 2026-09-17
language: en
---

# Keyword Search Module

Build a dynamic product pool with rules for tags, names, keywords, product types, and price, or use Shopify search syntax directly.

# When to use Keyword Search

Use the **Keyword Search** module when the products to offer can be described by Shopify product data and should update without maintaining a separate collection.

The visual builder supports:

-   **Product tag**;
    
-   **Product name**;
    
-   **Keyword**;
    
-   **Product type**;
    
-   **Price**.
    

Use a **Collection** module instead when the merchandising team already maintains the exact product pool and order in Shopify.

# Build the product rules

1.  Open an upsell strategy.
    
2.  Under **Product modules**, select **Add Module**.
    
3.  Select **Keyword Search**.
    
4.  Under **Products to offer**, configure the first rule.
    
5.  Select **Add rule** for each additional condition.
    
6.  When there is more than one rule, choose whether products must match **All rules** or **Any rule**.
    
7.  Review the product preview.
    
8.  Configure quantity and offer text, then add the module and save the strategy.
    

The builder creates the Shopify search query used at runtime. Products must also be available for sale, and products excluded by the store's Hidden Products settings are not offered.

Checkout returns at most 10 products from a Keyword Search module. Use focused rules and module order to control the most relevant candidates.

# Choose a rule

<table style="min-width: 75px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Field</p></th><th colspan="1" rowspan="1"><p>Conditions</p></th><th colspan="1" rowspan="1"><p>Behaviour</p></th></tr><tr><td colspan="1" rowspan="1"><p><strong>Product tag</strong></p></td><td colspan="1" rowspan="1"><p><strong>is any of</strong>, <strong>is none of</strong></p></td><td colspan="1" rowspan="1"><p>Matches exact Shopify product tags. Multiple included values use OR; multiple excluded values must all remain absent.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Product name</strong></p></td><td colspan="1" rowspan="1"><p><strong>contains</strong>, <strong>does not contain</strong></p></td><td colspan="1" rowspan="1"><p>Matches words or phrases in the product title.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Keyword</strong></p></td><td colspan="1" rowspan="1"><p><strong>matches</strong>, <strong>excludes</strong></p></td><td colspan="1" rowspan="1"><p>Searches Shopify's general product-search terms.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Product type</strong></p></td><td colspan="1" rowspan="1"><p><strong>is any of</strong>, <strong>is none of</strong></p></td><td colspan="1" rowspan="1"><p>Matches the product type saved in Shopify.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Price</strong></p></td><td colspan="1" rowspan="1"><p><strong>under</strong>, <strong>over</strong></p></td><td colspan="1" rowspan="1"><p>Matches variant prices below or above the amount entered.</p></td></tr></tbody></table>

Use **All rules** when each condition must be true. Use **Any rule** when a product can qualify through more than one alternative.

For example, use **Product tag is any of accessory** and **Price under 50** with **All rules** to create a lower-priced accessory pool.

# Write the query manually

Select **Write query manually** when the visual fields cannot express the search you need. The editor accepts Shopify search syntax, for example:

```text
tag:"sale" AND variants.price:<50
```

The manual editor checks for unclosed quotes, missing brackets, empty brackets, and incomplete `AND`, `OR`, or `NOT` operators. Correct those errors before saving.

Select **Back to rules** to return to the visual builder. Clauses that the rules cannot represent appear as **Kept as written** and remain in the saved query until you remove them.

> **Warning:** Opening an existing module does not rewrite its query. If a saved query mixes logic the visual builder cannot safely display, Order Editing opens it in manual mode and keeps the original text unchanged. Make a deliberate edit before expecting the saved query to change.

# Check the preview

The preview applies the same availability and hidden-product constraints used by the customer-facing offer.

Before saving:

1.  confirm the preview includes the intended products;
    
2.  check that excluded tags, names, types, or keywords are absent;
    
3.  test a price boundary on both sides of the amount;
    
4.  review every market used by the strategy;
    
5.  keep the strategy in Draft until the live placement is ready.
    

A preview shows the products that match now. It does not guarantee that inventory, publication state, market availability, or product data will remain unchanged.

# Troubleshooting

## No products match

Check the exact tag, title, product type, keyword, and price values in Shopify. Remove one rule at a time to find the condition that narrows the query to zero results.

## Too many products match

Switch from **Any rule** to **All rules**, add a more specific condition, or use a curated Shopify collection.

## A product is missing from the preview

Confirm it is active, available for sale in the relevant market, not hidden by Order Editing, and inside the price boundary for at least one eligible variant.

## The module opens as a manual query

The saved query contains logic the visual rules cannot display safely, or it contains a syntax problem. Read the information banner, correct any reported error, and keep manual mode when preserving the exact advanced query is important.

## Related

- [Product Modules](https://docs.orderediting.com/en/articles/14466379-product-modules.md)
- [Upsell Products from Cart Module](https://docs.orderediting.com/en/articles/15323570-upsell-products-from-cart-module.md)
- [Upsell / Downsell Module](https://docs.orderediting.com/en/articles/15323568-upsell-downsell-module.md)
- [Subscription Upsell Module](https://docs.orderediting.com/en/articles/15323559-subscription-upsell-module.md)
- [Single Product Module](https://docs.orderediting.com/en/articles/15323557-single-product-module.md)
