Skip to main content

Recipe: WooCommerce end-to-end

This guide builds a WooCommerce shop with semantic search, catalog sync, cart bridge and conversion tracking, all in under 30 minutes. We will use the official neuroon-search v0.8.4 plugin.

If you are looking for the AI agents plugin (UCP, Google Search AI Mode), that one is called neuroon-agentic-commerce v0.1.0 and is a separate product.

Estimated time: 20-30 min.

Prerequisites

  • WordPress 5.8+ (tested up to 6.7) with WooCommerce 6.0+ (tested up to 9.4) on PHP 7.4+.
  • Administrator access (manage_options).
  • A API Key generated from the dashboard (Production or Development).
  • SSH / SFTP access to the server (optional, for wp-cli / wp-config.php).

Step 1. Install the plugin

# Option A: WP-CLI
wp plugin install /path/to/neuroon-search-0.8.4.zip --activate

# Option B: via wp-admin
# Plugins → Add New → Upload Plugin → select the ZIP → Install Now → Activate

After activating, you will see the Settings → Neuroon Search menu. Only the Settings tab will be visible until you verify the domain (progressive disclosure).

Step 2. (Optional) Point at Development

Only if you plan to test against dev.neuroon.ai before production. Add to wp-config.php:

define('NEUROON_API_BASE_URL', 'https://dev.neuroon.ai/api');

Step 3. Configure credentials

  1. Settings → Neuroon Search → Settings tab.
  2. API Key: paste the key (Bearer token).
  3. Shop ID (optional, auto-filled when verifying).
  4. Click Save.

Step 4. Verify the domain

Click Verify Domain. The plugin automatically checks that the current domain matches the shop.url already registered in Neuroon — it's not a call you have to build yourself. If they match, the Products, Widget and Diagnostics tabs are enabled instantly.

Step 5. Initial catalog sync

  1. Settings → Neuroon Search → Products tab.
  2. Select all (or filter by category / status).
  3. Click Sync selected.

The plugin syncs the selected products in batches of 100 and updates a progress bar until it finishes.

Latency: synced products are indexed in Neuroon in 2 to 5 seconds.

Step 6. Widget embed

The plugin automatically injects the widget script if you enable Auto-embed in the Widget tab.

For manual embed (e.g. in a custom theme), use the [neuroon_search] shortcode in any page or block.

Step 7. Cart bridge

You do not have to do anything to enable it: the plugin keeps the widget's cart view in sync automatically and dispatches neuroon:cart-update whenever the cart changes.

Quick validation in the browser console:

window.addEventListener('neuroon:cart-update', e => console.log(e));
// Click "Add to cart" on a product page

Step 8. Conversion tracking

If you use the official plugin, you do not have to write or configure anything: the plugin itself hooks into the WooCommerce checkout and reports every completed order to Neuroon automatically.

If you need manual conversion tracking — for example, a custom integration that does not go through the plugin — see the Conversion tracking recipe.

Step 9. Verify the integration

# 1) Check the shop info
curl -s "https://api.neuroon.ai/api/integrations/v1/shop" \
-H "Authorization: Bearer $NEUROON_API_KEY" \
-H "Origin: https://your-shop.example"

# 2) Retrieve 5 synced products
curl -s "https://api.neuroon.ai/api/integrations/v1/products?size=5" \
-H "Authorization: Bearer $NEUROON_API_KEY" \
-H "Origin: https://your-shop.example"

# 3) Run a search using the widget token (printed in data-token)
curl -s "https://api.neuroon.ai/api/widget/search?q=t-shirt&limit=3" \
-H "X-Widget-Token: $WIDGET_TOKEN"

Common errors

SymptomCauseFix
Verify Domain fails with 403Current domain does not match the registered shop.urlReconcile the canonical domain (apex vs www.).
Sync stuck at PROCESSINGPHP-FPM timeout (max_execution_time)Raise it to 60 s.
429 during a mass syncSaturated sync rate limit (100/min)The plugin honors Retry-After; wait and retry.
Widget does not load, integrity mismatchSRI does not match the widget versionRecompute the SRI with openssl dgst -sha384 -binary.
Products do not appear in search2-5 s indexing latencyWait 5 s and retry.
Tracking does not hit the dashboardAdblocker blocks a client-side pixelThe plugin's tracking is already server-side by default; verify the API Key and the verified domain are correct.

Next steps