WooCommerce is the harder platform to put AI on. Every store runs a different mix of plugins, hosting, and CDN setup — so what works on one Woo site can fall apart on another. This guide is the playbook we've stabilized over hundreds of installs.
Prerequisites
- WooCommerce 8.0+ on PHP 8.1+ (8.2 strongly recommended).
- Admin access to WordPress, not just a shop-manager role.
- SSH or hosting-panel access if you need to bump
max_execution_timefor the first sync. - An object cache (Redis or Memcached) if your store has 10k+ SKUs — this isn't strictly required, but it dramatically smooths the embedding worker's reads.
1. Install the plugin
Download the Zubby plugin from the dashboard or the WordPress.org listing, then install through the standard WordPress plugin uploader. Activate. On activation, the plugin creates a per-store API credential and surfaces it under Settings → Zubby.
Copy the Store ID and Access Token into the Zubby dashboard's "Connect WooCommerce" screen. Click Verify. The SaaS performs a Bearer + Store ID handshake against your store and, if everything lines up, marks the connection as live.
2. Validate the handshake
The auth model is constant-time-compared on every request. If you re-key the credential at any point (recommended every 90 days), update the dashboard at the same time. A mismatch will surface as a 403 in the Zubby connection log, never as a silent failure.
Tip: keep the credential in a password manager and grant it least-privilege scopes only — read product, read orders, write subscriber events. The plugin enforces this on the WP side regardless.
3. Sync the catalog
Trigger the first catalog sync from the dashboard. The plugin streams products via the WooCommerce REST API in batches of 100. For a 50,000-SKU catalog plan on 30-45 minutes total. While it runs, the dashboard surfaces a live progress meter so you know nothing has stalled.
Common gotcha: a plugin like W3 Total Cache or LiteSpeed will sometimes cache REST API responses. Add /wp-json/wc/v3/* to the cache exclusion list before triggering the sync, or you'll re-read stale snapshots.
4. Wire up webhooks
Once the catalog is in, the plugin registers webhooks for product create, product update, order create, order updated, customer updated, and refund created. These keep the embedding store fresh in near real time — usually under 60 seconds from a save in WP admin to an updated answer from the agent.
Validate end-to-end by editing a product description in WP admin and asking the agent about it 30 seconds later. The new content should appear in the agent's answer.
5. Connect Klaviyo or Mailchimp
Cart recovery emails can route through your ESP (recommended for deliverability) or our native delivery. The plugin doesn't need to know — the ESP connector is configured on the SaaS side.
Paste the API key, map the cart-event property names, send a test, and check the inbox preview. Klaviyo and Mailchimp both ship pre-built flow templates we can install on first connect.
6. Page-speed sanity check
Run PageSpeed Insights before and after the widget goes live. Expectation: no LCP regression, no CLS impact, no measurable INP change. Our widget loads after LCP and uses requestIdleCallback for non-essential hydration.
If you do see a regression, the most likely cause is a conflicting third-party chat widget. Disable the duplicate before going live.
Next steps
Once setup is solid, read the cart recovery playbook to layer in the rescue flows, and the prompt engineering guide to tune the agent's voice.