Last updated

DB Variables & Template Scopes

Use this guide to understand which data your sections can access on each page type, plus a complete JSON reference of available variables.


What data can a section access?

  • Each page type exposes a specific set of data (its "template scope"). Sections on that page can only use data provided by that scope.
  • In addition, a set of Global variables is always available on every page.
  • Referencing data not exposed by the current page template (or Global variables) will render empty.

Scope Rules (STRICT)

  1. Use only variables exposed by the current page template.
  2. Global variables are always available on all pages.
  3. Do not assume cross-page access (e.g., media-specific data is not available on Home).

Template scopes (by page type)

  • Home: Access to Global variables; page-specific lists like featured enrollment packs may also be present.
  • Shop/Collection: Access to collection data (filters, products, pagination) and Global variables.
  • Product: Access to product data (images, variants, pricing, recommendations) and Global variables.
  • Media: Access to media data (embed URLs, poster, file URLs) and Global variables.
  • Enrollment Pack: Access to enrollment_pack data and Global variables.
  • Library: Access to library data and Global variables.
  • My Site: Access to fluid_affiliate data (links, favorites) and Global variables.
  • Cart: Access to cart data and Global variables.
  • Join: Access to enrollment pack listings (collection) and Global variables.

Do / Don’t Examples

Home template

  • Do: Use products (Global) to render a list of products.
{'%' for p in products '%'}
  <a href="{{ p.url }}" class="block">{{ p.title | default: "Product" }}</a>
{'%' endfor '%'}
  • Don't: Use media-specific fields (e.g., media.embed_url) on Home; they are not exposed there.

Shop/Collection template

  • Do: Use collection.filters and collection.products as exposed on Shop/Collection pages.
{'%' if collection and collection.filters '%'}
  {'%' for f in collection.filters '%'}
    <div class="filter">{{ f.label }}</div>
  {'%' endfor '%'}
{'%' endif '%'}
  • Don't: Reference product.selected_or_first_available_variant here; product-specific fields are only guaranteed on Product pages.

Product template

  • Do: Use product.title, product.images, product.selected_or_first_available_variant.price (Product scope).
<h1 class="{{ section.settings.heading_font_family | default: 'font-primary' }}">{{ product.title | default: 'Product Title' }}</h1>
  • Don't: Assume collection.filters is present on the Product template unless explicitly exposed.

Defensive Usage Patterns

  • Always provide fallbacks using default:
{{ company.name | default: 'Company' }}
  • Guard optional structures:
{'%' if product and product.images '%'}
  <img src="{{ product.images[0].src }}" alt="{{ product.title | default: 'Product' }}">
{'%' endif '%'}

Implementation Steps for DB-Backed Sections

  1. Identify the target template(s) where the section will be used (e.g., Product, Shop, Home).
  2. List the exact fields you will reference from the page’s template scope and from Global variables; do not guess field names.
  3. In your index.liquid, reference only those fields. Use guards and defaults for optional data.
  4. Test the section within the correct template context in the Visual Editor.

Commonly Used Global Variables

Always available on every page:

  • Company (company.*): company.name, company.logo_url, company.shop_page_url, company.checkout_url
  • Request (request.*): request.path, request.host, request.page_type, request.query_parameters
  • Affiliate (affiliate.*): affiliate.logged_in_rep_for_store, affiliate.name, affiliate.my_site_url, affiliate.sign_in_url, affiliate.sign_out_url
  • Localization (localization.*): localization.country, localization.language, plus available_countries and available_languages
  • Products (products): Array of products with title, url, price, images[n].src, and selected_or_first_available_variant.price
  • Collections (collections): Array of collections with title, products, and each product’s title, url, price, images
  • Enrollment Packs (enrollment_packs): Array of enrollment packs with title, price, images, description

Example (Global products):

{'%' for p in products '%'}
  <a href="{{ p.url }}" class="block">{{ p.title | default: "Product" }}</a>
{'%' endfor '%'}

Example (Global collections → Best Sellers carousel):

{'%'- assign collection_name = section.settings.selected_collection | downcase | strip -'%'}
{'%'- for c in collections -'%'}
  {'%'- if c.title | downcase | strip == collection_name -'%'}
    <div class="best-sellers">
      {'%'- for product in c.products -'%'}
        <a href="{{ product.url }}" class="best-seller-item">
          <img src="{{ product.images.first.src }}" alt="{{ product.title }}">
          <div class="title">{{ product.title }}</div>
          <div class="price">{{ product.price }}</div>
        </a>
      {'%'- endfor -'%'}
    </div>
  {'%'- endif -'%'}
{'%'- endfor -'%'}

