Product Discounts - Targeting Strategies
Advanced techniques for selecting which products receive discounts.Targeting Overview
Product discounts support multiple targeting strategies:- Direct Targeting: IDs, handles, vendors (simple, fast)
- Selector-Based: JMESPath/filters (flexible, powerful)
- Combination: Mix multiple strategies
Direct Targeting Methods
By Product Handle
Target specific products by URL-friendly handle:- Known product handles
- Small, specific product sets
- Performance-critical scenarios
By Variant ID
Most specific targeting method:- Specific sizes/colors
- Exact variant targeting
- Integration with external systems
By Vendor
All products from specific brands:- Brand-specific sales
- Vendor agreements
- Multi-brand discounts
By Variant Title
Target by size, color, or other options:- Size-specific discounts
- Color-based pricing
- Option-based sales
Selector-Based Targeting
Useselector parameter with JMESPath or filter syntax for complex queries.
Basic Selector
Collection-Based Selection
Target all items in a collection:- Query finds lines where product is in ‘sale’ collection
- Extracts line IDs
- Applies discount to those lines
Tag-Based Selection
Target products with specific tags:Price Range Selection
Target products in specific price range:Multiple Criteria Selection
Combine multiple conditions:Selector Syntax Reference
JMESPath Filtering
merchandise.product.handle == 'value': Exact matchmerchandise.product.vendor == 'Nike': Vendor matchmerchandise.priceV2.amount >=100“: Price comparisonmerchandise.product.tags[?@ == 'sale']: Array containsmerchandise.product.collections[?handle=='sale']: Nested array query
Custom Filter Syntax
Alternative to JMESPath:select(): Filter itemsmap(): Extract propertysum(): Aggregate values
Targeting Decision Guide
Performance Considerations
Fastest (use when possible)
variant_ids: Direct ID lookuphandles: Simple string matchvendors: Indexed field lookup
Moderate
selectorwith simple conditions: Single field filter
Slower (use when necessary)
selectorwith nested queries: Collection/tag traversalselectorwith multiple conditions: Complex logic
- Cache selector results in facts
- Use direct targeting when product set is known
- Test with realistic cart sizes
Advanced Patterns
Exclude Products
Target all except specific products:Metafield-Based Targeting
Target using custom metafields:Conditional Targeting
Different products based on customer:Next Steps
- Advanced Features - Dynamic values, quantity breaks, value_case
- Examples - Complete real-world configurations
- Facts System - Deep dive into selectors
