For the complete documentation index, see llms.txt. This page is also available as Markdown.

Custom MOB UI

This guide walks through building a fully custom Multi-Option Bundle UI using the Elite Bundle Builder SDK.

MOB bundles present a fixed set of options (e.g. "Choose a shirt", "Choose a hat") where the customer selects one item per option. The SDK handles all cart logic — you just render the picker UI and call selectItem when the customer makes a choice.


Prerequisites

  • SDK access enabled in App → Settings → Developer SDK

  • A MOB bundle product set up with at least one option

  • Access to your Shopify theme files


1. Add your HTML scaffold

<div id="my-mob-root" style="display: none;">
  <div id="my-mob-options"></div>

  <div id="my-mob-summary">
    <p id="my-mob-price"></p>
    <button id="my-mob-add-btn" disabled>Add to cart</button>
    <p id="my-mob-error" style="display: none; color: red;"></p>
  </div>
</div>
<div id="my-mob-loading">Loading bundle…</div>

2. Wait for the SDK to be ready


3. Render options (products mode)

Most MOB options use "products" mode — a flat list of product/variant combos the customer picks from.


4. Handle single_product_options mode

When an option uses "single_product_options" mode, render a set of dropdowns — one per Shopify option (Size, Color, etc.).

To determine which mode to use for each option, check option.optionMode:


5. Keep the UI in sync with selections

Listen for elite:mob:selection-change to update selected state and prices after every selection.


6. Handle add-to-cart states


7. Show discount info (optional)


8. Handle load errors


Hiding the default UI

The default MOB template renders inside a [data-mob-bundle] element. Hide it with CSS if you're replacing it entirely:

Last updated

Was this helpful?