{'%'- schema -'%'}
{
  "settings": [
    {
      "type": "text",
      "id": "selected_collection",
      "label": "Enter Collection Title",
      "default": "Best Sellers"
    }
  ]
}
{'%'- endschema -'%'}

Variables Reference (JSON)

Use these JSON snapshots to see what variables are available globally and per template.

Global (available on all pages)

{
  "company": {
    "id": "Company id",
    "name": "Company name",
    "logo_url": "Company logo url",
    "shop_page_url": "Shop page url",
    "checkout_url": "Checkout url",
    "subdomain": "Company subdomain",
    "home_page_url": "Company home page url",
    "company_color": "Company primary color"
  },
  "request": {
    "path": "Request path",
    "host": "Request host",
    "page_type": "Page type, eg: shop, enrollment_pack, library, media",
    "query_parameters": "Request query parameters"
  },
  "share_guid": "Share guid for affiliate",
  "external_id": "External id for affiliate",
  "affiliate": {
    "web_rep_store_enabled": "Should show login affiliate login bannar",
    "logged_in_rep_for_store": "Is affiliate logged in?",
    "name": "Affiliate name",
    "email": "Affiliate email",
    "avatar": "Affiliate avatar url",
    "initials": "Affiliate initials",
    "my_site_url": "Affiliate my site url",
    "sign_in_url": "Sign in url",
    "sign_out_url": "Sign out url"
  },
  "localization": {
    "available_countries <Array>": {
      "currency": {
        "iso_code": "Currency iso code",
        "name": "Currency name",
        "symbol": "Currency symbol"
      },
      "iso_code": "Country iso code",
      "name": "Country name",
      "iso": "Country iso code (alias)",
      "selected": "Boolean if this country is selected",
      "unit_system": "Unit system (metric/imperial)",
      "available_languages": "Available languages for this country"
    },
    "available_languages <Array>": {
      "iso_code": "Language iso code",
      "name": "Language name",
      "iso": "Language iso code (alias)",
      "locale": "Language locale",
      "selected": "Boolean if this language is selected",
      "endonym_name": "Language endonym name"
    },
    "country": "Current Country object",
    "language": "Current Language object"
  },
  "products <Array>": {
    "id": "Product ID",
    "title": "Product title",
    "url": "Product url",
    "short_description": "Product short description",
    "description": "Product description (HTML sanitized)",
    "feature_text": "Product feature text (HTML sanitized)",
    "out_of_stock": "Boolean to check if product is out of stock",
    "price": "Product display price",
    "subscription_price": "Product display subscription price",
    "available_for_country": "Boolean to check if product is available for the selected country",
    "buyable_quantity": "Maximum buyable quantity for the selected country",
    "active": "Boolean to check if product is active",
    "subscription_only": "Boolean to check if product is subscription only",
    "allow_subscription": "Boolean to check if product allows subscription",
    "available_values <Array>": {
      "option_id": "Option ID",
      "name": "Name of the option",
      "selected_value": "Selected value of the option",
      "values <Array>": {
        "id": "Value ID",
        "name": "Name of the value",
        "selected": "Boolean to check if the value is selected"
      }
    },
    "images <Array>": {
      "id": "Image ID",
      "src": "Image src url",
      "url": "Image url"
    },
    "image": "Product image url",
    "ratings": "Average product rating (rounded)",
    "reviews <Array>": {
      "body": "Review body"
    },
    "selected_or_first_available_variant": {
      "available": "Boolean to check if variant is available",
      "id": "Variant ID",
      "price": "Variant display price",
      "title": "Variant title",
      "image_url": "Variant image url"
    },
    "options_available": "Boolean to check if product has options",
    "metadata": "Product metadata",
    "metafields": "Product metafields",
    "selected_variant_id": "Selected variant ID",
    "variants <Array>": {
      "id": "Variant ID",
      "title": "Variant title",
      "image_url": "Variant image url",
      "is_master": "Boolean to check if variant is master",
      "metafields": "Variant metafields",
      "option_values <Array>": {
        "id": "Option value ID",
        "name": "Option value name",
        "selected": "Boolean to check if option value is selected",
        "option_id": "Option ID"
      },
      "variant_countries <Array>": {
        "id": "Variant country ID",
        "country_iso": "Country iso code",
        "country_name": "Country name",
        "currency_code": "Currency code",
        "price": "Variant country price",
        "display_price": "Variant country display price",
        "subscription_price": "Variant country subscription price",
        "display_subscription_price": "Variant country display subscription price"
      },
      "images <Array>": {
        "id": "Image ID",
        "src": "Image src url",
        "url": "Image url"
      }
    },
    "selected_subscription_plan_id": "Selected subscription plan ID",
    "subscription_plans <Array>": {
      "id": "Subscription plan ID",
      "name": "Subscription plan name",
      "billing_interval": "Billing interval",
      "billing_interval_unit": "Billing interval unit",
      "shipping_interval": "Shipping interval",
      "shipping_interval_unit": "Shipping interval unit",
      "trial_period": "Trial period",
      "trial_period_unit": "Trial period unit",
      "price_adjustment_type": "Price adjustment type",
      "price_adjustment_amount": "Price adjustment amount",
      "selected": "Boolean to check if subscription plan is selected",
      "max_skips": "Maximum skips allowed",
      "subscription_price": "Subscription price",
      "wholesale_subscription_price": "Wholesale subscription price",
      "display_subscription_price": "Display subscription price",
      "saved_on_subscription": "Amount saved on subscription", 
      "saved_percentage_on_subscription": "Percentage saved on subscription"
    },
    "tags <Array>": "Array of product tags"
  },
  "enrollment_packs <Array>": {
    "id": "Enrollment pack ID",
    "title": "Enrollment pack title",
    "url": "Enrollment pack url",
    "price": "Enrollment pack display price",
    "images": "Array of enrollment pack image urls",
    "description": "Enrollment pack description (HTML sanitized)",
    "membership_products <Array>": {
      "title": "Product title",
      "price": "Prduct display price",
      "cv": "Product display cv",
      "image": "Subscription product image url",
      "learn_more_path": "Learn more path",
      "options_with_values <Array>": {
        "option_id": "Option ID",
        "name": "Name of the option",
        "selected_value": "Selected value of the option",
        "values <Array>": {
          "id": "Value ID",
          "name": "Name of the value",
          "selected": "Boolean to check if the value is selected"
        }
      }
    },
    "subscription_products <Array>": {
      "title": "Product title",
      "price": "Prduct display price",
      "cv": "Product display cv",
      "image": "Subscription product image url",
      "learn_more_path": "Learn more path",
      "options_with_values <Array>": {
        "option_id": "Option ID",
        "name": "Name of the option",
        "selected_value": "Selected value of the option",
        "values <Array>": {
          "id": "Value ID",
          "name": "Name of the value",
          "selected": "Boolean to check if the value is selected"
        }
      }
    },
    "membership_after_one_month": "Boolean to check if membership is after one month",
    "first_payment_date": "First payment date",
    "agreements <Array>": {
      "id": "Agreement ID",
      "title": "Agreement title",
      "description": "Agreement description",
      "required": "Boolean to check if the agreement is required"
    }
  }
}

