What a subscription tracks
Each subscription holds everything Reorder needs to manage the recurring relationship:Subscription statuses
A subscription moves to
past_due automatically when a renewal payment fails and qualifies for dunning. It returns to active when the payment is successfully recovered.Lifecycle transitions
Subscriptions move between statuses through explicit actions, not automatically (except for thepast_due transition, which happens during renewal execution):
How subscriptions are created
Subscriptions are created through the checkout flow. When a cart line item carries subscription metadata (frequency interval and frequency value), Reorder synchronizes subscription pricing on the cart and then completes the subscription purchase throughPOST /store/carts/:id/subscribe instead of the standard Medusa cart complete route. Reorder validates the subscription metadata, completes the cart into a standard Medusa order, creates the subscription record, schedules the first renewal cycle, and writes an initial subscription.created event to the Activity Log with the customer recorded as the actor.
The checkout pricing adjustment is applied as a manual line-item adjustment identified by provider_id = "subscription_discount". This keeps the subscription discount separate from Medusa promotion-code semantics while still allowing the discounted total to flow into payment and order creation.
Pending plan changes
You can schedule a plan change on an active subscription using the schedule-plan-change action. The change is stored inpending_update_data and applied during the next eligible renewal cycle rather than immediately. The pending change includes the target variant, frequency, and an optional effective date.
The Admin detail view shows a preview of the pending change alongside the current plan so you can review it before it takes effect.
Admin and Store API actions
Reorder exposes subscription management through both the Admin API and the Store API. Admin API (/admin/subscriptions):
- List and search subscriptions
- View full subscription detail
- Pause, resume, and cancel
- Schedule a plan change
- Update the shipping address
/store/customers/me/subscriptions):
- List and view the authenticated customer’s subscriptions
- Pause, resume, and change frequency
- Change shipping address
- Skip the next delivery
- Swap to a different product variant
- Retry a failed payment
- Initiate a cancellation request