Skip to content
HELP CENTER/ONLINE STORE

Connect your online store

Connect Magento, Shopify, WooCommerce or PrestaShop so the assistant answers order questions. Step by step per platform.

With the E-commerce plan, your assistant can answer "where is my order?" with real data from your Magento, Shopify, WooCommerce or PrestaShop store. If your store runs on PrestaShop, it can also confirm whether a product is in stock right now. This guide walks you through the connection step by step: where to create the credential on each platform and how to activate it in ChatME in about five minutes.

Before you start

  • You need the E-commerce plan (€99/mo or €999/yr). If you're on Free, Basic or Pro, you can switch plans from Billing in your dashboard.
  • You need admin access to your store to create an API credential.
  • ChatME only reads: the assistant looks up orders (and, on PrestaShop, stock), but never modifies them, cancels them or creates anything. On Shopify, WooCommerce and PrestaShop the credential itself is read-only too. Magento has no read-only permissions: its section tells you what to tick to give it the least access possible.
  • Your store must be served over HTTPS: ChatME doesn't connect to http:// addresses.
  • Is your store not on Magento, Shopify, WooCommerce or PrestaShop? We develop connections to other platforms on request — write to info@chatme.es.

The connection happens in your ChatME dashboard, in the E-commerce section of the menu (under Integrations), on the Connect your store page. You pick your platform (Magento, Magento 1, Shopify, WooCommerce or PrestaShop), enter your store URL and paste the credential into the fields that platform asks for. ChatME tests the connection against your store before saving anything: if the credential doesn't work, nothing is stored.

Your store URL is the exact address your store opens on, starting with https:// (with or without www, whichever your store uses). If your store redirects to another address — for example, from https://mystore.com to https://www.mystore.com — the test fails and the dashboard tells you which address to use (if the redirect goes to http://, it asks you to turn on https in your store): for security, ChatME never sends your key to another address or without https. If your store changes address after you've connected it, the assistant stops looking it up until you disconnect it and connect it again with the new address. Shopify, WooCommerce and PrestaShop each have their own twist; you'll see it in their section.

If the test fails, the dashboard tells you why: the key was rejected, a permission is missing, a firewall is blocking the request, the address isn't the API's… Each platform's most common causes are in its section.

Connect Magento 2