Product template

{
  "product": {
    "title": "Product Title",
    "url": "Product URL (affiliate_product_path)",
    "id": "Product ID",
    "short_description": "Short Description of the product",
    "description": "Description of the product",
    "feature_text": "Features of the product",
    "out_of_stock": "Boolean to check if the product is out of stock",
    "available_for_country": "Boolean to check if the product is available for the country",
    "price": "Display price of the product",
    "unit_price": "Unit price of the product without currency",
    "unit_subscription_price": "Unit subscription price of the product without currency",
    "subscription_price": "Subscription display price of the product",
    "subscription_label_text": "Subscription label text",
    "active": "Boolean to check if the product is active",
    "subscription_only": "Boolean to check if the product is subscription only",
    "allow_subscription": "Boolean to check if the product allows subscription",
    "limited_stock": "Boolean if limited stock is applicable",
    "buyable_quantity": "Quantity available to buy",
    "tags": "List of tag names",
    "saved_percentage_on_subscription": "Saved percentage on subscription",
    "saved_on_subscription": "Amount saved on subscription",
    "thumbnail_image": "Product thumbnail image URL",
    "external_url": "External product URL if redirectable",
    "available_values": "Product options with values",
    "metadata": "Metadata of the product",
    "metafields": "Metafields of the product",
    "images <Array>": {
      "id": "Image ID",
      "aspect_ratio": "Aspect ratio of image",
      "attached_to_variant?": "Boolean attached to variant",
      "position": "Image position",
      "product_id": "Product ID",
      "src": "Image URL",
      "url": "Image URL",
      "variants": [],
      "media_type": "Media type, e.g., image",
      "preview_image": {
        "src": "Preview Image URL",
        "width": "Preview Image Width",
        "height": "Preview Image Height",
        "aspect_ratio": "Aspect ratio"
      }
    },
    "media": "Alias of images (same structure)",
    "featured_media": "First media item (same structure as images)",
    "ratings": "Average rating of the product",
    "reviews <Array>": {
      "body": "Body of the review"
    },
    "recommendations <Array>": {
      "title": "Title of the recommended product",
      "description": "Description of the recommended product",
      "price": "Price of the recommended product",
      "image_url": "Image URL of the recommended product",
      "url": "Product page URL of the recommended product",
      "short_description": "Short description",
      "feature_text": "Feature text",
      "tags": "Tags of recommended product",
      "variants <Array>": {
        "id": "Variant ID",
        "title": "Variant title",
        "image_url": "Variant image URL",
        "is_master": "Boolean to check if this is the master variant",
        "option_values <Array>": {
          "id": "option value ID",
          "presentation": "Option value presentation",
          "selected": "Boolean to check if this value is selected",
          "option_id": "Option ID"
        },
        "variant_countries <Array>": {
          "id": "Variant Country ID",
          "country_iso": "Country ISO code",
          "country_name": "Country name",
          "currency_code": "Currency code",
          "price": "Variant country price",
          "display_price": "Price with currency",
          "subscription_price": "Variant country subscription price",
          "display_subscription_price": "Subscription price with currency"
        }
      },
      "options_with_values <Array>": {
        "option_id": "Option ID",
        "name": "Option Name",
        "selected_value": "Selected Value",
        "values <Array>": {
          "id": "Value ID",
          "name": "Value Name",
          "selected": "Boolean if value is selected"
        }
      }
    },
    "selected_or_first_available_variant": {
      "available": "Always true in this context",
      "id": "Variant ID",
      "price": "Price of the variant"
    },
    "options_available": "Boolean to check if options are available",
    "options_with_values <Array>": {
      "option_id": "Option ID",
      "name": "Name of the option",
      "selected_value": "Selected value of the option",
      "presentation": "Presentation name of option",
      "values <Array>": {
        "id": "Value ID",
        "name": "Name of the value",
        "presentation": "Value presentation",
        "selected": "Boolean to check if the value is selected"
      }
    },
    "variants <Array>": {
      "id": "Variant ID",
      "title": "Variant title",
      "image_url": "Variant image URL",
      "is_master": "Boolean to check if this is the master variant",
      "option_values <Array>": {
        "id": "option value ID",
        "presentation": "Option value presentation",
        "selected": "Boolean to check if this value is selected",
        "option_id": "Option ID"
      },
      "variant_countries <Array>": {
        "id": "Variant Country ID",
        "country_iso": "Country ISO code",
        "country_name": "Country name",
        "currency_code": "Currency code",
        "price": "Variant country price",
        "display_price": "Price with currency",
        "subscription_price": "Variant country subscription price",
        "display_subscription_price": "Subscription price with currency"
      }
    },
    "selected_subscription_plan_id": "Selected Subscription Plan ID",
    "subscription_plans <Array>": {
      "id": "Subscription Plan ID",
      "name": "Name of the subscription plan",
      "billing_interval": "Billing interval (e.g., 1)",
      "billing_interval_unit": "Billing interval unit (e.g., month)",
      "shipping_interval": "Shipping interval (e.g., 1)",
      "shipping_interval_unit": "Shipping interval unit (e.g., month)",
      "trial_period": "Trial period (e.g., 14)",
      "trial_period_unit": "Trial period unit (e.g., day)",
      "price_adjustment_type": "Type of price adjustment (e.g., fixed)",
      "price_adjustment_amount": "Amount of price adjustment (e.g., 5.00)",
      "saved_on_subscription": "Amount saved on subscription",
      "saved_percentage_on_subscription": "Percentage saved on subscription"
    }
  },
  "all_products <Array>": {
    "title": "Product title",
    "description": "Product description",
    "price": "Product display price",
    "image": "Product image url",
    "image_url": "Product image url",
    "url": "Product url",
    "short_description": "Product short description",
    "feature_text": "Product feature text",
    "tags": "List of product tag names",
    "options_with_values <Array>": {
      "option_id": "Option ID",
      "name": "Name of the option",
      "selected_value": "Selected value of the option",
      "values <Array>": {
        "id": "Value ID",
        "name": "Name of the value",
        "selected": "Boolean to check if the value is selected"
      }
    }
  },
  "current_user_token": "sample",
  "shop_path": "Affiliate shop path URL",
  "title": "Product Title (deprecated. use product.title)",
  "introduction": "Short Description of the product (deprecated. use product.short_description)",
  "description": "Description of the product (deprecated. use product.description)",
  "feature_text": "Features of the product (deprecated. use product.feature_text)",
  "selected_variant_id": "Variant ID (deprecated. use product.selected_or_first_available_variant.id)",
  "subscription_only": "Boolean to check if subscription only (deprecated. use product.subscription_only)",
  "allow_subscription": "Boolean to check if allows subscription (deprecated. use product.allow_subscription)",
  "limited_stock": "Boolean if limited stock is applicable (deprecated. no direct replacement)",
  "buyable_quantity": "Quantity available to buy (deprecated. no direct replacement)",
  "subscription_price": "Subscription display price (deprecated. use product.subscription_price)",
  "price": "Product display price (deprecated. use product.price)",
  "unit_price": "Unit price (deprecated. use product.unit_price)",
  "unit_subscription_price": "Unit subscription price (deprecated. use product.unit_subscription_price)",
  "saved_percentage_on_subscription": "Saved percentage on subscription (deprecated. use product.saved_percentage_on_subscription)",
  "subscription_label_text": "Subscription label text (deprecated. use product.subscription_label_text)",
  "shop_path": "Affiliate shop path URL (deprecated. use global shop_path or product.url)",
  "thumbnail_image": "Product thumbnail image (deprecated. use product.featured_media.src)",
  "out_of_stock": "Boolean if product is out of stock (deprecated. use product.out_of_stock)",
  "options_available": "Boolean to check if options are available (deprecated. use product.options_available)",
  "available_for_country": "Boolean to check if available for country (deprecated. use product.available_for_country)",
  "active": "Boolean to check if active (deprecated. use product.active)",
  "external_url": "External product URL if redirectable (deprecated. use product.external_url)",
  "available_values": "Product options with values (deprecated. use product.options_with_values)",
  "images": "Product images (deprecated. use product.images)",
  "ratings": "Product average rating (deprecated. use product.ratings)",
  "reviews": "Product reviews (deprecated. use product.reviews)",
  "recommendations": "Product recommendations (deprecated. use product.recommendations)"
}

