From 4141fd1e6adf1c6ac39182f53c518167a9496bd8 Mon Sep 17 00:00:00 2001 From: Fabien O'Carroll Date: Tue, 22 Jun 2021 12:50:03 +0100 Subject: [PATCH] Linked comped members to default product for imports refs https://github.com/TryGhost/Team/issues/765 As part of the multiple products feature, we're not longer using Stripe subscriptions to denote Complimentary access, instead we're linking members directly to products. Here we update the importer to follow suit, so long as the flag is enabled. --- ghost/members-importer/lib/importer.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ghost/members-importer/lib/importer.js b/ghost/members-importer/lib/importer.js index fccc0e1495..c0089d5589 100644 --- a/ghost/members-importer/lib/importer.js +++ b/ghost/members-importer/lib/importer.js @@ -109,6 +109,12 @@ module.exports = class MembersCSVImporter { const membersApi = await this._getMembersApi(); + const defaultProductPage = await membersApi.productRepository.list({ + limit: 1 + }); + + const defaultProduct = defaultProductPage.data[0]; + const result = await rows.reduce(async (resultPromise, row) => { const resultAccumulator = await resultPromise; @@ -142,7 +148,16 @@ module.exports = class MembersCSVImporter { member_id: member.id }, options); } else if (row.complimentary_plan) { - await membersApi.members.setComplimentarySubscription(member, options); + if (!labsService.isSet('multipleProducts')) { + await membersApi.members.setComplimentarySubscription(member, options); + } else { + await membersApi.members.update({ + products: [{id: defaultProduct.id}] + }, { + ...options, + id: member.id + }); + } } await trx.commit();