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.
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
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.
| Platform | Catalog and stock | Cart | Where the widget goes | Status |
|---|---|---|---|---|
| Shopify | Store API or PIM; stock hourly and deducted with each order | Shopify's native cart, with the theme's cart counter refreshed | Snippet before </body> in theme.liquid | In production on several stores |
| PrestaShop 1.7 | MariaDB via a read-only user; prices with each product's VAT | Native cart controller with the store's token | The theme's footer.tpl template | Deployed and validated on staging |
| WooCommerce | WooCommerce REST API or reading the WordPress database | WooCommerce's native add to cart | Child theme footer or a minimal plugin | No store in production yet |
| Custom or ERP | ERP database, read-only, in batches and rate-limited | Your store's or app's, via API | Script on the site or API calls | In use on an ERP |
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.
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.
We connect the data
Store, PIM or ERP, read-only
We configure the widget
Language, color and your theme's search box
We install it in the theme
With a theme backup taken first
We train your team
Synonyms, curations and reading the analytics
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.