Fixed

Subscriptions with a billing cycle limit now expire after the correct number of orders

Billing & PaymentsSubscriptions & Plans

Subscription contracts can be configured to end automatically after a fixed number of billing cycles -- for example, a 12-month prepaid subscription or a "subscribe for 6 months" offer. In some cases, those contracts billed past their configured limit.

The root cause: when two subscription contracts originate from the same checkout order (for example, two separate subscription items added to a single cart), one database order record is shared between them. The previous cycle-counting logic incremented the count for only one contract per shared order, leaving the other contract under-counted, and billing continued past its cap.

The fix introduces a dedicated join table that records which orders belong to which contract. Cycle counts now read from that table, giving each contract an accurate and independent count of its own billing events. Contracts with a cycle cap now expire at or past the configured limit as expected.

If you offer fixed-term subscription programs and noticed some contracts billing beyond their end date, this update corrects the counting going forward.

Beyond Subscriptions

Launch and scale recurring revenue on Shopify in days, not months.

Book Demo