Skip to content
ShopAssist Docs
InstallOther sites (Generic)

Install on any site

Add the ShopAssist script tag, allow your domains, and choose a catalog source: product feeds or the Catalog Push API.

Applies to: GenericView as Markdown

The Generic connector works with any storefront: a custom shop, a headless frontend or a platform without a ShopAssist plugin. You combine the parts you need.

PartWhat it gives the assistantGuide
Script tagThe widget on your pagesbelow
Product feed or Catalog Push APIProducts, prices, stock, locations, pagesfeeds, Push API
Generic RPC (optional)Order status, guest lookup, cancellations and returnsorder RPC
Identity JWT (optional)Signed-in customersidentity JWT
Cart settings (optional)Add to cart and checkout linkscheckout and cart

Requirements

  • Any storefront: *
  • An HTTPS storefront where you can add a script tag to every page.
  • For feeds: a public HTTPS feed URL (optionally with Basic or header authentication). For the Push API: a server that can call an HTTPS API.

Install

Typical setup: About 15 minutes plus a product feed or API integration

  1. 1.Add the script tag

    Copy the script tag from Widget → Install in the dashboard and paste it before </body> on every page. Then add your storefront domains under Allowed domains.

  2. 2.Choose a catalog source

    Add a product feed (Google Shopping XML, CSV or JSON, pulled at least every 60 minutes) or push your catalog with the Catalog Push API using an API key with the catalog:write scope. The Push API works on every plan.

  3. 3.Optional: orders and signed-in customers

    Connect a Generic RPC endpoint for order status and actions, and mint an identity token on your server so signed-in customers can ask about their orders.

The pinned script tag with Subresource Integrity is the default for Generic stores:

<script src="https://cdn.shopassist.coec.dk/widget/<version>/loader.js" async
        integrity="sha384-<published hash>" crossorigin="anonymous"
        data-shopassist-key="pk_live_YOUR_PUBLISHABLE_KEY" data-platform="generic"></script>

The first pinned release is published with the widget's general availability; until then use the channel loader below. Your dashboard shows the current version and hash.

The channel loader always serves the current widget and is the alternative if you don't want to update the version yourself:

<script
  src="https://cdn.shopassist.coec.dk/widget/v1/loader.js"
  async
  data-shopassist-key="pk_live_YOUR_PUBLISHABLE_KEY"
  data-platform="generic"
></script>

Use your own key from Widget → Install & domains. Embed attributes are listed in embed attributes.

Allowed domains

The widget only works on the domains you list under Widget → Install & domains → Allowed domains (exact origins such as https://shop.example.com). Add every domain that serves your storefront, including www and country domains. Requests from other origins are refused (403 origin_not_allowed).

Connect

Choose at least one catalog source in the dashboard under Catalog → Data source:

  • Product feed: add the feed URL, its format (Google Shopping XML, CSV or JSON), language, currency and schedule (every 60 minutes or less often). See product feeds.
  • Catalog Push API: create an API key with the catalog:write scope, restricted to this store, and push products from your server. Available on every plan. See Catalog Push API.

The store becomes active after the first successful feed run or push batch and at least one allowed domain.

Verify

Open your storefront: the launcher appears once the dashboard shows "Widget seen on your store". Then run through verify your installation.

Send a test message

Signed-in customers

Your server mints a short-lived identity token for the signed-in customer, and your page passes it to the widget with ShopAssist.identify(). See identity JWT for Generic stores.

Stock per location

Send locations and per-location stock with the Push API (locations:batch, inventory:batch), a local inventory feed or a CSV import.

Updating

With the pinned loader, update the version and integrity hash when a new widget release is published (the dashboard tells you when your pinned version is behind). The channel loader updates itself.

Uninstall and data removal

Remove the script tag and delete the store in Settings → Store → Delete store. Data is deleted 30 days later. See uninstall and data removal.

Troubleshooting

Last updated on

On this page