WooCommerce Einrichtungsanleitung

Fügen Sie einen Chat-Assistenten zu Ihrem WooCommerce Shop mit automatischer Produktsynchronisierung hinzu.

Sie befinden sich im Entwickler-Einrichtungsanleitung. Suchen Sie nach einem Überblick darüber, was Emporiqa für Ihren WooCommerce Shop tut? Zur Integrations-Seite.

Zur Integrations-Seite

Schnellstart

Plugin installieren, auf Mit Emporiqa verbinden klicken, Katalog senden. Das Plugin berührt weder Ihr Theme noch Ihren Checkout. Die Schaltfläche Verbindung testen prüft alles, bevor Produktdaten den Shop verlassen, und Sie können das Plugin vom selben Screen aus deaktivieren, falls es nicht passt.

Was Sie brauchen

  • Admin-Zugriff auf Ihre WordPress-Website über HTTPS (WordPress 6.0+, WooCommerce 8.0+)
  • Ein Emporiqa-Konto, oder erstellen Sie eines im Schritt 1 (kostenlos, 25 $ Startguthaben, ohne Kreditkarte)
  • Ein paar Minuten Zeit. Synchronisierung läuft im Hintergrund; Sie müssen den Tab nicht offen halten.

First, install and activate the plugin. In WordPress admin go to Plugins → Add New, search for Emporiqa, click Install Now, then Activate. Or upload the zip from wordpress.org/plugins/emporiqa via Plugins → Add New → Upload Plugin.

1

Auf Mit Emporiqa verbinden klicken

Gehen Sie zu Einstellungen → Emporiqa. Klicken Sie auf Mit Emporiqa verbinden. Sie landen im Emporiqa-Dashboard, bestätigen den Shop, den Sie verknüpfen möchten (oder erstellen einen neuen), und kommen zurück zu einem verbundenen Plugin. Keine Shop-ID oder kein Verbindungsgeheimnis zum Kopieren zwischen Tabs.

WordPress admin showing the Emporiqa Settings page with a primary Connect to Emporiqa button and a collapsed Edit credentials manually disclosure below
Settings → Emporiqa → Connect to Emporiqa
Manuelle Einrichtung bevorzugt?

Wenn Ihre Website nicht über HTTPS läuft, oder wenn Sie die Zugangsdaten lieber selbst einfügen möchten, öffnen Sie Zugangsdaten manuell bearbeiten auf der Einstellungsseite. Fügen Sie Shop-ID und Verbindungsgeheimnis aus Ihrem Emporiqa-Dashboard unter Shop-Einstellungen → Integration ein. Beide Wege führen zum gleichen Ergebnis.

2

Katalog senden

Nach dem Verbinden zeigt der Tab Synchronisierung eine grüne Willkommenskarte mit Katalog senden. Klicken Sie darauf, um alle Produkte und Seiten in einem Schritt zu senden. Größere Kataloge dauern einige Minuten; der Bereich zeigt den Fortschritt. Um die Verbindung zu validieren, bevor Daten den Shop verlassen, klicken Sie zuerst auf Verbindung testen (Testlauf).

WordPress admin Sync tab showing a green welcome card with Connected to Emporiqa, a Send my catalog button, and the Bulk Sync panel below
Sync tab: Send my catalog welcome card above Bulk Sync
3

Chat-Widget überprüfen

Öffnen Sie Ihre Shop-Seite. Die Chat-Blase erscheint in der unteren rechten Ecke. Klicken Sie darauf, stellen Sie eine Produktfrage und sehen Sie, wie der Verkäufer aus Ihrem Katalog antwortet.

Shopper describes what they want, the online salesperson recommends the right product from your catalog
Chat widget on the Emporiqa demo store — the same widget runs on your WooCommerce storefront.

Sie sind online

  • Verbindung ist signiert und lässt sich aus dem Plugin erneuern. Keine Zugangsdaten im Klartext gespeichert.
  • Neue Produkte und Seiten synchronisieren sich automatisch, wenn Sie sie speichern
  • Kunden können nach Produkten, Richtlinien und ihren Bestellungen fragen
  • In den Chat hinzufügen; Kunden fahren mit Ihrem WooCommerce-Bezahlvorgang fort

Need to customize sync behavior, add custom fields, or integrate with a third-party plugin?

See Developer Docs

Developer Documentation

Architecture, configuration reference, webhook payload schema, WP-CLI commands, and customization filters.

Architecture

The plugin listens to WooCommerce and WordPress hooks (woocommerce_update_product, save_post, woocommerce_order_status_completed, etc.) and sends webhook events to Emporiqa using deferred delivery: product and page events are queued during the request and flushed on shutdown, while order conversion events are scheduled via Action Scheduler. Saving a product completes locally; the webhook delivery runs asynchronously after the response.

All translations and channels for a single product or page consolidate into one webhook event. Variable products sync the parent plus each variation, and changes cascade: saving a variation triggers a parent re-sync so search always sees the full catalog state. The plugin declares WooCommerce High-Performance Order Storage (HPOS) compatibility.

