Skip to navigation

Hiding inactive subscriptions in the Subscription Manager

Keep a canceled subscription out of the Inactive Subscriptions section so customers can't see or reactivate it
View as Markdown

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_data until 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-key header. 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:

  1. Get the subscription with Retrieve subscription and copy its extra_data:

    curl --request GET \
    --url https://restapi.ordergroove.com/subscriptions/<SUBSCRIPTION_ID>/ \
    --header 'x-api-key: <YOUR_API_KEY>'

    In this example, the subscription already stores a fulfillment counter:

    Response (excerpt)
    "extra_data": {
    "fulfillment_counter": "2"
    }
  2. Add "hide": true to the existing keys and send the full object to Update subscription:

    curl --request PATCH \
    --url https://restapi.ordergroove.com/subscriptions/<SUBSCRIPTION_ID>/update/ \
    --header 'x-api-key: <YOUR_API_KEY>' \
    --header 'content-type: application/json' \
    --data '{
    "extra_data": {
    "fulfillment_counter": "2",
    "hide": true
    }
    }'

    If extra_data was empty ({}), send {"extra_data": {"hide": true}}.

  3. Check that the response’s extra_data includes "hide": true alongside your existing keys.

The subscription is hidden the next time the customer loads the Subscription Manager.

Keep the keys you didn't add

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_data as 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_data value under 1,024 characters when written out as JSON. A longer value returns a 400 error.

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:

  1. 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.

  2. Open the draft theme, click the Advanced tab, and then Views.

  3. Open inactive-subscriptions/main.liquid and find this line:

    {% for subscription in subscriptions | reject('live') %}
  4. Replace it with:

    {% for subscription in subscriptions | reject('live') | reject('extra_data.hide') %}
  5. 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.