> For the complete documentation index, see [llms.txt](https://ce-docs.keywordrush.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ce-docs.keywordrush.com/updating-products/updating-the-product-list.md).

# Product list update

Give a post an update keyword and Content Egg re-runs the search on a schedule, replacing its products with fresh results.

Content Egg can refresh more than prices. Give a post an **update keyword** and the plugin re-runs that search on a schedule, replacing the post's products with the current results. That's what you want for listings with a short lifespan — eBay auctions, rotating stock, seasonal offers.

{% hint style="info" %}
Only need current prices and stock status for the products already attached? That's a different setting — see [Price update](/updating-products/price-update.md).
{% endhint %}

## Where to set the keyword

In the post editor, open the **Content Egg** panel (egg icon, top right), click **Search & add products…** or **Manage products**, and switch to the **Settings** tab.

There are two levels: **global** keywords for the whole post, and **per-module overrides** for the modules that need something different.

### Global update keywords

Add one row per keyword: a search term, or an EAN for [price comparison](/set-up-products/price-comparison-websites.md). Every keyword is searched in all active **product** modules on the post.

<figure><img src="https://4254262503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M3fnB7iKYwDc1Xhr3H3%2Fuploads%2Fgit-blob-5711159bf8f6a72d89cb7f4124c9a2e26eef88e9%2Fupdate-keyword-rows.webp?alt=media" alt="The Settings tab with five EAN keywords, each assigned to its own product group"><figcaption><p>One row per product — each EAN feeds its own group, and so its own comparison block</p></figcaption></figure>

**Product group** is optional, and it never changes which modules are searched. It tags the products a keyword finds, so a [CE Products block](/frontend/groups.md) filtered to that group shows only those — which is how a single post keeps several comparison blocks up to date from one update.

The magnifier **tests** a row: it searches your modules and reports where the product was found. Nothing is saved. It checks eight modules per run; **Check more** continues from there.

### Per-module overrides

Pick a module under **Add module override…** and give it its own keyword. It replaces the global keyword for that module only — the field shows the global keyword as a placeholder, so you can always see what the module would otherwise search for.

Modules that support price filtering also accept **Min price** and **Max price**; the rest show `–`.

<figure><img src="https://4254262503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M3fnB7iKYwDc1Xhr3H3%2Fuploads%2Fgit-blob-4f06039c36613595516501ddf1ed311661046a3a%2Fupdate-keyword-per-module.webp?alt=media" alt="A per-module override row on the Settings tab, with module, keyword, min price and max price"><figcaption><p>A per-module keyword wins over the global one — here Ebay updates on “espresso machine”</p></figcaption></figure>

Click **Save settings** when you're done. Removing a row — or clearing its keyword — drops the override, and that module goes back to the global keyword.

{% hint style="info" %}
**Coupons, images and videos** have no global keyword. For those families the section is called **Per-module keywords**, and each module updates on its own keyword only — so a product-topic keyword can't overwrite curated coupons or media.
{% endhint %}

### Editing the keywords as text

**Edit as text** swaps the rows for the raw keyword string — the same value the classic metabox stores, and what older posts already contain. One search runs per comma-separated keyword, and `->` assigns groups:

```
keyword1,keyword2,keyword3 -> group1,group2,group3
```

## How many products, and how often

The keyword decides *what* is fetched. Each module's own settings decide *how many* and *how often* — open the module's settings page:

* **Results for updates** — how many products a single update pulls in.
* **Update by Keyword** — cache lifetime in seconds. Once it expires, the product list is fetched again with the keyword. `604800` is one week; `0` turns keyword updates off for that module.
* **Update Mode** — what triggers the update: **Page View**, **Cron Job**, or both. Cron runs in the background on WP-Cron, with nothing else to configure.

{% hint style="info" %}
If no new products are found — an API error, or a search that returns nothing — the existing products stay in place. A failed update never empties a post.
{% endhint %}

{% hint style="warning" %}
An update **replaces** that module's products on the post. Manual changes to those items — an edited title, a hand-written or AI-generated description — are lost when fresh results arrive. Keep automatic updates for posts you let the plugin own.
{% endhint %}
