PrestaShop Guide d'installation

Ajoutez un assistant chat à votre PrestaShop boutique avec synchronisation automatique des produits.

Vous êtes dans le guide d'installation développeur. Vous cherchez un aperçu de ce que Emporiqa offre à votre PrestaShop boutique ? Voir la page d'intégration.

Voir la page d'intégration

Démarrage rapide

Installez le module, collez deux identifiants, lancez une synchronisation. Votre widget de chat est en direct sur votre boutique.

Ce qu'il vous faut

  • Accès administrateur à votre boutique PrestaShop (version 8.0 ou plus récente)
  • Un compte Emporiqa — créer un compte gratuit si vous n'en avez pas encore
  • Quelques minutes de travail pratique (la synchronisation s'exécute en arrière-plan)

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.

1

Entrez vos identifiants

Allez à Modules → Emporiqa → Configurer. Collez votre ID de boutique et Secret de connexion — les deux proviennent de votre tableau de bord Emporiqa sous Paramètres de boutique → Intégration.

Emporiqa module Configure page in PrestaShop admin showing the Connection Settings form with Store ID, Connection Secret, and Order Tracking URL fields
Modules → Emporiqa → Configure → Settings tab
2

Lancez la synchronisation initiale

Ouvrez l'onglet Synchronisation sur la page de configuration. Cliquez d'abord sur Tester la connexion, puis sur Synchroniser tout pour envoyer tous les produits et pages. Les catalogues plus importants prennent quelques minutes.

PrestaShop Emporiqa module Sync tab showing Test Connection button, Sync Overview with product and page counts, and Sync Products/Pages/All buttons
Sync tab with Test Connection and Start Sync actions
3

Vérifiez le widget de chat

Ouvrez votre vitrine. La bulle de chat apparaît dans le coin inférieur droit. Cliquez dessus, posez une question sur un produit et regardez le vendeur répondre à partir de votre catalogue.

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 PrestaShop storefront.

C'est en direct

  • Les nouveaux produits et pages se synchronisent automatiquement lorsque vous les enregistrez
  • Les clients peuvent poser des questions sur les produits, les politiques et leurs commandes
  • Ajouter au panier dans le chat ; les clients procèdent au paiement de votre boutique

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

See Developer Docs

Developer 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.0+ / 9.0+
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.

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},
    "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
Flat Direct value identification_number, sku, channels, is_parent, parent_sku

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

  1. Customer asks "Where is my order #12345?" in the chat.
  2. Emporiqa sends an HMAC-SHA256 signed POST to your store.
  3. The module looks up the order, verifies the billing email matches, and returns the status.
  4. 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 displayHeader hook 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_fopen or 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

Need Help?

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

Contact Support