# @acorex/modules/product-catalog

Product Catalog Management Module for ACoreX Platform.

## Overview

The Product Catalog module provides a centralized system for defining and managing all product-related master data across the platform. It standardizes how products, SKUs, units of measure, measurement rules, tax classes, categories, and attribute models are created and maintained.

## Features

- **Product Management**: Define and manage products with comprehensive details
- **SKU/Variants Management**: Handle product variants with different attributes
- **Brand Management**: Organize products by brands and manufacturers
- **Category Management**: Hierarchical category system with meta-data support
- **Status Workflow**: Product lifecycle management (Draft → Review → Approved → Suspended → Discontinued)
- **Integration**: Seamless integration with @financial-core, @measurement-core, and @person-management

## Entities

### Product
Main product entity with:
- Basic information (code, name, description)
- Brand and category classification
- Financial details (tax class, currency, base price)
- Measurement information (unit of measure, dimensions, weight)
- Party references (manufacturer, supplier)
- Media (images, documents)
- Status workflow

### Product SKU
Product variant entity with:
- SKU code and identifiers (barcode, QR, EAN, UPC)
- Variant-specific pricing
- Physical attributes (weight, dimensions)
- Meta-data for variant attributes
- Default SKU selection

### Product Brand
Brand management entity with:
- Brand information
- Manufacturer details
- Country of origin
- Category support

### Product Category
Hierarchical category entity with:
- Parent-child relationships
- Meta-data templates
- Appearance customization (icon, color)
- Sort ordering

## Installation

```typescript
import { AXMProductCatalogModule } from '@acorex/modules/product-catalog';

@NgModule({
  imports: [
    AXMProductCatalogModule,
    // ... other modules
  ],
})
export class AppModule {}
```

## Dependencies

- `@acorex/modules/financial-core` - Tax classes and currency
- `@acorex/modules/measurement-core` - Units of measure
- `@acorex/modules/person-management` - Manufacturers and suppliers

## Mock Data

Mock connectivity data is available in `@acorex/connectivity/mock`:

```typescript
import { AXCProductCatalogMockModule } from '@acorex/connectivity/mock';
```

## Status Workflow

Products follow this lifecycle:

1. **Draft** - Initial creation, not yet reviewed
2. **Review** - Submitted for approval
3. **Approved** - Ready for use
4. **Suspended** - Temporarily inactive
5. **Discontinued** - Permanently stopped

## Permissions

The module defines the following permissions:
- Product Management (View, Create, Edit, Delete)
- Brand Management (View, Create, Edit, Delete)
- Category Management (View, Create, Edit, Delete)
- SKU Management (View, Create, Edit, Delete)

## Translation Support

Full i18n support with English (en-US) and Persian (fa-IR) translations.

## License

Proprietary - ACoreX Platform