Requirements

WordPress 6.0 or higher
WooCommerce 8.0 or higher
PHP 7.4 or higher
Emporiqa account Free Emporiqa account ($25 credit on signup)

Configuration Reference

All settings live at Settings → Emporiqa. Connection Settings is the main section and is expanded by default. Sync toggles and advanced settings (languages, page post types, webhook URL, batch size) are collapsed under Advanced.

Connection Settings

Setting Description
Store ID Your unique store identifier from the Emporiqa dashboard.
Connection Secret Shared secret used for HMAC-SHA256 signing of webhook and order tracking requests.
Order Tracking API URL Read-only field. Copy this URL into your Emporiqa dashboard (Settings → Store Integration → Order Tracking) to enable order lookup from the chat.

Advanced Settings

Most stores don't need to change these.

Setting Description
Sync Products Enable/disable product synchronization.
Sync Pages Enable/disable page synchronization.
Enabled Languages Which languages to sync. The plugin auto-detects WPML and Polylang, consolidates translations into one payload per product, and falls back to determine_locale() when no multilingual plugin is active.
Page Post Types Which post types to sync as pages (pages, posts, or custom post types).
Webhook URL Emporiqa webhook endpoint. Default works for most stores.
Batch Size Items per webhook request during full sync (default: 25).

Always-on capabilities

  • Cart operations — add, update, remove from inside the chat via AJAX endpoints that talk directly to WooCommerce's cart.
  • Conversion tracking — chat sessions linked to completed orders for revenue attribution.
  • Multi-currency — detects the active currency from WOOCS, WPML Multi-Currency, WooCommerce Payments, and Aelia Currency Switcher; override with the emporiqa_active_currency filter.

Features

Real-time Webhooks

Products and pages sync via webhooks on create, update, and delete using WooCommerce hooks (woocommerce_update_product, save_post, etc.) with dedup to prevent duplicate events.

Chat Widget

Embedded automatically via wp_footer. Language and currency are detected from the active WordPress locale and WooCommerce currency.

Multilingual

Auto-detects WPML and Polylang. Products sync with translated names, descriptions, categories, and attributes from all enabled languages, consolidated into one payload per product.

Variable Products

Full parent/variation sync. Saving a variation triggers a parent re-sync. Deleting a variation sends a variation delete event and re-syncs the parent.

Cart Operations

Customers can add, update quantities, and checkout from the chat. The plugin exposes dedicated AJAX endpoints that use WC()->cart directly.

Admin Sync UI

Trigger full sync from the settings page Sync tab with an AJAX progress bar and live log panel. Three buttons: Sync Products, Sync Pages, Sync All.

Conversion Tracking

Sends an order.completed webhook via woocommerce_order_status_completed, linking chat sessions to revenue on your dashboard.

Deferred Sending

Product and page events are queued and flushed on shutdown. Order conversion events run through Action Scheduler so bulk order updates don't block the request.

Minimum Order Quantity

