Title: Emporiqa
Author: Rosen Hristov
Published: <strong>March 26, 2026</strong>
Last modified: June 4, 2026

---

Search plugins

![](https://ps.w.org/emporiqa/assets/banner-772x250.png?rev=3528261)

![](https://ps.w.org/emporiqa/assets/icon-256x256.png?rev=3528261)

# Emporiqa

 By [Rosen Hristov](https://profiles.wordpress.org/rosenhristov1/)

[Download](https://downloads.wordpress.org/plugin/emporiqa.1.1.7.zip)

 * [Details](https://pcd.wordpress.org/plugins/emporiqa/#description)
 * [Reviews](https://pcd.wordpress.org/plugins/emporiqa/#reviews)
 *  [Installation](https://pcd.wordpress.org/plugins/emporiqa/#installation)
 * [Development](https://pcd.wordpress.org/plugins/emporiqa/#developers)

 [Support](https://wordpress.org/support/plugin/emporiqa/)

## Description

Emporiqa is the WooCommerce plugin that adds an online salesperson to your store.
It recommends products from your catalog, handles objections like “too expensive”
with alternatives instead of a discount, answers shipping and returns questions 
from your own pages, and walks shoppers to checkout in 65+ languages.

**Free to install. $25 of signup credit (about 100 conversations on us). No card
required at signup.** $0.25 per conversation after that, $59/month default cap, 
customer-adjustable from the billing dashboard.

A real example: a shopper types “winter boots, waterproof, under 80, size 9” into
your store. Your search returns every boot you sell. Emporiqa returns the four boots
that match the four constraints, with stock and add-to-cart, in the shopper’s language.

Try it yourself on the [live demo store](https://demo.emporiqa.com).

**Setup is one click.** Install the plugin, click _Connect to Emporiqa_ in Settings
Emporiqa. A new tab opens, you sign in (or create a free account), pick your store,
and the plugin is connected when you return. No Store ID, no Connection Secret, 
no copy-paste between tabs. One more click sends your catalog. The widget appears
on your storefront as soon as the first product arrives.

**Every reply comes from your synced products and pages, never from training data.**
When the salesperson isn’t sure, it says so and hands off to your team with the 
full conversation context. Deactivate the plugin from the WordPress Plugins screen
and the widget is gone immediately.

**What it does:**

 * Closes sales: handles objections like “too expensive” by suggesting alternatives
   from your catalog, instead of giving up
 * Searches your product catalog by what shoppers mean, not just keywords
 * Visual search: a shopper uploads a photo (something they saw on social, a style
   they like), the chatbot describes it and finds matching products in your catalog
 * Answers questions about shipping, returns, and payment from your store pages
 * Compares products side by side
 * Adds to cart and sends shoppers to checkout
 * Tracks which chats led to purchases (full conversion funnel with chat-attributed
   revenue)
 * Starts conversations automatically based on shopper behavior (time on page, pages
   visited, checkout page)
 * Rates shopper satisfaction after each conversation (thumbs up/down with aggregate
   scores)
 * Hands off to your team when it can’t help
 * Works in 65+ languages
 * Unlimited team members on every plan, no per-seat fees

**Pricing**

The plugin is free. Emporiqa is Pay-as-you-go: $0/month base + $0.25/conversation.
New accounts get $25 of signup credit (about 100 conversations on us), no card required
at signup. After the credit, the monthly cap defaults to $59 and is customer-adjustable
from the billing dashboard. Enterprise option for catalogs over 30,000 products.
Full pricing at [emporiqa.com/pricing/](https://emporiqa.com/pricing/).

**How it works:**

 1. Install the plugin from the WordPress directory and activate it
 2. Click “Connect to Emporiqa”: sign in (or create a free account), pick your store,
    return to WP admin
 3. Click “Send my catalog”: products and pages sync, the chat widget appears on your
    store

After that, changes sync automatically in real time. No manual updates needed.

**Built for WooCommerce:**

 * All product types: simple, variable, grouped, external
 * Multi-language: Polylang, WPML
 * Multi-currency: WOOCS, WPML Multi-Currency, WC Payments, Aelia
 * In-chat cart with stock validation
 * Order tracking via REST API
 * Conversion tracking via order completion webhooks
 * Compatible with WooCommerce HPOS

Emporiqa also works with Drupal Commerce, Magento, PrestaShop, Shopware, Sylius,
and any store via webhook API. One Emporiqa account and dashboard runs across all
of them.

**For developers:**

The plugin provides 20+ WordPress filters to customize synced data, control which
products sync, override cart/checkout URLs, assign sales channels, and more. WP-
CLI commands available for bulk sync operations. See the [full documentation](https://emporiqa.com/docs/woocommerce/).

Key filters: `emporiqa_product_data`, `emporiqa_should_sync_product`, `emporiqa_widget_enabled`,`
emporiqa_checkout_url`, `emporiqa_order_tracking_data`.

**Third-Party Service**

This plugin connects to [Emporiqa](https://emporiqa.com), an external service, in
the following ways:

 * **One-click connect handshake**: When you click _Connect to Emporiqa_, your browser
   is redirected to `https://emporiqa.com/connect/start` for authentication. After
   you confirm the store on the Emporiqa side, your site receives a one-time code
   and exchanges it server-to-server (signed with PKCE) for a connection secret.
   No credentials cross the URL.
 * **Webhook sync**: Product and page data is sent to the Emporiqa API (`https://
   emporiqa.com/webhooks/sync/`) when content changes or during manual sync operations.
   Data is authenticated via HMAC-SHA256 signatures.
 * **Chat widget**: An external JavaScript file is loaded from `https://emporiqa.
   com/chat/embed/` on all public-facing pages (when a Store ID is configured) to
   display the chat assistant.
 * **Order tracking**: Emporiqa may send requests to your site’s REST API to look
   up order status on behalf of customers.

An Emporiqa account is required. By using this plugin you agree to the Emporiqa 
[Terms of Service](https://emporiqa.com/terms/) and [Privacy Policy](https://emporiqa.com/privacy/).

### Keeping your catalog in sync

Per-product changes (price, stock, description, images, status, trash, untrash) 
and product variation changes flow to Emporiqa automatically via WooCommerce action
hooks. Order completions trigger the conversion webhook on `woocommerce_checkout_order_processed`,`
woocommerce_payment_complete`, and the matching Store API + status-transition hooks.

Delivery is queued via **Action Scheduler** (bundled with WooCommerce 3.8+) with
exponential backoff at 60s, 240s, and 960s, for up to 3 retries. No separate daemon
is required, but WP-Cron must be functioning. If WP-Cron is disabled, set up a real
cron entry hitting `wp-cron.php` so Action Scheduler can drain its queue.

**Re-run a full sync from Settings  Emporiqa  Sync tab** (or `wp emporiqa sync-all`
via WP-CLI) **when:**

 * You **add or change languages** in Polylang or WPML. The active-languages list
   is auto-detected on activation and settings save, but existing products won’t
   carry new translations until they’re re-emitted.
 * You **change the store currency** in WooCommerce settings.
 * You **add a new site to a WordPress Multisite** install. Each site has its own
   settings and catalog.
 * You **rename or delete a product category, brand, or attribute taxonomy term**.
   Taxonomy events are not observed, so category names only refresh when the products
   using them are next re-saved.
 * You **change WooCommerce tax rates or tax classes** that affect displayed prices.
 * You **create or modify coupons / discounts** that change product pricing. Coupons
   themselves are not synced.
 * You **import products in bulk** via the WooCommerce CSV importer, WP All Import,
   or REST API calls that don’t fire `woocommerce_update_product`.
 * A **custom script or another plugin writes product data directly to the database**,
   bypassing standard product save events.
 * **Emporiqa was unreachable for an extended period** (network outage, planned 
   maintenance, expired credentials). Action Scheduler drops events after 3 failed
   attempts, so only a manual full sync recovers them.

As a safety net, run a full sync once a week to catch any drift that may have built
up from background failures.

## Screenshots

 * [[
 * Product search: the chatbot recommends items from your catalog when shoppers 
   describe what they want, with price, stock, and add-to-cart
 * [[
 * Closes the sale: handles objections like “cheaper on Amazon” with facts about
   your store, not a discount
 * [[
 * Product comparison: side-by-side specs, prices, and features so the shopper can
   decide without leaving the chat
 * [[
 * In-chat cart: shoppers add items and proceed to checkout without leaving the 
   conversation
 * [[
 * Customer support: answers payment, discount, and policy questions from your own
   synced pages
 * [[
 * Human handoff: when the chatbot can’t help (e.g., refund requests), it connects
   the shopper to your team and offers to capture contact details for follow-up
 * [[
 * Order tracking: shoppers check order status in chat using only their order number
   and email
 * [[
 * Dashboard: widget-live status, current-period spend versus monthly cap, pending-
   handoff and low-rated-conversation alerts, plus a Revenue & Conversions panel
   for the last 30 days
 * [[
 * One-click connect: a single button in the plugin settings links your WordPress
   site to your Emporiqa account. No Store ID, no Connection Secret to paste.
 * [[
 * Send your catalog: you land back in WP admin with a welcome card; one click sends
   your products and pages to Emporiqa

## Installation

**From wordpress.org (recommended):**

 1. Go to Plugins > Add New in your WordPress admin
 2. Search for “Emporiqa”
 3. Click Install Now, then Activate

**Manual installation:**

 1. Download the plugin from wordpress.org
 2. Upload the `emporiqa` folder to `/wp-content/plugins/`
 3. Activate the plugin through the Plugins menu

**Setup (one-click):**

 1. Go to Settings  Emporiqa in your WordPress admin
 2. Click **Connect to Emporiqa**. A new tab opens on emporiqa.com. Create a free account(
    $25 of signup credit, about 100 conversations on us, no card required at signup)
    or sign in if you already have one, then pick the store you want to connect (or
    create a new one). The plugin is connected when you return.
 3. On the Sync tab, click **Send my catalog**. Products and pages sync; the widget
    appears on your storefront when the first product arrives.

**On HTTP, or prefer to paste credentials yourself?** Expand _Edit credentials manually_
on the Settings tab. Paste a Store ID and Connection Secret from your Emporiqa dashboard
under Settings  Store Integration. Both flows reach the same place.

Full setup guide with screenshots: [emporiqa.com/docs/woocommerce/](https://emporiqa.com/docs/woocommerce/)

Integration overview: [emporiqa.com/integrations/woocommerce/](https://emporiqa.com/integrations/woocommerce/)

## FAQ

### I don’t see Store ID or Connection Secret. Where do they come from?

You don’t need them for the one-click flow. In Settings  Emporiqa, click **Connect
to Emporiqa**. You’ll sign in on emporiqa.com, pick a store, and the plugin receives
the connection details for you. If you’d rather paste them yourself, expand _Edit
credentials manually_ on the same settings page. The Store ID and Connection Secret
are in your Emporiqa dashboard under Settings  Store Integration.

### Does one-click connect work on HTTP sites?

One-click connect requires HTTPS, because the connection details are exchanged through
a signed handshake back to your site. If your store runs on plain HTTP, expand _Edit
credentials manually_ on the settings page and paste the Store ID and Connection
Secret from your Emporiqa dashboard. Both flows land you in the same place.

### Will the chatbot quote a product I don’t sell, or a price I changed yesterday?

No. Every reply is grounded in the products and pages your site syncs to Emporiqa,
never training data. Stock, prices, variations, and policy pages stay in sync as
you update them via webhooks. When the salesperson can’t answer with confidence,
it tells the shopper and offers to hand off to your team.

### What happens when a shopper sends a question my team can’t answer at midnight?

The salesperson hands off with the full conversation attached. You can configure
the handoff target in your Emporiqa dashboard (email to a team inbox, or a form 
the shopper fills in). The shopper isn’t left waiting on a human; they get a response
right away.

### How do I turn it off?

Deactivate the plugin from your WordPress Plugins screen. The chat widget disappears
from your storefront immediately. Your synced products stay on the Emporiqa side
until you delete the store there, so you can reactivate later without re-syncing.

### What happens when the $25 credit runs out?

You’ll get an email before the credit is exhausted, and again when the next billing
month’s spend approaches your $59/month default cap. If no card is on file when 
the credit runs out, the widget pauses on your storefront. Your store keeps working,
but the chat doesn’t answer until you add a card. The cap is a hard ceiling: spending
stops when you hit it, and you control whether to raise it or not from the billing
dashboard.

### Does this work with Polylang or WPML?

Yes. The plugin automatically detects Polylang and WPML, and syncs content in all
configured languages. Languages are auto-detected on activation.

### How do I do the initial sync?

After connecting, the Sync tab shows a green welcome card with a **Send my catalog**
button. Click it to send your products and pages. Or use the _Sync All_ button in
Settings  Emporiqa  Sync tab at any time, or run `wp emporiqa sync-all` via WP-CLI.
After the initial sync, changes are sent automatically in real-time.

### Can I control which products get synced?

Yes. Use the `emporiqa_should_sync_product` filter:

    ```
    add_filter( 'emporiqa_should_sync_product', function( $should_sync, $product ) {
        if ( $product->get_price() <= 0 ) {
            return false;
        }
        return $should_sync;
    }, 10, 2 );
    ```

### What post types can I sync as pages?

By default, the `page` post type is synced. You can configure additional public 
post types (posts, custom post types) in Settings  Emporiqa under “Pages and posts
to include”.

### Does the plugin support WooCommerce HPOS?

Yes. The plugin declares compatibility with WooCommerce High-Performance Order Storage(
Custom Order Tables).

### How does order tracking work?

The plugin exposes a REST API endpoint that Emporiqa calls when a customer asks 
about their order. Requests are authenticated automatically using your connection
secret.

### Does visual search work with any product?

Yes. The chatbot accepts a photo upload, describes what it sees (color, material,
category, distinctive features), and searches your catalog using that description.
Works best for products with photos that show the item clearly. The shopper doesn’t
need special tags on your products. The visual search runs through the same catalog
you already sync.

### What happens if the AI says something wrong?

Every reply comes from your synced products and pages, never from training data.
When the chatbot isn’t sure, it says so and offers to hand off to your team. You
can review every conversation in the dashboard and low-rated ones are flagged automatically.

### Where do the answers come from?

Every reply comes from your synced store content: products, shipping page, return
policy, FAQ pages. The chatbot answers from what you’ve synced, never from general
training data.

### How much does it cost?

The plugin is free. Emporiqa is Pay-as-you-go: $0/month base + $0.25/conversation.
New accounts get $25 of signup credit (about 100 conversations on us), no card required
at signup. After the credit, the monthly cap defaults to $59 and is customer-adjustable
from the billing dashboard. Enterprise option for catalogs over 30,000 products.
Full pricing at [emporiqa.com/pricing/](https://emporiqa.com/pricing/).

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Emporiqa” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ Rosen Hristov ](https://profiles.wordpress.org/rosenhristov1/)

[Translate “Emporiqa” into your language.](https://translate.wordpress.org/projects/wp-plugins/emporiqa)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/emporiqa/), check out
the [SVN repository](https://plugins.svn.wordpress.org/emporiqa/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/emporiqa/) by [RSS](https://plugins.trac.wordpress.org/log/emporiqa/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.7

 * New: maximum order quantity per product is now sent to Emporiqa. “Sold individually”(
   limit purchases to 1 per order) and the maximum from WooCommerce’s Min/Max Quantities
   extension are respected, so the chat won’t offer to add more than allowed and
   the merchant’s cart no longer silently rejects an over-the-limit add. Customizable
   via the new `emporiqa_max_order_quantity` filter.
 * New: products are flagged as digital/virtual so the chat answers “do you ship
   this?” correctly, and an availability-for-order flag lets the chat avoid trying
   to cart display-only products. Optional product condition (new / used / refurbished)
   can be supplied via the `emporiqa_product_condition` filter.
 * Changed: dropped the unused `backorders_allowed` field from the payload (backorder
   availability is already conveyed by the availability status).
 * Fix: right after a stock change the availability could be reported wrong — a 
   just-sold-out product still shown as available (then rejected at the cart), or
   a just-restocked product still shown as out of stock. For stock-managed products
   availability is now derived from the tracked quantity, which is already correct
   at save time, instead of WooCommerce’s stock-status label, which it updates a
   beat later. Most visible on variations.
 * Fix: when a variable product whose variations share parent-level stock goes out
   of stock, each variation’s availability is now updated too — previously only 
   the parent was, so the chat could keep offering a sold-out variation.
 * No action required after upgrading.

#### 1.1.6

 * New: stock and availability changes now sync instantly on their own, without 
   re-sending the whole product. When an order is placed, a product sells out, or
   you restock, Emporiqa receives a small availability update right away — so the
   chat never recommends something that just went out of stock, and comes back as
   soon as it returns.
 * Covers manual stock edits, order placement, cancellations and refunds, and updates
   made through the REST API or WP-CLI.
 * No action required after upgrading.

#### 1.1.5

 * New: minimum order quantity per product is now sent to Emporiqa. The chat will
   respect the minimum order quantity when recommending products or building carts—
   no more silent “add 1 unit” failures on products that require a higher minimum(
   e.g. wholesale, bulk, or pack-of-N items). Reads the `_minimum_allowed_quantity`
   post meta used by WooCommerce’s official Min/Max Quantities extension and popular
   free clones. Stores using a different plugin can plug in their own source via
   the new `emporiqa_min_order_quantity` filter.
 * No action required after upgrading. Default minimum stays at 1 for products with
   no constraint.

#### 1.1.4

 * Compatibility: clarified TranslatePress is not supported. The previous releases
   only read the language list from TranslatePress and never translated content.
   Removed the misleading detection so the listed compatibility (WPML, Polylang)
   reflects what actually ships.
 * Reliability: added a defensive hook for WPML’s `wpml_translation_update` action
   so translations created in the Block Editor are re-dispatched once WPML finishes
   linking them. Same shape of safety net the 1.1.3 release added for Polylang.
 * No action required after upgrading.

#### 1.1.3

 * Fix: Polylang translations created in the Block Editor no longer leak into Emporiqa
   as a separate page in the wrong language. The plugin now waits for Polylang to
   finish linking the translation before sending.
 * Fix: clearer error messages on the Sync and Test Connection screens. Instead 
   of “Unexpected status code: 401” you now see the actual reason from Emporiqa (
   e.g. invalid signature, rate limit, validation error).
 * Reliability: tighter timeouts on background webhook sends so a slow Emporiqa 
   response can’t tie up the Action Scheduler queue. Failed sends keep retrying 
   with exponential backoff (60s, 4min, 16min).
 * Reliability: queued webhook payloads now survive up to 24 hours in case the WordPress
   scheduled-action runner is temporarily delayed.
 * No action required after upgrading.

#### 1.1.2

 * One-click connect: link the store with a single button (no Store ID or Connection
   Secret to copy across tabs). Manual paste is still available on the settings 
   page for sites without HTTPS.
 * New post-connect welcome card on the Sync tab: one click to send your catalog.
   The chat widget goes live as soon as the first product arrives.
 * Reconnect rotates the connection secret automatically.
 * Settings panel rewritten in plain language for store owners. Advanced section
   explains what each option does, in store-owner terms.
 * Test Connection shows a clean “Connection successful” message on success. Errors
   keep the dry-run details for debugging.
 * Reliability: product, page, and order updates are sent to Emporiqa in the background.
   Your admin and checkout pages don’t wait on the connection, even if Emporiqa 
   is slow to respond.
 * Tested with WordPress 7.0.

#### 1.1.1

 * Parent product SKU now uses the WooCommerce SKU field when set, so customers 
   who type a real SKU find the right product. Re-sync after upgrading.

#### 1.1.0

 * Simplified settings page: Connection Settings is the only section expanded by
   default
 * Order Tracking API URL moved into Connection Settings for easier setup
 * Order tracking endpoint is now always registered. It stays protected by HMAC-
   SHA256 signature verification, a 5-minute timestamp tolerance, and per-IP rate
   limiting
 * Email verification for order tracking is now always required (no longer toggleable)
 * Test Connection button and WP-CLI command reference moved to the Sync tab (CLI
   reference collapsed by default)
 * Sync Settings (sync scope, languages, page post types) moved below Advanced and
   collapsed by default

#### 1.0.0

 * Initial release
 * Product and variation synchronization via webhooks
 * Simple, variable, grouped, and external product types supported
 * Page synchronization for configurable post types
 * Multi-language support (Polylang, WPML, WordPress locale)
 * Multi-currency support (WOOCS, WPML Multi-Currency, WC Payments, Aelia)
 * Embedded chat widget with automatic language and currency detection
 * In-chat cart operations with stock and purchasability validation
 * Conversion tracking via order completion webhooks (filterable statuses)
 * Order tracking REST API with HMAC authentication and rate limiting
 * Webhook retry with exponential backoff via Action Scheduler
 * Tax-inclusive/exclusive pricing context in product payloads
 * Variable product price ranges (min/max)
 * Stock reduction re-sync on order placement
 * WP-CLI commands for bulk sync operations
 * Event deduplication for batch operations
 * WordPress filters for data customization

## Meta

 *  Version **1.1.7**
 *  Last updated **14 minutes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/emporiqa/)
 * Tags
 * [AI Chatbot](https://pcd.wordpress.org/plugins/tags/ai-chatbot/)[chatbot](https://pcd.wordpress.org/plugins/tags/chatbot/)
   [live chat](https://pcd.wordpress.org/plugins/tags/live-chat/)[product recommendations](https://pcd.wordpress.org/plugins/tags/product-recommendations/)
   [sales](https://pcd.wordpress.org/plugins/tags/sales/)
 *  [Advanced View](https://pcd.wordpress.org/plugins/emporiqa/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/emporiqa/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/emporiqa/reviews/)

## Contributors

 *   [ Rosen Hristov ](https://profiles.wordpress.org/rosenhristov1/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/emporiqa/)