Official plugin on the Sylius marketplace

AI Chatbot for Sylius That Closes Sales

An online salesperson built for Sylius. Composer-installed, channel-aware, event-driven. Closes sales 24/7 in 65+ languages.

Capped at $59/month

Default cap, adjustable from your dashboard

Approved on Sylius Addons

Verified by review team

No training on your data

GDPR-compliant, EU company

65+ languages

Cross-language search

Safe to try on a live store

Doesn't touch your theme or checkout

Widget + REST sync. No template patches.

Test Connection before any data leaves

Dry-run verifies the link from admin.

Disable from the same admin screen

Reversible in one click if it isn't a fit.

See unedited answers from the demo The demo runs on an electronics catalog and behaves the same on yours.

The Emporiqa chat answering a shopper who asked for something this shop does not stock. The reply says plainly that the shop does not sell it, names the kind of shop it is, and asks what the shopper came in for. Quick replies underneath offer a way back into the catalog.
Ask it for something the shop does not sell. It says so instead of inventing one.
The Emporiqa dashboard for a demo store. A sidebar lists Dashboard, Test your chat, Settings, Billing and invoices, Members, Products, Pages, Conversations and Activity. A green pill says the chat is live on the shop. A billing row shows the spend so far this period against the monthly cap and how many conversations were billed. Coloured alerts count the customers waiting for a person and the low-rated conversations to review. Below, a Revenue and conversions panel puts revenue from chat beside total revenue, with cart to checkout and checkout to purchase rates and a bar for each step of the funnel.
Revenue from chat beside total, spend against your cap, and who is waiting.

What Your Sylius Customers Get

Your shoppers don't care about Doctrine entities or channel scope. They care about finding the right product and getting answers fast.

The right variant with per-channel pricing

"Warm jacket for hiking under 200" returns the right variant at the right channel price. The shopper gets the variant and the currency without working through the option matrix.

Shipping and policy answers in 65+ languages

Pulled from your CMS pages, scoped to the channel and locale the customer is shopping on. Correct answers at 2am, so your team stays focused on the hard tickets.

For your developer: how it runs on Sylius

The PHP chat plugin ecosystem grew around WordPress and Magento. Sylius developers inherit those plugins as an afterthought: embed-script widgets with no understanding of channels, locales, or Sylius's entity model. Emporiqa is written as a proper Sylius plugin following Symfony and Sylius conventions end to end.

No Sylius-native options

Script-tag widgets ship without config hooks or DI integration.

Channels and locales flatten

Per-channel products, prices, and locales get lost.

No customization hooks

No service decoration or event subscribers. Nothing to override cleanly.

How Emporiqa runs differently

  • Composer, bundle registration, YAML config: standard Symfony
  • Event subscribers on sylius.product.post_update and friends
  • Channel-aware: per-channel scope, locales, currencies
  • All services decoratable: override without forking
  • Event subscribers on sylius.product.post_update and sylius.order.post_complete
  • Console: bin/console emporiqa:sync:all for bulk sync, emporiqa:test-connection for health checks

Three Steps to Live

Composer require, register, sync.

1

Composer require

Pull the plugin from Packagist into your Sylius project.

composer require emporiqa/sylius-plugin
2

Register & configure

Register the bundle, import the plugin routes, create emporiqa.yaml.

config/packages/emporiqa.yaml
3

Configure & sync

Set credentials in .env.local, then run a full sync.

bin/console emporiqa:sync:all

Built for How Sylius Works

Channels, locales, cross-language search, service decoration. All handled.

Proper Symfony bundle

Composer install, bundle registration, YAML config, DI services behind interfaces. All standard Symfony.

Channel-aware

Each channel maps to a distinct catalog scope with its own locales, currencies, and pricing.

Locale-aware translations

All product translations sync together. Cross-language search across every configured locale.

Service decoration

Every service decoratable via standard Symfony decoration. Override filtering, mapping, or sync logic without forking.

Search by meaning

Matches on meaning, not exact words. A second pass reorders the shortlist so the best fit lands first. Exact SKU lookups still work.

Cart operations in chat

Customers add products to the cart inside the chat. When they're ready, the widget sends them to your Sylius checkout. Per-product minimum order quantities are respected, so wholesale and multi-pack catalogs work without surprises.

Conversion tracking

Attributed revenue, funnel data, CSAT ratings.

Live chat you can step into, without staffing a desk

You can open any live conversation and step into it, not only the ones that asked for help. While someone from your team is in the chat, the AI stops and lets them talk. A shopper can ask for a person at any time as well. A Sylius store is usually built with a development partner, but stepping into a chat is not a development task. It happens in the Emporiqa dashboard, in the browser, with no code and no deployment. The conversation is billed once, at the shopper's first message, so bringing in a person costs you nothing extra.

Visual search

Shoppers upload a photo (something they saw on social, a style they like) and the chat finds the closest match in your Sylius catalog.

Start free with $25 of credit

Pay $0.25 per conversation past the credit. Capped at $59/month by default. No trial deadline, no card needed at signup.

$25 credit on signup

Pay-as-you-go

Self-serve

$0.25 per conversation

100,000 products · cap defaults to $59/mo · no card needed at signup

Enterprise

Large catalogs

Custom

Up to 500,000 products · custom rates · SLA

Both plans: a conversation is billed once, at the shopper's first message. Full analytics, 65+ languages, AI model costs included, cancel anytime.

See full pricing details

Add Emporiqa to Your Sylius Store

Pick whichever fits where you are today.

Start free with $25 credit · No card needed at signup · No trial deadline · $0.25/conv

When it isn't sure, and when you step in

It says so, and offers to bring in someone from your team. The shopper decides. You can also step into any live conversation yourself, not only the ones that asked for help.

It says so

Low-confidence questions get a candid "I'm not sure, let me get someone" instead of a guess. Ask it for a product you do not sell and it says so, instead of inventing one.

Someone from your team can step in

They arrive with the whole conversation already on screen, and pick up from there. While a person is in the conversation, the chat stops and lets them talk.

You see every one

Every one of these lands on your dashboard, so you can fill the gap in your catalog content, FAQ entries, or store policies.