Catalog
Create and Maintain Product Categories
Categories control how products are grouped for selling and reporting. They can also carry sale-screen tile styling and one category discount rule.
- Menu path
- Inventory -> Categories
- Verified from
- Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence
frontend/modules/categories.html list import export filter new controls, frontend/modals/category_add.html image name tile color tile shape discount description, frontend/static/script/js/modules/js/categories.js list detail activity save and item-category refresh, api/src/models/category.model.js branch unique name import duplicate and one-discount rule, frontend/modules/items_write.html category field, demo.posnic.io Categories reviewed on 2026-09-04
What Categories Control
A product category is the cashier-facing and owner-facing group for items. It helps staff find products on the sale screen, helps owners filter catalog and reports, and can carry a visual tile style for touch selling.
- Use names staff naturally say at the counter, such as Drinks, Snacks, Hygiene, Gifts or Paper & Office.
- Create the major categories before adding many items so the item form can use consistent pickers.
- Use tile colour and tile shape when the shop sells from touch-screen category tiles.
- Use a category discount only when the owner wants every future item in that category to follow the same rule.
- Review item count and recent sales before renaming, deleting or merging a category.
Screen Map
Inventory -> Categories follows the standard Posnic list pattern: toolbar actions at the top, rows on the left, and details on the right when a row is selected.
| Area | What it does | Operator note |
|---|---|---|
| Import | Loads categories from CSV or Excel. | Use only after the spreadsheet has one clean name per category. |
| Export CSV | Exports either the visible page or everything matching the current filter. | Clear filters before exporting a full category list. |
| Filter | Searches category rows by name and related list fields. | Use it before edits when a shop has many categories. |
| New | Opens the Add Category panel. | The save uses the active branch, so confirm the branch before setup. |
| List rows | Show name, item count, discount, description and added date. | Item count is the quick warning before deletion. |
| Detail pane | Shows About, On Record, Recent Sales, Edit and Delete. | Open this pane before changing a category used by products. |
Create a Category
- Open Inventory -> Categories.
- Click New.
- Enter Name. The form expects a real name, not a one-letter shortcut.
- Upload an image only when it helps staff recognize the category quickly.
- Choose Colour on the sale screen when touch-screen selling is used.
- Choose Shape when similar colors need another visual cue.
- Choose either Discount amount or Discount percent. Do not use both for the same category.
- Enter Description when it explains what belongs in the category.
- Save the category.
- Use Open it if the app shows the last-created link and you want to review the saved category.
- Create or edit a product and assign this category.
- Open Home -> New Sale and confirm products appear where cashiers expect them.
Category Fields
| Field | Use it for | Rule |
|---|---|---|
| Image | Optional visual identity for category tiles and details. | Use a clean square-ish image; remove it if it becomes misleading. |
| Name | Main category name used in lists, item setup and reports. | Names are unique inside the active branch. |
| Colour on the sale screen | Fast visual scanning on touch tills. | Use a small palette with clear meaning, not random colours. |
| Shape | A second visual cue for category tiles. | Useful when staff have similar colors or low-light screens. |
| Discount amount | Fixed money discount rule for the category. | Use only one discount type. |
| Discount percent | Percentage discount rule for the category. | Keep owner approval because this changes future pricing behavior. |
| Description | Setup note for owners and future cleanup. | Keep it operational, such as what products belong here. |
Discount Rules
The category form lets the operator choose amount or percent. The API model also enforces that both discount_amount and discount_percentage cannot be above zero at the same time.
- Choose Discount amount for a fixed reduction such as 5.00 off.
- Choose Discount percent for a percentage rule such as 10 percent off.
- The form tooltip warns that category discount changes do not apply to existing products automatically.
- After changing a category discount, create or edit the affected items if the owner wants existing products changed.
- Run a test sale before telling cashiers that the discount is live.
Review Category Details and Activity
Clicking a category row opens the detail pane. Use it before any serious change because the category can already be tied to products and sales.
- The detail pane shows item count, discount, description, created date and updated date.
- Recent Sales tells the operator whether sales have already used this category.
- Edit from the detail pane when you are correcting spelling, style or description.
- Delete only after affected items have been moved, retired or confirmed safe.
- Keep an export before large category cleanup so the owner can review what changed.
Import Categories
Category import is useful during setup, but it should be treated as master-data work. The backend deduplicates names case-insensitively inside the import file and separates already-existing categories from new ones.
| Spreadsheet column | What Posnic does | Mistake to avoid |
|---|---|---|
| name | Required category name. | Blank names are skipped or rejected. |
| description | Optional category note. | Do not paste long product lists into the description. |
| discount_amount | Optional fixed discount. | Do not also set discount_percentage. |
| discount_percentage | Optional percentage discount. | Do not also set discount_amount. |
| image | Optional image value; default is category.svg. | Do not depend on missing local image paths. |
Export and Filter
Export is for audit, review and cleanup. It is not a replacement for a proper POS backup.
- Use This page when the visible list is exactly what the owner asked to review.
- Use Everything matching the filter for a larger filtered export.
- Use Filter before exporting categories for a single business area.
- Clear filters before a full category export.
- Store exports with the date and branch name when they support a cleanup decision.
Use Categories on Items and Sales
- Create the category first.
- Open Inventory -> Items -> New or edit an existing product.
- Choose the category in the item picker.
- Complete price, stock, SKU, barcode and tax fields as needed.
- Save the item.
- Open Home -> New Sale.
- Use Categories on the sale screen or search the item name.
- Confirm the item appears under the right selling group and the cashier can find it quickly.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| New category will not save | Name is missing, too short or already exists in the branch. | Use a clear unique name and confirm the active branch. |
| Discount behaves unexpectedly | Existing products were not updated after changing the category rule. | Review affected item records and run a test sale. |
| Cashiers cannot find products by category | Items were created without a category or placed under the wrong one. | Filter Items by category, edit the affected products and retest New Sale. |
| Import reports duplicates | The file repeats category names or the branch already has them. | Clean the file and import only genuinely new category names. |
| Delete feels risky | The category has item count or recent sales. | Move products first, export the list and keep the category until history is reviewed. |