ReferenceAdd-on marketplace

Add-on marketplace

Add-ons are platform capabilities a store can turn on. Each add-on has a feature_key; enabling one turns that capability on for your store, and where no explicit setting exists resolution falls through to your plan tier’s defaults.

Items on the self-serve allowlist are yours to flip immediately with your own credential. Everything else is operator/console-managed and is requested through a tracked activation request.

Self-serve enable/disable

A closed allowlist of features is merchant-flippable without operator involvement. It currently covers: subscriptions, gift_cards, store_credit, pricing_groups, subscribe_and_save, affiliates, bulk_fulfillment, and funnel_gate.

POST /v1/merchant/entitlements/enable    { "feature_key": "affiliates" }
POST /v1/merchant/entitlements/disable   { "feature_key": "affiliates" }

Both require scope write:own_store, resolve the tenant from the credential (credential-carries-ownership), and are:

  • Idempotent — enabling an already-on feature is an honest no-op (already_enabled: true), not a pretended fresh enable; disabling removes the allow row so resolution falls back to tier defaults (already_disabled: true).
  • Audited either way it writes (addon.self_serve_enabled / addon.self_serve_disabled).
  • Deny-respecting — an operator-set deny is never merchant-removable, and enabling over it is a 403 operator_restricted.

A feature_key that is not on the allowlist (unknown, or an add-on kept operator-managed) returns 403 not_self_serve — the route for those is the tracked activation request (POST /v1/merchant/entitlements/requests).

Pricing and billing

Some self-serve add-ons are priced (for example, Subscriptions lists at $49/mo). Enabling an add-on only turns the capability on — it never bills on its own. A paid add-on’s fee is charged through your store’s merchant-billing contract.