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

# Retire a product

> Move every subscriber off it first: one bulk run, then the delete. Order matters.

OPENSUBS PLATFORM

one sitting

Discontinuing a product that live subscriptions still contain is safe in one order: move the subscribers, verify zero, then delete.

> [!WARNING]
>
> **Delete nothing until the count reads zero.** The admin won't stop you; the delete confirm only warns about *new* subscribers.

| If you delete | What breaks, quietly |
| - | - |
| The product or its variants | Renewals can fail at the charge and get treated like card problems: recovery campaigns open and dunning emails go out ([When a payment fails](https://docs.opensubs.com/platform-v2/run/when-a-payment-fails.md)). |
| Just its selling plan group | Billing continues, but the line reads "Currently unavailable", reminder emails drop it from the order total, and frequency and variant editing disappears. |

**1. Count who's still on it**

* Open **Bulk operations** > **New bulk operation** and keep the preset condition: **Subscription status** is **Active**.
* **Add condition**, set the field to **Contains products**, and pick the retiring product. The estimate is your number; **Download CSV** lists the names.
* The **Product** filter on **Subscriptions** reads higher: it also counts one-time lines and past statuses.
* Do this while the selling plan group still exists: the filter and pickers only list attached products.
* One-time add-on lines don't count in the estimate.

> [!TIP]
>
> **Checkpoint:** you have the number and the CSV of names.

![The audience: a Contains products condition on the retiring product, the estimate counting who's still on it.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/25-contains-products.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=c4377cd0492156ca0ab8f44d135fc6b7)

**2. Attach the substitute to a selling plan group**

* Swapping to a replacement product? Attach it to a live selling plan group under **Settings > Selling plans** first.
* The swap prices the new line from that group, so check it covers the swap-target variant; uncovered means full catalog price, no subscription discount, and an unavailable line.
* Removing the product outright? Skip this step.

> [!TIP]
>
> **Checkpoint:** the substitute has a plan attached, swap-target variant covered.

**3. Swap or remove, in one run**

* In the same bulk operation, add the action. **Swap product variant** takes two picks: **Replace** the retiring variant, **with** the substitute. **Remove product** takes one: the retiring variant.
* Both are variant-scoped: one action per variant, up to four per run.
* Both act on active subscriptions only and send no notification; send any heads-up yourself.
* **Remove product** refuses to empty a subscription: anyone whose only recurring line is the retiring product lands in the **Skipped** tab.
* Run it; [Change many at once](https://docs.opensubs.com/platform-v2/run/change-many-at-once.md) covers the builder.

> [!TIP]
>
> **Checkpoint:** the run finished, every skipped row read.

![The Swap product variant action: Replace the retiring variant, with the substitute.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/26-swap-action.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=6882b048db5bfb97c83a5baf255dc23f)

**4. Handle the subscriptions the run skipped**

* Single-line subscriptions that Remove skipped: swap them to the substitute, edit them [one at a time](https://docs.opensubs.com/platform-v2/run/edit-one-subscription.md), or run a bulk **Cancel subscription**.
* Paused and failed subscriptions are outside both actions' reach; handle them from their subscription pages.

> [!TIP]
>
> **Checkpoint:** the skipped list is empty, or every name has a decision.

**5. Verify zero, then retire it**

* Build the same audience in a new bulk operation and confirm **0 subscriptions match**.
* Then set the product to draft or archived (or delete it) in the Shopify admin, and delete its group under **Settings > Selling plans**.

> [!TIP]
>
> **Checkpoint:** zero first, Shopify second.

> [!NOTE]
>
> **Just stopping new subscribers is gentler than retirement.** Remove the product from your Online Store sales channel in Shopify, leaving its status active: existing subscriptions keep billing, editing, and shipping. The **One-time only** purchase type under **Settings > Selling plans** stops portal visitors adding it as a new subscription line.

> [!NOTE]
>
> **Same screen, different problem: stale product data.** If the portal shows an old price, a dead variant, or a missing image, select the products in the **Products** view of **Settings > Selling plans** and click **Refresh selected** (or **Refresh all from Shopify**).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.