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:

OperatorMatches when the cell…
Is emptyis blank or whitespace
Is not emptyhas any content
Equalsequals the value
Not equalsdiffers from the value
Containscontains the value
Not containsdoes not contain the value
Less thanis a number below the value
Greater thanis 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.