> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ordergroove.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ordergroove.com/_mcp/server.

# Rotating Subscriptions

Rotating Subscriptions allow your customers to subscribe to a curated, pre-planned series of products. Ordergroove offers two different options to tailor your subscription plans:

* **Time Window:** The customer will receive a product that is determined based on when the order is shipped. Read the [Time-Window documentation](/docs/advanced/time-window-rotating) for more information.
* **Ordinal:** The customer will receive a product that is determined by where that order falls within a predefined list of order delivery products. Read the [Ordinal documentation](/docs/advanced/ordinal-rotating) for more information.

***

## How Rotating Subscriptions Work

### Selection Mechanism

Each type of Rotating Subscription program offers a unique way to determine what delivery product a customer should get with their order, allowing you to choose what works best for your business.

By configuring *Selection Rules* you can build out a Rotating Subscription program for your customers. Please refer to the documentation for more details on how each type of program works, and how to set up Rotating Products and Selection Rules.

### Pricing

Three different pricing strategies are available for Rotating Subscriptions:

1. **Best Price (default):** The price of the Rotating Parent Product and the Delivery Product will be compared. The lower price will be used.
2. **Rotating Parent Product Price:** The price of the Rotating Parent Product will always be used.
3. **Delivery Product Price:** The price of the Delivery Product will always be used.

Pricing can be configured via the appropriate "management" endpoint. For example, see the [Time Window management endpoint documentation](https://developer.ordergroove.com/reference/manage-time-window-rotating-product).

### Bundles + Rotating Products

You can add rotating products to bundles just like any other regular products and they'll work fine right out of the box. Everything that applies to regular products applies to rotating ones for creating and editing bundles. See [Bundle Subscriptions](/docs/advanced/bundle-subscriptions).

### Prepaid + Rotating Products

You can sell your rotating products as prepaid just the way you would any other regular product. See [Managing Prepaid Renewal Behaviors](/docs/advanced/prepaid-renewal).

### Caveats

We do not currently support any special logic for determining the initial checkout item's rotating product. We are currently working on adding support for seamless initial checkout fulfillment, but for the time being recommend simply sending out a default initial checkout product for this rotating product SKU.

### How to Create a New Rotating Product

1. Choose or create a regular product to set up as a rotating product. The product's name, description, and image should reflect the fact that it is a rotating product. Use the external product ID of the product you have chosen or created.
2. Define the selection rules for your rotation.
   * Follow the validation rules described in the program type's documentation.
3. Call the appropriate management API with your configuration, and your Rotating Product setup is complete.
   * Time Window: [manage-time-window-rotating-product](https://developer.ordergroove.com/reference/manage-time-window-rotating-product)
   * Ordinal: [manage-ordinal-rotating-product](https://developer.ordergroove.com/reference/manage-ordinal-rotating-product)

### How to View Your Rotating Product Configuration

You can view your configuration by querying for the product in the [Product List](https://developer.ordergroove.com/reference/products-list) or [Products Retrieve](https://developer.ordergroove.com/reference/products-retrieve) APIs and checking for the `product_selection_rules` property. Here's an example for a Rotating Product that uses Time-Window for its selection criteria:

```json
"product_selection_rules": [
  {
    "public_id": "e1a61e620ed411ef8740767250df1ed7",
    "selection_rule_type": "TIME_WINDOW",
    "product_selection_list_elements": [
      {
        "public_id": "e1a626000ed411ef8740767250df1ed7",
        "product": "48398751432995",
        "starting_date": "2024-05-01T00:00:00Z"
      },
      {
        "public_id": "e1a62b140ed411ef8740767250df1ed7",
        "product": "48398752317731",
        "starting_date": "2024-06-01T00:00:00Z"
      },
      {
        "public_id": "e1a62fe20ed411ef8740767250df1ed7",
        "product": "48398760149283",
        "starting_date": "2024-07-01T00:00:00Z"
      }
    ],
    "configuration": {
      "reveal_moment": "ORDER_PLACEMENT",
      "pricing_policy": "BEST_PRICE"
    }
  }
]
```

### How to Update an Existing Rotating Product

1. Choose an existing Rotating Product. If you don't have one yet, you must create one before you can update it.
2. Decide which selection rules you want to add, delete, or update.
   * All the same validation rules apply — if you don't follow them your update won't pass validation.
   * Your changes will be reflected in all items that haven't had their Order Reminder sent or gone through the Send Now flow.
   * You can add a new selection rule.
   * You can delete an existing selection rule.
   * You can update an existing selection rule with a different product and/or starting date.
3. Call the appropriate management API with your configuration, and your Rotating Product update is complete.
   * Time Window: [manage-time-window-rotating-product](https://developer.ordergroove.com/reference/manage-time-window-rotating-product)
   * Ordinal: [manage-ordinal-rotating-product](https://developer.ordergroove.com/reference/manage-ordinal-rotating-product)