Skip to main content
Every discount in Discount Kit Live is represented as a DiscountSummary metaobject with these fields:

Core Fields

discount_title

Type: string The customer-facing discount name.
{{ discount.discount_title }}
{%- comment -%} "Buy More Save More" {%- endcomment -%}

discount_type

Type: string The type of discount.
ValueDescription
PRODUCT_VOLUMEVolume/tiered pricing
ORDER_GOALCart-wide order discounts
GWPGift with purchase
BXGYBuy X Get Y (native Shopify)
BASICBasic discount (native Shopify)
FREE_SHIPPINGFree shipping (native Shopify)
SHIPPINGShipping discounts
CUSTOMCustom discount logic
UNKNOWN_APPDiscount from another app
{% if discount.discount_type == 'PRODUCT_VOLUME' %}
  <span>Volume Discount</span>
{% endif %}

Threshold Fields

What customers need to buy to qualify.

threshold_type

Type: string How the threshold is measured: QUANTITY, AMOUNT, or NONE
{% if discount.threshold_type == 'QUANTITY' %}
  <p>Buy {{ discount.minimum_threshold_value | floor }} items</p>
{% elsif discount.threshold_type == 'AMOUNT' %}
  <p>Spend {{ discount.minimum_threshold_value | divided_by: 100.0 | money }}</p>
{% endif %}

minimum_threshold_value

Type: number Minimum quantity or amount (in cents) to qualify.
{{ discount.minimum_threshold_value }}

threshold_product_references

Type: list.product_reference Products that count toward the threshold.
{% for product_ref in discount.threshold_product_references %}
  {{ product_ref.title }}
{% endfor %}

threshold_collection_references

Type: list.collection_reference Collections that count toward the threshold.
{% for collection_ref in discount.threshold_collection_references %}
  {{ collection_ref.title }}
{% endfor %}

Reward Fields

What discount customers receive.

reward_type

Type: string Discount type: PERCENTAGE or FIXED_AMOUNT
{% if discount.reward_type == 'PERCENTAGE' %}
  {{ discount.maximum_reward_value }}% OFF
{% elsif discount.reward_type == 'FIXED_AMOUNT' %}
  ${{ discount.maximum_reward_value | divided_by: 100.0 }} OFF
{% endif %}

minimum_reward_value

Type: number Lowest discount value (first tier).

maximum_reward_value

Type: number Highest discount value (top tier). Most commonly used field!
<div class="badge">
  {{ discount.maximum_reward_value }}% OFF
</div>

reward_product_references

Type: list.product_reference Products that receive the discount.

reward_collection_references

Type: list.collection_reference Collections that receive the discount.

Targeting Fields

Who can use it and where it applies.

included_customer_tags

Type: list.single_line_text_field Customer tags that qualify. Empty = all customers.
{% if discount.included_customer_tags.size > 0 %}
  {% assign first_tag = discount.included_customer_tags | first %}
  {% if customer.tags contains first_tag %}
    <span class="vip-badge">VIP ONLY</span>
  {% endif %}
{% endif %}

excluded_customer_tags

Type: list.single_line_text_field Customer tags that don’t qualify.

included_markets

Type: list.single_line_text_field Market handles where this applies. Empty = all markets.
{% if discount.included_markets.size > 0 %}
  <p>Available in: {{ discount.included_markets | join: ', ' | upcase }}</p>
{% endif %}

excluded_markets

Type: list.single_line_text_field Markets where this doesn’t apply.

currency

Type: string Specific currency code (e.g., USD). Empty = all currencies.
{% if discount.currency %}
  <small>{{ discount.currency }} only</small>
{% endif %}

Advanced Fields

config

Type: json Complete discount configuration including tiers and rules. Structure varies by discount type.
{% if discount.config %}
  {% assign config_data = discount.config.value %}
  {%- comment -%} Use with caution - structure varies {%- endcomment -%}
{% endif %}

TypeScript Type

interface DiscountSummary {
  // Core
  discount_title: string
  discount_type: 'PRODUCT_VOLUME' | 'ORDER_GOAL' | 'GWP' | 'BXGY' | 'BASIC' | 'FREE_SHIPPING' | 'SHIPPING' | 'CUSTOM' | 'UNKNOWN_APP'

  // Threshold
  threshold_type: 'QUANTITY' | 'AMOUNT' | 'NONE'
  minimum_threshold_value: number
  threshold_product_references: Array<{ id: string; title: string; handle: string }>
  threshold_collection_references: Array<{ id: string; title: string; handle: string }>

  // Reward
  reward_type: 'PERCENTAGE' | 'FIXED_AMOUNT'
  minimum_reward_value: number
  maximum_reward_value: number
  reward_product_references: Array<{ id: string; title: string; handle: string }>
  reward_collection_references: Array<{ id: string; title: string; handle: string }>

  // Targeting
  included_customer_tags: string[]
  excluded_customer_tags: string[]
  included_markets: string[]
  excluded_markets: string[]
  currency: string | null

  // Advanced
  config: Record<string, any>
}

Next Steps