---
title: "Shopify selling plans in a cart, verified November 2026"
description: "What a Storefront cart returns for a line bought on a Shopify selling plan: the allocation, a plan with no pricing policy, an app discount on the subscription line and a one-time code refused on it. Verified 3 November 2026 on Shopify's 2026-10 API."
url: https://offersuite.io/shopify/selling-plans
updated: 2026-11-03
---

# Shopify selling plans in a real cart

A selling plan is how a Shopify product is sold on a schedule: a subscription. A cart line takes one by id. These carts show what comes back for a subscription line, and which discounts reached it.

Verified 3 November 2026 on Shopify’s 2026-10 API, in carts built on a real store. Each statement marked with a tick is checked against the cart Shopify returned.

## The line carries its selling plan allocation

A cart line bought on a plan is the same variant with a selling plan id beside it. The cart answers with the line's selling plan allocation.

This store's plan delivers every 30 days and has no pricing policy. A plan like that changes when the buyer is charged, not what they are charged.

A subscription line, and the fields that describe it

```
mutation {
  cartCreate(input: {
    lines: [{
      merchandiseId: "gid://shopify/ProductVariant/…"
      quantity: 1
      sellingPlanId: "gid://shopify/SellingPlan/…"
    }]
  }) {
    cart {
      lines(first: 10) {
        nodes {
          sellingPlanAllocation {
            sellingPlan { name }
            priceAdjustments { price { amount } }
          }
          cost { amountPerQuantity { amount } totalAmount { amount } }
        }
      }
    }
  }
}
```

**A line on a selling plan** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Single Bag at $40.00, on the selling plan “Every 30 days”
- No cart attribute, so the app's functions return no operations

#### What Shopify returned

The cart Shopify returned: A line on a selling plan

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Single Bag Selling plan “Every 30 days”, no price adjustments | 1 | $40.00 | none | $40.00 |
| Discounts on the cart | none |  |  |  |
| Cart total | $40.00 |  |  |  |

#### What that shows

- The line came back with its selling plan allocation, naming the plan.
- The plan has no pricing policy: the allocation listed no price adjustments and the line cost the variant's $40.00.

## A plan with a pricing policy changes the line's price

A second product on this store is sold on a plan whose pricing policy takes 10% off. The allocation then lists a price adjustment, and the line's price is the plan's.

The saving is part of the price. It is not in any list of discounts.

**A line on a selling plan that has a pricing policy** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Travel Tin at $50.00, on the selling plan “Every 30 days, 10% off”
- On the store, Shopify's automatic discount “VERIFY tin 20% off”: 20% off the tin, one-time purchases only, combines with product, order and shipping discounts

#### What Shopify returned

The cart Shopify returned: A line on a selling plan that has a pricing policy

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Travel Tin Selling plan “Every 30 days, 10% off”, 1 price adjustment | 1 | $45.00 | none | $45.00 |
| Discounts on the cart | none |  |  |  |
| Cart total | $45.00 |  |  |  |

#### What that shows

- The selling plan allocation listed one price adjustment, and the line's price was $45.00: the variant's $50.00 less the plan's 10%.
- The $5.00 was not reported as a discount: no discount allocation appeared anywhere in the cart.
- The store's 20% automatic discount on this product, set to one-time purchases, did not reach the subscription line, and the cart returned no warning about it.

## An automatic app discount prices the subscription line

A subscription price does not have to live in the plan. Here the plan stays at the variant's price and an automatic app discount, set to apply to subscriptions, takes the saving off the line.

The saving then shows as a discount allocation, separate from the plan, so the plan's own figures and the line's price before discounts stay at the variant's price.

**An automatic app discount on a selling plan line** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Single Bag at $40.00, on the selling plan “Every 30 days”
- The cart attribute the app discount's function reads

#### What Shopify returned

The cart Shopify returned: An automatic app discount on a selling plan line

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Single Bag Selling plan “Every 30 days”, no price adjustments | 1 | $40.00 | −$8.00 automatic, “Offer Suite” | $32.00 |
| Discounts on the cart | none |  |  |  |
| Cart total | $32.00 |  |  |  |

#### What that shows

- The subscription line cost $32.00: the function's $8.00 came off as an automatic discount allocation on the line.
- The selling plan allocation still listed no price adjustments: the discount is not part of the plan's price.

## A code for one-time purchases does not reach a subscription line

A discount code states which purchases it applies to. This one is set to one-time purchases only, and the cart holds nothing but a subscription line.

