> ## Documentation Index
> Fetch the complete documentation index at: https://docs.knitbundles.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How discounts apply

> How Knit applies bundle pricing at Shopify checkout

Knit does not charge a separate checkout. Shoppers pay in **Shopify checkout**. A Shopify **Discount Function** shipped with the app reads a hidden line-item property and applies the bundle reward.

You do not configure this per add-to-cart. You do need the Knit automatic discount to stay **Active** in Shopify admin → **Discounts**.

## The line-item property

When a shopper adds a bundle, every line in that add carries:

```
__FB_ATC_UID
```

The same value is on every line in the group. The Discount Function uses it to:

1. Recognize which cart lines belong together
2. Match the bundle version and tier
3. Apply the percentage or fixed reward from that tier

If this property never reaches Shopify, items still sit in the cart at **full price**.

## Where it can get lost

| Surface                | What must happen                                                                                                                                                 |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Liquid theme           | The theme app extension adds the property. Do not strip line-item properties in cart apps.                                                                       |
| Headless embed         | Your `postMessage` handler must pass `attributes` through as Shopify line-item properties. See [Headless Bundles API](/headless-bundles-api#postmessage-bridge). |
| Tapcart                | The Knit block adds the property to Tapcart's native cart. No extra merchant step.                                                                               |
| Custom cart / Hydrogen | Your cart API must persist custom line-item properties all the way to checkout.                                                                                  |

<Warning>
  If a cart layer, middleware, or checkout app drops unknown line-item properties, the bundle discount will not apply. Keep `__FB_ATC_UID`.
</Warning>

## Verify

1. Add a bundle to cart from the widget.
2. Complete a test order (or inspect the cart payload).
3. In Shopify admin → **Orders**, open the order.
4. Each bundle line should show `__FB_ATC_UID` as a line-item property, and the discount should be on the order.

If lines are in the cart but the discount is missing, see [Troubleshooting](/troubleshooting).
