> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.ordergroove.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.ordergroove.com/_mcp/server.

# Digital memberships and VIP customers

Digital memberships are the ability to offer customers access to specific services or benefits through a subscription model.

For general information, take a look at the [Knowledge Center](https://help.ordergroove.com/hc/en-us/articles/360054621334-Digital-Memberships-Create-VIP-customers). In this guide, we'll go through how to set it up.

> **Note**
>
> Ordergroove now also supports memberships natively through [digital subscriptions](/advanced/digital-subscriptions), which are in Early Access. This guide describes the earlier approach, built on a regular subscription product.

---

## Setting up digital memberships

1. Create a "digital" product within your eCommerce platform to represent the membership. Set the product's price to match the ongoing membership fee. In Ordergroove, set this product to be *subscription-eligible* and *defaulted to subscription*.

   The same required data elements must be passed for digital subscriptions as for physical subscriptions. This varies slightly by integration, but usually includes a customer identifier, product identifier, payment token, and shipping address.

2. Design a landing page that promotes all of the membership benefits and allows customers to add the membership product to their cart.

3. Under **Subscriptions > Enrollment** in Ordergroove, use the advanced editor to create a new offer location for "membership". You can now make modifications to hide the one-time option for this membership product.

4. Under **Subscriptions > Subscription Manager** in Ordergroove, hide actions from the Subscription Manager that may not be applicable for a membership program, such as Send Now and Change Date.

Below is an example of how to disable the Send Now button for a particular SKU. You can replicate this example on other actions, such as Skip Order, Change Date, and Change Qty.

The example uses legacy Subscription Manager v0 markup, based on the `send-now.liquid` template described in [Send Now](/lifecycle/v0/send-now). Subscription Manager v25 themes use different templates, so you'll need to adapt it for them.

**`Disables Send Now`**

```liquid title="Disables Send Now"
{% set current_order_items = order_items | select(order=order.public_id) %}
{% set blockActions = false %}
{% for order_item in current_order_items %}
  {% set product = products | find(id=order_item.product) %}
  {% set blockActions = (blockActions or (order_item.product == "<YOUR_PRODUCT_ID>")) %}
{% endfor%}

<div class="og-send-shipment-now-button">
  {% if blockActions %}
    <button disabled class="og-button og-disabled">{{ 'shipment_send_now_button' | t }}</button>
  {% else %}
    <button class="og-button" type="button" @click={{ 'show_closest_modal' | js }} >
      {{ 'shipment_send_now_button' | t }}
  </button>
  {% endif%}
```

We recommend that you store and maintain an expiration date for the membership within your customer attributes. You'll want to update the expiration each time you receive a successful renewal of the membership, to ensure there's no interruption of the services you offer to your members.