Skip to main content
If the plugin does not load, start with the origin and script checks below. They are the most common causes.

The plugin area is blank or refuses to load

Branduo only lets approved origins show the plugin. The origin in the browser address bar must match one Support approved, exactly, including http or https. For example, these are three different origins:
  • https://admin.example.com
  • http://admin.example.com
  • https://example.com
If another site frames your app (for example, an admin that embeds your page), Support must approve both origins. Contact Support to add one.

The script doesn’t load

Use this exact loader URL:
The script’s integrity value must match the one published at https://connect.branduo.io/loader/v2.0.0/brand-connect.js.sri, and the script tag needs crossorigin="anonymous". If your app uses a Content Security Policy, allow https://connect.branduo.io in:
  • script-src
  • frame-src
  • child-src

The container shows “Brand partnerships couldn’t load”

The plugin shows this inside your container when an option is missing or malformed:
  • platformId must be your platform ID, a UUID.
  • domain must be the merchant’s store domain, such as brand.com or brand.myshopify.com.
Check that your page fills in domain before it calls BrandConnect.init.

BrandConnect.init throws an error

The loader throws a TypeError when:
  • container doesn’t match an element on the page.
  • mode is anything other than "page" or "drawer".
  • onEvent or onClose is not a function.

The merchant sees “Brand partnerships aren’t available here yet”

Your platform ID isn’t set up to show cross-promotion offers yet. Contact Support.

The merchant doesn’t come back to your app after approving their plan

Check that:
  • Support has the page where the plugin lives, on an approved origin.
  • You synced the merchant’s store domain with Sync platform brands.
  • That page calls BrandConnect.init when it loads. The loader handles the ?branduo_connect=return parameter.
Without these, merchants approve their plan in a new tab, and the plugin checks again when they return to your tab.

The drawer closes unexpectedly

The drawer calls onClose when the merchant closes it with the Close button, the backdrop, or the Escape key, and when your code calls close(). Calling destroy() removes the plugin without calling onClose.