Shop/Collection template

{
  "collection": {
    "all_products_count": "Total number of products",
    "products_count": "Number of products in current page",
    "filters <Array>": {
      "active_values": "List of active values",
      "inactive_values": "List of inactive values",
      "label": "Filter label",
      "presentation": "Filter presentation",
      "operator": "Filter operator (always OR)",
      "param_name": "Param name for the filter",
      "type": "Type of filter (always list)",
      "url_to_remove": "URL to remove filter",
      "values <Array>": {
        "active": "Boolean to check if the filter is selected",
        "label": "Value label",
        "param_name": "Value param name",
        "value": "value",
        "url_to_add": "URL to add filter value",
        "url_to_remove": "URL to remove filter value",
        "image": "Swatch image URL (currently nil)",
        "swatch": "Swatch value (currently nil)",
        "count": "Count of items for this value"
      }
    },
    "sort_options <Array>": { 
      "name": "Sort name", 
      "value": "Sort param value" 
    },
    "products <Array>": "List of products"
  },
  "pagination": {
    "total_count": "Total number of products",
    "values": "Pagination values",
    "selected": "Selected pagination value",
    "current_page": "Current page number",
    "per_page": "Number of products per page",
    "pagination_html": "Pagination links html"
  },
  "url": "Affiliate shop path URL",
  "search_query": "Search query string from filters",
  "sorted_by": "Currently selected sort value",
  "options <Array>": {
    "title": "Option name",
    "values <Array>": {
      "id": "Option value ID",
      "presentation": "Option value presentation",
      "selected": "Boolean to check if value is selected"
    }
  },
  "categories <Array>": {
    "title": "Category title",
    "id": "Category ID",
    "count": "Number of products in category",
    "selected": "Boolean to check if category is selected"
  },
  "price_ranges <Array>": {
    "lower_range": "Lower price range value",
    "upper_range": "Upper price range value",
    "lower_range_display": "Display price for lower range",
    "upper_range_display": "Display price for upper range",
    "selected": "Boolean to check if price range is selected"
  }
}

