Product filters: complete guide
Product filters decide which Shopify items appear in a FeedForge feed. They keep items that match the conditions you choose. This guide covers the ready-made in-stock filter, custom filters, all available fields, and how to check the result in an exported file.
Contents
Start with the in-stock filter
Create and assign a custom filter
Understand what a filter keeps
Combine conditions and filters
Stock and availability explained
Product fields
Variant fields
Comparisons and empty values
Check a filter against an export
Change, remove, and troubleshoot filters
1. Start with the in-stock filter
Use Keep in-stock items when you want variants with positive inventory quantity.
Open Product filters in FeedForge.
Select View / assign beside Keep in-stock items.
Check that the filter is Active and that its current rule is the one you want.
Under Apply to feeds, select the feeds that should use it.
Select Save assignments. Regenerate affected feeds to update their published files.
The default rule is Variant: Quantity greater than 0. It excludes variants with quantity 0, negative quantity, or no quantity value. It also excludes zero-quantity variants that Shopify allows customers to backorder.
The in-stock filter is built in. You can view its conditions and change its feed assignments, but only FeedForge administrators can edit its definition or active state. A built-in filter is not assigned to a feed automatically. Check its current rule in the app because an administrator may update it.
2. Create and assign a custom filter
Open Product filters and select Create filter.
Enter a name. Leave Active checked if the filter should affect assigned feeds now.
Choose a field from the Product or Variant group, choose a comparison, and enter a value if needed.
Add more conditions or groups if needed. The editor shows whether conditions use AND or OR.
Under Apply to feeds, choose the feeds that should use the filter and save.
If FeedForge offers to regenerate affected feeds, choose Regenerate feeds to update their files now or Later to use the saved filter at their next generation.
You can also select a saved filter from the Product filters section while creating or editing a feed. Manage filters opens the filter page. If the feed form has unsaved changes, FeedForge asks you to discard them before leaving; save the feed first if you want to keep those changes.
A filter affects a feed only when it is active and assigned to that feed. An inactive custom filter may stay assigned but does not affect the export.
3. Understand what a filter keeps
FeedForge checks each variant together with its parent product. A Product field, such as Vendor, has the same value for every variant of that product. A Variant field, such as SKU or Quantity, may keep one variant and remove another. The field groups tell you where values come from; they do not choose which type of row the feed exports.
A product stays if at least one of its variants remains. If none remain, the product is removed. Filtering happens before Feed Content chooses the rows to export and before the feed's item limit is applied.
For example, a shirt with three variants may keep only its blue variant after filtering. A Products Only feed still has one row for the shirt; a Variants Only feed has only the blue variant row. A product row does not mean all of the product's original variants passed.
4. Combine conditions and filters
Within one filter, All conditions (AND) means every condition must match. Any condition (OR) means at least one must match. Add a group to combine them, for example:
Product: Vendor equals Acme
AND
(Variant: Color equals Blue OR Variant: Color equals Green)
This keeps only blue or green variants of Acme products.
If you assign several active filters to one feed, a variant must match every filter. For example, a Vendor = Acme filter and a Quantity > 0 filter together keep only Acme variants with positive quantity. To express alternatives between conditions, use an OR group inside one filter instead of placing the alternatives in separate filters.
5. Stock and availability explained
These three choices answer different questions:
Available for sale is calculated by FeedForge from the variant's quantity, inventory policy, and inventory-tracking fields. It is broader than the default in-stock rule. For a tracked variant with missing quantity and no backorder policy, the calculated value is unknown and matches neither Is true nor Is false.
There is no Product-level In Stock field in the current filter picker. A Product field with that name would need a separate definition for combining the stock of all its variants.
6. Product fields
Product conditions read values from the parent Shopify product. Each condition is checked for every variant of that product.
Product Price and Product Quantity are not separate fields. Use the Variant fields below to decide which priced or stocked variants remain.
The Collection field opens a searchable list from your store. A product's variants all share its collection result. For example, Product: Collection is in Summer AND Variant: Quantity greater than 0 keeps only positive-quantity variants of Summer products. To include either of two collections, add two collection conditions in an Any condition (OR) group. If a selected collection is deleted, choose another one before saving; generation reports an error instead of publishing an incomplete feed.
7. Variant fields
Variant conditions read values from the particular Shopify variant being checked.
Custom feed output may offer other fields, such as taxonomy or metafields. Those output fields are not necessarily available as filter conditions.
8. Comparisons and empty values
The comparison choices depend on the field:
An absent value or blank text is empty. It matches Is empty, but it does not match Not equals, Does not contain, or Lacks tag. Numeric zero and boolean false are present values, not empty values. If Shopify supplies an invalid date, date comparisons do not match it.
9. Check a filter against an export
Open the filter with Edit or View / assign. Read its current conditions, check that it is active and assigned to the feed, and inspect any other active filters assigned to that feed.
Choose a Shopify product with known values. For a stock check, use two variants with different quantities and note their IDs or SKUs.
Regenerate the feed and wait for generation to finish. Download the new file. Saving a filter alone does not change an already published file.
Find the test items using fields that this feed actually exports. If the template does not include a variant ID or SKU, temporarily add one to a custom feed or choose another distinctive exported value. Check the feed's item limit if an expected matching row is absent.
For the default in-stock rule, suppose variant A has quantity 4 and variant B has quantity 0. Variants Only exports A; Products Only exports one product row; All Products & Variants exports the product row plus A. B is removed even when backorders are allowed. This example assumes that no other filter or feed limit removes these rows.
10. Change, remove, and troubleshoot filters
You can Edit, Duplicate, deactivate, or Delete a custom filter. Deleting it removes its assignments from every feed. For a built-in filter, merchants can change only the feeds to which it is assigned. Administrator changes to a built-in rule can affect every assigned feed.
After any change that affects item selection, regenerate the affected feeds to replace their published files. Scheduled feeds also use the saved settings at their next run.
If the export is unexpected, check these points:
The file has not changed: confirm regeneration finished and download the latest file.
A zero-quantity variant remains: check whether the rule is Quantity > 0 or the broader Available for sale rule, and inspect the current built-in definition.
A product row remains: at least one of its variants may still match; Products Only and combined feeds can export that product row.
A matching item is absent: check all active assigned filters, the Feed Content choice, and the feed's item limit.
A field is empty: confirm Shopify supplies the value on the product or variant you are checking. An empty value does not satisfy negative comparisons.
For more help, see Troubleshoot feeds and filters or return to the FeedForge documentation.
Contact
© 2026. All rights reserved.
Email: support@feedforge.eu
