| Control | Permission | Action |
|---|
| Sync | Hub sync (paired tenant) | Pulls missing/stale products from connected hub |
| Export | product.view | Downloads catalogue CSV |
| Print stickers | product.view | Opens Sticker Printer — search/GRN batch, label size, queue, preview, print |
| Add Product | product.edit | Opens Quick Add dialog |
KPI strip
| Metric | Meaning |
|---|
| Total | All products for the tenant |
| Active | is_active = true — sellable at counter |
| Unverified | verified is null — needs catalog review |
| On demand | on_demand = true — fulfil when ordered |
| Control | Action |
|---|
| Search | Server-side match on name, SKU, barcode |
| Filters | Expands advanced filter grid; badge shows active count |
| Refresh | Refetches list and KPI stats |
| Clear | Resets search and all filters (visible when filters active) |
Filter fields
| Field | Matches |
|---|
| SKU | Partial SKU |
| Brand | Multi-select |
| Category | Hierarchical tree multi-select |
| Form | Multi-select form types |
| Status | Active / inactive |
| Verified | Verified / unverified |
| Regulatory | Rescue medicine / controlled substance |
Table columns
| Column | Content |
|---|
| SKU | Monospace SKU; verified, on-demand, and Shopify indicators |
| Name | Link to catalog view; crown/link icons for variation groups |
| Group | Variation group token; collapse control on master rows |
| Brand | Brand name |
| Category | Category name |
| Form | Form type badge |
| Price | Click to inline-edit |
| Cost | Click to inline-edit |
| Status | Active / inactive pill |
| Updated | Date and time |
| Actions | Quick edit, full edit, delete |
Row actions
| Action | Permission | Result |
|---|
| Quick edit (pen) | product.edit | Opens compact edit dialog |
| Edit (pencil) | product.edit | Navigates to /pims/product/:id |
| Delete (trash) | product.delete | Dependency check then delete confirmation |
Product name links open catalog view (/pims/catalog/:id).
| Element | Meaning |
|---|
| Product list badge | Total matching count |
| Showing X–Y of Z | Current page range |
| Pagination | Prev / numbered pages / Next (20 rows per page) |
Quick Add dialog
| Section | Key fields |
|---|
| Identity | Name, SKU, barcode |
| Classification | Brand, category, form |
| Pricing | Cost, price, margin badge |
| Status | Active, on-demand |
| Button | Action |
|---|
| Save & add another | Save, reset form, stay open |
| Create & continue | Save, open full editor |