diff --git a/ghost/admin/app/components/gh-member-settings-form-cp.hbs b/ghost/admin/app/components/gh-member-settings-form-cp.hbs
index 592371a9cc..dd12711738 100644
--- a/ghost/admin/app/components/gh-member-settings-form-cp.hbs
+++ b/ghost/admin/app/components/gh-member-settings-form-cp.hbs
@@ -197,20 +197,39 @@
{{/each}}
- {{#if this.isAddComplimentaryAllowed}}
-
+ {{#if (not (feature "multipleProducts"))}}
+ {{#if this.isAddComplimentaryAllowed}}
+
+ {{/if}}
{{/if}}
{{/each}}
+ {{#if (feature "multipleProducts")}}
+ {{#if (and this.products this.isAddComplimentaryAllowed)}}
+
+ {{/if}}
+ {{/if}}
diff --git a/ghost/admin/app/components/gh-member-settings-form-cp.js b/ghost/admin/app/components/gh-member-settings-form-cp.js
index 95e9eade46..48ee7c8dc9 100644
--- a/ghost/admin/app/components/gh-member-settings-form-cp.js
+++ b/ghost/admin/app/components/gh-member-settings-form-cp.js
@@ -15,6 +15,8 @@ export default class extends Component {
ajax
@service
store
+ @service
+ feature
constructor(...args) {
super(...args);
@@ -33,6 +35,9 @@ export default class extends Component {
if (!this.membersUtils.isStripeEnabled) {
return false;
}
+ if (this.feature.get('multipleProducts')) {
+ return true;
+ }
let subscriptions = this.member.get('subscriptions') || [];
const hasZeroPriceSub = subscriptions.filter((sub) => {
return ['active', 'trialing', 'unpaid', 'past_due'].includes(sub.status);
diff --git a/ghost/admin/app/components/modal-member-product.hbs b/ghost/admin/app/components/modal-member-product.hbs
index 7f0c4c8b3d..40bfffaf4e 100644
--- a/ghost/admin/app/components/modal-member-product.hbs
+++ b/ghost/admin/app/components/modal-member-product.hbs
@@ -1,72 +1,59 @@
-