> For the complete documentation index, see [llms.txt](https://flexcover.gitbook.io/flexcover-protection-plans/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flexcover.gitbook.io/flexcover-protection-plans/how-it-works.md).

# How FlexCover works

Understanding the machinery makes everything else in these docs click. Here's the full journey of a protected order.

## The hidden product behind every plan

When you create a plan, FlexCover creates **one hidden, unlisted product** in your catalog to represent it. If the plan has multiple price points (percentage plans, or tiered pricing), the product gets one variant per price point.

Why? So that protection behaves like a first-class citizen of Shopify:

* The fee travels through cart → checkout → order as a **regular product line** — no custom checkout hacks, no manual bookkeeping.
* The **charged price always equals the displayed price**. When a customer's cart subtotal changes, FlexCover swaps in the variant whose price matches what the widget displayed. What the customer saw is what they pay.
* Revenue lands in your normal Shopify payouts, and the line appears in analytics, exports, and accounting exactly like any other product.

Two rules of thumb for these products:

* **Don't delete them** while the plan is active — the plan needs its product to attach fees to orders.
* **Don't edit their prices** in the Shopify admin. FlexCover automatically reverts price changes made outside the app, so the plan always charges what you configured in FlexCover.

## Pricing in real time

Every time a customer opens the cart (or changes it), FlexCover prices each active plan against the current merchandise subtotal:

* **Fixed plans** show their fixed amount — or the tier price matching the cart value.
* **Percentage plans** show rate × subtotal, clamped to your min/max caps.

The calculation happens on the FlexCover backend through a Shopify App Proxy (`/apps/flexcover/...` on your own store domain), so no customer data leaves your storefront's domain.

## What the customer sees

| Surface     | What appears                                  | Requirements                          |
| ----------- | --------------------------------------------- | ------------------------------------- |
| Cart drawer | Plan rows with icon, name, description, price | Any Shopify plan                      |
| Cart page   | Same rows, placed above checkout              | Any Shopify plan                      |
| Checkout    | Plan cards with switches, updating the total  | Shopify Plus (checkout extensibility) |

Customers tick the plans they want (or untick pre-selected ones) and check out normally. Plans marked **auto-added** are applied to every order and can't be unticked.

## What you see

In your Shopify admin, a protected order looks like any other order — with one or more extra line items for the protection plans, each tagged with properties like `_pp_plan_id` and `_pp_plan_name` so you can filter and report on them. Depending on the plan's [fulfillment setting](/flexcover-protection-plans/orders-and-fulfillment/fulfillment-automation.md), the protection line can mark itself fulfilled automatically.

## Who funds the protection?

You do — by design. This is the same self-funded model made popular by shipping-protection apps:

* The customer's protection fee is **100% yours**. FlexCover charges no commission.
* When a package is lost or an item breaks, **you handle the claim** (refund or reship) the way you choose.
* In practice, protection attach rates and claim rates make this strongly net-positive for most stores. You can read more in [Revenue and claims](/flexcover-protection-plans/revenue-and-claims/revenue-and-claims.md).
