diff --git a/ghost/members-api/lib/repositories/member/index.js b/ghost/members-api/lib/repositories/member/index.js index 38598c672b..2862851b49 100644 --- a/ghost/members-api/lib/repositories/member/index.js +++ b/ghost/members-api/lib/repositories/member/index.js @@ -169,16 +169,20 @@ module.exports = class MemberRepository { } if (this._stripeAPIService && options.cancelStripeSubscriptions) { - await member.related('stripeSubscriptions'); + await member.related('stripeSubscriptions').fetch(); const subscriptions = member.related('stripeSubscriptions'); for (const subscription of subscriptions.models) { if (subscription.get('status') !== 'canceled') { const updatedSubscription = await this._stripeAPIService.cancelSubscription( subscription.get('subscription_id') ); - await this._StripeCustomerSubscription.update({ + + await this._StripeCustomerSubscription.upsert({ status: updatedSubscription.status - }, options); + }, { + subscription_id: updatedSubscription.id + }); + await this._MemberPaidSubscriptionEvent.add({ member_id: member.id, source: 'stripe',