Install · Shopify

Bug reports and feedback from your Shopify site, in one script tag.

Add a Shopify feedback widget and bug report button by editing theme.liquid. One script tag, no app to install and nothing taking a cut of your sales.
Start freeNo credit card required.

Where it goes

In layout/theme.liquid, immediately before the closing body tag — the layout every storefront page renders through.

Setup

Adding the widget to Shopify

  1. 01

    Copy your widget key

    From the Widget tab of your project in UserWants. The key starts with uw_pk_ and is public by design: it will be visible in your storefront source, and the domain allowlist is the control that matters, not hiding the value.

  2. 02

    Duplicate your theme first

    In Online Store → Themes, use Actions → Duplicate before editing anything. Editing a live theme on a store that is taking orders is a bad habit, and the duplicate costs nothing. Edit the copy, preview it, then publish.

  3. 03

    Edit layout/theme.liquid

    Open Edit code, find layout/theme.liquid and paste the tag just above the closing body tag. Every storefront page renders through this layout, so one paste covers products, collections, cart and your policy pages.

    liquid
    {% comment %} layout/theme.liquid {% endcomment %}
      <script
        src="https://userwants.app/widget.js"
        data-userwants-key="uw_pk_..."
        defer
      ></script>
    </body>
  4. 04

    Identify logged-in customers and allow your domain

    Shopify already knows who is signed in. Passing the customer id means a report about a broken discount code arrives attached to a real order history. Then add your myshopify.com host and your custom domain under Allowed domains — they are different hosts and the list fails closed.

    liquid
    {% if customer %}
      <script>
        window.UserWants?.identify({
          identifier: {{ customer.id | json }},
          name: {{ customer.name | json }},
          email: {{ customer.email | json }}
        });
      </script>
    {% endif %}

Worth knowing

What bites on Shopify

The things that are specific to an ecommerce platform, rather than true of every install.
  • Checkout is not your theme

    Shopify renders checkout from its own layout, and theme.liquid is not involved. On Plus you can add the tag through checkout.liquid or a checkout UI extension; on other plans the widget covers the storefront but not the checkout steps.

  • A theme update replaces the file

    Updating your theme through the admin overwrites theme.liquid and takes the tag with it. Re-add it after every theme update, or keep the edit in a snippet you include, which is easier to spot in a diff.

  • App embeds are not needed

    There is no Shopify app to install, which means no app permissions over your customer data and nothing appearing in your billing. It is your own theme code calling a script.

FAQ

Questions

Is there a Shopify app for this widget?
No. Installation is one script tag in theme.liquid, so nothing requests access to your orders or customer records and nothing is added to your Shopify bill. The trade-off is that you re-add the tag after a theme update.
Can shoppers report a bug without creating an account?
Yes, and that is the point on a storefront. A visitor who cannot complete checkout is exactly the person least willing to sign up for anything, so the widget asks for a description and collects the rest automatically.

The full reference — every field the widget collects, the domain allowlist rules and the JavaScript API — is in the widget docs.

Try it on your Shopify site.

Paste the tag, add your domain, and the next report arrives with the screenshot and the JavaScript error already attached.