Skip to main content
Appstle Subscriptions uses Shopify metafields and tags to store subscription data, power the storefront widget, and enable automation workflows. All metafields use the namespace appstle_subscription without an $app: prefix, which means they are publicly readable by other apps, themes, and Liquid templates.

Metafields overview

Metafields are set on four Shopify resource types:

Shop metafields

Shop metafields store the app’s configuration and are written whenever a merchant saves settings in the Appstle admin. Updates are synchronous (immediate).

appstle_subscription / setting

appstle_subscription / labels

appstle_subscription / shop_info

appstle_subscription / selling_plans

appstle_subscription / all_Selling_Plans

The key uses mixed case (all_Selling_Plans) — this is intentional and must not be changed.

appstle_subscription / checkout_validation

Widget templates

Build-a-Box metafields

The bab_info_* keys are zero-indexed. A store with three bundles has keys bab_info_0, bab_info_1, and bab_info_2.

Selling plan metafields

appstle_subscription / selling_plan

Order metafields

appstle_subscription / details

Customer metafields

appstle_subscription / subscriptions

Customer metafield updates are asynchronous. There may be a delay of a few seconds between a contract change and the metafield reflecting that change. Do not rely on this metafield for real-time data in time-sensitive operations.

Using metafields in Liquid

All metafields use the appstle_subscription namespace without an $app: prefix, so they are accessible directly in Liquid:

Order tags

Order tags are static strings applied to identify the type of subscription order. They are never removed once applied. Configure tags in Appstle Admin → Settings → Order Tags.
If you need to apply tags to orders created before you configured tags, use the applyMissedOrderTags API endpoint to backfill them.

Customer tags

Customer tags are dynamic — they change as subscription status changes. They follow a strict priority hierarchy: Active > Paused > Inactive. Only one status tag is active at a time. Tags are updated on every subscription lifecycle event: contract created, paused, resumed, cancelled, and billing attempts.

Liquid template variables

Customer tags support Liquid template syntax. Wrap variables in double curly braces:
Available variables: Template examples:

Complete metafield reference

FAQ

Yes. All subscription metafields use the appstle_subscription namespace without an $app: prefix, so they are accessible in Liquid via {{ shop.metafields.appstle_subscription.setting }}, {{ customer.metafields.appstle_subscription.subscriptions }}, and so on.
Customer metafield updates are processed asynchronously. Typical latency is a few seconds, but during high-traffic periods it may take a bit longer.
Tags follow the priority hierarchy Active > Paused > Inactive. If a customer has both active and paused subscriptions, the active tag takes precedence. The inactive tag is only applied when all contracts are cancelled.
Yes. Use the applyMissedOrderTags API endpoint to apply tags to orders that were created before your tag configuration was set up.