New: Discounts with Shopify Subscriptions

Product updates May 4, 2022

Junip is now (as of May 4th, 2022) the only major review platform to allow brands on Shopify to offer discount codes that work for both one-time purchases and subscriptions on Shopify’s checkout. Meaning regardless of type of purchase, your discount codes will just simply work.

Note: this only applies to brands using the Shopify Checkout to power subscriptions.

As a customer it’s extremely frustrating to be offered an incentive, only to have it not work when you go to use it. At best this leads to some very annoying CX issues… at worst, lost customers & revenue.

Previously on Junip (and currently for every other major platform), all discount codes would only work for one-time purchases. We’re thrilled as of today, this is no longer the case!

Using the new discounts is simple:

  1. Head to Incentives:
  2. Re-authenticate to give Junip the new permissions we need
  3. Delete & recreate your existing incentive rules, this switches all your new discounts created to use Shopify’s new discounting engine

That’s about it!

For those especially interested, we’ve written up more detail on how this is built, the difficulty involved & why others don’t have it yet below. What's written below has absolutely no impact on the feature & is mostly just written for fun...

Historically, subscriptions have been managed by entirely separate platforms (ReCharge, Bold Subscriptions, OrderGroove) that existed as standalone checkout solutions apart from Shopify. In that world subscription platforms had their own discounting engine, meaning discount codes created by (and for) ReCharge, Bold Subscriptions etc didn’t exist in Shopify & vice versa.

The separate checkout made it basically impossible to provide a unified discount experience. This headache (in addition to duplicate products & disjointed experience) was one of the biggest problems brands had with subscriptions existing as a standalone checkout. In 2020 though Shopify finally came to the rescue! They released a set of Subscription APIs to allow developers to build Apps that power subscriptions using Shopify’s own checkout, as opposed to having a standalone platform.

The major subscription platforms (ReCharge, Bold Subscriptions, Ordergroove) all quickly migrated to this App/native experience & there’s been a proliferation of new app upstarts (Skio, Smartrr, Upscribe, Awtomatic etc) on these APIs as well.

Whichever App you’re using if they’re on native subscription API’s, your discounts are now powered by Shopify… yay! So that means it should all work, right?!

Not so fast :)

There's another change taking place behind the scenes that affects all of this.

Shopify has two major ways for developers to integrate with their platform, their original REST Admin API & the new GraphQL Admin API unveiled by Brandon Chu at Unite 2018 (the best Unite yet!). While Shopify’s slowly been releasing new functionality on the GraphQL Admin API, there are still big advantages to using the original REST Admin API & many developers (including virtually every review tool) power their apps primarily with REST.

The REST Admin API uses a resource called “PriceRule” to create & manage discounts - GraphQL has a similar resource called “Discounts”, with similar functionality.

When Shopify released Subscription APIs however, they didn’t automatically accept all discount codes. You need to specify when creating a discount code whether it should apply to one-time purchases, subscription purchases or both. Easy enough, except for the fact that this functionality (specifying a discount code should work for one-time purchases, subscription purchases or both) is only available on the new GraphQL API.

So even though your checkout is unified… discount codes still don’t work across one-time vs subscription checkouts if they aren’t specified to do so! This means for Junip (and other app developers) to provide discounts that work across both one-time & subscription purchases, we needed to adopt the new “Discounts” resource on the GraphQL Admin API instead of the PriceRule resource on the REST Admin API.

Now that we've done the hard work to power our discounts using the “Discounts” resource, everything else is pretty straightforward! We're now able to offer a unified discounting experience when you incentivize reviews :)

Reminder if you're a subscription brand using Junip you still need to head to Incentives & re-authenticate with Shopify as well as recreate your discounts for this to work properly.

If you read through all of this blabber - there's a good chance you should:


Co-founder at Junip

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.