Skip to main content
If a buy button does nothing, the checkout modal never appears, or the embed shows an error instead of loading, this page walks through every common cause in the order worth checking.

Check platform status first

If Komerza checkout is degraded, nothing below will help - status.komerza.com shows live availability for checkout and the API.

Are you a shopper, or the site owner?

You’re on a store’s website and checkout won’t open. Try these, in order:
  1. Reload the page. A partly-loaded page is the most common cause.
  2. Disable ad blockers and privacy extensions for this site, then reload. Blockers frequently block checkout scripts.
  3. Try a private/incognito window, or a different browser.
  4. Turn off any VPN or proxy and retry.
  5. Check status.komerza.com in case checkout is down platform-wide.
If none of that works, contact the store you’re buying from - their support page or the contact details on their site. Komerza provides the checkout technology, but the store is run by an independent seller who handles their own orders, payments and refunds.

Site owner checklist

1

Confirm the script actually loaded

Open your browser’s developer tools → Network tab, reload, and look for embed.iife.js. It should return 200.
Then check the global exists - in the Console, run:
If it returns "undefined", the script didn’t load, was blocked, or your code ran before it finished.
2

Call Komerza.init() after the DOM is ready

Data attributes are only bound when init() runs. If you use data-kmrza-* buttons, this is required:
With Komerza.open() this happens automatically, so a quick way to isolate a binding problem is to call open() directly from a click handler and see whether the modal appears.
3

Re-bind buttons rendered after init

Buttons added later - by a framework, a slider, infinite scroll, a single-page-app route change - were not present when init() ran, so they have no handler. Call Komerza.init() again after rendering, or drive those buttons with Komerza.open() instead.In React or Next.js, run init() inside useEffect so it fires after the component mounts, not during server rendering.
4

Verify the product and variant IDs

Both productId and variantId are required, both are UUIDs, and the variant must belong to that product in the store the IDs came from. Copying an ID from a different store is a common cause of a modal that opens and immediately errors.
5

Check the product is actually purchasable

The embed cannot check out a product your storefront wouldn’t sell either. A product that is Private, On Hold, or out of stock will fail here too, as will a store with no payment method that fits the cart - see Products & Variants and Supported Payment Methods.
6

Rule out CSP and ad blockers

Both show up in the Console as blocked-resource errors. See the table below for which is which.

Console errors and what they mean

A working CSP for the embed looks like this:

The modal opens but looks wrong

The modal uses a z-index of 9999. Something on your page is stacking above it - usually a sticky header, a cookie banner or a chat widget with a higher z-index. Lower theirs rather than raising the modal’s.
An ancestor with overflow: hidden, a CSS transform, or a filter creates a new containing block that traps fixed-position content. Move the buy button out of that container, or remove the property.
theme accepts only light, dark or auto. Any other value - including a typo or an empty string - falls back to the default.
init() ran more than once and bound the same button twice. In frameworks, make sure your effect isn’t re-running on every render.

Still stuck?

Contact support with the following - it’s the difference between a same-day fix and a week of back-and-forth:
  • The page URL where the embed fails
  • Your store ID, and the product and variant IDs you’re passing
  • Browser and OS, and whether it fails in a private window
  • The exact console errors, copied as text
  • Whether the demo page works in the same browser
If you’re a customer of a store rather than its owner, contact that store’s own support - Komerza runs the checkout technology but doesn’t handle individual sellers’ orders or refunds.

Embed SDK

Full setup, API reference and framework examples.

System Status

Live availability for checkout and the API.

Supported Payment Methods

A cart with no available method can’t check out.

Live Demo

A known-good embed to test your browser against.