Hiding inactive subscriptions in the Subscription Manager
The Subscription Manager lists a customer’s canceled subscriptions in its Inactive Subscriptions section, where the customer can reactivate them. Some subscriptions shouldn’t be offered again, such as a gift subscription that has delivered its last order or a subscription to a product you’ve discontinued. To hide one, add "hide": true to the subscription’s extra_data with the API.
Themes on Subscription Manager 25.5.0 or later support this already, so there’s no theme code to change.
What hiding does
Hiding only changes what the Subscription Manager shows:
- The subscription no longer appears in the Inactive Subscriptions section, so the customer can’t see it or reactivate it there.
- The subscription itself doesn’t change. It stays canceled, and you can still reactivate it with the Reactivate subscription endpoint.
- The flag stays in
extra_datauntil you remove it. If you reactivate a hidden subscription, it shows as active like any other, and it’s hidden again if it’s canceled later.
Before you start
You’ll need:
- A theme on Subscription Manager 25.5.0 or later. Check your live theme’s version in Ordergroove > Subscriptions > Subscription Manager. If it’s older, see Themes earlier than 25.5.0.
- An Application API key, passed in the
x-api-keyheader. See Authentication. - The public ID of each subscription you want to hide.
Hide a subscription
Updating extra_data replaces the whole field, so any key you leave out is deleted. Read the current value first, add hide to it, and send everything back:
-
Get the subscription with Retrieve subscription and copy its
extra_data:In this example, the subscription already stores a fulfillment counter:
Response (excerpt) -
Add
"hide": trueto the existing keys and send the full object to Update subscription:If
extra_datawas empty ({}), send{"extra_data": {"hide": true}}. -
Check that the response’s
extra_dataincludes"hide": truealongside your existing keys.
The subscription is hidden the next time the customer loads the Subscription Manager.
Copy every existing key exactly, including ones you don’t recognize. Ordergroove and your other integrations store data in extra_data too. For example, Shopify subscriptions keep their contract ID in shopify_contract_id, and changing it changes which Shopify contract the subscription is linked to.
Format rules
The Subscription Manager only recognizes the flag when it’s sent in this shape:
- Send
extra_dataas a JSON object, as in the example above. A JSON-encoded string such as"{\"hide\": true}"is saved as plain text, and the subscription stays visible. - Use the boolean
true, not the string"true". The Subscription Manager hides a subscription for any value that isn’t empty, so even the string"false"hides it. - Keep the whole
extra_datavalue under 1,024 characters when written out as JSON. A longer value returns a400error.
Show a hidden subscription again
Send extra_data again without the hide key, keeping the other keys as they are. Setting "hide": false also works.
Hide many subscriptions
To find candidates, call List subscriptions with live=False, which returns inactive subscriptions. Listing subscriptions across customers requires an Application API key with the Bulk Operations permission. Each subscription in the response includes its extra_data, so you can build each update from it. Then send one update per subscription, as in step 2 above.
Themes earlier than 25.5.0
If your theme is on a version 25 release earlier than 25.5.0, you can add the filter yourself in the Advanced Editor:
-
Locate your live theme in Ordergroove > Subscriptions > Subscription Manager and click Copy to create a draft theme. You’ll make the change on the draft.
-
Open the draft theme, click the Advanced tab, and then Views.
-
Open
inactive-subscriptions/main.liquidand find this line: -
Replace it with:
-
Preview the draft, then publish it.
If your theme is on 25.5.0 or later but your team has customized inactive-subscriptions/main.liquid, check that the loop still includes reject('extra_data.hide').
This guide doesn’t cover legacy version 0 themes.