WooCommerce Discount Rules & Dynamic Pricing: Product Selection Guide
In Discount Rules and Dynamic Pricing for WooCommerce, conditional logic operates on two powerful levels:
- Rule Conditions: Dictate when a campaign becomes active (e.g., Cart Subtotal > $100, Customer is Wholesale, Country is United States).
- Product Selection Conditions: Dictate which specific products inside the store or cart qualify to receive the discount, trigger a BOGO offer, or serve as a free promotional gift.
Whenever you configure Items, Buy / Get, or Product Filters across simple discounts, tiered pricing, volume breaks, or mix-and-match bundles, you use the Product Selection Engine.
This comprehensive reference covers every product selection condition, setting, operator, and dynamic segment available in the plugin.
๐ Table of Contentsโ
- How Product Selection Works
- Product Selection vs. Rule Conditions
- 1. Products Group
- 2. Dynamic Segments & Smart Insights
- 3. Product Properties Group
- 4. Product Categories Group
- 5. Custom Product Taxonomies
- Multi-Tier Product Filtering (AND vs. OR)
- Operator & Parameter Reference
- Real-World E-Commerce Strategy Examples
- Frequently Asked Questions (FAQ)
- SEO Keywords
โ๏ธ How Product Selection Worksโ
The product validator inspects every candidate product against your defined parameters:
- Identification: Targets items by ID, variation SKU, category, tag, or attribute.
- Properties: Filters items dynamically by live inventory level, regular price, display price, or custom post meta.
- Smart Recommendations: Dynamically queries best-sellers, recently viewed items, or AI-style personalized recommendations based on the customer's cart or purchase history.
โ๏ธ Product Selection vs. Rule Conditionsโ
Understanding the distinction between these two systems ensures optimal promotional setup:
| Feature | Product Selection Conditions (ProductsSelect) | Rule Conditions (Condition.vue) |
|---|---|---|
| Primary Question | "Which products get discounted or count toward the deal?" | "Does this customer/cart qualify for the promotion right now?" |
| Where It Appears | Items, Buy Items, Get Items, or Filter panels | Conditions panel at the bottom of the rule |
| Evaluates | Individual products, variations, categories, tags, prices, stock | Entire cart subtotals, customer roles, purchase history, checkout options |
| Backend Validator | WCCS_Product_Validator | WCCS_Condition_Validator |
1. Products Groupโ
The foundational product selector allows you to include or exclude items by catalog relationships.
๐ All Products (all_products)โ
- What it does: Selects every single product in your WooCommerce catalog without restriction.
- Best For: Storewide sales, Black Friday sitewide promotions, universal percentage discounts.
- Pro Tip: Combine with rule-level conditions (such as User Role = Wholesale) to offer sitewide discounts exclusively to specific customer segments.
๐ฏ Products in List (products_in_list)โ
- What it does: Targets specific, hand-picked individual products.
- Available Settings: AJAX search by product name, SKU, or ID with multi-select support.
- Best For: Hero product discounts, clearance pushes on specific items, or featured product spotlights.
๐ซ Products Not in List (products_not_in_list)โ
- What it does: Applies the discount to all catalog products except the ones you explicitly list.
- Best For: Running a storewide promotion while protecting margins on newly released flagship products or price-controlled brand items.
๐จ Product Variations in List (product_variations_in_list)โ
- What it does: Targets specific individual variation SKUs (e.g., T-Shirt - Navy / XXL, Running Shoes - Size 11).
- Available Settings: AJAX variation search supporting multi-select.
- Best For: Clearing out overstocked sizes or slow-moving colors without having to discount the entire parent variable product.
โ Product Variations Not in List (product_variations_not_in_list)โ
- What it does: Discounts all variations of a variable product except the specific variations you blacklist.
- Best For: Discounting standard inventory while excluding high-cost custom materials or premium sizes.
๐ท๏ธ Discounted Products (discounted_products)โ
- What it does: Matches products that are already receiving promotional pricing through other active discount rules.
- Best For: Stacking incentives, such as giving an extra 5% off items already on promotion for VIP loyalty club members.
๐งต Product Attributes (product_attributes)โ
- What it does: Selects products matching specific global product attributes and terms (e.g., Color: Blue, Size: Large, Material: Leather).
- Available Settings:
- Attributes Picker: Search and select attribute terms.
- Union Type:
At least one of,All of,Only,None of.
- Validation Logic: Evaluates both parent product attributes and individual variation attributes.
- Best For: Category-agnostic promotions (e.g., "Take 20% off all Leather goods across Shoes, Bags, and Belts").
๐ท๏ธ Products Have Tags (products_have_tags)โ
- What it does: Matches products assigned one or more specific WooCommerce product tags.
- Available Settings:
- Tags Picker: Multi-select tag search.
- Union Type:
At least one of,All of,Only,None of.
- Best For: Seasonal tags (e.g.,
summer-sale,holiday-gift,clearance-2026) that span across multiple diverse categories.
2. Dynamic Segments & Smart Insightsโ
Dynamic segments use real-time store analytics, customer shopping behavior, and sales reporting to automatically select products without manual curation.
โญ Featured Products (featured_products)โ
- What it does: Dynamically selects products marked with WooCommerce's native "Featured" star.
- Available Settings:
- Limit: Maximum number of featured products to include (e.g.,
12). Leave blank for all.
- Limit: Maximum number of featured products to include (e.g.,
- Best For: Automatic discounts on curated homepage highlights.
๐ท๏ธ On-Sale Products (onsale_products)โ
- What it does: Matches products that currently have an active WooCommerce sale price (
_sale_price). - Available Settings:
- Limit: Maximum number of matching products.
- Best For: Extra clearance incentives (e.g., "Take an extra 10% off the Sale rack").
๐ Top Rated Products (top_rated_products)โ
- What it does: Dynamically pulls the highest-rated products based on customer reviews.
- Available Settings:
- Limit: Number of top-rated items to include (default:
12).
- Limit: Number of top-rated items to include (default:
- Best For: Social proof campaigns: "Reward yourself with 15% off our Top-Rated customer favorites!"
๐๏ธ Recently Viewed Products (recently_viewed_products)โ
- What it does: Dynamically targets products that the currently browsing shopper has viewed during their active shopping session.
- Available Settings:
- Limit: Maximum number of recently viewed items.
- Best For: High-converting session abandonment recovery: automatically discount items the customer showed interest in.
๐
Products Added (products_added)โ
- What it does: Selects new arrivals based on product publication date.
- Available Settings:
- Time Type:
Daterange,Date Time,Current (Day/Week/Month/Year), or relative lookback (Day,Week,Month,Year). - Date Pickers:
Afterdate /Beforedate.
- Time Type:
- Best For: New arrival launch discounts (e.g., "10% off all products added this week").
๐ฅ Top Seller Products (top_seller_products)โ
- What it does: Automatically queries WooCommerce sales reports and discounts your store's best-selling products.
- Available Settings:
- Period:
Today,This week,This month,Last month,This year. - Limit: Top
Nproducts (e.g., Top 5 best sellers).
- Period:
- Best For: Momentum sales: "Shop our Top 5 Best Sellers this week with an exclusive 15% discount."
๐ Top Earner Products (top_earner_products)โ
- What it does: Targets products generating the highest gross sales revenue over a designated timeframe.
- Available Settings:
- Period:
Today,This week,This month,Last month,This year. - Limit: Top
Nitems.
- Period:
- Best For: Rewarding high-value catalog drivers.
๐ Top Free Products (top_free_products)โ
- What it does: Targets top promotional zero-cost freebies or sample items.
- Available Settings:
- Period: Time period filter.
- Limit: Maximum items.
- Best For: Free gift with purchase campaigns.
๐ค Similar Products to Customer Bought Products (similar_products_to_customer_bought_products)โ
- What it does: Personalized AI-style recommendation engine. Inspects the logged-in customer's past orders, finds related products, and discounts those recommendations.
- Available Settings:
- Limit: Number of related products to match.
- Best For: Automated personalized cross-selling: "Exclusive 20% off items you'll love based on your past orders."
๐ Similar Products to Customer Cart Products (similar_products_to_customer_cart_products)โ
- What it does: Real-time cart upsell engine. Identifies related products to what the shopper currently has in their cart and offers them at a promotional rate.
- Available Settings:
- Limit: Number of related products.
- Best For: Impulse buy boosters: "Add a matching accessory to your cart for 25% off!"
3. Product Properties Groupโ
Filter items based on their live price, inventory count, sale status, or custom metadata.
๐ฐ Product Regular Price (product_regular_price)โ
- What it does: Evaluates the product's regular non-sale price against a threshold.
- Available Settings:
- Math Operation:
<,<=,>,>=,==,!=. - Value: Target price amount.
- Math Operation:
- Best For: High-ticket item promotions: "Save $50 on any item with regular price > $200."
๐ท๏ธ Product Display Price (product_display_price)โ
- What it does: Evaluates the live calculated price shown on the frontend (including current taxes and existing active discounts).
- Available Settings:
- Math Operation:
<,<=,>,>=,==,!=. - Value: Target display price.
- Math Operation:
- Best For: Price bracket promotions: discount only products currently displaying below $25.
๐ท๏ธ Product Is On Sale (product_is_on_sale)โ
- What it does: Checks whether the product has an active sale price.
- Available Settings:
Yes: Only products currently on sale.No: Only products that are not on sale.
- Best For: Protecting profit margins: prevent discounts from applying to items that are already marked down by setting
Product is on sale = No.
๐ฆ Product Stock Quantity (product_stock_quantity)โ
- What it does: Evaluates the product or variation's current stock level (
get_stock_quantity()). - Available Settings:
- Math Operation:
<,<=,>,>=,==,!=. - Value: Inventory threshold integer.
- Math Operation:
- Best For:
- Overstock Liquidation: Apply 25% off when
Product stock quantity >= 50. - Low Stock Flash Sale: Clearance discounts on remaining inventory when
Product stock quantity <= 3.
- Overstock Liquidation: Apply 25% off when
๐ง Product Meta Field (product_meta_field)โ
- What it does: Inspects custom post metadata stored on the product or variation in the
wp_postmetatable. - Available Settings:
- Meta Field Key: The custom field key (e.g.,
_supplier,custom_badge,_weight,warehouse_location,condition). - Condition Operators:
Empty,Is not empty,Contains,Does not contain,Begins with,Ends with,Equal to,Equal to one in comma separated list,Not equal to,Not equal to all in comma separated list,Less than,Less equal to,Greater than,Greater equal to,Is checked,Is not checked. - Value: Target string or numeric comparison value.
- Meta Field Key: The custom field key (e.g.,
- Validation Logic: If meta data exists on a specific variation, the variation's meta is used; otherwise, it falls back to the parent product's meta.
- Best For:
- Custom supplier deals:
_supplier Equal to "Acme Corp". - Warehouse clearance:
warehouse_location Equal to "East Coast Depot". - Condition grades:
item_condition Equal to "Refurbished".
- Custom supplier deals:
4. Product Categories Groupโ
๐ Categories in List (categories_in_list)โ
- What it does: Targets any product belonging to the selected categories (including parent and child subcategories).
- Available Settings: Search and multi-select product categories.
- Best For: Category-wide promotions: "20% off all Shoes & Accessories."
๐ซ Categories Not in List (categories_not_in_list)โ
- What it does: Applies the discount to products from all categories except the excluded ones.
- Best For: Sitewide sales that exclude gift cards, luxury goods, or warranty categories.
5. Custom Product Taxonomiesโ
If your store uses custom product taxonomies (such as Brands, Authors, Collections, Vendors, or Designers), the plugin automatically exposes them:
๐ท๏ธ [Taxonomy Name] (taxonomy_{tax_name})โ
- What it does: Matches products assigned to specific terms of custom taxonomies.
- Available Settings:
- Terms Picker: Search and select terms from the custom taxonomy.
- Union Type:
At least one of,All of,Only,None of.
- Best For:
- Brand Promotions: Select
Brandstaxonomy and target terms likeNike, Adidas, Puma. - Designer / Collection Sales: Target items in the
Summer 2026 Collection.
- Brand Promotions: Select
๐ง Multi-Tier Product Filtering (AND vs. OR)โ
Like rule conditions, product selection supports complex logical combinations:
- Inside the Same Group (
+ And New Rule): A product must meet all criteria simultaneously (AND logic).- Example:
Categories in list = "Apparel"ANDProduct is on sale = "No". - Result: Only full-priced Apparel qualifies (protecting sale items from double discounts).
- Example:
- Across Groups (
+ OR New Group): A product qualifies if it matches any group (OR logic).- Example:
Group 1: Categories in list = "Shoes"ORGroup 2: Products have tags = "clearance". - Result: Items from either the Shoes category or tagged with "clearance" qualify.
- Example:
โก Operator & Parameter Referenceโ
Union Typesโ
Used for multi-term selections (attributes, tags, taxonomies):
- At least one of: Matches if the product has at least one of the selected terms.
- All of: Matches only if the product has every single selected term assigned.
- Only: Matches only if the product has exclusively the selected terms and no others.
- None of: Matches only if the product has none of the selected terms.
Math Operationsโ
Used for prices and stock counts (product_regular_price, product_display_price, product_stock_quantity):
<Less than<=Less equal to>Greater than>=Greater equal to==Equal to!=Not equal to
Meta Field Comparison Typesโ
Used for product_meta_field inspection:
- String matching:
Contains,Does not contain,Begins with,Ends with,Equal to,Not equal to. - List matching:
Equal to one in comma separated list,Not equal to all in comma separated list. - Numeric matching:
Less than,Less equal to,Greater than,Greater equal to. - State checks:
Empty,Is not empty,Is checked(1,yes,true,'on'),Is not checked.
๐ก Real-World E-Commerce Strategy Examplesโ
Scenario 1: Margin-Protected Category Saleโ
- Goal: Run a 20% discount on "Electronics", but do not discount items that already have a sale price.
- Product Filter Configuration:
- Condition 1:
Categories in listโElectronics - Condition 2:
+ And New RuleโProduct is on saleโNo
- Condition 1:
- Result: Only full-priced Electronics receive the 20% discount.
Scenario 2: Clearance Overstock Liquidationโ
- Goal: Give 30% off any warehouse items with excess inventory (> 50 units in stock) to free up storage.
- Product Filter Configuration:
- Condition 1:
Product stock quantityโGreater equal toโ50
- Condition 1:
- Result: High-inventory products automatically receive clearance pricing across the store.
Scenario 3: Real-Time Cart Upsell (AI-Style Recommendation)โ
- Goal: In a BOGO promotion, when a customer buys a camera, offer related accessories at 25% off.
- Get Items Configuration:
- Selector:
Similar products to customer cart products - Limit:
4
- Selector:
- Result: The plugin dynamically finds matching lenses, memory cards, and tripods based on the cart contents and applies the discount.
โ Frequently Asked Questions (FAQ)โ
Can I target specific sizes or colors without discounting the whole product?โ
Yes. Use Product variations in list (product_variations_in_list) to target only the specific variation SKUs (e.g., Size XXL or Color Blue) while leaving other variations at regular price.
How does "Similar products to customer cart products" know what is similar?โ
The validator queries WooCommerce's internal recommendation engine (wc_get_related_products), which looks at shared categories, tags, and product catalog cross-sells.
Can I filter products by custom fields created with ACF (Advanced Custom Fields)?โ
Yes. Select Product meta field (product_meta_field), enter the exact ACF field key in the Meta field key input, and choose the appropriate comparison operator.
What is the difference between "Products in list" and "Categories in list"?โ
"Products in list" targets specific individual items by name/ID, whereas "Categories in list" automatically includes all existing and future products assigned to the chosen categories.
Test product selection conditions on our Live Demo Website.
Upgrade to Discount Rules and Dynamic Pricing for WooCommerce PRO to unlock dynamic AI recommendations, custom taxonomy targeting, and real-time product property filters.
๐ SEO Keywordsโ
Primary Keywords: WooCommerce product selection conditions, WooCommerce dynamic pricing product filter, WooCommerce discount rules item conditions, WooCommerce category discount rules, product variations discount WooCommerce, dynamic product filtering WooCommerce.
Secondary Keywords: WooCommerce overstock discount, WooCommerce product meta discount, similar products discount WooCommerce, top seller discount WooCommerce, WooCommerce product attributes discount, target specific variations WooCommerce, exclude products from discount WooCommerce.