Building Product Filters for Precise Feed Control
Deviking Product Feeds Pro lets you control exactly which WooCommerce products are allowed into each feed.
Filtering is configured independently for every feed, so the same WooCommerce catalog can be used to create different exports for marketplaces, comparison engines, distributors, advertising platforms, or other integrations.
The filtering system has two levels:
- Quick Include / Exclude Filters for direct product, SKU, and category targeting
- Advanced Filter Groups for conditional rules using product data, attributes, taxonomies, custom fields, and other available sources
Quick filters are evaluated first. Advanced Filter Groups are then evaluated against the products that remain.
Open the Feed Filters
Go to:
Deviking Feeds → Feeds
Edit the feed you want to configure and open the Filters section.
You can use Quick Filters, Advanced Filter Groups, or both.
Quick Include / Exclude Filters
Quick Filters are designed for cases where you already know exactly which products, SKUs, or categories should be included or excluded.
Available controls include:
Include Product IDs
Exclude Product IDs
Include SKUs
Exclude SKUs
Include Category IDs
Exclude Category IDsThese filters are applied before the Advanced Filter Groups.
Include Specific Products
Use Include Product IDs when the feed should contain only selected products.
For example:
Include Product IDs:
125, 248, 510Only products matching those IDs remain eligible for the feed.
This is useful for:
- manually curated feeds;
- promotional product groups;
- testing feeds;
- feeds created for a specific partner;
- feeds containing a limited product range.
Exclude Specific Products
Use Exclude Product IDs when most of the catalog should remain available but specific products must be removed.
For example:
Exclude Product IDs:
112, 214, 309Those products are removed while the remaining eligible catalog continues through the filtering process.
When variation records are involved, product-ID filtering also recognizes the parent product ID where relevant.
Filter by SKU
You can also include or exclude products using exact WooCommerce SKUs.
Example:
Include SKUs:
ABC-100
ABC-101
ABC-102or:
Exclude SKUs:
TEST-001
SAMPLE-01
DISCONTINUED-25SKU filtering is useful when your external system already works with merchant SKUs rather than WordPress product IDs.
Filter by Category
Use category filters when an entire WooCommerce category should be included or excluded.
For example:
Include Category IDs:
24, 31can restrict the feed to the selected categories.
Alternatively:
Exclude Category IDs:
48, 52removes products assigned to those categories.
Deviking Product Feeds uses WooCommerce category IDs for these Quick Filters.
Advanced Filter Groups
For more complex requirements, use Advanced Filter Groups.
Advanced Filters use the same source system available throughout Deviking Product Feeds, allowing conditions to be created from product data rather than only IDs or categories.
A rule can evaluate values such as:
Current Price
Regular Price
Sale Price
Stock Status
Stock Quantity
SKU
Product Type
Categories
Tags
Attributes
Custom Fields / Meta
Custom Taxonomies
Dynamic AttributesThis makes it possible to define exactly which products qualify for a feed.
Include and Exclude Groups
Every Advanced Filter Group has a mode:
Include
Products must satisfy the configured Include logic to remain eligible.
Exclude
Any product matching an Exclude group is removed from the feed.
This keeps qualification rules and rejection rules separate.
Example: Include Only In-Stock Shoes
Create an Include Group:
Group Mode:
Include
Condition 1:
Category = Shoes
AND
Condition 2:
Stock Status = instockThe feed will keep products that satisfy both requirements.
Conceptually:
Shoes + In Stock
→ Included
Shoes + Out of Stock
→ Not Included
T-Shirts + In Stock
→ Not IncludedExample: Exclude a Brand
Create an Exclude Group:
Group Mode:
Exclude
Brand = Example BrandMatching products are removed.
All other products that passed the Include rules remain eligible.
Combining Include and Exclude Rules
A feed can use both types simultaneously.
For example:
INCLUDE GROUP
Category = Shoes
AND
Stock Status = instockand:
EXCLUDE GROUP
Brand = Example Brand
OR
SKU in list = TEST-1, TEST-2The result is:
In-stock Shoes
EXCEPT
products from Example Brand
or
products with TEST-1 / TEST-2 SKUsDeviking Product Feeds evaluates Include rules for eligibility and then uses Exclude groups as veto rules.
AND and OR Logic Inside a Group
Conditions inside an Advanced Filter Group can use:
ANDor:
ORAND
Every condition must match.
Example:
Stock Status = instock
AND
Current Price >= 50A product must be both in stock and priced at 50 or more.
OR
At least one condition must match.
Example:
Brand = Brand A
OR
Brand = Brand BProducts belonging to either brand satisfy the group.
Logic Between Include Groups
Multiple Include Groups can also be combined globally using AND or OR logic.
For example:
Include Group 1:
Category = Shoes
AND
Stock Status = instockInclude Group 2:
Current Price >= 50The relationship between those groups determines whether products must satisfy both groups or whether satisfying one group is enough.
Exclude groups work differently: a matching Exclude group acts as a veto and removes the product.
Available Comparison Operators
Advanced Filter conditions support operators including:
| Operator | Use |
|---|---|
| Equals | Exact match |
| Not equal | Value must differ |
| > | Greater than |
| >= | Greater than or equal |
| < | Less than |
| <= | Less than or equal |
| Contains | Text contains a value |
| Does not contain | Text does not contain a value |
| Starts with | Value starts with specified text |
| Ends with | Value ends with specified text |
| Is empty | Source has no value |
| Is not empty | Source contains a value |
| In list | Value matches one of several values |
| Not in list | Value does not match listed values |
Numeric operators are treated as numeric comparisons when the resolved source value is numeric.
Remove Out-of-Stock Products
Instead of a dedicated on/off switch, create an Exclude rule:
Group Mode:
Exclude
Source:
Stock Status
Operator:
Equals
Value:
outofstockProducts matching the condition are removed from the feed.
Remove Backordered Products
Create another Exclude rule:
Stock Status = onbackorderYou can place it in the same group using OR:
Stock Status = outofstock
OR
Stock Status = onbackorderThis removes both inventory states.
Filter by Stock Quantity
You can create numeric inventory rules.
For example, exclude products with fewer than five units:
Group Mode:
Exclude
Stock Quantity < 5Or keep only products with significant inventory:
Group Mode:
Include
Stock Quantity >= 10Filter by Price
Price-based rules can use the WooCommerce price sources available to the feed.
For example:
Include
Current Price >= 25or:
Exclude
Current Price > 1000You can combine price with other conditions:
Category = Accessories
AND
Current Price >= 20
AND
Stock Status = instockRemove Products Without a Price
Use:
Group Mode:
Exclude
Current Price
Is emptyYou can also create rules based on the numeric price when necessary, for example:
Current Price <= 0The correct rule depends on how missing or zero-price products are stored in your WooCommerce catalog.
Remove Products Without a Description
Create:
Group Mode:
Exclude
Description
Is emptyIf your feed uses Short Description instead, filter that source accordingly.
You can also combine multiple checks where needed.
Remove Products Without an Image
A similar rule can be created using the product image source:
Group Mode:
Exclude
Featured Image URL
Is emptyThis is useful for marketplaces where a valid product image is mandatory.
Filter by Product Attribute
WooCommerce attributes can be used in Advanced Filter conditions.
For example:
Color = Blackor:
Brand = Example Brandor:
Size In list S, M, LThe available attributes are discovered from the WooCommerce catalog and appear through the filter source system.
Filter by Custom Fields
Advanced Filters can also use detected product meta fields.
For example, if products contain:
_supplier
_gtin
_condition
_custom_labelthose values can be used as filter sources when available in the store.
Example:
meta:_supplier = Supplier AThis allows feeds to be created around information added by WooCommerce extensions or custom product integrations.
Include Only Products with Required Data
You can create an Include Group requiring several fields:
GTIN Is not empty
AND
Featured Image URL Is not empty
AND
Current Price > 0
AND
Stock Status = instockOnly products satisfying all of those conditions remain eligible.
This can be useful for destinations with strict required-field policies.
Filtering Variations
Filters can also be used when your feed exports variations.
For example, a parent product may have:
T-Shirt - Black / Small
Stock: 8
T-Shirt - Black / Medium
Stock: 0
T-Shirt - White / Small
Stock: 12With:
Product & Variation Mode:
Variations Onlyand:
Exclude:
Stock Status = outofstockthe out-of-stock variation can be removed while eligible variations remain.
Quick Product ID filtering also recognizes parent IDs where applicable, which is useful when working with variation-based feeds.
Only Exclude Groups
You do not need to create an Include Group.
If a feed contains only Exclude groups, Deviking starts with the normal eligible catalog and removes products that match those Exclude rules.
For example:
Exclude Group 1:
Stock Status = outofstockExclude Group 2:
Brand = Discontinued BrandExclude Group 3:
SKU Starts with TEST-Every product remains eligible unless one of these groups removes it.
Quick Filters and Advanced Filters Together
Quick Filters and Advanced Filter Groups can work together.
For example:
QUICK FILTER
Include Category IDs:
25, 26, 27followed by:
ADVANCED INCLUDE
Stock Status = instock
AND
Current Price >= 20and:
ADVANCED EXCLUDE
Brand = Example BrandThe feed first narrows the catalog using Quick Filters. Advanced rules then evaluate the remaining candidates.
Filtering Large Product Catalogs
Deviking Product Feeds Pro can optimize supported Advanced Filter rules before full WooCommerce product objects are loaded.
Exact Include conditions may reduce the initial candidate set, while query-safe Exclude conditions can eliminate products earlier in the generation process.
When a rule cannot safely be optimized at query level, it continues through the normal runtime filtering system instead. The runtime filter remains the final authority.
This allows restrictive filters to improve generation efficiency without changing the logical result of the feed.
Advanced Filter Diagnostics
When Advanced Filter diagnostics are enabled, the Logs can show information such as:
Catalog size
Include / Exclude group counts
Candidate products
Prefilter status
Exclude push-down status
Queried parent IDs
Final record count
Generation stage timingsA diagnostic status such as:
SKIPPEDor:
NOT_APPLIEDdoes not automatically indicate an error. It can simply mean that the optimizer chose the normal runtime path for that rule.
Preview Your Filtered Feed
After creating or changing filters:
- Save the feed
- Run Preview
- Check representative products
- Run Validate Feed
- Generate the feed when the result is correct
Remember that Generate Feed uses the last saved configuration. If you have unsaved changes, use Save & Generate instead.
Example: Marketplace-Ready Product Filter
A practical feed might use:
INCLUDE GROUP
Category = Shoes
AND
Stock Status = instock
AND
Current Price > 0
AND
Featured Image URL Is not emptywith:
EXCLUDE GROUP
Brand = Test Brand
OR
SKU Starts with TEST-The resulting feed contains eligible in-stock shoes with a valid price and image while removing the unwanted brand and test products.
Recommended Workflow
For most feeds:
Choose Product & Variation Mode → Add Quick Filters if needed → Build Include Groups → Add Exclude Groups → Preview → Validate → Save & Generate
Start with the simplest rules that satisfy the destination requirements and add Advanced Filter Groups only when more precise product selection is needed.