Collection object (used by multiple templates)

{
  "collection": {
    "id": "Collection ID",
    "url": "Collection URL",
    "title": "Collection title",
    "description": "Collection description",
    "handle": "Collection handle",
    "image": "Collection image URL",
    "products": "Products in the collection"
  }
}

Home template

{
  "base_url": "Base url",
  "logo_url": "Logo url",
  "shop_url": "Shop page url",
  "products_pagination": {
    "total_count": "Total number of products",
    "values": "Pagination values",
    "selected": "Selected pagination value",
    "current_page": "Current page number. Can be updated using params 'products_page'",
    "per_page": "Number of products per page. Can be updated using params 'products_per_page'"
  },
  "enrollment_packs <Array>": {
    "enrollment_pack": {
      "id": "Enrollment pack id",
      "title": "Enrollment pack title",
      "images_array <Array>": "Array of image urls",
      "description": "Description of the enrollment pack",
      "membership_products <Array>": {
        "title": "Product title",
        "price": "Prduct display price",
        "cv": "Product display cv",
        "options_with_values <Array>": {
          "option_id": "Option ID",
          "name": "Name of the option",
          "selected_value": "Selected value of the option",
          "values <Array>": {
            "id": "Value ID",
            "name": "Name of the value",
            "selected": "Boolean to check if the value is selected"
          }
        }
      },
      "subscription_products <Array>": {
        "title": "Product title",
        "price": "Prduct display price",
        "cv": "Product display cv",
        "image": "Subscription product image url (thumbnail)",
        "learn_more_path": "Learn more path",
        "options_with_values <Array>": {
          "option_id": "Option ID",
          "name": "Name of the option",
          "selected_value": "Selected value of the option",
          "values <Array>": {
            "id": "Value ID",
            "name": "Name of the value",
            "selected": "Boolean to check if the value is selected"
          }
        }
      },
      "membership_after_one_month": "Boolean to check if membership is after one month",
      "first_payment_date": "First payment date",
      "agreements <Array>": {
        "id": "Agreement ID",
        "title": "Agreement title",
        "description": "Agreement description",
        "required": "Boolean to check if the agreement is required"
      }
    }
  }
}

