Product listing · Filters, columns, inline edit, Quickview
The central listing shows your entire product catalogue - with configurable columns, powerful filters, inline editing and a Quickview modal for quick master-data maintenance.
View structure
- Filter bar at the top - unlimited filter conditions with AND/OR
- Column headers - sortable, resizable, hide/show
- Data rows - one per product, variants inline-expandable
- Footer toolbar - selection, bulk actions, export/import
- Bottom save bar - appears on active inline changes
Filters with AND / OR
Combine any number of filter conditions. Per condition: pick field, operator and value.
9 comparison modes
- Text: contains, does not contain, starts with, ends with, equals, not equal, empty, not empty
- Number: equal, not equal, greater, less, greater/equal, less/equal, empty, not empty
- Multi: in list (pipe-separated)
AND / OR linking
- Stock < 5 AND category "Sale"
- Stock < 5 AND (manufacturer = "Nike" OR manufacturer = "Adidas")
- Active = yes AND cover image = empty
Variant-aware
Filters automatically traverse parent and child fields. Filter by "colour = red" and parents with matching variants are also matched.
Configure columns
- Add: plus icon top right - all fields searchable
- Order: drag-and-drop the column header
- Width: drag at column edge
- Sort: click the column header
Custom columns
The "Custom column" button (top right in the column configuration) lets you add a column with its own name and source field - a master data field (release date, stock, dimensions, date fields, …) or any custom field. The source selector is a searchable dropdown with groups (master data / custom fields). Optionally markable as sortable (sorting via the field's DAL path by clicking the column header). Values are formatted automatically (localised date, yes/no for boolean). New columns can be ordered, removed and are stored persistently.
Filter and column presets
- Personal presets - only your user
- Shared presets - other users with same role
- System presets - admin-set, read-only
Inline editing
Editable directly in the listing row - also for variants:
- Stock, price (gross, with auto net calculation)
- EAN, manufacturer number
- Weight
- Active status - toggle slider
Changes are buffered locally. Click Save in the bottom save bar to commit. Shortcuts: Enter, Esc, Tab.
Quickview modal
Per row, the Quickview icon opens a compact modal with the most important master data - no switch to the full detail view. Ideal for serial maintenance.
Modal sections
- Master data: SKU, name, EAN, MPN, active status
- Prices: gross/net, purchase price, omnibus price
- Stock & shipping: stock, restock time, closeout, free shipping
- Order quantities: min/max/step
- Description as textarea
- SEO: meta title, meta description, keywords
Visibility per section is controlled in the config matrix under "Quickview". Sections without active fields are hidden automatically.
Variant display
Variant products appear as a parent row with a variant count badge. Click the plus icon to expand variants inline - lazy-loading: variants load only when expanded.
Category filter
Besides the freely combinable conditions there is a dedicated filter based on the category tree. It renders the catalogue at any depth - five, six or more levels can be expanded and selected.
Ticking a category selects everything below it as well, and clearing it removes them again. That is the part that matters in practice, because products usually sit on the lowest level - selecting the parent category alone would have found nothing.
How the filters interact
All filters work together and narrow the result set - sales channel, categories, completeness, custom conditions, product groups, price range, images, description, visibility, properties and delivery time.
When a custom filter is set, the plugin additionally searches the variants and pulls their parent products into the list, so a match is not missed when only one variant fits. The selected sales channel is taken into account there as well.
Negating conditions such as "does not contain" or "is not" deliberately apply to the parent product only. Otherwise a single matching variant would be enough to pull in an article that actually contradicts the filter.
window.stawPimLastCriteria. With several filters set at once, this shows which conditions really arrive.Image filters: main product or variants
There are two separate filters for cover images. "Cover image (main product)" checks the image of the parent product, "Cover image (variants)" checks whether the variants have their own image.
The second filter finds parent products with at least one variant lacking its own cover image; the affected variants appear below. Product listing, saved presets and CSV export return the same result.
Performance for large catalogues
For 1000+ products the browser only renders visible rows via content-visibility: auto. Smoother scrolling without visible UI change. Plus:
- Row count: 10 / 25 / 50 / 100 / 200 / 500
- Sticky pagination above and below
- Quick-scroll-to-top button
- Variants load leaner: When expanding, only the fields the list actually shows are loaded, along with preview image and variant options. Custom columns are still taken into account.
- Completeness comes from the server - following the same rule as the completeness filter. Description and meta texts of every variant no longer need to be loaded.
- Load timings: After loading, the times per phase are available in the browser console under
window.stawPimLastLoadTimings.
Checking translations - filter and completeness
- Filter "translation missing" with the variants name missing, description missing and both missing. Hits are resolved server-side against exactly the selected language and limited to master products; empty texts count as missing. Without an explicit language selection the active language applies.
- The filter chip names the language - for example "Translation: name missing (Alpendampf DE)". That makes clear at a glance what the result refers to.
- Language inheritance is taken into account: If a text only exists on the parent language it still applies in the storefront - filter and completeness therefore check the whole language chain. Products without any translation in the chain are still found reliably.
- Completeness follows the sales channel: Translatable fields are calculated against the language of the selected channel; without a channel selection against the system language.
- RRP status ("RRP missing", "RRP lower than gross") is resolved server-side across the entire catalogue, so hit count, paging and result match.
What's next
Continue with Bulk-edit, the core of the plugin - maintain many products in one step.