Works with Magento Open Source and Adobe Commerce 2.x, on your own server or on Adobe Commerce on cloud infrastructure. It doesn't work with Adobe Commerce as a Cloud Service (Adobe's SaaS edition), which has no integration keys.

  1. In the Magento admin, go to System → Extensions → Integrations and click Add New Integration.
  2. Give it a name (for example, "ChatME") and, on the API tab, set Resource Access to Custom and tick only Sales → Operations → Orders → Actions → View and Sales → Operations → Shipments (the latter lets the assistant give the tracking number).
  3. Save. In the integrations list, click Activate and then Allow: Magento shows you four keys (Consumer Key, Consumer Secret, Access Token and Access Token Secret). Copy all four.
  4. In ChatME, choose Magento, paste your store URL (for example, https://www.mystore.com; if Magento lives in a subfolder, include it) and the four keys, each in its own field.
  5. Click Test & save.
  • Don't tick the whole "Orders" box. Magento has no read-only permissions: the full Orders box also allows creating, editing, cancelling, invoicing and refunding orders, and Shipments also allows creating shipments. ChatME only reads, but with those two boxes the integration has the least access possible.
  • You don't need to change any store setting. ChatME signs every request with the four keys (OAuth 1.0a), so there's no need to turn on "Allow OAuth Access Tokens to be used as standalone Bearer tokens".
  • Every store view. ChatME looks up orders across all your store views (including multi-language ones): there's no store view code to enter.
  • Without the Shipments permission, the store connects and the assistant gives order status, but not the tracking number. Right after the test, the dashboard says so under Order status: add the permission in your store and click Test again.

Tip: if your store sits behind Cloudflare or another firewall, let server requests to /rest/ through. A firewall is the most common cause of a Magento connection error (403).

Connect Magento 1

Still on Magento 1 or OpenMage? You can connect it too. Magento 1 has no modern REST API, so the connection uses its SOAP API through a web-services user. Create the role first, then the user:

  1. In the Magento 1 admin, go to System → Web Services → SOAP/XML-RPC - Roles and click Add New Role. Give it a name (for example, "ChatME").
  2. On the Role Resources tab, set Resource Access to Custom and tick only Sales → Order → Retrieve orders info and Sales → Order → Order shipments → Retrieve shipment info (the latter for the tracking number). The boxes above them tick themselves. Save the role.
  3. Go to System → Web Services → SOAP/XML-RPC - Users and click Add New User. Create the user (for example, chatme) with its API Key and keep it active. On the User Role tab, pick the role you just created and save.
  4. In ChatME, choose Magento 1, paste your store URL, the SOAP user and its API Key.
  5. Click Test & save. ChatME signs in as that user and makes two read calls, without reading any real order, to check the role can see orders and shipments.
  • Magento 1 has no read-only mode. Don't tick the whole Order box (it also allows changing the status, invoicing and refunding) or the whole Order shipments box (it also allows creating shipments). ChatME only reads.
  • If the role can't see orders, the connection isn't saved and the dashboard tells you which permission to tick. Without Retrieve shipment info, the store connects, but the assistant won't give tracking numbers until you add it and click Test again.
  • The /api/soap/ routes must be reachable from the internet (same firewall caveat as Magento 2). If your store doesn't use URL rewrites, ChatME also tries /index.php/api/soap/ on its own.
  • Tip: turn on the WSDL cache under System → Configuration → Services → Magento Core API → Enable WSDL Cache: Yes. Without it, every lookup is slower.

Note: since Magento 1 has been out of official support since 2020, we recommend running at least OpenMage LTS over HTTPS.

Connect Shopify

Since 1 January 2026, Shopify no longer lets stores create custom apps in their admin: new apps are created in its Dev Dashboard and show no token. ChatME connects with that app's Client ID and Client secret.

  1. In the Shopify admin, go to Settings → Apps → Develop apps and click Build apps in Dev Dashboard. Create the app (for example, "ChatME").
  2. On the app's version (Versions), add only the read_orders scope and click Release.
  3. Click Install app and install the app on your store.
  4. Under the app's Settings, copy the Client ID and the Client secret.
  5. In ChatME, choose Shopify and keep the Dev Dashboard app (Client ID + Secret) option selected. Paste your store's https://your-store.myshopify.com address (see Shopify → Settings → Domains; the admin address, https://admin.shopify.com/store/your-store, also works), not your public domain. Then the Client ID and the Client secret.
  6. Click Test & save. ChatME asks Shopify for fresh access every day: there's nothing to renew.
  • The app must belong to the same Shopify organization as the store. Create it from your store's admin, as in step 1; otherwise Shopify denies access (403).
  • Does your store already have an app created in the admin before 1 January 2026? It still works: in ChatME choose Legacy app token (shpat_) and paste its Admin API access token (it starts with shpat_). The app needs the read_orders scope.
  • Orders older than 60 days. With read_orders, Shopify only shows orders from the last 60 days. Older ones need the read_all_orders scope, which Shopify has to approve for your app. If the app doesn't have it, the dashboard says so under Order status when you test the connection; if you get it, add it to the app and click Test again.
  • Your customers' names and emails. ChatME needs them to check who is asking about an order. If Shopify won't let the app see them (for old apps created in the admin — the ones with an shpat_ token — Shopify only shares them on the Grow plan or higher), ChatME detects it when you test the connection — if your store already has at least one order —, doesn't save it and the dashboard explains why.

Connect WooCommerce

Before creating the key, check two things in WordPress:

  • Your store is served over HTTPS.
  • Under Settings → Permalinks, any option except "Plain" is selected. With "Plain", the WooCommerce API doesn't answer.
  1. In WordPress, go to WooCommerce → Settings → Advanced → REST API and click Add key.
  2. Description "ChatME"; as the user, an administrator or a shop manager (it must be able to see orders); and permissions set to Read.
  3. Click Generate API key and copy the Consumer key (ck_…) and the Consumer secret (cs_…). WooCommerce only shows them once.
  4. In ChatME, choose WooCommerce and paste your WordPress address (Settings → General → Site Address (URL), starting with https://). Then both keys, each in its own field.
  5. Click Test & save.
  • Did your key already exist with another user or permission? No need to create a new one: open it under WooCommerce → Settings → Advanced → REST API, change the user or the permissions and save the changes.
  • 403 error: it's almost always a firewall (Cloudflare, a security plugin or your host's) blocking server requests to /wp-json/wc/v3/: let them through. Cloudflare's Bot Fight Mode can't be skipped for one path, so if you use it you may have to turn it off.
  • Caching plugins or a maintenance page: leave /wp-json/ out of them. And if your site asks for a username and password to get in (like a staging site), ChatME can't connect.
  • If your server doesn't pass the authorization header on to WordPress (it happens with some hosts), there's nothing for you to do: ChatME detects it when testing the connection and sends the key the way WooCommerce documents for that case, as URL parameters and always over https. Bear in mind the key then shows up in your own server's access logs (and your CDN's, if you use one). Once your server passes the header, Test again goes back to sending it in the header.

The tracking number comes from the Shipment Tracking (by WooCommerce) or Advanced Shipment Tracking plugins. More detail in Orders in the chat.

Connect PrestaShop

Works with PrestaShop 1.7, 8 and 9. Each thing you turn on needs its own permissions on the Webservice key:

  • Order status: orders, customers and order_states.
  • Optional, for order status: carriers (the carrier's name and the tracking link) and currencies (the order's currency). Without them, order status works just the same, but with no carrier, no link and no currency.
  • Live stock: products, stock_availables, combinations and product_option_values.

