Skip to content

Item Categories

Backlog fieldValue
Story IDINV-DASH-004
EpicInventory
Story typeDashboard
Review statusDraft - business analyst and business owner review required
Source evidenceInventory MFE route/form, Inventory.Apis controller, application command/query handlers, validators, domain entities, and posting services
Last source review2026-07-10

Purpose

Organize items in a hierarchy and provide inheritable classification and unit behavior.

User stories

  • As a catalog administrator, I want to add categories beneath a parent so that the catalog is easy to navigate and report.
  • As a catalog user, I want to edit/view category properties and applicable units so that items inherit valid defaults.
  • As a manager, I want category-based reporting so that inventory can be analyzed by product family.

Acceptance criteria

  1. The feature displays a navigable category tree.
  2. A category has a unique required identity within its applicable parent/scope.
  3. A category cannot be its own ancestor and the hierarchy cannot contain a cycle.
  4. Moving or deleting a category cannot orphan child categories or assigned items.
  5. Category units and other defaults are validated before save.
  6. Add, view, edit, delete, activate, and export actions follow permissions.

Required and conditional data

  • Arabic name is required and limited to 50 characters; English name is optional in the current add validator but, when supplied, is limited to 50.
  • Duplicate Arabic or English names are checked within the same parent for detailed categories and among top-level categories for main categories.
  • Is Detailed determines whether the category can directly classify items.
  • Parent category and Category Type are required for a detailed category.
  • A non-detailed category cannot receive Purchase or COGS accounts in the current validator.
  • Purchase, COGS, item revenue, item expense, and item cost-center values are optional configuration for eligible categories.

Inheritance and fallback

Items must select an active category whose Category Type matches Item Type. Category accounts/cost center are fallbacks only where the specific transaction resolver uses them. Confirmed examples include Landed Cost service expense and cost center after item-level values; other modules may use purchase/revenue/return fields before settings.

Delete/deactivate

A category cannot be deleted if it has children, items, account usage, or transaction history. Deactivation prevents new selection but keeps hierarchy and historical descriptions available.

Internal Documentation — Microtec