Embedding
Resell Osteocom courses with one iframe tag. Osteocom hosts the storefront card and runs the checkout — no backend, SDK or payment work on your side.
The snippet
<iframe
src="https://osteocom.me/en/embed/content-licensing/PRODUCT_ID?clientId=CLIENT_ID&partnerUserId=USER_ID"
width="100%"
height="420"
style="border: 0;"
loading="lazy"
></iframe>Replace PRODUCT_ID, CLIENT_ID and USER_ID with the values from your setup. The recommended height is around 420px; the card is responsive and behaves well also inside narrower containers. To force a theme, append &theme=light, &theme=dark or &theme=auto to the URL (default auto).
Parameters
Path
en (recommended) as the default unless explicitly agreed otherwise with the Osteocom content team. The zone segment is under review and will be simplified in a future iteration.Query
light, dark or auto. Default auto (follows the customer's system preference).EUR (default), USD, GBP, CHF or CAD. The price is converted server-side; if omitted, the zone default is used.Display options
Control how the embed is rendered. Try them live in the Playground.
card (default) renders the full course card; button renders a compact CTA button.card and button: cta-with-price (default), cta (plain), or price (price only). The card already shows the price, so cta or price avoid repeating it.variant=button): xs, sm, default (default), or lg.variant=button), clamped to 60–800. If unset, the button is full width.Example with dark theme
<iframe
src="https://osteocom.me/en/embed/content-licensing/64f1a2b3c4d5e6f7a8b9c0d1?clientId=cl_abc123&partnerUserId=user-9988&theme=dark"
width="100%"
height="420"
style="border: 0; border-radius: 12px;"
loading="lazy"
></iframe>The visual surface around the iframe (borders, shadows, corner radius, container padding) is fully under your control via your platform's CSS — like any other element on your page.
Recommended <iframe> attributes
loading="lazy"— defer loading until the iframe is near the viewport, useful when multiple cards live on the same page.style="border: 0;"— the card has its own border-radius and shadow rendered by Osteocom; a default browser border looks odd around it.title="Osteocom course"— recommended for accessibility (screen readers).
Watch out for
Stable partnerUserId
If you change how you generate user ids for your customers (for example switching from numeric to UUID), Osteocom can no longer link a customer to their previous purchases. Define the format at onboarding and keep it stable.
Don't embed from non-whitelisted domains
Browsers will block the iframe with a Content-Security-Policy violation if the host page is not in the whitelist. If you add a new domain or subdomain, let us know before going live there.
CDN and caching
If your platform sits behind a CDN with aggressive caching, make sure the URL of the iframe (in particular partnerUserId) is not included in shared cache keys. Otherwise a customer might see another customer's already-purchased state.