Skip to main content

WooCommerce Discount Rules & Dynamic Pricing: Product Selection Guide

In Discount Rules and Dynamic Pricing for WooCommerce, conditional logic operates on two powerful levels:

  1. Rule Conditions: Dictate when a campaign becomes active (e.g., Cart Subtotal > $100, Customer is Wholesale, Country is United States).
  2. 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โ€‹

The product validator inspects every candidate product against your defined parameters:

Product Selection Engine Hierarchy

  • 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:

FeatureProduct 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 AppearsItems, Buy Items, Get Items, or Filter panelsConditions panel at the bottom of the rule
EvaluatesIndividual products, variations, categories, tags, prices, stockEntire cart subtotals, customer roles, purchase history, checkout options
Backend ValidatorWCCS_Product_ValidatorWCCS_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.

  • 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.
  • 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).
  • 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: Date range, Date Time, Current (Day/Week/Month/Year), or relative lookback (Day, Week, Month, Year).
    • Date Pickers: After date / Before date.
  • 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 N products (e.g., Top 5 best sellers).
  • 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 N items.
  • 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.
  • 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.
  • 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.
  • 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.

๐Ÿ”ง Product Meta Field (product_meta_field)โ€‹

  • What it does: Inspects custom post metadata stored on the product or variation in the wp_postmeta table.
  • 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.
  • 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".

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 Brands taxonomy and target terms like Nike, Adidas, Puma.
    • Designer / Collection Sales: Target items in the Summer 2026 Collection.

๐Ÿง  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" AND Product is on sale = "No".
    • Result: Only full-priced Apparel qualifies (protecting sale items from double discounts).
  • Across Groups (+ OR New Group): A product qualifies if it matches any group (OR logic).
    • Example: Group 1: Categories in list = "Shoes" OR Group 2: Products have tags = "clearance".
    • Result: Items from either the Shoes category or tagged with "clearance" qualify.

โšก 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
  • 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
  • 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
  • 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.


Try it Live & Explore PRO

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.