# README

## Overview

The Item Management module manages items — the fundamental SKU-level entity in the ERP system. Items are the sellable, purchasable, and trackable unit that all downstream modules (Sales, Purchasing, Inventory, Manufacturing) reference as the primary transactional entity.

Each item has its own lifecycle (DRAFT → ACTIVE ↔ INACTIVE), unique SKU identity, and optional barcode. Items are classified through a flexible taxonomy system (many-to-many with TaxonomyNode) for hierarchical browsing and filtering.

## Key Features

- **Item Lifecycle**: The canonical SKU-level entity referenced by all operational modules. Lifecycle state management (DRAFT → ACTIVE ↔ INACTIVE), SKU and barcode assignment. Items can be created directly or generated from product templates
- **Item Taxonomy**: Hierarchical taxonomy tree for multi-dimensional item classification (many-to-many). Items can belong to multiple taxonomy branches simultaneously

## Module Scope

### In Scope

- Item master data management (create, update, delete, status transitions)
- Item lifecycle state machine (DRAFT → ACTIVE ↔ INACTIVE)
- SKU and barcode assignment and uniqueness enforcement
- Unit of measure assignment per item
- Hierarchical item taxonomy management (TaxonomyNode tree)
- Item-to-taxonomy classification (many-to-many)

### Out of Scope

- Product template definitions and attribute schemas (product-management module)
- Variant generation from attribute combinations (product-management module)
- Sales price list and pricing rule management (pricing module)
- Inventory tracking and stock levels (inventory module)
- Vendor/supplier management (business-partner module)
- Bill of Materials (manufacturing module)
- Product images and digital asset management

### Scope Decision Rationale

Item-management owns the **SKU-level transactional entity** — the unit that all downstream modules (sales, purchasing, inventory) actually reference. This is separated from product-management because a product template is a design-time concept, while an item is a runtime/operational entity with its own lifecycle.

Product templates and variant generation stay in product-management because they represent the commercial catalog structure. Items can be created independently (without a product template) or generated from variants, so item-management must not depend on product-management's schema.

Inventory, pricing, and supplier data are excluded because they attach to items but follow their own business rules, update frequencies, and access patterns. Taxonomy is included here (separate from product-management's categories) because item classification serves operational needs (warehouse organization, procurement grouping) that differ from commercial categorization.

## Module Dependencies

- [primitives](../primitives/README.md) — UoM definitions for item unit of measure
