Membership Metaobjects
The membership system allows you to create and manage tiered membership programs with various benefits. Each membership can have multiple benefits attached to it, such as free shipping, special cashback rates, referral bonuses, free products, and tier-reached bonuses.
To access membership data in your Liquid templates, use the following code:
_10{%- assign membership = shop.metaobjects.app--60169453569--membership.v2 -%}
Field Name | Type | Description |
---|
name | Text | Name of the membership tier |
memberr_id | Text | Internal memberr identifier |
is_active | Boolean | Whether this membership tier is currently active |
revenue_threshold | Money | Revenue amount required to qualify for this tier |
qualification_period_days | Integer | Number of days over which the revenue threshold is calculated |
membership_duration_days | Integer | How long the membership remains valid once earned |
is_locked | Boolean | When true, the membership tier won't change until expiration, even if customer qualifies for a different tier |
is_manual | Boolean | When true, this membership can only be assigned manually, not through automatic qualification |
benefit_free_shipping | Reference | Link to free shipping benefit configuration |
benefit_referral_override | Reference | Link to referral program overrides |
benefit_cashback_override | Reference | Link to cashback program overrides |
benefit_free_products | Reference | Link to free products benefit |
benefit_tier_reached_bonus | Reference | Link to tier reached bonus configuration |
Memberships can be configured for either manual or automatic assignment:
- When
is_manual
is true
, the membership can only be assigned by an administrator
- When
is_manual
is false
, customers can automatically qualify based on the revenue_threshold
and qualification_period_days
The is_locked
field controls tier change behavior:
- When
is_locked
is true
, the membership tier remains fixed until expiration, regardless of customer qualification for other tiers
- When
is_locked
is false
, the membership tier can change if the customer qualifies for a different tier
Example of checking membership type:
_11 {% if membership.is_manual %}
_11 <p>This is an exclusive membership tier, available by invitation only.</p>
_11 <p>Qualify by spending {{ membership.revenue_threshold.value | money }} within {{ membership.qualification_period_days }} days.</p>
_11 {% if membership.is_locked %}
_11 <p>Your tier is locked until {% if membership.membership_duration_days %}{{ membership.membership_duration_days }} days from activation{% else %}expiration{% endif %}.</p>
_10{%- assign free_shipping = membership.benefit_free_shipping -%}
_10{% if free_shipping %}
_10 {% if free_shipping.is_active %}
_10 <p>Free shipping is available on qualifying orders!</p>
Field Name | Type | Description |
---|
membership_id | Text | Associated membership ID |
is_active | Boolean | Whether free shipping is active |
discount_id | Text | Internal reference ID (not for display) |
_10{%- assign cashback = membership.benefit_cashback_override -%}
_10 {% if cashback.is_active %}
_10 <p>Special cashback rate: {{ cashback.cashback_percentage }}%</p>
_10 <p>Available after {{ cashback.credit_availability_delay_days }} days</p>
_10 <p>Expires in {{ cashback.credit_expiry_days }} days</p>
Field Name | Type | Description |
---|
membership_id | Text | Associated membership ID |
is_active | Boolean | Whether the override is active |
cashback_percentage | Decimal | Special cashback percentage for this tier |
credit_expiry_days | Integer | Days until cashback credit expires |
credit_availability_delay_days | Integer | Days before cashback becomes available |
_19{%- assign referral = membership.benefit_referral_override -%}
_19 {% if referral.is_active %}
_19 {% if referral.referring_customer_gets_type == 'PERCENTAGE' %}
_19 <p>Referrer gets: {{ referral.referring_customer_gets_value_percentage }}%</p>
_19 <p>Referrer gets: {{ referral.referring_customer_gets_value_money.value | money }}</p>
_19 {% case referral.referred_customer_gets_type %}
_19 {% when 'PERCENTAGE' %}
_19 <p>New customer gets: {{ referral.referred_customer_gets_value_percentage }}% off</p>
_19 <p>New customer gets: {{ referral.referred_customer_gets_value_money.value | money }} off</p>
_19 {% when 'FREE_SHIPPING' %}
_19 <p>New customer gets: Free Shipping</p>
Field Name | Type | Description |
---|
membership_id | Text | Associated membership ID |
is_active | Boolean | Whether the override is active |
referring_customer_gets_type | Text | Type of reward ('PERCENTAGE' or 'FIXED') |
referring_customer_gets_value_percentage | Decimal | Percentage reward for referrer |
referring_customer_gets_value_money | Money | Fixed amount reward for referrer |
referring_customer_expiry_days | Integer | Days until referrer reward expires |
referring_customer_availability_delay_days | Integer | Delay before referrer gets reward |
referred_customer_gets_type | Text | Type of reward ('PERCENTAGE', 'FIXED', or 'FREE_SHIPPING') |
referred_customer_gets_value_percentage | Decimal | Percentage reward for new customer |
referred_customer_gets_value_money | Money | Fixed amount for new customer |
referred_customer_minimum_order_value | Money | Minimum purchase required |
referred_customer_must_be_new_customer | Boolean | Whether only new customers qualify |
_10{%- assign free_products = membership.benefit_free_products -%}
_10{% if free_products %}
_10 {% if free_products.is_active %}
_10 <p>Choose {{ free_products.max_selectable_free_products }} free products from collection {{ free_products.collection_id }}</p>
_10 <p>Minimum order: {{ free_products.minimum_order_value.value | money }}</p>
Field Name | Type | Description |
---|
membership_id | Text | Associated membership ID |
is_active | Boolean | Whether the benefit is active |
collection_id | Reference | Collection containing free product options |
max_selectable_free_products | Integer | Number of free products allowed |
hide_cart_lines | Boolean | Whether to hide free products in cart |
minimum_order_value | Money | Minimum purchase required |
discount_id | Text | Internal reference ID (not for display) |
_10{%- assign bonus = membership.benefit_tier_reached_bonus -%}
_10 {% if bonus.is_active %}
_10 <p>Tier bonus: {{ bonus.amount.value | money }}</p>
_10 {% if bonus.is_one_time %}
_10 <p>One-time bonus!</p>
_10 <p>Expires in {{ bonus.credit_expiry_days }} days</p>
Field Name | Type | Description |
---|
membership_id | Text | Associated membership ID |
is_active | Boolean | Whether the bonus is active |
is_one_time | Boolean | Whether this is a one-time bonus |
amount | Money | Bonus amount |
credit_expiry_days | Integer | Days until bonus expires |
- Always check if the membership and benefit exist before accessing:
_10{% if membership and membership.benefit_cashback_override %}
_10 // Access cashback override
- Remember to use .value for money fields:
_10{{ membership.revenue_threshold.value | money }}
_10{{ bonus.amount.value | money }}
- Handle different reward types appropriately:
_10{% if referral.referring_customer_gets_type == 'PERCENTAGE' %}
_10 {{ referral.referring_customer_gets_value_percentage }}%
_10 {{ referral.referring_customer_gets_value_money.value | money }}
- Consider qualification period when displaying thresholds:
_10<p>Spend {{ membership.revenue_threshold.value | money }} within {{ membership.qualification_period_days }} days to qualify</p>