The cart is created all the same. It says the code was not applied, and why.

**A one-time-purchase code on a selling plan line** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Single Bag at $40.00, on the selling plan “Every 30 days”
- No cart attribute, so the app's functions return no operations
- Code VERIFY-BAG5: $5.00 off the bag, one-time purchases only, combines with product, order and shipping discounts

#### What Shopify returned

The cart Shopify returned: A one-time-purchase code on a selling plan line

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Single Bag Selling plan “Every 30 days”, no price adjustments | 1 | $40.00 | none | $40.00 |
| Discounts on the cart | none |  |  |  |
| Cart total | $40.00 |  |  |  |

- `VERIFY-BAG5` applicable: false
- warning `DISCOUNT_NO_ENTITLED_LINE_ITEMS` “The VERIFY-BAG5 discount code is not valid for the items in your cart”

#### What that shows

- The cart was created and listed the code as not applicable.
- The cart's warning was DISCOUNT_NO_ENTITLED_LINE_ITEMS, and the line cost its full $40.00.

## How this was verified

Every cart on this page was built through the Storefront API on a Shopify Plus development store we keep for this, on API version 2026-10, and read back as Shopify priced it. The store sells two products in these carts: Single Bag, at $40.00, also sold on a selling plan named “Every 30 days” that has no pricing policy; Travel Tin, at $50.00, also sold on a selling plan named “Every 30 days, 10% off” whose pricing policy takes 10% off. It quotes two delivery rates to a US address.

It has one automatic app discount, titled “Offer Suite”, with a product class and a shipping class, set to combine with product, order and shipping discounts. Its function reads a cart attribute: with it, the function takes 25% off one unit of Single Bag bought once, or $8.00 off the unit on its selling plan, and makes the cheapest delivery rate free. Without it, the function returns no operations.

The other discounts in these carts, as they are set on the store

| Discount | Class | Gives | Combination setting |
| --- | --- | --- | --- |
| Automatic, “VERIFY tin 20% off” | Product | 20% off the tin, one-time purchases only | combines with product, order and shipping discounts |
| Code VERIFY-BAG5 | Product | $5.00 off the bag, one-time purchases only | combines with product, order and shipping discounts |

A suite builds these carts again and reads the discount settings from the store before it does. A statement that no longer matches the cart takes this page down until it is corrected, and no cart stands for more than 90 days without being built again. This is what one store returned on one API version: your store’s plan, markets and other apps can change the result, so build the cart.

Seen something different on your store? Write to [privacy@offersuite.io](mailto:privacy@offersuite.io) with the cart and we’ll run it.

## Related

- [Shopify, verified **Shopify offer mechanics, verified on a real store** How Shopify discounts, discount functions, cart transforms, selling plans, the Storefront cart and their limits behave, shown in real carts built on a Shopify store and built again at least every 90 days.](https://offersuite.io/shopify)
- [Calculator **Subscription first order vs renewal calculator** Margin on a subscription's first order and on each renewal, and the expected profit per subscriber over time at your retention, against a one-time buyer.](https://offersuite.io/calculators/subscription-first-order-vs-renewal)
- [Shopify, verified **Shopify discount functions, verified November 2026** What a Shopify discount function's output looks like in a real Storefront cart: where the allocation lands, a line split by a partial discount, and one discount with a product and a shipping class. Verified 3 November 2026 on Shopify's 2026-10 API.](https://offersuite.io/shopify/discount-functions)
- [Shopify, verified **Shopify selling plan pricing with discounts, verified November 2026** Real carts with a line priced by a Shopify selling plan's pricing policy and a product, order or shipping discount on top: each was taken from the plan's price, all three applied together, and one-time discounts did not reach the line. Verified 3 November 2026 on Shopify's 2026-10 API.](https://offersuite.io/shopify/discount-combinations/selling-plan-price-and-discounts)
- [Shopify, verified **Shopify discounts not combining, verified November 2026** A checklist for Shopify discounts that will not combine, each step backed by a real cart: what the cart's warnings say, the combination settings on both sides, two product discounts on one line, and purchase type. Verified 3 November 2026 on Shopify's 2026-10 API.](https://offersuite.io/shopify/troubleshooting/discounts-not-combining)
- [Glossary **Subscribe and save: definition, formula and example** A standing discount for buying on subscription, often with a deeper first-order discount. Its cost has to be priced over the renewals, not the first order.](https://offersuite.io/glossary/subscribe-and-save)
