Filtering rows
Skip rules: the operators available, how matching and number parsing behave, how rules combine, and why the row-count estimate is approximate.
Every real export contains rows you never meant to list: discontinued lines, placeholder SKUs, zero-price rows, products with no image. Skip rules drop them before they become products.
How a rule is built
A rule is a column, an operator and — for most operators — a value:
| Operator | Matches when the cell… |
|---|---|
| Is empty | is blank or whitespace |
| Is not empty | has any content |
| Equals | equals the value |
| Not equals | differs from the value |
| Contains | contains the value |
| Not contains | does not contain the value |
| Less than | is a number below the value |
| Greater than | is a number above the value |
Semantics worth knowing
- A matching row is skipped. These are exclusions, not a keep-filter. A rule that matches everything empties your import.
- Text comparison is case-insensitive, and the cell is trimmed before comparing, so trailing spaces in an export do not change the outcome.
- Numbers are read in machine format — a decimal point, no thousands separators — because that is what feeds contain regardless of locale.
- A rule on a column that isn't in the feed is ignored rather than treated as a non-match, so a renamed column loosens your filter rather than emptying the import.
Combining rules
Two modes:
- All must match — the row is skipped only when every rule matches. Use for narrow exclusions: zero price and no image.
- Any may match — the row is skipped as soon as one rule matches. Use for a list of independent reasons to exclude.
The difference is easy to get backwards: "all" excludes fewer rows, not more.
Checking before you commit
An estimate of how many rows your rules would drop is shown as you build them. It is calculated over the staged sample and scaled to the file's real row count, so treat it as an order of magnitude — enough to tell a useful filter from one that would empty your catalog, not an exact figure.
They apply on every run
Filters belong to the import, not to one upload, so tomorrow's fetch is cleaned the same way without you re-doing anything.