You can turn on both or just one: a key with only the stock permissions works too.

  1. In the PrestaShop back office, go to Advanced Parameters → Webservice and enable the web service (Enable PrestaShop's webservice: Yes).
  2. Click Add new webservice key, then Generate a key (it has 32 characters).
  3. In that key's permissions, tick only View (GET) on the resources from the list above that you need. Save.
  4. In ChatME, choose PrestaShop and paste your store's main address (for example, https://www.mystore.com: without the language, like /en/, without /index.php and without the admin folder) and the Webservice key.
  5. Click Test & save. ChatME checks each permission and shows you what is active; if one is missing, it tells you which (the optional ones too).
  • If the dashboard says PrestaShop received no key, your host removes the authorization header before it reaches PrestaShop (the key may be fine). Under Advanced Parameters → Webservice, turn on "Enable CGI mode for PHP" and save; if it still fails (or your server runs nginx), ask your host to pass the Authorization header through to PHP (on Apache: CGIPassAuth On). Since PrestaShop 9.0.3, the .htaccess PrestaShop generates already includes that rule for Apache.
  • If you paste an address with /index.php or the admin panel's address, ChatME removes /index.php (and whatever follows) and the admin folder. With any other page or with the language (/en/), the test fails and the dashboard asks for the main address.
  • 403 error: it's almost always a firewall (Cloudflare, ModSecurity or your host's): let server requests to /api/ through.

Live stock on PrestaShop

With the stock permissions, when a customer asks about a product — or before recommending a specific one — the assistant checks your store and says whether it is in stock right now, whether only a few units are left, or whether it is sold out. If the product has combinations (formats, sizes…), it answers per combination, and it can share the product link.

  • What to recommend, what each product is like and its prices still come from your website, as they do today. The stock check never uses or shows prices and never says how many units are left: only in stock, few left or sold out.
  • The assistant always speaks about the present moment: it does not hold units, does not promise stock will still be there later and gives no restock dates. If a product is sold out but your store accepts orders without stock, it says so, without promising when it would ship.
  • Packs: if a pack is set in PrestaShop to decrement the products in the pack (or both the pack and its products), the assistant works out its stock from those products (and, in the second case, from the pack's own stock too). If the pack decrements the pack only or follows the shop's default option, the pack's own stock is used. If your shop's default is to decrement the products in the pack, choose that option explicitly on each pack (on the product page, in the pack's quantity settings): otherwise the assistant may call a pack sold out when it can be bought.
  • Only active products in your catalogue count.
  • You need stock management enabled in PrestaShop (Shop Parameters → Product Settings). If no product shows any stock, ChatME does not turn live stock on and explains why in the dashboard.
  • Already connected for orders only? Add the four stock permissions to the same key and click Test again in the E-commerce section: live stock turns on without reconnecting. If the key later loses those permissions, live stock switches itself off and the dashboard tells you what to add.

For now, live stock is only available with PrestaShop.

After connecting

  • You'll see the Store connected state with your store's name and what the assistant has active (Order status and, on PrestaShop, Live stock). If the key is missing a permission that would complete order status, right after the test the dashboard says so underneath: the shipments one on Magento (without it, no tracking numbers), read_all_orders on Shopify (without it, only the last 60 days) or carriers and currencies on PrestaShop.
  • From there you can test the connection again or disconnect at any time, including after your plan stops including E-commerce (explained below).
  • If your store rejects the key — because you revoked it or took a permission away —, ChatME switches Order status off, whether it notices during a customer's lookup or when you click Test again (in that case, live stock too). In the E-commerce section it shows as Not active; if nothing is left active, the status dot turns grey and, in Overview, the E-commerce row of the Connections card shows Disabled. Meanwhile the assistant doesn't look up orders: it suggests that the customer asking contacts your business. Fix the key in your store and click Test again: if the test passes, whatever the key allows turns back on. If you created a new key, disconnect the store and connect it again with the new one.
  • The assistant starts answering order questions immediately — no need to touch or reinstall the widget.
  • Try it yourself: open the chat on your website and ask "where is my order?" with the details of a real order. Bear in mind there's a maximum number of lookups per hour per person (on the web chat, per internet connection): if you test many times in a row, the assistant will end up suggesting you contact the business.

If your plan stops including E-commerce

If you switch to another plan or cancel, the assistant stops querying your store. The connection stays saved, encrypted, and works again exactly as it was if you return to the E-commerce plan. If you'd rather delete it, in Overview open the E-commerce row of the Connections card: you'll see your saved store and the Disconnect button, which works on any plan. You can also revoke the key in your store.

Credential security

  • The credential is encrypted (AES-256-GCM) before being stored and only decrypted in memory, at the moment your store is queried.
  • It is never shown again in the dashboard or sent to the browser.
  • ChatME only sends it to your store's address, over https: if your store redirects to another address or to http://, ChatME doesn't follow it with your key. On Shopify, the Client secret is only sent to your your-store.myshopify.com address, and the daily access Shopify grants is only kept in memory.
  • If you rotate or revoke it on your platform, simply disconnect and reconnect with the new one.

Want to know what the order lookup feels like for your customer and what verification applies? Read Orders in the chat: how it works.

Was this article helpful?
NEED MORE HELP?

Ask the ChatME Assistant

It's in your dashboard and knows every step. Or book a demo and we'll set it up with you.