Join template

{
  "url": "URL to the join page",
  "collection": {
    "all_enrollment_packs_count": "Total number of enrollment packs",
    "enrollment_packs_count": "Number of enrollment packs in current page",
    "enrollment_packs <Array>": {
      "id": "Enrollment pack id",
      "url": "URL to the enrollment pack",
      "title": "Enrollment pack title",
      "images_array <Array>": "Array of image urls",
      "description": "Description of the enrollment pack",
      "membership_products <Array>": {
        "title": "Product title",
        "price": "Prduct display price",
        "cv": "Product display cv",
        "options_with_values <Array>": {
          "option_id": "Option ID",
          "name": "Name of the option",
          "selected_value": "Selected value of the option",
          "values <Array>": {
            "id": "Value ID",
            "name": "Name of the value",
            "selected": "Boolean to check if the value is selected"
          }
        }
      },
      "subscription_products <Array>": {
        "title": "Product title",
        "price": "Prduct display price",
        "cv": "Product display cv",
        "image": "Subscription product image url",
        "learn_more_path": "Learn more path",
        "options_with_values <Array>": {
          "option_id": "Option ID",
          "name": "Name of the option",
          "selected_value": "Selected value of the option",
          "values <Array>": {
            "id": "Value ID",
            "name": "Name of the value",
            "selected": "Boolean to check if the value is selected"
          }
        }
      },
      "membership_after_one_month": "Boolean to check if membership is after one month",
      "first_payment_date": "First payment date",
      "agreements <Array>": {
        "id": "Agreement ID",
        "title": "Agreement title",
        "description": "Agreement description",
        "required": "Boolean to check if the agreement is required"
      }
    }
  },
  "search_query": "Search query string from filters",
  "sorted_by": "Currently selected sort value",
  "pagination": {
    "total_count": "Total number of enrollment packs",
    "values": "Pagination values",
    "selected": "Selected pagination value",
    "current_page": "Current page number",
    "per_page": "Number of enrollment packs per page",
    "pagination_html": "Pagination links html"
  }
}

