Install the WisWes AI chat assistant on Shopware 6
The WisWes Shopware plugin (WiswesWidget) drops into Shopware 6 and exposes 13 PHP MCP endpoints (cart, catalog, guest checkout, order lookup) the Wes shopping assistant calls. One-click connect from Shopware admin — no Twig editing, no token copying.
Requirements
- Shopware 6.5 or 6.6
- PHP 8.1, 8.2, or 8.3 (matching your Shopware install)
- Shell access to your Shopware project root (or your CI / deploy runner)
- Composer 2.x if you choose Option A
- Outbound HTTPS access from your Shopware server to
https://app.wiswes.com - Inbound HTTPS access from
app.wiswes.comto your storefront — chat_agent calls back into/wiswes/_mcp/*to operate the cart / catalog / checkout
Option A — Install via Composer (recommended)
The package is published on Packagist as wiswes/shopware-mcp. Versioned, upgradable with composer update, clean rollbacks.
composer require wiswes/shopware-mcp
bin/console plugin:refresh
bin/console plugin:install --activate WiswesWidget
bin/console cache:clear
bin/build-administration.sh # rebuilds the Vue admin so the WisWes module shows upcomposer require wiswes/shopware-mcp:^0.3 to track the current minor line. We follow semver — patch releases are safe to take, minor releases may add tools, major releases may remove them.Option B — Clone from GitHub
Use this when you want to read or fork the source, or pin to an exact commit. The repo lives at:
https://github.com/wiswes/shopware
mkdir -p custom/plugins
git clone https://github.com/wiswes/shopware.git custom/plugins/WiswesWidget
# (optional) pin to a release tag
cd custom/plugins/WiswesWidget && git checkout v0.3.0 && cd -
bin/console plugin:refresh
bin/console plugin:install --activate WiswesWidget
bin/console cache:clear
bin/build-administration.shmain gives you the bleeding edge — fine for staging, risky for production. Pin a tag for prod.Option C — ZIP archive
Fastest way to try the plugin without involving Composer or git. Download the latest release ZIP from https://github.com/wiswes/shopware/releases, unzip into custom/plugins/WiswesWidget/, then refresh + activate.
# from your Shopware project root
mkdir -p custom/plugins/WiswesWidget
cd custom/plugins/WiswesWidget
curl -L https://github.com/wiswes/shopware/archive/refs/heads/main.zip -o wiswes.zip
unzip wiswes.zip --strip 1
rm wiswes.zip
cd -
bin/console plugin:refresh
bin/console plugin:install --activate WiswesWidget
bin/console cache:clear
bin/build-administration.shActivate the plugin
After any of the three install paths above, confirm the plugin is registered and active:
bin/console plugin:list | grep WiswesWidgetYou should see Active: yes. If you see Installed: no, run bin/console plugin:install --activate WiswesWidget.
Connect to WisWes (one click)
- Open your Shopware admin → Settings → Plugins → WisWes.
- Confirm your shop's URL (auto-filled from the current admin host).
- Enter your email — used as the contact for the auto-provisioned WisWes tenant.
- Click Install with WisWes.
What happens behind the scenes:
- The plugin POSTs to
app.wiswes.com/api/integrations/shopware/installwith your shop URL + email. - chat_agent finds-or-creates a tenant for your shop, mints a per-install bearer secret, and returns
{ widget_token, tenant_slug, tenant_secret }. - The plugin persists all three into Shopware's
system_configunder theWiswesWidget.config.*namespace. - The
WidgetInjectionSubscriberpicks them up on the next storefront render and injects the<script src="…/embed.js?user_token=…">tag.
Verify the widget
Open any storefront page in a fresh browser tab. The chat icon should appear in the bottom-right corner within a few seconds. Click it — the widget loads, says hi as Wes, and is ready to take questions about the catalog.
If nothing shows up, check:
bin/console cache:clearafter the install handshake (storefront caches the rendered HTML aggressively).- Browser network tab — is
embed.jsloading? If 404, the handshake didn't writewidgetTokentosystem_config; re-run the Install button. - Outbound HTTPS — does your Shopware server reach
https://app.wiswes.com? Some hardened deploys block egress.
Tool surface
The plugin exposes 13 endpoints under /wiswes/_mcp/*, all bearer-token authenticated using the per-tenant tenantSecret. chat_agent's HTTP client routes Shopware tenants through these instead of calling Shopware's Store API directly — so the runtime tools live in PHP code your team can audit and extend.
- Cart:
cart_info·cart_add·cart_update·cart_remove - Catalog:
product_filter·product_get·category_list·product_filter_options - Checkout (guest flow):
payment_methods·shipping_methods·set_address·place_order - Sales:
order_info(guest order lookup by order_number + email pair)
customer_info, order_history) land when the widget's customer auth flow ships.Disconnect / reconnect
Same admin page → Disconnect button. Stops the storefront from loading the widget. Your WisWes tenant on app.wiswes.com is preserved (so re-installing later restores conversation history); only the local Shopware credentials are cleared.
To reconnect, hit Install with WisWes again. The handshake matches your shop URL to the existing tenant and re-issues a fresh secret.
Upgrade
composer update wiswes/shopware-mcp
bin/console plugin:update WiswesWidget
bin/console cache:clear
bin/build-administration.shTag releases follow semver. Patch is always safe; minor adds tools (LLM picks them up after the next chat_agent tool_configs sync — no action on your side); major may remove tools — check the changelog.
Uninstall
bin/console plugin:uninstall WiswesWidget
composer remove wiswes/shopware-mcpplugin:uninstall removes the plugin's system_config entries and clears the storefront script tag. Your WisWes tenant on app.wiswes.com is preserved unless you also delete it from the dashboard.
Troubleshoot
Composer can't find wiswes/shopware-mcp
Run composer clear-cache and retry composer require wiswes/shopware-mcp:^0.3. Packagist refreshes within seconds of a tagged push, so this is usually a stale local cache. If still missing, verify packagist.org/packages/wiswes/shopware-mcp resolves.
Admin module doesn't appear under Settings → Plugins → WisWes
Re-run bin/build-administration.sh, hard-refresh your browser (the admin caches bundle JS), then bin/console cache:clear.
Widget script returns 200 with HTML instead of JavaScript
Means the storefront SPA fallback is serving where embed.js should be. Confirm WiswesWidget.config.widgetToken is populated in system_config (it's set by the Install button) and that chatAgentBaseUrl points at https://app.wiswes.com.
The chat answers "I can't help with that" for cart questions
chat_agent uses your tenant's configured tool model (set in the WisWes dashboard → Settings → Models) to decide which tool to call. If you're on a small open-source tool model, switch to Claude Haiku — Shopware's tool surface is sensitive to the LLM's tool-call format and Claude follows it most reliably.
Cart operations work in isolation but the cart resets each turn
chat_agent persists Shopware's sw-context-token in Redis per chat session — make sure your chat_agent has Redis available and the session id is being threaded through. The plugin returns the token in every cart_* response; the HTTP client picks it up and replays it on the next call.
Back to Docs · See also Install for Magento · Install for Shopify