# Offers overview

An offer is the buying surface where a customer decides. It can be hosted by Plandalf or embedded inside your site with the SDK.

## What an offer contains

-   pages and checkout blocks
-   products and prices
-   one-time, subscription, tiered, and volume pricing models
-   order bumps, add-ons, variants, and upsells
-   coupons, discounts, and save offers
-   test, preview, and live sessions
-   redirect behavior after completion
-   purchase context for invoices, automations, webhooks, and integrations

## Ways to publish

- [Hosted checkout](https://plandalf.com/docs/product-guides/checkouts/hosted-checkout) — Use a Plandalf-hosted URL for the fastest route to launch.

- [Buy button](https://plandalf.com/docs/product-guides/checkouts/buy-buttons) — Drop a button on any page with data-plandalf-present.

- [Inline checkout](https://plandalf.com/docs/product-guides/checkouts/add-to-site) — Mount an offer into a specific container with data-plandalf-mount or plandalf.mount().

- [Multi-page flows](https://plandalf.com/docs/product-guides/checkouts/multi-page-flows) — Split a checkout into steps for longer forms, upgrades, and plan selection.

## Purchase context

When checkout completes, SDK and backend workflows can inspect the session:

```js
const result = await plandalf.present("pro-plan");

if (result.status === "complete") {
  console.log(result.session?.uuid);
  // Refresh UI from your own backend's verified purchase/access record.
}
```

Session fields are optional. Use the result to redirect or refresh UI; verify payment server-side before granting access, sending fulfilment instructions, or issuing anything of value. See [replace an existing paywall](https://plandalf.com/docs/guides/gate-a-feature).

Source: https://plandalf.com/docs/product-guides/checkouts/overview