Reads the _minimum_allowed_quantity post meta (set by WooCommerce's official Min/Max Quantities extension and compatible clones) and ships it on every product and variation sync. Customize per product with the emporiqa_min_order_quantity filter. The assistant blocks under-minimum cart actions and offers the merchant's minimum instead of failing silently.

Webhook Payload

Each product or page is sent as a single webhook event containing all languages and channels. Translatable fields are nested by channel and language code.

Product Event

{
  "type": "product.updated",
  "data": {
    "identification_number": "product-42",
    "sku": "SKU-001",
    "channels": ["default"],
    "names":        {"default": {"en": "Hiking Boots", "de": "Wanderschuhe"}},
    "descriptions": {"default": {"en": "Waterproof leather boots...", "de": "Wasserdichte Lederstiefel..."}},
    "links":        {"default": {"en": "https://store.com/hiking-boots", "de": "https://store.com/de/wanderschuhe"}},
    "categories":   {"default": {"en": ["Footwear > Hiking"], "de": ["Schuhe > Wandern"]}},
    "attributes":   {"default": {"en": {"Material": "Leather"}, "de": {"Material": "Leder"}}},
    "brands":       {"default": "TrailPeak"},
    "prices":       {"default": [{"currency": "EUR", "current_price": 129.99, "regular_price": 149.99}]},
    "images":       {"default": ["https://store.com/wp-content/uploads/boots-front.jpg"]},
    "availability_statuses": {"default": "available"},
    "stock_quantities":      {"default": 42},
    "min_order_quantities":  {"default": 1},
    "max_order_quantities":  {"default": null},
    "available_for_order": true,
    "condition": null,
    "is_virtual": false,
    "is_parent": false,
    "parent_sku": null,
    "variation_attributes": {}
  }
}

Field Structure

Type Pattern Fields
Translatable {channel: {lang: value}} names, descriptions, links, categories, attributes, variation_attributes
Shared {channel: value} brands, prices, images, availability_statuses, stock_quantities, min_order_quantities, max_order_quantities
Flat Direct value identification_number, sku, channels, is_parent, parent_sku, available_for_order, condition, is_virtual

Customization Filters

The plugin exposes WordPress filters you can hook from a custom plugin or your theme's functions.php to control sync behavior and modify data before it's sent.

Filter Description
emporiqa_should_sync_product Return false to skip a specific product.
emporiqa_should_sync_page Return false to skip a specific page.
emporiqa_product_data Modify the consolidated product payload before send.
emporiqa_variation_data Modify the variation payload before send.
emporiqa_page_data Modify the page payload before send.
emporiqa_product_channels Assign sales channels to a product (default: ['default']).
emporiqa_page_channels Assign sales channels to a page.
emporiqa_product_images Customize product image URLs.
emporiqa_product_attributes Customize product attributes per language.
emporiqa_min_order_quantity Override the minimum order quantity per product or variation. Default reads _minimum_allowed_quantity post meta and falls back to 1.
emporiqa_brand_taxonomy Override brand taxonomy (default: product_brand).
emporiqa_product_brand Fallback brand name when no taxonomy term is set.
emporiqa_product_types Product types to sync (default: simple, variable, grouped, external).
emporiqa_widget_enabled Show or hide the widget per page.
emporiqa_widget_params Add or override widget embed parameters.
emporiqa_widget_channel Set the widget sales channel (default: default).
emporiqa_active_currency Override the detected active currency code.
emporiqa_checkout_url / emporiqa_cart_url Override URLs passed to the chat cart handler.
emporiqa_order_tracking_data Add fields to order tracking responses.
emporiqa_tracked_order_statuses Order statuses that trigger conversion events (default: wc-completed).

Example: skip draft products

add_filter('emporiqa_should_sync_product', function ($should_sync, $product) {
    if (str_contains($product->get_name(), '[DRAFT]')) {
        return false;
    }
    return $should_sync;
}, 10, 2);

Example: add a custom attribute to the product payload

// Attributes are nested: {channel: {lang: {key: value}}}.
add_filter('emporiqa_product_data', function ($data, $product) {
    foreach ($data['attributes'] as $channel => &$languages) {
        foreach ($languages as $lang => &$attrs) {
            $attrs['material'] = get_field('material', $product->get_id());
        }
    }
    return $data;
}, 10, 2);

Register your filters and actions in your theme's functions.php or a custom plugin.

WP-CLI Commands

The plugin registers a wp emporiqa command for automation and debugging. A reference is also available in the plugin's Sync tab.

# Sync all products
wp emporiqa sync-products

# Sync all pages
wp emporiqa sync-pages

# Full sync (products + pages)
wp emporiqa sync-all

# Test webhook connection (also available as a button in the Sync tab)
wp emporiqa test-connection

# Adjust batch size for large catalogs
wp emporiqa sync-products --batch-size=25

WP-CLI is the fastest way to seed large catalogs and to re-run syncs from your deployment pipeline. The admin Sync tab wraps the same underlying logic with a progress bar.

Order Tracking

Emporiqa can look up order status on behalf of customers during chat conversations. The plugin registers a signed REST route that WordPress calls when a customer asks about their order.

Flow

  1. Customer asks "Where is my order #12345?" in the chat.
  2. Emporiqa sends an HMAC-SHA256 signed POST to your store.
  3. The plugin looks up the order with wc_get_order(), verifies the billing email matches, and returns the status.
  4. The salesperson presents the order information to the customer.

Endpoint

POST /wp-json/emporiqa/api/order/tracking

Setup

The endpoint is always active once the plugin is installed. To enable order lookup from chat, set the Order Tracking API URL in your Emporiqa dashboard (Store Settings → Integration) to:

https://your-store.com/wp-json/emporiqa/api/order/tracking

Requests are authenticated using the same HMAC-SHA256 connection secret. Requests older than 5 minutes are rejected. See the Webhook Setup Guide for the full request/response schema.

Order tracking is optional. Without the dashboard URL configured, order questions route to the Customer Support agent instead.

Troubleshooting

Products not appearing in chat

  • Run wp emporiqa sync-all or use the Sync tab to force a full sync.
  • Verify products are published and visible on the storefront.
  • Confirm your Store ID and Connection Secret match the dashboard.
  • Verify your Emporiqa subscription is active.

Chat widget not showing

  • Confirm the plugin is active and Store ID is configured.
  • Clear any page caching plugins (WP Rocket, W3 Total Cache, LiteSpeed).
  • Check that your theme calls wp_footer().
  • Check the browser console for JavaScript errors.

Sync not sending data

  • Verify your server can make outbound HTTPS requests.
  • Run wp emporiqa test-connection or click Test Connection in the Sync tab.
  • Enable WP_DEBUG_LOG and check wp-content/debug.log for signed request failures.
  • Confirm Action Scheduler is processing (Tools → Scheduled Actions) — stalled actions block conversion events.

Variations not syncing

  • Verify variations are published and have prices set.
  • Save the parent variable product to trigger a re-sync.
  • Run a full product sync from the Sync tab.

Related Articles

Need Help?

Having trouble with the integration? Our team is here to help.

Contact Support