Search that plugs in without rebuilding your store

AgentSearch loads through a script that lives in its own Shadow DOM: your theme's CSS can't break it, and it can't break your theme. Behind it, a service keeps the index current by reading from your store, your PIM or your ERP.

~23 KB gzipped, no React
Isolated Shadow DOM
Several stores, one index
How it integrates

What changes in your store, and what doesn't

Very little in the theme. Most of the work is in connecting the data properly.

A light, isolated widget

A script of about 73 KB minified (23 KB gzipped), in TypeScript with no framework and several languages built in. It renders inside its own Shadow DOM: your theme's styles don't reach it and its own don't leak out.

  • Loads with defer, without blocking page rendering
  • Hooks into the search box your theme already has
  • Brand color configurable per store

Catalog sync

The index is built from wherever the reliable data lives. An incremental job checks for changed products every 5 minutes, publishing a product triggers its reindex, and stock is read from the store every hour. Reindexing 77,000 products without recomputing vectors takes 68 seconds.

  • Partial updates that keep the vectors intact
  • Email alert if the sync fails

Cart and attributed sales

Each result has an add-to-cart button that uses the platform's native cart, and the theme's cart counter updates without a reload. To know which orders came from search, on Shopify we store the search in the cart, and on PrestaShop we match orders in the database.

  • Shopify: cart attributes and an HMAC-signed orders webhook
  • PrestaShop: the same cart controller the store itself uses

Dashboard and API

Your team manages synonyms, curations and replacement products from a dashboard, and changes apply on the next search. For an app, an internal tool or an AI agent, the same search is available through a REST API.

  • Global synonyms and per-store curations
  • Search, autocomplete and click tracking via API
  • Similar products by text or by image
By platform

Shopify, PrestaShop, WooCommerce or an ERP: what changes in each case

The widget is the same everywhere. What changes is where the catalog is read from, how products are added to the cart and how sales are attributed.

PlatformCatalog and stockCartWhere the widget goesStatus
ShopifyStore API or PIM; stock hourly and deducted with each orderShopify's native cart, with the theme's cart counter refreshedSnippet before </body> in theme.liquidIn production on several stores
PrestaShop 1.7MariaDB via a read-only user; prices with each product's VATNative cart controller with the store's tokenThe theme's footer.tpl templateDeployed and validated on staging
WooCommerceWooCommerce REST API or reading the WordPress databaseWooCommerce's native add to cartChild theme footer or a minimal pluginNo store in production yet
Custom or ERPERP database, read-only, in batches and rate-limitedYour store's or app's, via APIScript on the site or API callsIn use on an ERP
Before you integrate

Things worth knowing, learned in production

Not every Shopify theme behaves the same way. On a theme based on Warehouse the widget worked without adapters, because it already listens for the cart refresh event. On Horizon we had to hide its modal search and bridge the cart.

On PrestaShop we read the store's database with a user that can only read, in batches with pauses so the server isn't overloaded. The catalog is copied into the index, so when a customer searches, the store itself receives no queries.

When the catalog lives in an ERP with no API, we read its database read-only and decide what deserves to be searchable. In an ERP holding around 5 million items, the index came down to 99,013: active items with a price and a description that had sales, stock or had been added in the last three years.

We don't have WooCommerce in production yet. The approach would mirror PrestaShop: index from the REST API or the database, load the widget from the footer and use the native cart.

Search that's down means a store without search. The service monitors the server's disk, backs up the index daily and, if the AI stops responding, keeps serving results without it. And if something doesn't sit right in the theme, rolling back means removing the snippet from the template.

How we implement it

From zero to live search

We leave it installed, with a backup of the previous theme and your team knowing how to use the dashboard.

1

We connect the data

Store, PIM or ERP, read-only

2

We configure the widget

Language, color and your theme's search box

3

We install it in the theme

With a theme backup taken first

4

We train your team

Synonyms, curations and reading the analytics

FAQ

Common questions about integration

How is AgentSearch installed on Shopify?

With a snippet before </body> in theme.liquid: a block with the store's configuration and the widget script loaded with defer. We add it through the store's API or the code editor. The widget hooks into the theme's existing search box, and an orders webhook is added to measure sales.

Does it work on PrestaShop?

Yes. We've deployed it on PrestaShop 1.7, reading its database read-only, with each product's VAT, the store's native cart and the widget loaded from footer.tpl. Sales are attributed by matching orders in the database.

What about WooCommerce?

Technically yes, with the same approach as PrestaShop, but we don't yet have a WooCommerce store running AgentSearch in production. We'd rather say so plainly: if your store runs on WooCommerce, we'll assess it with your catalog before committing to a timeline.

Will the widget slow my store down?

It's about 73 KB minified (23 KB when served gzipped), loads with defer and doesn't depend on React or any other library, so it doesn't block page rendering. The heavy lifting (index, facets and AI) happens on the server. What's worth checking is that no scripts from previous search tools are still loaded.

Can I use the search without the widget, from my app or an AI agent?

Yes. The service offers search, autocomplete and click tracking through a REST API, with the same synonyms and curations as the widget. On one deployment, the store's AI chat uses that search as a tool to look up products, stock and compatibility.

We'll show you how it would look in your theme

Tell us your platform, your theme and where your catalog comes from. From that we can tell you what needs changing and what doesn't.