Media template

{
  "id": "Medium id",
  "title": "Medium title",
  "kind": "Medium kind",
  "description": "Medium description",
  "poster": "Medium poster",
  "embed_url": "Embed url",
  "video_url": "Video url",
  "pdf_url": "Pdf url",
  "image_url": "Image url",
  "powerpoint_url": "Powerpoint url",
  "cta_url": "Cta url",
  "cta_button_text": "Cta button text",
  "comment_submit_url": "Comment submit url",
  "display_comments": "Boolean to check if comments are displayed",
  "comment_visibility": "Comment visibility",
  "contact": {
    "full_name": "Contact full name",
    "id": "Contact id",
    "email": "Contact email",
    "phone": "Contact phone"
  },
  "comments <Array>": {
    "id": "Comment id",
    "name": "Commentor name",
    "initials": "Commentor initials",
    "created_at": "Comment created at",
    "body": "Comment body"
  },
  "display_shop": "Boolean to check if shop should be displayed",
  "shop_path": "Shop path",
  "learn_more_path": "Learn more path",
  "lead_captureable": "Boolean to check if lead capture is enabled",
  "visitable_on_click": "Boolean to check if CTA is visitable on click",
  "social_media": {
    "facebook": "Facebook URL",
    "twitter": "Twitter URL",
    "instagram": "Instagram URL",
    "pinterest": "Pinterest URL",
    "youtube": "Youtube URL"
  },
  "video_status_url": "Url to update video status",
  "video_shopping_enabled": "Boolean to check if video shopping is enabled"
}

Enrollment Pack template

{
  "enrollment_pack": {
    "id": "Enrollment pack id",
    "title": "Enrollment pack title",
    "images_array <Array>": "Array of image urls",
    "description": "Description of the enrollment pack",
    "membership_products <Array>": {
      "title": "Product title",
      "price": "Prduct display price",
      "cv": "Product display cv",
      "options_with_values <Array>": {
        "option_id": "Option ID",
        "name": "Name of the option",
        "selected_value": "Selected value of the option",
        "values <Array>": {
          "id": "Value ID",
          "name": "Name of the value",
          "selected": "Boolean to check if the value is selected"
        }
      }
    },
    "subscription_products <Array>": {
      "title": "Product title",
      "price": "Prduct display price",
      "cv": "Product display cv",
      "image": "Subscription product image url",
      "learn_more_path": "Learn more path",
      "options_with_values <Array>": {
        "option_id": "Option ID",
        "name": "Name of the option",
        "selected_value": "Selected value of the option",
        "values <Array>": {
          "id": "Value ID",
          "name": "Name of the value",
          "selected": "Boolean to check if the value is selected"
        }
      }
    },
    "membership_after_one_month": "Boolean to check if membership is after one month",
    "first_payment_date": "First payment date",
    "agreements <Array>": {
      "id": "Agreement ID",
      "title": "Agreement title",
      "description": "Agreement description",
      "required": "Boolean to check if the agreement is required"
    }
  }
}

Library template

