---
title: Integration model
description: The ownership boundary between a custom host site and Lockerverse commerce.
sidebar:
  order: 1
---

## Responsibility map

| Host site owns | Lockerverse owns |
| --- | --- |
| Product cards and page layout | Live catalog and availability |
| Cart controls and navigation | Pricing and discount rules |
| Copy and custom brand presentation | Authoritative totals |
| When checkout appears | Stripe Elements and confirmation |
| Success-page presentation | Payment and fulfillment state |

Store a selection, not copied product data. Lockerverse resolves products and prices again before payment.

## Supported selection shapes

```ts
type LockerversePaymentSelectionItem =
  | { productSlug: string; quantity: number }
  | { productSlug: string; amountCents: number }
  | { productSlug: string };
```

| Product | Selection |
| --- | --- |
| Fixed one-time | `{ productSlug, quantity }` |
| Custom one-time | `{ productSlug, amountCents }` |
| Fixed recurring | `{ productSlug }` |

## Rules

- Combine fixed and custom one-time products in one selection.
- Do not combine recurring and one-time products.
- Do not combine multiple recurring products.
- Read quantity limits, custom-amount minimums, and display data from the catalog.
- Treat the checkout quote as authoritative.

`useLockerverseWidget` returns the complete catalog. The host can filter or group it and pass the final selection to payment.
