Hi all –
Our set up is somewhat complex, but I think other people will have the same set up and issues.
We have “membership” pricing for our Subscription oriented store, any non-logged in user can purchase a recurring subscription of a product at a lower price than a one time purchase. They can also purchase it as a one time at a MUCH higher price. When logged in with the tag “Active Subscriber” our subscribers (we use Recharge and Recharge adds the tag “Active Subscriber” to those with recurring subscriptions) can purchase from that same product as a one time, with a substantial reduction in price (the benefit for subscribing).
This is a key factor in our subscription retention strategy – subscribers can purchase one-time products at much lower prices than non-subscribers.
We don’t have duplicate products – it became too much of a problem for our limited staff to manage every month (we are monthly based). Instead the discount for subscribers purchasing one times is done through Shopify scripts. Shopify Scripts will go away soon, and the script we have is buggy and runs out of memory when we have big promotions and lots of purchases.
However the Shopify Script will stack with BOGO discounts, for example, if I have the Membership Discount product and one other product that SHOULD give me a free other product. However ONLY when I add another of the other product will the cart and checkout update to the free product with the Shopify Script disabled and the Shopify function active:
the Discount is set up like this:
Note, again this works with the Shopify Script, but not with the Shopify Function which duplicates the functionality of the script.
The script was installed to stack:
So what am I doing wrong? Do I need to push in the app another function that does the BOGO? Is there a trick to setting up a Discount manually in Shopify as BOGO to make it work with a Shopify Function discount?
Here is mutation used to install the discount on the (test/staging) store:
mutation {
discountAutomaticAppCreate(automaticAppDiscount: {
title: "Member Pricing",
functionId: "the_id_of_the_function",
startsAt: "2024-03-10T00:00:00",
combinesWith: {
orderDiscounts: true,
productDiscounts: true,
shippingDiscounts: true
},
}) {
automaticAppDiscount {
discountId
}
userErrors {
field
message
}
}
}
Note the function’s discountApplicationStrategy is set to All :
discountApplicationStrategy: DiscountApplicationStrategy.All
No doubt someone has run into this before, any help greatly appreciated.