{
  "id": "Library id",
  "title": "Library title",
  "library_items <Array>": {
    "id": "Library item id",
    "type": "Library item type",
    "title": "Library item title",
    "description": "Library item description",
    "image": "Library item image",
    "url": "Library item url",
    "display_price": "Product display price. Only for product or enrollment_pack type",
    "price": "Product price. Only for product type",
    "product": "Product details. Only for product type",
    "enrollment_pack": "Enrollment pack details. Only for enrollment pack type",
    "kind": "Medium kind. Only for medium type",
    "video_url": "Medium video url. Only for medium type",
    "pdf_url": "Medium pdf url. Only for medium type",
    "image_url": "Medium image url. Only for medium type",
    "powerpoint_url": "Medium powerpoint url. Only for medium type"
  },
  "social_media": {
    "facebook": "Facebook URL",
    "twitter": "Twitter URL",
    "instagram": "Instagram URL",
    "pinterest": "Pinterest URL",
    "youtube": "Youtube URL"
  },
  "active_product_ids": "List of active product ids",
  "comment_submit_url": "Url to submit comments",
  "contact": {
    "full_name": "Contact full name",
    "id": "Contact id",
    "email": "Contact email",
    "phone": "Contact phone"
  },
  "comments <Array>": {
    "id": "Comment id",
    "name": "Commentor name",
    "initials": "Commentor initials",
    "created_at": "Comment created at",
    "body": "Comment body"
  }
}

My Site template

{
  "fluid_affiliate": {
    "name": "Full name of the affiliate (fluid_affiliate.full_name)",
    "bio": "Bio of the affiliate (fluid_affiliate.bio)",
    "image": "Avatar URL, 70 × 70 px (fluid_user.image_transformations('n-avatar_70') or fallback)",
    "facebook_url": "Facebook profile URL or null",
    "twitter_url": "Twitter profile URL or null",
    "instagram_url": "Instagram profile URL or null",
    "linkedin_url": "LinkedIn profile URL or null",
    "youtube_url": "YouTube channel URL or null",
    "tiktok_url": "TikTok profile URL or null",
    "pinterest_url": "Pinterest profile URL or null",
    "whatsapp_url": "WhatsApp link or null",
    "wechat_url": "WeChat link or null",
    "links <Array>": {
      "text": "Link title",
      "url": "Destination URL"
    },
    "my_site_displayables <Array>": {
      "id": "Favorite ID",
      "favoriteable_type": "\"Product\", \"EnrollmentPack\" or \"Medium\"",
      "favoriteable_id": "ID of the underlying record",
      "favoriteable": {
        "id": "Underlying record ID",
        "type": "\"product\", \"enrollmentpack\" or \"medium\" (lower-case)",
        "title": "Title of the item",
        "description": "Plain-text description",
        "image": "Card/cover image URL (n-mysite_card)",
        "display_price": "Display price string",
        "price": "Unit price (number, no currency)",
        "kind": "Medium kind (e.g., \"video\", \"pdf\", \"image\")",
        "video_url": "Video URL if kind == video",
        "pdf_url": "PDF URL if kind == pdf",
        "image_url": "Image URL if kind == image",
        "powerpoint_url": "PowerPoint URL if kind == ppt"
      }
    }
  }
}

Cart template

{
  "cart": {
    "id": "Cart Id",
    "cart_token": "Cart Token",
    "amount_total": "Total Amount",
    "amount_total_in_currency": "Total Amount with currency",
    "currency_code": "Currency Code",
    "currency_symbol": "Currency Symbol",
    "cv_total": "CV Total",
    "discount_total": "Discount Total",
    "discount_total_in_currency": "Discount Total with currency",
    "email": "Email",
    "enrollment_fee": "Enrollment Fee",
    "enrollment_fee_in_currency": "Enrollment Fee with currency",
    "items": [],
    "shipping_total": "Total Shipping",
    "shipping_total_for_display": "Total Shipping for display",
    "shipping_total_in_currency": "Total Shipping with currency",
    "sub_total": "Sub Total",
    "sub_total_in_currency": "Sub Total with currency",
    "tax_total": "Tax Total",
    "tax_total_in_currency": "Tax Total with currency",
    "checkout_url": "Checkout URL",
    "items <Array>": {
      "id": "Cart Item Id",
      "price": "Price",
      "price_in_currency": "Price with currency",
      "product": {
        "id": "Product Id",
        "image_url": "Image URL",
        "price": "Product Price",
        "price_in_currency": "Product Price with currency",
        "tax": "Tax",
        "tax_in_currency": "Tax with currency",
        "title": "Product Title"
      },
      "product_title": "Product Title",
      "quantity": "Item Quantity",
      "subscription_price": "Subscription Price",
      "subscription_price_in_currency": "Subscription Price with currency",
      "subscription_start": "Subscription Start",
      "tax": "Tax",
      "tax_in_currency": "Tax with currency",
      "variant_id": "Variant Id",
      "variant_image": "Variant Image",
      "variant_title": "Variant Title"
    }
  }
}