---
title: SellingPlan - Storefront API
description: >-
  Represents deferred or recurring purchase options for

  [products](/docs/api/storefront/2026-10/objects/Product) and [product
  variants](/docs/api/storefront/2026-10/objects/ProductVariant),

  such as subscriptions, pre-orders, or try-before-you-buy. Each selling plan
  belongs to a
  [`SellingPlanGroup`](/docs/api/storefront/2026-10/objects/SellingPlanGroup)

  and defines billing, pricing, inventory, and delivery policies.
api_version: 2026-10
source_url:
  html: 'https://shopify.dev/docs/api/storefront/latest/objects/SellingPlan'
  md: 'https://shopify.dev/docs/api/storefront/latest/objects/SellingPlan.md'
api_name: storefront
api_type: graphql
type: object
---

# Selling​Plan

object

Requires `unauthenticated_read_selling_plans` access scope.

Represents deferred or recurring purchase options for [products](https://shopify.dev/docs/api/storefront/2026-10/objects/Product) and [product variants](https://shopify.dev/docs/api/storefront/2026-10/objects/ProductVariant), such as subscriptions, pre-orders, or try-before-you-buy. Each selling plan belongs to a [`SellingPlanGroup`](https://shopify.dev/docs/api/storefront/2026-10/objects/SellingPlanGroup) and defines billing, pricing, inventory, and delivery policies.

## Fields

* billing​Policy

  [Selling​Plan​Billing​Policy](https://shopify.dev/docs/api/storefront/latest/unions/SellingPlanBillingPolicy)

  The billing policy for the selling plan.

* checkout​Charge

  [Selling​Plan​Checkout​Charge!](https://shopify.dev/docs/api/storefront/latest/objects/SellingPlanCheckoutCharge)

  non-null

  The initial payment due for the purchase.

* delivery​Policy

  [Selling​Plan​Delivery​Policy](https://shopify.dev/docs/api/storefront/latest/unions/SellingPlanDeliveryPolicy)

  The delivery policy for the selling plan.

* description

  [String](https://shopify.dev/docs/api/storefront/latest/scalars/String)

  The description of the selling plan.

* id

  [ID!](https://shopify.dev/docs/api/storefront/latest/scalars/ID)

  non-null

  A globally-unique ID.

* metafield

  [Metafield](https://shopify.dev/docs/api/storefront/latest/objects/Metafield)

  Token access required

  A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information.

  * key

    [String!](https://shopify.dev/docs/api/storefront/latest/scalars/String)

    required

    ### Arguments

    The identifier for the metafield.

  * namespace

    [String](https://shopify.dev/docs/api/storefront/latest/scalars/String)

    The container the metafield belongs to. If omitted, the app-reserved namespace will be used.

  ***

* metafields

  [\[Metafield\]!](https://shopify.dev/docs/api/storefront/latest/objects/Metafield)

  non-null Token access required

  A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource.

  * identifiers

    [\[Has​Metafields​Identifier!\]!](https://shopify.dev/docs/api/storefront/latest/input-objects/HasMetafieldsIdentifier)

    required

    ### Arguments

    The list of metafields to retrieve by namespace and key.

    The input must not contain more than `250` values.

  ***

* name

  [String!](https://shopify.dev/docs/api/storefront/latest/scalars/String)

  non-null

  The name of the selling plan. For example, '6 weeks of prepaid granola, delivered weekly'.

* options

  [\[Selling​Plan​Option!\]!](https://shopify.dev/docs/api/storefront/latest/objects/SellingPlanOption)

  non-null

  The selling plan options available in the drop-down list in the storefront. For example, 'Delivery every week' or 'Delivery every 2 weeks' specifies the delivery frequency options for the product. Individual selling plans contribute their options to the associated selling plan group. For example, a selling plan group might have an option called `option1: Delivery every`. One selling plan in that group could contribute `option1: 2 weeks` with the pricing for that option, and another selling plan could contribute `option1: 4 weeks`, with different pricing.

* price​Adjustments

  [\[Selling​Plan​Price​Adjustment!\]!](https://shopify.dev/docs/api/storefront/latest/objects/SellingPlanPriceAdjustment)

  non-null

  The price adjustments that a selling plan makes when a variant is purchased with a selling plan.

* recurring​Deliveries

  [Boolean!](https://shopify.dev/docs/api/storefront/latest/scalars/Boolean)

  non-null

  Whether purchasing the selling plan will result in multiple deliveries.

***

## Map

### Fields and connections with this object

* [SellingPlanAllocation.sellingPlan](https://shopify.dev/docs/api/storefront/latest/objects/SellingPlanAllocation#field-SellingPlanAllocation.fields.sellingPlan)
* [SellingPlanConnection.nodes](https://shopify.dev/docs/api/storefront/latest/connections/SellingPlanConnection#returns-nodes)
* [SellingPlanEdge.node](https://shopify.dev/docs/api/storefront/latest/objects/SellingPlanEdge#field-SellingPlanEdge.fields.node)
* [SellingPlanGroup.sellingPlans](https://shopify.dev/docs/api/storefront/latest/objects/SellingPlanGroup#field-SellingPlanGroup.fields.sellingPlans)

### Possible type in

* [Metafield​Parent​Resource](https://shopify.dev/docs/api/storefront/latest/unions/MetafieldParentResource)

***

## Interfaces

* [Has​Metafields](https://shopify.dev/docs/api/storefront/latest/interfaces/HasMetafields)

  interface

***

## SellingPlan Implements

### Implements

* [Has​Metafields](https://shopify.dev/docs/api/storefront/latest/interfaces/HasMetafields)
