#tiam-subscription

1 messages · Page 1 of 1 (latest)

agile copper
#

Can you describe you plan for this a little more? I don't think there is a pre-built thing like this but am still double checking on that.

#

One option I am thinking of is that you could add a price with a three month period and create a subscription schedule that switches them to monthly when the three months are up

shy meteor
#

The idea is to create subscriptions where the customer is commited for 6 or 12 months, but billed monthly.

For example: if I subscribe to the 12months one, I am billed each month, and if I cancel the subscription during this 12 months interval I am still billed every month for the remaining months until the 12th. When the 12th month is billed, if the subscription has been 'canceled' by the customer we also cancel it stripe-side. If not a new cycle begins and the customer is re-commited for 12 months.

I hope that makes sense : s

#

It's not a 'minimum commitment time'. Not like one time 3 months then monthly.

agile copper
#

Oh I see thank you for the clarification. One moment as I think on that.

glacial drum
#

@shy meteor regular Subscriptions could work for that but also SubscriptionSchedules

shy meteor
#

Thanks. I'll take a look at what can be done with Schedules for our case. I was afraid to have missed some basic option on Subscriptions and that I was going to reinvent the wheel.

glacial drum
#

it is more work on Subscription, can be done, you just have to put together a bunch of things and track months of the Subscription so SubSchedule would be better

shy meteor
#

What I planned:

Canceling a Subscription:

  • store the currentBillingCycle on our (not-stripe) Subscription object ( an integer starting at 0 and incremented in the webhook )
  • store a cancelAtCycleEnd on our Subscription object
  • when a customer clicks the 'cancel subscription' front side
    1. set the cancelAtCycleEnd to true
    2. check if the currentBillingCycle % <commitment_cycle_month_duration> == 0
      • if YES => set the Stripe cancel_at_period_end to true
      • if NO => noOp
  • in the webhook:
    1. increment currentBillingCycle
    2. check if our cancelAtCycleEnd is true && currentBillingCycle % <commitment_cycle_month_duration> == 0 set the Stripe cancel_at_period_end to true

Resuming a Subscription:

  • set the cancelAtCycleEnd to false
  • set the Stripe cancel_at_period_end to false

This seems ok but is dependent on the webhook. While they have never failed us, it would be easier to follow if it could be done in a synchronous way.

glacial drum
#

yeah with just Subscriptions there's no great way to do this other than what you laid out

shy meteor
#

Thank you for the answers ! Have a great day :o)