Endpoint

Fetch up to 50 SKUs per request:

GET https://app.buildmyonlinestore.com/api/embed/offers/STOREFRONT_ID?products=SKU1,SKU2

The response includes sellable offers that BMOS buy buttons and static storefront hydrators can trust.

Inventory Fields

When inventory is unknown, generated static JSON-LD should default to https://schema.org/InStock and the visible UI should hydrate from public offers.

Optional Hydrator Script

Static sites can patch price, availability, and inventory elements with one script:

<script
  src="https://app.buildmyonlinestore.com/bmos-offers-hydrator.js"
  data-storefront-id="STOREFRONT_ID"
  defer></script>

Add product-aware targets to the page:

<strong data-bmos-offer-price data-product-id="SKU">$9.99</strong>
<span data-bmos-offer-availability data-product-id="SKU">In Stock</span>
<span data-bmos-offer-inventory data-product-id="SKU" hidden></span>

The script batches SKUs, calls the public offers endpoint, and updates matching elements without blocking the initial page render.

Static Store Rule

Static storefronts should keep title, image, description, and product pages static for speed and SEO, but live commerce state should either hydrate from public offers or be refreshed by a Distribution Webhook rebuild.