# ShopAssist > ShopAssist (by COEC, hosted in the EU) is an AI shopping assistant for Shopify, Magento 2 / Adobe Commerce, WooCommerce, PrestaShop and custom stores. It answers shoppers from the store's own catalog, stock, opening hours and policies, helps them find and compare products, add them to the cart and track orders, and hands over to the store's team. Merchants use managed EU AI models or their own AI key. Prices and stock are always rendered from store data, actions such as cancellations need the shopper's confirmation, and the assistant always discloses that it is an AI. Pricing: https://shopassist.coec.dk/pricing. Every docs page is also available as Markdown by appending `.md` to its URL. ## Docs - [ShopAssist documentation](https://shopassist.coec.dk/docs/index.md): Install ShopAssist on your store, connect your catalog and AI model, and go live with an AI shopping assistant that answers from your own data. ## Getting started - [Getting started](https://shopassist.coec.dk/docs/getting-started.md): Where to begin with ShopAssist, from the quickstart for your platform to the concepts, plan limits and the checks before you go live. - [Quickstart](https://shopassist.coec.dk/docs/getting-started/quickstart.md): The fastest path from sign-up to a first answer from your own catalog, per platform, ending with a test message in the playground. - [Concepts](https://shopassist.coec.dk/docs/getting-started/concepts.md): Organizations, stores, publishable keys, conversations, identity levels, actions, knowledge and capabilities, explained once for all of the docs. - [Plans and limits](https://shopassist.coec.dk/docs/getting-started/plans-and-limits.md): Every plan's included conversations, limits and features, generated from the plan catalog, and what happens when a limit is reached. - [Go-live checklist](https://shopassist.coec.dk/docs/getting-started/going-live-checklist.md): The checks the dashboard runs before you publish the widget, what each one means and how to fix it. ## Install - [Install ShopAssist](https://shopassist.coec.dk/docs/install.md): Choose your platform and compare what ShopAssist supports on each, from stock per location to cancellations, returns and signed-in customers. - [Install on Shopify](https://shopassist.coec.dk/docs/install/shopify.md): Add ShopAssist from the Shopify App Store, activate the app embed in your theme and let signed-in customers ask about their orders. - [Install on Magento 2](https://shopassist.coec.dk/docs/install/magento-2.md): Install the ShopAssist module with Composer, pair each website with a code, and enable stock per source, returns and customer cancellations. - [Install on Adobe Commerce](https://shopassist.coec.dk/docs/install/adobe-commerce.md): ShopAssist on Adobe Commerce on-premises and Cloud: the Magento 2 module, website scope, RMA returns, staging and B2B notes. - [Install on WooCommerce](https://shopassist.coec.dk/docs/install/woocommerce.md): Install the ShopAssist plugin from WordPress.org, connect in one click, and set up signed-in customers and stock per location. - [Install on PrestaShop](https://shopassist.coec.dk/docs/install/prestashop.md): Upload the ShopAssist module ZIP, connect one shop, and provide stock per store through the location-stock hook or a feed. - [Install on any site](https://shopassist.coec.dk/docs/install/generic.md): Add the ShopAssist script tag, allow your domains, and choose a catalog source: product feeds or the Catalog Push API. - [Product feeds](https://shopassist.coec.dk/docs/install/generic/product-feeds.md): Google Shopping XML, CSV and JSON feeds for Generic stores: supported fields, schedules, authentication, ETag caching and full-replace semantics. - [Catalog Push API](https://shopassist.coec.dk/docs/install/generic/catalog-push-api.md): Push products, categories, locations, stock and pages from your server in idempotent batches, including full replace_all runs. - [Generic RPC for orders](https://shopassist.coec.dk/docs/install/generic/order-rpc.md): Let the assistant read order status and run cancellations and returns on any store by answering signed RPC calls from ShopAssist. - [Checkout and cart for Generic stores](https://shopassist.coec.dk/docs/install/generic/checkout-and-cart.md): Configure cart mode, the checkout URL template with items, code, conversation id and locale, and the JavaScript cart handler. - [Headless and single-page storefronts](https://shopassist.coec.dk/docs/install/headless.md): Use ShopAssist on Next.js, Hydrogen, Nuxt and other SPAs: route changes, the JavaScript API, strict CSP, the SRI-pinned loader and identity. - [Verify your installation](https://shopassist.coec.dk/docs/install/verify-your-installation.md): A checklist to confirm the widget, catalog, AI and identity work on your storefront, and the most common failures with their fixes. - [Uninstall and data removal](https://shopassist.coec.dk/docs/install/uninstall-and-data-removal.md): What happens when you pause, disconnect, uninstall or delete a store on each platform, what is deleted and when. ## Catalog - [What syncs](https://shopassist.coec.dk/docs/catalog/what-syncs.md): Which store data ShopAssist copies into its catalog mirror, what it reads live, and what it never stores. - [Sync schedules](https://shopassist.coec.dk/docs/catalog/sync-schedules.md): How quickly changes reach ShopAssist on each platform, when the nightly reconcile runs, and how to start a sync manually. - [Multi-location stock](https://shopassist.coec.dk/docs/catalog/multi-location-stock.md): How the assistant answers "is it in stock in my store?" from stock per location, per platform, and how freshness and disclosure rules apply. - [Store locations and opening hours](https://shopassist.coec.dk/docs/catalog/store-locations-and-opening-hours.md): Choose which locations shoppers see, set opening hours with exceptions, and add pickup points that are not in your platform. - [Product exclusions](https://shopassist.coec.dk/docs/catalog/product-exclusions.md): Hide individual products from the assistant without unpublishing them in your store. - [Search preview](https://shopassist.coec.dk/docs/catalog/search-preview.md): Debug why the assistant finds or misses a product by running the same hybrid search it uses and reading each ranking signal. - [Inventory CSV import](https://shopassist.coec.dk/docs/catalog/inventory-csv-import.md): Upload stock per location as a CSV file for WooCommerce, PrestaShop and Generic stores without another stock source. ## Knowledge base - [Knowledge base overview](https://shopassist.coec.dk/docs/knowledge-base/overview.md): The sources the assistant answers policy and service questions from, how they are kept current, and the plan limits for pages and files. - [Policies and pages](https://shopassist.coec.dk/docs/knowledge-base/policies-and-pages.md): How shipping, returns, privacy and other policies and content pages are imported from each platform and kept up to date. - [Crawl URLs and sitemaps](https://shopassist.coec.dk/docs/knowledge-base/crawl-urls-and-sitemaps.md): Add help-center pages and other web content by sitemap or start URL, with include and exclude patterns, page limits and recrawl schedules. - [File uploads](https://shopassist.coec.dk/docs/knowledge-base/file-uploads.md): Upload PDFs, Word documents, text, CSV and Markdown files such as size charts and care guides to the knowledge base. - [FAQs](https://shopassist.coec.dk/docs/knowledge-base/faqs.md): Write question-and-answer pairs in the dashboard or manage them by API with your own keys, in any of your store's languages. - [Review queue](https://shopassist.coec.dk/docs/knowledge-base/review-queue.md): Why some documents wait for approval before the assistant uses them, and how to approve or reject them. - [Knowledge gaps](https://shopassist.coec.dk/docs/knowledge-base/knowledge-gaps.md): See which questions the assistant couldn't answer, grouped by topic, and answer them with one click to create an FAQ. ## AI - [How ShopAssist works](https://shopassist.coec.dk/docs/ai/how-shopassist-works.md): Tools, grounding, UI blocks and confirmation cards: how the assistant finds answers in your store data, and what it can't do. - [Supervising your assistant](https://shopassist.coec.dk/docs/ai/supervising-your-assistant.md): Review conversations, close knowledge gaps, set guardrails, test in the playground and decide when people take over. - [Choose your AI](https://shopassist.coec.dk/docs/ai/choose-your-ai.md): Managed AI or your own provider key: what each costs, where data is processed, premium models and what happens when a provider fails. - [Managed AI](https://shopassist.coec.dk/docs/ai/managed.md): The models ShopAssist runs for you on EU infrastructure, how routing and fallback work, and the no-training guarantee. - [Bring your own key (BYOK)](https://shopassist.coec.dk/docs/ai/byok.md): Connect your own AI provider key, what the connection test checks, daily health checks, fallback, cost estimates and the residency attestation. - [OpenAI](https://shopassist.coec.dk/docs/ai/openai.md): Use your own OpenAI API key with ShopAssist, including organization and project ids and EU data residency. - [Anthropic](https://shopassist.coec.dk/docs/ai/anthropic.md): Use your own Anthropic API key with ShopAssist, and the options for EU processing of Claude models. - [Google Gemini](https://shopassist.coec.dk/docs/ai/google-gemini.md): Use a paid-tier Gemini API key with ShopAssist; free-tier keys are rejected because Google may use their data. - [Azure OpenAI](https://shopassist.coec.dk/docs/ai/azure-openai.md): Use your own Azure OpenAI or Azure AI Foundry deployment with ShopAssist: resource URL, deployment name and base model. - [Mistral](https://shopassist.coec.dk/docs/ai/mistral.md): Use your own Mistral AI key with ShopAssist; processing stays in the EU. - [OpenAI-compatible endpoints](https://shopassist.coec.dk/docs/ai/openai-compatible.md): Connect any endpoint that speaks the OpenAI Chat Completions API: hosted routers and inference services, or your own server. - [OpenRouter](https://shopassist.coec.dk/docs/ai/openrouter.md): Use models from many providers through one OpenRouter key, and how to keep routing within your data-processing terms. - [Groq](https://shopassist.coec.dk/docs/ai/groq.md): Use fast inference on Groq with ShopAssist through its OpenAI-compatible API. - [Together AI](https://shopassist.coec.dk/docs/ai/together.md): Use open models hosted by Together AI with ShopAssist. - [Ollama](https://shopassist.coec.dk/docs/ai/ollama.md): Run ShopAssist on Ollama's cloud or your own Ollama server, with the context window set high enough. - [vLLM](https://shopassist.coec.dk/docs/ai/vllm.md): Serve an open model with vLLM for ShopAssist, with tool calling enabled. - [LM Studio](https://shopassist.coec.dk/docs/ai/lm-studio.md): Use a model served by LM Studio with ShopAssist; only models with a tool chat template work. - [Vision and visual search](https://shopassist.coec.dk/docs/ai/vision-and-visual-search.md): Let shoppers upload a photo to find similar products; which models support it, how photos are handled and when they are deleted. - [Data location and retention](https://shopassist.coec.dk/docs/ai/data-location-and-retention.md): Where AI processing happens for managed AI and for each BYOK provider, what providers retain, and how long ShopAssist keeps conversations. ## Assistant - [Persona and brand voice](https://shopassist.coec.dk/docs/assistant/persona-and-brand-voice.md): Name your assistant, choose an avatar, greeting, tone and brand voice, with drafts you test before publishing. - [Custom instructions](https://shopassist.coec.dk/docs/assistant/custom-instructions.md): Give the assistant store-specific rules in up to 4,000 characters, and the fixed rules no instruction can override. - [Starters](https://shopassist.coec.dk/docs/assistant/starters.md): The quick-reply chips shown under the greeting before the shopper types, and the defaults used when you don't set your own. - [Languages](https://shopassist.coec.dk/docs/assistant/languages.md): The widget's interface languages, how the assistant picks the reply language, and how to fix or restrict it. - [Guided shopping](https://shopassist.coec.dk/docs/assistant/guided-shopping.md): The gift finder and size advisor, the product attributes and size charts they use, and what each plan includes. - [Playground](https://shopassist.coec.dk/docs/assistant/playground.md): Test your assistant with draft settings, simulated pages and customers, and read the debug panel for every tool call. - [AI disclosure](https://shopassist.coec.dk/docs/assistant/ai-disclosure.md): What the widget always shows so shoppers know they are talking to an AI, why it can't be removed, and what is rejected on save. ## Guardrails - [Guardrails overview](https://shopassist.coec.dk/docs/guardrails/overview.md): The fixed rules every ShopAssist assistant follows, and the guardrails you can configure per store. - [Topics and competitors](https://shopassist.coec.dk/docs/guardrails/topics-and-competitors.md): Keep the assistant on shopping topics, block topics you don't want discussed, and decide how it handles competitors. - [Stock disclosure](https://shopassist.coec.dk/docs/guardrails/stock-disclosure.md): Choose whether shoppers see exact stock quantities, levels only, or no stock information. - [Prices](https://shopassist.coec.dk/docs/guardrails/prices.md): Turn price statements off for B2B stores, and show compare-at "was" prices only after confirming they are lawful price references. - [Links](https://shopassist.coec.dk/docs/guardrails/links.md): Which links the assistant may show, and how to allow extra domains such as your help center or a booking site. ## Widget - [Appearance](https://shopassist.coec.dk/docs/widget/appearance.md): Colours, position, launcher style, theme and branding of the chat widget, previewed live before you publish. - [Display rules](https://shopassist.coec.dk/docs/widget/display-rules.md): Hide the widget on paths, mobile or checkout, and how the widget behaves when the assistant is unavailable. - [Proactive messages](https://shopassist.coec.dk/docs/widget/proactive-triggers.md): Show a short message bubble based on time, scroll depth, exit intent, product or cart pages, without pressure tactics. - [Widget languages](https://shopassist.coec.dk/docs/widget/languages.md): The 11 interface languages of the widget, how one is chosen, and how to override it from your page. - [JavaScript API](https://shopassist.coec.dk/docs/widget/javascript-api.md): The window.ShopAssist API to open the chat, pass page context, consent, identity and cart handlers, and subscribe to events. - [Embed attributes](https://shopassist.coec.dk/docs/widget/embed-attributes.md): Every data attribute and ShopAssistConfig key the loader reads, and the order in which configuration sources are merged. - [Events](https://shopassist.coec.dk/docs/widget/events.md): Widget events for analytics and integrations, as callbacks and as window CustomEvents; payloads never contain personal data. - [Content Security Policy](https://shopassist.coec.dk/docs/widget/content-security-policy.md): The CSP directives the ShopAssist widget needs, per platform, including Trusted Types and Cloudflare Turnstile. - [SRI-pinned loader](https://shopassist.coec.dk/docs/widget/sri-pinned-loader.md): Embed a fixed widget version with Subresource Integrity for an end-to-end integrity chain under strict security policies. - [Consent and CMP](https://shopassist.coec.dk/docs/widget/consent-and-cmp.md): How the widget reads consent from your consent management platform, the supported CMPs and category mappings, and manual mode. - [Storage disclosure](https://shopassist.coec.dk/docs/widget/storage-disclosure.md): Every key the widget can write to the shopper's browser, when, why and for how long, ready to copy into your CMP or cookie policy. - [Widget accessibility](https://shopassist.coec.dk/docs/widget/accessibility.md): How the widget meets WCAG 2.2 AA and EN 301 549: keyboard use, screen readers, contrast, zoom and reduced motion. - [Widget performance](https://shopassist.coec.dk/docs/widget/performance.md): The widget's size budgets, what loads before and after the first click, and its effect on Core Web Vitals. - [Bot protection](https://shopassist.coec.dk/docs/widget/bot-protection.md): How ShopAssist detects scripted traffic, proof-of-work and Cloudflare Turnstile challenges, and the daily cost guard that protects your AI budget. ## Orders and identity - [Orders and identity](https://shopassist.coec.dk/docs/orders-and-identity/overview.md): The four identity levels, what each unlocks, how signed-in customers are recognised on each platform, and how guests verify an order. - [Shopify identity](https://shopassist.coec.dk/docs/orders-and-identity/shopify.md): How signed-in Shopify customers are recognised through the App Proxy, the popup fallback, and the 60-day order history limit. - [Magento 2 identity](https://shopassist.coec.dk/docs/orders-and-identity/magento-2.md): How the Magento module recognises signed-in customers safely with full-page cache and Varnish, and the guest lookup factors. - [WooCommerce identity](https://shopassist.coec.dk/docs/orders-and-identity/woocommerce.md): How the WooCommerce plugin recognises signed-in customers, and why orders are matched by customer id only. - [PrestaShop identity](https://shopassist.coec.dk/docs/orders-and-identity/prestashop.md): How the PrestaShop module recognises signed-in customers per shop, and how guest accounts are handled. - [Identity JWT for Generic stores](https://shopassist.coec.dk/docs/orders-and-identity/generic-identity-jwt.md): Mint a short-lived HS256 identity token on your server for signed-in customers and pass it to the widget, with Python, Node.js and PHP examples. - [Guest order lookup](https://shopassist.coec.dk/docs/orders-and-identity/guest-order-lookup.md): Let shoppers without an account check one order with its number, email and a second factor, and the limits that protect it. - [Email verification](https://shopassist.coec.dk/docs/orders-and-identity/email-verification.md): The one-time code that verifies a guest for one order, how long it lasts and how it protects against enumeration. - [Cancellations](https://shopassist.coec.dk/docs/orders-and-identity/cancellations.md): Let shoppers cancel orders in the chat as a request to your team or directly on the platform, with your rules for status, time and value. - [Returns and withdrawal](https://shopassist.coec.dk/docs/orders-and-identity/returns-and-withdrawal.md): Return requests in the chat, how the assistant handles the statutory right of withdrawal and defect complaints, and your withdrawal form link. - [Identity secret rotation](https://shopassist.coec.dk/docs/orders-and-identity/identity-secret-rotation.md): How identity secrets rotate automatically on plugin platforms, how to rotate a Generic store's secret, and what to do after a leak. ## Cart and checkout - [Add to cart](https://shopassist.coec.dk/docs/cart-and-checkout/add-to-cart.md): How the assistant adds products to the shopper's real cart on each platform, and the settings that control it. - [Checkout links](https://shopassist.coec.dk/docs/cart-and-checkout/checkout-links.md): Send shoppers straight to checkout with the recommended products, and how each platform builds the link. - [Discount codes](https://shopassist.coec.dk/docs/cart-and-checkout/discount-codes.md): The codes the assistant may offer or apply, the rule that it never invents codes, and shopper-typed codes. - [Attribution](https://shopassist.coec.dk/docs/cart-and-checkout/attribution.md): How orders are linked to conversations: items added by the assistant, checkout links, and assisted sessions with analytics consent. ## Engagement - [Lead capture and consent](https://shopassist.coec.dk/docs/engagement/lead-capture-and-consent.md): Collect emails and newsletter sign-ups in the chat with explicit, versioned consent and double opt-in, and sync them to your platform. - [Back in stock](https://shopassist.coec.dk/docs/engagement/back-in-stock.md): Let shoppers ask to be emailed when a product or size is available again, online or in a specific store. - [Transcripts](https://shopassist.coec.dk/docs/engagement/transcripts.md): Let shoppers email themselves a copy of the conversation, and how the recipient is verified. - [CSAT](https://shopassist.coec.dk/docs/engagement/csat.md): Ask shoppers to rate a conversation from 1 to 5 with an optional comment, and where ratings appear. ## Handoff - [Handoff overview](https://shopassist.coec.dk/docs/handoff/overview.md): How the assistant hands a conversation to your team, which targets it can use and how routing chooses between live chat and offline delivery. - [Live inbox and takeover](https://shopassist.coec.dk/docs/handoff/live-inbox-and-takeover.md): Answer shoppers in real time from the ShopAssist inbox, take over from the AI and hand the conversation back. - [Office hours](https://shopassist.coec.dk/docs/handoff/office-hours.md): Define when your team is available for live chat, add holiday exceptions and choose what happens outside hours. - [Email handoff](https://shopassist.coec.dk/docs/handoff/email.md): Send handed-off conversations to up to five verified email addresses, available on every plan. - [Slack notifications](https://shopassist.coec.dk/docs/handoff/slack.md): Notify a Slack channel when a shopper asks for a person, with a link straight to the conversation. - [Zendesk](https://shopassist.coec.dk/docs/handoff/zendesk.md): Create Zendesk tickets from handed-off conversations with the transcript as a private comment. - [Gorgias](https://shopassist.coec.dk/docs/handoff/gorgias.md): Create Gorgias tickets from handed-off conversations, with an optional internal note containing the summary and transcript. - [Freshdesk](https://shopassist.coec.dk/docs/handoff/freshdesk.md): Create Freshdesk tickets from handed-off conversations using an API key. - [PrestaShop Customer Service](https://shopassist.coec.dk/docs/handoff/prestashop-customer-service.md): Deliver handoffs as threads in PrestaShop's built-in Customer Service. - [Webhook handoff](https://shopassist.coec.dk/docs/handoff/webhook.md): Send handoffs to your own system through the handoff.requested webhook. - [Helpdesk status webhooks](https://shopassist.coec.dk/docs/handoff/helpdesk-status-webhooks.md): Let Zendesk, Gorgias or Freshdesk tell ShopAssist when a ticket is solved, so the handoff is marked resolved. ## Analytics - [Metric definitions](https://shopassist.coec.dk/docs/analytics/metrics.md): The exact definition of every metric in ShopAssist analytics, as used in the dashboard tooltips and the analytics API. - [Assisted revenue and attribution](https://shopassist.coec.dk/docs/analytics/assisted-revenue-and-attribution.md): How ShopAssist links orders to conversations on each platform, how each revenue line is calculated and how consent affects it. - [Knowledge gaps and demand](https://shopassist.coec.dk/docs/analytics/knowledge-gaps-and-demand.md): See which questions the assistant could not answer and which products shoppers asked for that are out of stock or not carried. - [Exports](https://shopassist.coec.dk/docs/analytics/exports.md): Download conversations, messages, leads and daily metrics as CSV files. ## Billing - [Plans](https://shopassist.coec.dk/docs/billing/plans.md): The ShopAssist plans, what each includes and how billing works for direct and Shopify App Store customers. - [What is a conversation?](https://shopassist.coec.dk/docs/billing/what-is-a-conversation.md): Exactly what ShopAssist counts as a billable conversation, including blocks, idle time, the premium multiplier and what is never counted. - [Trials](https://shopassist.coec.dk/docs/billing/trials.md): How the free trial of paid plans works, what it includes and what happens when it ends. - [Overage and budgets](https://shopassist.coec.dk/docs/billing/overage-and-budgets.md): What happens when you use more conversations than your plan includes, how the overage budget works and which alerts you get. - [Changing plans](https://shopassist.coec.dk/docs/billing/changing-plans.md): How upgrades, downgrades and interval changes take effect and how they are prorated. - [Invoices and VAT](https://shopassist.coec.dk/docs/billing/invoices-and-vat.md): Currencies, VAT treatment, VAT number verification and where to find your invoices for direct billing. - [Shopify billing](https://shopassist.coec.dk/docs/billing/shopify-billing.md): How plans, trials, usage and invoices work when you install ShopAssist from the Shopify App Store. - [Cancelling](https://shopassist.coec.dk/docs/billing/cancelling.md): How to cancel a paid plan, what happens at the end of the period and how to delete your account. ## Team - [Roles and permissions](https://shopassist.coec.dk/docs/team/roles-and-permissions.md): What owners, admins, agents and viewers can do in ShopAssist, and how store-restricted memberships work. - [Invitations](https://shopassist.coec.dk/docs/team/invitations.md): Invite colleagues to your organization with a role and optional store restriction. - [Agencies and multiple stores](https://shopassist.coec.dk/docs/team/agencies-and-multiple-stores.md): Run several stores in one organization, give clients restricted access and keep billing separate where needed. - [Shopify staff](https://shopassist.coec.dk/docs/team/shopify-staff.md): How Shopify staff accounts get into the ShopAssist app inside Shopify admin and how to link a standalone account. - [Support access](https://shopassist.coec.dk/docs/team/support-access.md): Let COEC support look at your account read-only and redacted, for a limited time, and see every request they make. ## API - [API overview](https://shopassist.coec.dk/docs/api.md): The ShopAssist merchant REST API for conversations, leads, analytics, knowledge, catalog push, order reports and privacy requests. - [Authentication](https://shopassist.coec.dk/docs/api/authentication.md): Create API keys, choose scopes and store restrictions, use test keys and rotate keys safely. - [Errors](https://shopassist.coec.dk/docs/api/errors.md): The error envelope, every error code and the detail reasons the ShopAssist API returns. - [Pagination](https://shopassist.coec.dk/docs/api/pagination.md): How cursor pagination works on every ShopAssist list endpoint. - [Idempotency](https://shopassist.coec.dk/docs/api/idempotency.md): Retry POST requests safely with the Idempotency-Key header. - [Rate limits](https://shopassist.coec.dk/docs/api/rate-limits.md): Request limits of the merchant API, the rate-limit headers and how to handle 429 responses. - [Versioning](https://shopassist.coec.dk/docs/api/versioning.md): How the ShopAssist API is versioned, what counts as a breaking change and how deprecations are announced. - [AI content verification](https://shopassist.coec.dk/docs/api/ai-content-verification.md): Check whether a text was generated by your ShopAssist assistant, for EU AI Act transparency. - [API reference](https://shopassist.coec.dk/docs/api/reference.md): Every endpoint of the ShopAssist merchant API v1, generated from the OpenAPI document. - [List Stores](https://shopassist.coec.dk/docs/api/reference/stores/list-stores.md): Stores of the key's organization (only store_ids for restricted keys). - [Get Store](https://shopassist.coec.dk/docs/api/reference/stores/get-store.md): One store (404 outside the key's stores). - [List Conversations](https://shopassist.coec.dk/docs/api/reference/conversations/list-conversations.md): Conversations of the store (newest first). - [Delete Conversation](https://shopassist.coec.dk/docs/api/reference/conversations/delete-conversation.md): Hard delete (audited; privacy deletion rules of 12 apply). - [Get Conversation](https://shopassist.coec.dk/docs/api/reference/conversations/get-conversation.md): ApiConversation & { messages: ApiMessage[] } (note messages excluded). - [List Csat](https://shopassist.coec.dk/docs/api/reference/conversations/list-csat.md): CSAT ratings (newest first). - [List Handoffs](https://shopassist.coec.dk/docs/api/reference/conversations/list-handoffs.md): Page (newest first). - [List Back In Stock](https://shopassist.coec.dk/docs/api/reference/engagement/list-back-in-stock.md): Back-in-stock subscriptions (newest first). - [List Leads](https://shopassist.coec.dk/docs/api/reference/engagement/list-leads.md): Leads with their consent records (newest first). - [Delete Lead](https://shopassist.coec.dk/docs/api/reference/engagement/delete-lead.md): Hard delete (consent evidence kept per 02 §15; audited). - [Get Lead](https://shopassist.coec.dk/docs/api/reference/engagement/get-lead.md): One lead. - [Get Overview](https://shopassist.coec.dk/docs/api/reference/analytics/get-overview.md): { period; currency; metrics; previous } (formulas 03 §6.12). - [Get Timeseries](https://shopassist.coec.dk/docs/api/reference/analytics/get-timeseries.md): { metric; interval; points: { date; value }[] }. - [List Documents](https://shopassist.coec.dk/docs/api/reference/knowledge/list-documents.md): Knowledge documents of the store (newest first). - [Delete Faq](https://shopassist.coec.dk/docs/api/reference/knowledge/delete-faq.md): Delete the FAQ document (and its chunks). - [Upsert Faq](https://shopassist.coec.dk/docs/api/reference/knowledge/upsert-faq.md): Upsert by external_ref: 200 updated, 201 created (the handler sets the status). - [Push Categories](https://shopassist.coec.dk/docs/api/reference/catalog/push-categories.md): Upsert categories (parents by parent_external_id). - [Push Inventory](https://shopassist.coec.dk/docs/api/reference/catalog/push-inventory.md): Per-location stock levels (the first accepted batch sets inventory.location_source = feed). - [Push Locations](https://shopassist.coec.dk/docs/api/reference/catalog/push-locations.md): Upsert locations (opening_hours → hours_source = platform). - [Push Pages](https://shopassist.coec.dk/docs/api/reference/catalog/push-pages.md): Upsert pages/policies into the knowledge base (external_ref = external_id). - [Push Products](https://shopassist.coec.dk/docs/api/reference/catalog/push-products.md): Upsert products (mode = replace_all runs tombstone products outside the run after the last batch). - [Delete Products](https://shopassist.coec.dk/docs/api/reference/catalog/delete-products.md): Tombstone products by external id. - [Report Orders](https://shopassist.coec.dk/docs/api/reference/catalog/report-orders.md): Placed orders for attribution → outbox order.reported (attributed_orders.source = api_push); order - [Create Privacy Request](https://shopassist.coec.dk/docs/api/reference/privacy/create-privacy-request.md): privacy.requests.create(source = "merchant_api", external_ref = Idempotency-Key) → 201; a repeated - [Get Privacy Request](https://shopassist.coec.dk/docs/api/reference/privacy/get-privacy-request.md): The request (+ download_url for a completed export). - [List Events](https://shopassist.coec.dk/docs/api/reference/events/list-events.md): Events of the last 30 days (newest first). - [Get Event](https://shopassist.coec.dk/docs/api/reference/events/get-event.md): One event (same visibility rule as the list, else 404). - [Verify Ai Content](https://shopassist.coec.dk/docs/api/reference/ai-content/verify-ai-content.md): 200 { matches } (similarity 1.0; empty when nothing matches). ## Webhooks - [Webhooks](https://shopassist.coec.dk/docs/webhooks.md): Receive signed HTTPS notifications when conversations, handoffs, leads, orders and other events happen in ShopAssist. - [Webhook events](https://shopassist.coec.dk/docs/webhooks/events.md): Every outgoing webhook event type with its payload schema and an example, generated from the OpenAPI document. - [Verifying signatures](https://shopassist.coec.dk/docs/webhooks/verifying-signatures.md): Check the ShopAssist-Signature header with HMAC-SHA256 so you only accept genuine webhook deliveries. - [Retries and disabling](https://shopassist.coec.dk/docs/webhooks/retries-and-disabling.md): The retry schedule for failed webhook deliveries, automatic disabling after three days of failures, and manual redelivery. - [Testing webhooks](https://shopassist.coec.dk/docs/webhooks/testing.md): Send sample events to your endpoint and check your signature verification before going live. ## Docs - [Plugins](https://shopassist.coec.dk/docs/plugins.md): The ShopAssist plugins for Magento 2, WooCommerce and PrestaShop, their versions, update policy and what their requests look like. - [ShopAssist bot](https://shopassist.coec.dk/docs/bot.md): Who ShopAssist's crawler and connector are, their User-Agents, how they respect robots.txt and where they connect from. ## Security - [Security overview](https://shopassist.coec.dk/docs/security/overview.md): How ShopAssist protects your store, your team and your shoppers, with links to the details. - [Hosting and architecture](https://shopassist.coec.dk/docs/security/hosting-and-architecture.md): Where ShopAssist runs, how stores are isolated from each other, and how backups and incidents are handled. - [Encryption](https://shopassist.coec.dk/docs/security/encryption.md): How ShopAssist encrypts data in transit and at rest, including the envelope encryption of credentials and AI keys. - [Prompt injection and safety](https://shopassist.coec.dk/docs/security/prompt-injection-and-safety.md): How ShopAssist stops manipulated content and shoppers from making the assistant state wrong prices, leak data or take unwanted actions. - [Egress IP addresses](https://shopassist.coec.dk/docs/security/egress-ips.md): The static IP addresses ShopAssist connects to your store from, for firewall and WAF allowlists. - [Responsible disclosure](https://shopassist.coec.dk/docs/security/responsible-disclosure.md): How to report a security vulnerability in ShopAssist and what you can expect from us. ## Compliance - [GDPR overview](https://shopassist.coec.dk/docs/compliance/gdpr-overview.md): Who is controller and processor for ShopAssist data, where data is processed and what you need to do as a merchant. - [Data Processing Agreement](https://shopassist.coec.dk/docs/compliance/dpa.md): How the ShopAssist DPA is accepted, what it covers and how you are told about changes and new sub-processors. - [Lawful bases](https://shopassist.coec.dk/docs/compliance/lawful-bases.md): Suggested GDPR lawful bases for each kind of processing the ShopAssist widget does, for your record of processing. - [Retention](https://shopassist.coec.dk/docs/compliance/retention.md): How long ShopAssist keeps transcripts, leads, analytics and other data by default, and what you can change. - [Data subject requests](https://shopassist.coec.dk/docs/compliance/data-subject-requests.md): How to export or delete a shopper's ShopAssist data from the dashboard, the API or your platform's privacy tools. - [Shopper privacy notice](https://shopassist.coec.dk/docs/compliance/shopper-privacy-notice.md): A template section for your privacy policy describing the ShopAssist chat, available in 11 languages with placeholders. - [Storage and cookies](https://shopassist.coec.dk/docs/compliance/storage-and-cookies.md): What the ShopAssist widget stores in the shopper's browser, which storage needs consent, and how to list it in your cookie policy. - [AI Act](https://shopassist.coec.dk/docs/compliance/ai-act.md): How ShopAssist meets the EU AI Act transparency obligations and what remains your responsibility as a deployer. - [Accessibility](https://shopassist.coec.dk/docs/compliance/accessibility.md): How the ShopAssist widget supports your European Accessibility Act obligations, with service-information text in English, Danish and German. - [Consumer law](https://shopassist.coec.dk/docs/compliance/consumer-law.md): How ShopAssist handles withdrawal, returns, complaints, price indications and marketing consent under EU consumer law. - [Sensitive verticals](https://shopassist.coec.dk/docs/compliance/sensitive-verticals.md): What to configure if you sell pharmacy, health, supplement or adult products with ShopAssist. - [Data export and switching](https://shopassist.coec.dk/docs/compliance/data-export-and-switching.md): Export all your ShopAssist data at any time and switch to another provider without fees, as the EU Data Act requires. ## Troubleshooting - [Widget not showing](https://shopassist.coec.dk/docs/troubleshooting/widget-not-showing.md): Find out why the chat launcher does not appear on your storefront and fix it. - [Connection errors](https://shopassist.coec.dk/docs/troubleshooting/connection-errors.md): What each error shown while connecting Magento, WooCommerce or PrestaShop means, and how to fix it. - [Sync issues](https://shopassist.coec.dk/docs/troubleshooting/sync-issues.md): What each catalog sync error and store health warning means, and how to fix it. - [AI provider errors](https://shopassist.coec.dk/docs/troubleshooting/ai-provider-errors.md): What the BYOK key test results and AI provider errors mean, and how to fix them. - [Signed-in customers](https://shopassist.coec.dk/docs/troubleshooting/signed-in-customers.md): Fix problems with recognizing signed-in customers in the chat, per platform. - [CSP errors](https://shopassist.coec.dk/docs/troubleshooting/csp-errors.md): Fix Content Security Policy errors that block the ShopAssist widget on your storefront. - [Helpdesk delivery](https://shopassist.coec.dk/docs/troubleshooting/helpdesk-delivery.md): Fix handoffs that do not arrive in your email, Zendesk, Gorgias, Freshdesk or Slack. - [Billing issues](https://shopassist.coec.dk/docs/troubleshooting/billing-issues.md): Fix failed payments, paused AI, VAT number problems and other billing issues. ## Docs - [FAQ](https://shopassist.coec.dk/docs/faq.md): Short answers to the questions merchants ask most about ShopAssist.