PrestaShop Einrichtungsanleitung
Fügen Sie einen Chat-Assistenten zu Ihrem PrestaShop Shop mit automatischer Produktsynchronisierung hinzu.
Sie befinden sich im Entwickler-Einrichtungsanleitung. Suchen Sie nach einem Überblick darüber, was Emporiqa für Ihren PrestaShop Shop tut? Zur Integrations-Seite.
Schnellstart
Für Shop-Besitzer. Installieren, auf Verbinden klicken, Katalog senden. Mit Screenshots zu jedem Schritt.
StartenEntwicklerdokumentation
Für Entwickler. Architektur, Webhook-Payload, Anpassungs-Hooks und Erweiterbarkeit.
LesenSchnellstart
Modul installieren, auf Mit Emporiqa verbinden klicken, Katalog senden. Das Modul 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 Modul vom selben Screen aus deaktivieren, falls es nicht passt.
Was Sie brauchen
- Admin-Zugriff auf Ihren PrestaShop-Shop über HTTPS (Version 8.1 oder neuer)
- Ein Emporiqa-Konto, oder eines in Schritt 1 erstellen (kostenlos, 25 $ Startguthaben, ohne Karte)
- Ein paar Minuten Zeit. Synchronisierung läuft im Hintergrund, der Tab muss nicht offen bleiben.
First, install the module. Get the zip from the PrestaShop Addons Marketplace or the GitHub repository, then upload it via Modules → Module Manager → Upload a module. PrestaShop installs it and registers the required hooks.
Auf Mit Emporiqa verbinden klicken
Gehen Sie zu Module → Emporiqa → Konfigurieren. Klicken Sie auf Mit Emporiqa verbinden. Sie landen auf dem Emporiqa-Dashboard, bestätigen den Shop, den Sie verknüpfen möchten (oder erstellen einen neuen), und kommen zu einem verbundenen Modul zurück. Keine Store-ID und kein Connection Secret zwischen Tabs zu kopieren.
Lieber manuell?
Wenn Ihr Shop nicht auf HTTPS läuft oder Sie die Zugangsdaten lieber selbst einfügen, klappen Sie auf der Konfigurationsseite Zugangsdaten manuell bearbeiten auf. Fügen Sie Store-ID und Connection Secret aus Ihrem Emporiqa-Dashboard unter Shop-Einstellungen → Integration ein. Der manuelle Weg führt zum gleichen Ergebnis wie der Ein-Klick-Weg.
Katalog senden
Nach dem Verbinden zeigt der Tab Synchronisierung eine grüne Willkommenskarte mit Meinen Katalog senden. Klicken Sie darauf, um alle Produkte und Seiten auf einmal zu senden. Größere Kataloge dauern einige Minuten; das Panel zeigt den Fortschritt. Wer die Verbindung zuerst prüfen möchte, klickt vorher auf Verbindung testen (Dry Run).
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.
Sie sind online
- Die Verbindung ist signiert und kann vom Modul aus erneuert werden. Keine Zugangsdaten im Klartext gespeichert.
- Neue Produkte und Seiten synchronisieren sich automatisch beim Speichern
- Kunden können nach Produkten, Richtlinien und ihren Bestellungen fragen
- In den Chat hinzufügen; Kunden gehen zu Ihrem PrestaShop-Checkout
Need to customize sync behavior, add custom fields, or integrate with a third-party module?
See Developer DocsDeveloper Documentation
Architecture, configuration reference, webhook payload schema, and customization hooks.
Architecture
The module listens to PrestaShop hooks (actionProductSave, actionObjectCmsUpdateAfter, combination events, order validation, etc.) and sends webhook events to Emporiqa using deferred delivery: events are queued during the request and flushed after the response reaches the browser via register_shutdown_function. 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. Combinations cascade up: editing a child triggers a parent re-sync so search always sees the full catalog state.
Requirements
| PrestaShop | 8.1+ / 9.x |
| PHP | 7.4 or higher |
| Emporiqa account | Free Emporiqa account ($25 credit on signup) |
Configuration Reference
All settings live at Modules → Emporiqa → Configure. Connection Settings is the main section and is expanded by default. Sync toggles and advanced settings (languages, 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 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 CMS page synchronization. |
| Enabled Languages | Which languages to sync. The module maps each PrestaShop language to its ISO code and consolidates translations into one payload per product. |
| 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.
- Conversion tracking — chat sessions linked to completed orders for revenue attribution.
- Multi-shop mapping — each PrestaShop shop auto-maps to a slugified channel.
Features
Real-time Webhooks
Products and CMS pages sync via webhooks on create, update, and delete using PrestaShop hooks (actionProductSave, actionProductDelete, etc.) with dedup to prevent duplicate events.
Chat Widget
Embedded automatically via the displayHeader hook. Language and currency are detected from the current shop context.
Multilingual
Products sync with translated names, descriptions, categories, and attributes from all enabled languages, consolidated into one payload per product. Each language maps to its ISO code automatically.
Combination Sync
Full parent/child sync for product combinations. Combination changes trigger parent re-sync. Deleting a combination sends a variation delete event and re-syncs the parent.
Cart Operations
Customers can add, update quantities, and checkout from the chat. Front controller: /module/emporiqa/cartapi.
Admin Sync UI
Trigger full sync from the module configuration page with an AJAX progress bar. Test connection, sync products and pages in batches.
Conversion Tracking
Tracks chat sessions to purchases via actionValidateOrder and actionOrderStatusPostUpdate.
Deferred Sending
Webhook events are queued during the request and flushed after the response is sent via register_shutdown_function. No impact on page load.
Minimum Order Quantity
PrestaShop's minimal_quantity (per product and per combination) is sent on every sync. The assistant blocks under-minimum cart actions and offers the merchant's minimum to the customer instead of silently failing.
Catalog-change coverage
Scheduled promos, image edits, out-of-stock transitions, category and brand renames, currency rates, tax changes, cart rules, and new languages all re-emit the affected entities (or log an actionable warning when the change is catalog-wide). Per-product changes flow through automatically; catalog-wide changes ask the merchant to run a full sync from the Sync tab.
Multi-shop install
On multi-shop installs, the module enables for every shop in a single install (forces Shop::CONTEXT_ALL before parent::install()), so the widget renders across all storefronts and hooks fire for every shop's catalog out of the gate.
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": "product-42",
"channels": ["my-shop"],
"names": {"my-shop": {"en": "Hiking Boots", "fr": "Chaussures de randonnee"}},
"descriptions": {"my-shop": {"en": "Waterproof leather boots...", "fr": "Bottes en cuir impermeables..."}},
"links": {"my-shop": {"en": "https://store.com/hiking-boots", "fr": "https://store.com/fr/chaussures-randonnee"}},
"categories": {"my-shop": {"en": ["Footwear > Hiking"], "fr": ["Chaussures > Randonnee"]}},
"attributes": {"my-shop": {"en": {"Material": "Leather"}, "fr": {"Material": "Cuir"}}},
"brands": {"my-shop": "TrailPeak"},
"prices": {"my-shop": [{"currency": "EUR", "current_price": 129.99, "regular_price": 149.99}]},
"images": {"my-shop": ["https://store.com/img/boots-front.jpg"]},
"availability_statuses": {"my-shop": "available"},
"stock_quantities": {"my-shop": 42},
"min_order_quantities": {"my-shop": 1},
"max_order_quantities": {"my-shop": null},
"available_for_order": true,
"condition": "new",
"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 Hooks
The module dispatches PrestaShop hooks you can listen to from your own module to control sync behavior and modify data before it's sent.
| Hook | Description |
|---|---|
actionEmporiqaShouldSyncProduct |
Set $params['should_sync'] = false to skip a specific product. |
actionEmporiqaShouldSyncPage |
Set $params['should_sync'] = false to skip a specific CMS page. |
actionEmporiqaFormatProduct |
Modify the formatted product payload before send. |
actionEmporiqaFormatPage |
Modify the formatted page payload before send. |
actionEmporiqaFormatOrder |
Modify order data before the conversion event is sent. |
actionEmporiqaOrderTracking |
Modify the order tracking response before it's returned to the customer. |
actionEmporiqaWidgetParams |
Add or override widget embed parameters. |
Example: skip inactive products
// In your custom module
public function hookActionEmporiqaShouldSyncProduct($params)
{
$product = $params['product'];
if (!$product->active) {
$params['should_sync'] = false;
}
}
Register your hooks in your module's install() method or via service configuration. All hooks receive a mutable parameters array.
Order Tracking
Emporiqa can look up order status on behalf of customers during chat conversations. The module registers a signed front controller that PrestaShop calls when a customer asks about their order.
Flow
- Customer asks "Where is my order #12345?" in the chat.
- Emporiqa sends an HMAC-SHA256 signed POST to your store.
- The module looks up the order, verifies the billing email matches, and returns the status.
- The salesperson presents the order information to the customer.
Endpoint
POST /module/emporiqa/ordertracking
Setup
The endpoint is always active once the module is installed. Email verification is always required — the customer must provide the email on the order before any data is returned. To enable order lookup from chat, set the Order Tracking API URL in your Emporiqa dashboard (Store Settings → Integration) to:
https://your-store.com/module/emporiqa/ordertracking
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 a full sync from the module's Sync tab.
- Verify products are active and visible in the front office.
- Confirm your Store ID and Connection Secret match the dashboard.
- Verify your Emporiqa subscription is active.
Chat widget not showing
- Confirm the module is installed and Store ID is configured.
- Check that the
displayHeaderhook is registered (reinstall the module if needed). - Clear PrestaShop cache: Advanced Parameters → Performance → Clear cache.
- Check the browser console for JavaScript errors.
Sync not sending data
- Confirm
allow_url_fopenor cURL is enabled in PHP. - Verify your server can make outbound HTTPS requests.
- Check PrestaShop logs at Advanced Parameters → Logs.
- Run Test Connection from the configuration page.
Combinations not syncing
- Verify combinations have prices and are active.
- Save the parent product to trigger a re-sync.
- Run a full product sync from the Sync tab.
Related Articles
Chat for PrestaShop
Webhook architecture, combinations, deferred sending, and customization hooks.
Multilingual Chat Support
Cross-language search, 65+ languages, how translations sync.
5 Questions Before You Pay
Evaluation checklist: data sync, handoff, pricing, languages, attribution.
Conversion Tracking
Prove chat ROI: session to cart to purchase attribution.