Conditions
Variant metafield conditions (Growth)
Target variants by custom metafield values — anything you store on a variant beyond Shopify's defaults.
Plan: Growth
Variant metafields are custom data fields you can attach to variants in Shopify (under Settings → Custom data). This condition lets your discount rules target variants based on those custom values.
How it works
Click Add condition → Variant metafield. You'll be asked for:
- Namespace and key — e.g.
custom.fabric_originorinventory.season - Operator —
is,is not,contains,exists - Value — what to match against
Common use cases
Discount by season tag stored as metafield
Metafield
custom.seasonis "spring-2026"
Discount by supplier (when not using vendor)
Metafield
custom.supplieris "ACME"
Discount items flagged as overstock
Metafield
inventory.overstockis "true"
Discount items with a specific certification
Metafield
custom.certificationscontains "organic"
Setting up metafields in Shopify
If you don't already have variant metafields configured:
- Open Shopify admin → Settings → Custom data → Variants
- Click Add definition
- Name your metafield, give it a namespace and key
- Choose a type (text, number, boolean, etc.)
- Save
You can then assign values to variants individually, in bulk via Shopify's variant editor, or via CSV import.
Operators
| Operator | What it matches |
|---|---|
is |
Metafield value exactly equals the value |
is not |
Metafield value does not equal the value |
contains |
Metafield value contains the substring |
exists |
Metafield is set on the variant (any value) |
Why this requires Growth
Metafield targeting unlocks the most flexible variant-level discounting. It's how merchants encode their own custom merchandising logic that isn't covered by tags, collections, or built-in fields. Available on the Growth plan. See Plans.
Limitations
- Only variant metafields are supported. Product-level metafields don't apply (use tags or collections instead).
- Metafield types that aren't text/number/boolean (e.g. references to other resources) aren't currently supported as condition values.