At a Glance
Module purpose: Product catalogue master — codes, categories, base/order/recipe units with conversions, location mapping, allergens, variants, and bulk import/export · Audience: Product Administrator, Purchaser, Store Keeper · Key entities/tables:tb_product,tb_product_category,tb_product_unit_conversion,tb_product_location,tb_product_variant· Sub-pages: 11


The Product module is the central master-data catalogue for the ERP. Every product is identified by a unique productCode, classified through a category → sub-category → item group hierarchy (up to five levels deep), and carries the descriptive, costing, taxation, and packaging attributes that downstream modules consume. English and local-language descriptions, barcode, standard cost, last receiving cost, and quantity/price deviation tolerances live on the product header; extended attributes (weight, shelf life, storage instructions, size, color, allergens, sustainability data) are modelled as typed key-value pairs that can be inherited from the category and overridden at the product level.
A product is measured in a base inventory unit with one or more order units and recipe units layered on top via explicit conversion factors. The conversion table is validated for consistency (bidirectional, non-circular) so that a quantity entered in any unit on any document — PR, PO, GRN, requisition, recipe — can be resolved back to the base unit for valuation. Every product is also activated against one or more storage locations, with per-location minimum and maximum thresholds that drive replenishment and the level-check logic in inventory.
Bulk maintenance is a first-class concern. Import/export workflows accept Excel and CSV payloads for products, categories, units, and conversion factors with row-level validation, dry-run preview, and a downloadable error report; barcodes, QR codes, and category templates support bulk generation. The combination of validated master data and bulk tooling is what lets new properties and new menu launches go live without one-off entry per item.
Product master is the foundation every other module reads from. A purchase request line, a PO line, a GRN line, a requisition line, a recipe ingredient, a stock balance, a costing record — none of them exist independently of a product. Bad master data corrupts everything downstream: the wrong base unit silently inflates or deflates valuation, a missing conversion factor blocks receiving, a stale category breaks reporting roll-ups, an inactive product still attached to an open recipe causes orders to fail. Hospitality groups operating across multiple properties feel this acutely — a single global product list with property-level location enablement is what keeps the chain consistent while local kitchens stay flexible.
This module is therefore the system of record for the definition of an item, not its movements or balances. It feeds product identity and structure to inventory, vendor-pricelist, purchase-request, purchase-order, and recipe, and consumes nothing back from them except usage flags (e.g., "in-use" prevents delete). Getting this layer right — codes, units, categories, locations, allergens — is the precondition for every other module functioning correctly.
KG, LITRE, EACH). All stock balances, costs, and valuations are stored in the base unit; every other unit attached to the product is defined relative to it via a conversion factor.CASE = 12 EACH). Conversions are validated for bidirectional consistency, must avoid cycles, and propagate to PR/PO/GRN/recipe lines so the system can always resolve the same physical quantity regardless of how it is entered.| Role | Responsibility |
|---|---|
| Product Administrator | Owns the catalogue: creates and maintains products, categories, sub-categories, item groups, and units; configures conversion factors, attributes, and location mappings; runs imports/exports and manages product lifecycle (activation, deprecation, deletion). |
| Purchaser | Looks up products to compose PRs and POs, references standard and last receiving costs, verifies order-unit conversions and vendor mappings, and flags missing or stale catalogue entries back to the administrator. |
| Store Keeper | Looks up products during receiving, picking, transfers, and counts; scans barcodes for fast identification; references location thresholds and per-product handling notes (storage instructions, shelf life). |
Cross-module flow:
Master configuration:
../carmen/docs/product-management/../carmen-inventory-frontend/../carmen-turborepo-backend-v2/../carmen-turborepo-backend-bruno/../carmen-inventory-frontend-e2e/