Parts Inventory
Module Code: PARTS Priority: P1 (Master Data - Inventory Management) Status: Extracted from v5.1 Dependencies: P0 modules, Company Configuration Old Module Number: M08 (Parts Warehouse)
Related Documentation
- 🏠Documentation Home - System overview & all modules
Module Overview
Purpose: Comprehensive parts inventory management system with integrated pricing, multi-level approval workflows, and seamless accounting integration for automotive parts operations.
Priority: P1 (Master Data - Core Warehouse/Inventory)
Dependencies:
- User Access & Security (user access control)
- Access Control & Permissions (inventory access permissions)
- Employee Directory (warehouse staff management)
- Company Configuration (multi-location warehouses)
Integration Points: M12 Service Operations, M13 Workshop Operations, Supplier Management, MISA Accounting (External)
Functional Specifications
7.1 Master Data Management
Warehouse Management:
Warehouse Information:
- Warehouse code and name
- Physical location and address
- Warehouse type (Main, Branch, Mobile)
- Storage capacity
- Manager assignment
- Operating hours
- Security measures
- Climate control capabilities
Warehouse Operations:
- View/Sort/Search warehouse records
- Add new warehouses
- Edit warehouse information
- No delete functionality (data integrity preservation)
- Warehouse transfer capabilities
- Inter-warehouse stock transfers
Product Classification:
Product Hierarchies:
- Category (e.g., Engine, Transmission, Brakes)
- Subcategory (e.g., Engine Parts > Pistons, Gaskets)
- Product family
- OEM vs. Aftermarket classification
Category Management:
- Create product categories and subcategories
- Assign parts to categories
- Category-based reporting
- Category-specific pricing rules
Unit of Measurement (UOM):
UOM Definitions:
- Primary UOM (piece, set, liter, kilogram, meter)
- Secondary UOM for alternate purchasing/selling
- UOM symbols and abbreviations
Conversion Rules:
- Define conversion factors between UOMs
- Conversion formula configuration
- Automatic conversion in transactions
- Example: 1 set = 4 pieces, 1 case = 12 pieces
Parts Catalog:
Parts Information:
| Field | Type | Description | Required |
|---|---|---|---|
| Part Number | VARCHAR(50) | Unique identifier (often OEM number) | Yes |
| Part Name | VARCHAR(200) | Part description | Yes |
| Category | UUID | Product category | Yes |
| Subcategory | UUID | Product subcategory | Yes |
| Supplier Part Number | VARCHAR(50) | Supplier’s part number | Optional |
| Substitute Parts | JSON | Interchangeable part numbers | Optional |
| Compatible Vehicles | JSON | Makes, models, years | Yes |
| Unit of Measurement | VARCHAR(20) | UOM | Yes |
| Standard Cost Price | DECIMAL | Purchase cost | Yes |
| Standard Retail Price | DECIMAL | Selling price | Yes |
| Minimum Order Quantity | INT | Min order qty | Yes |
| Lead Time | INT | Days to receive | Yes |
| Weight | DECIMAL | Part weight | Optional |
| Dimensions | VARCHAR(100) | L Ă— W Ă— H | Optional |
| Country of Origin | VARCHAR(100) | Manufacturer country | Optional |
| Warranty Period | INT | Warranty months | Optional |
| Hazardous Material | BOOLEAN | Hazmat flag | Yes |
| Images | JSON | Part images/diagrams | Optional |
| Technical Specs | TEXT | Specifications | Optional |
| Installation Notes | TEXT | Installation instructions | Optional |
Operations:
- View/Sort/Search with multiple filter criteria
- Add new parts (manual entry)
- Bulk upload via Excel/CSV import
- Edit part information
- Data validation on import
- Duplicate detection
- Export part catalog to Excel/CSV
Data Import Requirements:
- Template-based bulk upload
- Mandatory fields validation
- Error reporting on failed imports
- Preview before commit
- Rollback capability for failed batches
7.2 Price Management
Price Policy Management:
Policy Types:
- Standard retail pricing
- Wholesale pricing
- Fleet customer pricing
- Warranty pricing
- Internal pricing (for own service dept.)
- Promotional pricing
Policy Workflow:
- View existing pricing policies
- Submit policy change requests
- Multi-level approval workflow
- Track approval status and history
- Policy effective date management
- Policy expiry and renewal
Standard Pricing:
Manual Pricing:
- View current prices with historical reasoning
- Sort/Search parts by multiple criteria
- Update single part price with justification
- Submit price changes for approval
- Track approval status
- Price change history log
- Export pricing data
Pricing Information Display:
- Current retail price
- Last cost price
- Suggested retail price (SRP)
- Current margin percentage
- Price last updated date
- Price change history (last 5 changes)
- Reason for last price change
Bulk Pricing:
- Upload price lists via Excel/CSV
- Batch processing for multiple parts
- Validation before applying changes
- Preview changes before commit
- Error handling and reporting
- Rollback failed batches
Order-Based Pricing:
Concept:
- Special pricing for specific service orders or quotations
- Temporary pricing valid only for that order
- Auto-displayed to service advisors when order is active
- Pricing removed when order closed or cancelled
Workflow:
- Identify service order requiring special pricing
- View required parts for that order
- Submit proposed prices for order-specific parts
- Await approval
- Approved prices auto-display when order is accessed
- Prices automatically locked when order closed
Order-Based Pricing Features:
- Link pricing to specific service order number
- Valid until order completion or cancellation
- Historical lookup of order-based pricing decisions
- Export order-based pricing data
- Audit trail of all order-specific prices
Price Approval Workflow:
Approval Hierarchy:
| Approval Level | Authority | Price Change Threshold |
|---|---|---|
| Level 1 | Parts Manager | Within +/- 5% |
| Level 2 | General Manager | Within +/- 15% |
| Level 3 | Executive/Owner | > 15% |
Approval Process:
- Submit price change request with justification
- System routes to appropriate approver based on thresholds
- Approver receives notification
- Approver reviews and approves/rejects
- If approved, price becomes effective on specified date
- If rejected, requester notified with rejection reason
- Option to revise and resubmit
Approval Status:
- Pending approval
- Approved (awaiting effective date)
- Rejected
- Active (in effect)
- Expired/Superseded
7.3 Inbound Operations
Purchase Order Management (PO):
PO Creation:
- Manual PO creation
- Auto-generate PO from reorder suggestions
- Select supplier
- Select parts and quantities
- Unit prices (from historical data or manual)
- Calculate PO total
- Expected delivery date
- Delivery location (warehouse)
- Payment terms
- Shipping method
- Special instructions
PO Workflow:
| Status | Description |
|---|---|
| Draft | Can be edited |
| Submitted | Sent to supplier |
| Acknowledged | Supplier confirmed |
| Partially Received | Some items received |
| Fully Received | All items received |
| Closed | Completed |
PO Operations:
- Search/Filter POs by multiple criteria
- Track PO status
- View outstanding POs
- Modify POs before submission
- Cancel POs
- Print/Email PO to supplier
- Receive reminders for overdue POs
Goods Receiving (Receipts):
Receipt Information:
- Receipt number (auto-generated)
- Receipt date
- Linked PO number (if applicable)
- Supplier information
- Warehouse receiving location
- Received by (user name)
- List of parts and quantities received
- Unit cost per part
- Total receipt value
- Receiving notes
- Attached documents (delivery note, packing list)
Receipt Types:
- PO-based receipt (linked to purchase order)
- Non-PO receipt (emergency purchases, small items)
- Return receipt (customer returns, warranty returns)
- Transfer receipt (from another warehouse)
Receipt Line Items:
| Field | Description |
|---|---|
| Part Number | Part identification |
| Description | Part name |
| Ordered Quantity | PO quantity |
| Received Quantity | Actual received |
| Unit Cost | Cost per unit |
| Line Total | Qty Ă— Cost |
| Discrepancy Reason | If qty doesn’t match |
| Quality Inspection | Pass/Fail |
| Expiry Date | If applicable |
| Batch/Lot Number | Tracking number |
| Warehouse Location | Storage location assigned |
Inspection and Quality Control:
- Visual inspection for damage
- Verify packaging integrity
- Check part numbers against PO
- Quality sampling for critical parts
- Reject damaged or incorrect parts
- Partial acceptance capability
- Photo documentation for discrepancies
Receiving Operations:
- Search/View receipts
- Create new receipt
- Link receipt to PO automatically or manually
- Print receiving slip
- Sign-off on receipt (receiving clerk, supervisor)
- Send to accounting for invoice matching
Accounting Integration:
- Automatic data send to MISA Accounting upon receipt creation
- One-way integration (cannot edit receipt from accounting)
- Receipt data includes: date, supplier, parts, quantities, costs, total
- Enables invoice matching in accounting system
Invoice Matching:
- Receive supplier invoice
- Match invoice to receipt in accounting system
- Compare invoice amounts to receipt amounts
- Resolve discrepancies (quantity, price differences)
- Approve invoice for payment
- Track payment status
7.4 Outbound Operations
Parts Issue Process (Issue Slips):
Order-Based Issue:
Workflow:
- Service order created in Service Operations module
- Service order includes parts list
- Parts automatically reserved for that order
- Order displayed in parts warehouse module
- Parts clerk creates issue slip for the order
- Select parts from order
- Specify quantities to issue
- Print issue slip
- Issue slip signed by parts clerk and service advisor
- Update inventory (deduct quantities)
- Order status updated to “parts issued”
- If order completed: auto-lock, no more issues allowed
- If order cancelled: reverse issue (return parts to stock)
- Return process: Create negative issue slip (return slip)
- Upon order settlement: Send issue data to accounting
- Accounting entry: Manual lock after verification
Issue Slip Information:
- Issue slip number (auto-generated)
- Issue date
- Linked service order number
- Issued to (service advisor or technician)
- Warehouse location
- List of parts and quantities issued
- Unit cost per part
- Total issue value
- Purpose (service order, internal use, warranty claim)
- Issued by (user name)
- Received by (signature)
Non-Order Based Issue:
Use Cases:
- Internal use (shop supplies, consumables)
- Counter sales (walk-in customer purchase)
- Warranty parts sent to supplier
- Stock adjustment (damaged, obsolete)
- Transfer to another warehouse
Workflow:
- Create standalone issue slip
- Select parts and quantities
- Specify purpose/reason for issue
- If customer sale: Link to customer record
- Print and sign issue slip
- Update inventory
- Send to accounting for appropriate entry
Parts Return Process:
Return from Service:
- Create return slip (negative issue)
- Linked to original issue slip
- Specify parts and quantities returned
- Reason for return (not used, wrong part, excess)
- Inspect returned parts
- Add back to inventory if in good condition
- Update service order parts list
- Update inventory quantities
Return to Supplier:
- Create supplier return record
- Reason (defective, wrong part, excess order)
- Create outbound shipment
- Update inventory
- Await credit note or replacement from supplier
Inventory Adjustment:
- Periodic stock count
- Identify discrepancies (physical vs. system)
- Create adjustment records (positive or negative)
- Approval required for adjustments
- Update inventory to match physical count
- Investigate reasons for discrepancies
7.5 Inventory Management
Inventory Lookup:
Real-Time Inventory View:
- Search parts by multiple filters (part number, name, category, supplier)
- View all parts in stock across all warehouses
- Current stock quantities by warehouse
- Available quantity (not reserved for orders)
- Reserved quantity (allocated to active service orders)
- Minimum stock level
- Reorder point
- Stock status (in stock, low stock, out of stock, overstocked)
- Last receipt date
- Last issue date
- Stock value (quantity Ă— cost price)
Low Stock Alerts:
- Automatic alerts when stock falls below optimal level
- Daily/weekly low stock reports
- Color-coded indicators (green: OK, yellow: low, red: out of stock)
- Email/SMS alerts to parts manager
Optimal Stock Level Calculation:
Auto-calculation based on historical consumption:
- Formula considers:
- Average monthly usage
- Lead time from supplier
- Safety stock buffer
- Seasonal variations
- Service order trends
- Manual override capability
Reorder Management:
Reorder Suggestions:
- Auto-identify parts needing reorder
- Parts below reorder point
- Parts with pending service orders but insufficient stock
- Slow-moving parts flagged for review
- Suggested reorder quantities
Reorder Report Contents:
- Part number and description
- Current stock quantity
- Reserved quantity
- Available quantity
- Reorder point
- Suggested reorder quantity
- Preferred supplier
- Last purchase price
- Estimated lead time
- Pending orders awaiting these parts
Reorder Actions:
- One-click PO generation from reorder report
- Bulk PO creation for multiple parts
- Adjust suggested quantities before PO creation
- Link to create PO directly
Inventory Valuation:
- Total inventory value (all parts Ă— cost price)
- Inventory value by category
- Inventory value by warehouse
- Inventory turnover rate
- Aging report (parts in stock > 90 days, > 180 days, > 1 year)
- Slow-moving parts identification
- Dead stock (parts not issued in 2+ years)
- Obsolete parts management
Inventory Reporting:
- Stock level report
- Stock movement report (receipts and issues over period)
- Stock valuation report
- Reorder report
- Aging report
- Fast-moving vs. slow-moving parts
- Stock accuracy report (after cycle counts)
- Inventory turnover report
- Parts profitability report
7.6 Retail Parts Sales
Parts Orders:
Manual Entry:
- Open new order
- Enter customer information (existing customer or walk-in)
- Search and select parts
- Enter quantities
- Apply pricing (standard or special)
- Calculate taxes
- Calculate total
- Select payment method
- Process payment
- Print receipt/invoice
- Issue parts
- Close order
Bulk Entry:
- Customer provides parts list (Excel/CSV)
- Upload parts list to system
- System auto-populates prices
- Complete remaining fields (customer, payment)
- Review order
- Process payment
- Print documentation
- Issue parts
Order Types:
- Walk-in counter sales
- Phone orders (customer picks up later)
- Wholesale orders (trade accounts)
- Export orders
- Employee purchases
Order Tracking:
Search and Filter:
- Order number
- Customer name/phone
- Date range
- Order status
- Payment status
- Parts ordered
Order Status:
- Quote (not yet confirmed)
- Pending (confirmed, awaiting parts or payment)
- Parts ready
- Partially paid
- Paid and closed
- Cancelled
Data Model
Parts Catalog Table:
| Field | Type | Description |
|---|---|---|
| part_id | UUID | Primary key |
| part_number | VARCHAR(50) | Unique part number |
| supplier_part_number | VARCHAR(50) | Supplier reference |
| part_name | VARCHAR(200) | Part description |
| category_id | UUID | Foreign key to category |
| subcategory_id | UUID | Foreign key to subcategory |
| uom | VARCHAR(20) | Unit of measurement |
| standard_cost | DECIMAL | Purchase cost |
| standard_retail_price | DECIMAL | Retail price |
| current_price | DECIMAL | Current selling price |
| minimum_order_qty | INT | Min order quantity |
| lead_time_days | INT | Supplier lead time |
| weight | DECIMAL | Part weight |
| dimensions | VARCHAR(100) | Dimensions |
| country_of_origin | VARCHAR(100) | Origin country |
| warranty_months | INT | Warranty period |
| is_hazmat | BOOLEAN | Hazardous material flag |
| substitute_parts | JSON | Alternative part numbers |
| compatible_vehicles | JSON | Vehicle compatibility |
| images | JSON | Part images |
| technical_specs | TEXT | Technical specifications |
| installation_notes | TEXT | Installation instructions |
| is_active | BOOLEAN | Active status |
| created_at | TIMESTAMP | Record creation |
| updated_at | TIMESTAMP | Last update |
Inventory Stock Table:
| Field | Type | Description |
|---|---|---|
| stock_id | UUID | Primary key |
| part_id | UUID | Foreign key to part |
| warehouse_id | UUID | Foreign key to warehouse |
| quantity_on_hand | INT | Current stock |
| quantity_available | INT | Available (not reserved) |
| quantity_reserved | INT | Reserved for orders |
| minimum_stock | INT | Min stock level |
| optimal_stock | INT | Optimal stock level |
| reorder_point | INT | Reorder trigger point |
| bin_location | VARCHAR(50) | Storage location |
| last_receipt_date | DATE | Last received |
| last_issue_date | DATE | Last issued |
| last_count_date | DATE | Last physical count |
| average_cost | DECIMAL | Weighted average cost |
| total_value | DECIMAL | Qty Ă— Cost |
| updated_at | TIMESTAMP | Last stock update |
Purchase Order Table:
| Field | Type | Description |
|---|---|---|
| po_id | UUID | Primary key |
| po_number | VARCHAR(20) | Unique PO number |
| supplier_id | UUID | Foreign key to supplier |
| warehouse_id | UUID | Receiving warehouse |
| po_date | DATE | PO creation date |
| expected_date | DATE | Expected delivery |
| po_status | ENUM | Draft/Submitted/Acknowledged/Received/Closed |
| subtotal | DECIMAL | Subtotal amount |
| tax | DECIMAL | Tax amount |
| total | DECIMAL | Total amount |
| payment_terms | VARCHAR(50) | Payment terms |
| shipping_method | VARCHAR(100) | Shipping method |
| notes | TEXT | Special instructions |
| created_by | UUID | Creator employee ID |
| created_at | TIMESTAMP | Creation time |
| updated_at | TIMESTAMP | Last update |
Purchase Order Line Table:
| Field | Type | Description |
|---|---|---|
| po_line_id | UUID | Primary key |
| po_id | UUID | Foreign key to PO |
| part_id | UUID | Foreign key to part |
| ordered_qty | INT | Quantity ordered |
| received_qty | INT | Quantity received |
| unit_cost | DECIMAL | Cost per unit |
| line_total | DECIMAL | Qty Ă— Cost |
| line_status | ENUM | Pending/PartiallyReceived/FullyReceived |
Goods Receipt Table:
| Field | Type | Description |
|---|---|---|
| receipt_id | UUID | Primary key |
| receipt_number | VARCHAR(20) | Unique receipt number |
| po_id | UUID | Foreign key to PO (optional) |
| supplier_id | UUID | Foreign key to supplier |
| warehouse_id | UUID | Receiving warehouse |
| receipt_date | DATE | Receipt date |
| receipt_type | ENUM | PO-Based/Non-PO/Return/Transfer |
| subtotal | DECIMAL | Subtotal amount |
| tax | DECIMAL | Tax amount |
| total | DECIMAL | Total amount |
| notes | TEXT | Receiving notes |
| received_by | UUID | Employee who received |
| approved_by | UUID | Approver employee ID |
| created_at | TIMESTAMP | Creation time |
Receipt Line Table:
| Field | Type | Description |
|---|---|---|
| receipt_line_id | UUID | Primary key |
| receipt_id | UUID | Foreign key to receipt |
| part_id | UUID | Foreign key to part |
| ordered_qty | INT | Quantity ordered |
| received_qty | INT | Quantity received |
| unit_cost | DECIMAL | Cost per unit |
| line_total | DECIMAL | Qty Ă— Cost |
| quality_status | ENUM | Pass/Fail/PartialAccept |
| batch_number | VARCHAR(50) | Batch/lot number |
| expiry_date | DATE | Expiration date |
| bin_location | VARCHAR(50) | Storage location |
| notes | TEXT | Line notes |
Issue Slip Table:
| Field | Type | Description |
|---|---|---|
| issue_id | UUID | Primary key |
| issue_number | VARCHAR(20) | Unique issue number |
| service_order_id | UUID | Foreign key to service order (optional) |
| warehouse_id | UUID | Issuing warehouse |
| issue_date | DATE | Issue date |
| issue_type | ENUM | Service/Internal/Counter/Warranty/Transfer |
| issued_to | VARCHAR(200) | Recipient |
| total_value | DECIMAL | Total issue value |
| purpose | TEXT | Issue reason |
| issued_by | UUID | Employee who issued |
| received_by | VARCHAR(200) | Recipient signature |
| created_at | TIMESTAMP | Creation time |
Issue Line Table:
| Field | Type | Description |
|---|---|---|
| issue_line_id | UUID | Primary key |
| issue_id | UUID | Foreign key to issue |
| part_id | UUID | Foreign key to part |
| quantity | INT | Quantity issued |
| unit_cost | DECIMAL | Cost per unit |
| line_total | DECIMAL | Qty Ă— Cost |
Business Rules
Inventory Rules:
- Negative stock prevented by system (cannot issue more than available)
- Reserved stock auto-released if service order cancelled
- Stock adjustments require manager approval
- Optimal stock levels auto-calculated weekly
- Reorder point set at (optimal level - safety stock)
Pricing Rules:
- All price changes require approval per approval hierarchy
- Price cannot fall below cost without executive approval
- Order-based pricing valid only for specific order
- Promotional pricing requires start and end dates
- Historical pricing kept for audit purposes
Receiving Rules:
- Receipt must be linked to PO or identified as non-PO
- Physical inspection mandatory before acceptance
- Damaged goods can be partially accepted or fully rejected
- Receipt auto-sent to accounting upon creation
- Invoice matching required before payment approved
Issue Rules:
- Order-based issues require active service order
- Non-order issues require reason/purpose
- Issue slip must be signed by issuer and receiver
- Returns create negative issue slip (restock)
- Service order completion locks further issues
- Accounting entry upon order final settlement
Reorder Rules:
- Auto-identify parts below reorder point daily
- PO generation from reorder report is optional
- Parts manager reviews and approves reorder suggestions
- Lead time considered in optimal stock calculation
- Supplier minimum order quantities respected
Integration Points
Outbound Integrations:
| Module | Integration Purpose |
|---|---|
| M11 Service Operations | Parts requirements and reservations |
| M12 Workshop Management | Parts issue for jobs |
| M14 Accessories | Accessory inventory (if shared) |
| Supplier Management | Supplier ratings and performance |
| M27 Business Intelligence | Inventory analytics |
| MISA Accounting (External) | Receipts and issue slips (one-way) |
Inbound Integrations:
| Module | Integration Purpose |
|---|---|
| M11 Service Operations | Parts availability for quotations |
| Supplier Management | Order and delivery data |
| Company Configuration | Multi-warehouse management |
User Roles & Permissions
Parts Warehouse Access Matrix:
| Role | View | Create Parts | Edit Parts | Price Change | Receive | Issue | Transfer | Reports |
|---|---|---|---|---|---|---|---|---|
| System Admin | All | Yes | All | All | Yes | Yes | Yes | All |
| Parts Manager | All | Yes | All | Approve | Yes | Yes | Yes | All |
| Parts Clerk | All | Limited | Limited | No | Yes | Yes | Limited | Limited |
| Service Advisor | Lookup only | No | No | No | No | No | No | No |
| Accountant | Read only | No | No | No | No | No | No | Financial |
Key Performance Indicators
Inventory Efficiency:
| Metric | Target | Measurement |
|---|---|---|
| Inventory Turnover Rate | 8-12 times/year | Annual parts sold / Avg inventory |
| Stock-out Rate | < 2% | Orders unfilled / Total orders |
| Overstock Rate | < 5% | Overstock value / Total inventory |
| Inventory Accuracy | > 98% | Cycle count matches / Total counts |
| Days of Supply | 30-45 days | Inventory / Daily usage |
Operational Efficiency:
| Metric | Target | Measurement |
|---|---|---|
| PO Processing Time | < 24 hours | Time from request to PO sent |
| Receiving Processing Time | < 30 minutes | Time per receipt |
| Issue Processing Time | < 5 minutes | Time per issue slip |
| Order Fulfillment Rate | > 95% | Orders filled from stock |
| Parts Availability | > 95% | Parts in stock / Total parts |
Financial Performance:
| Metric | Target | Measurement |
|---|---|---|
| Gross Profit Margin | 30-40% | (Revenue - Cost) / Revenue |
| Parts Sales Growth | Track monthly | MoM/YoY growth |
| Slow-Moving Parts | < 10% | Value of slow parts / Total value |
| Dead Stock | < 2% | No movement in 2 years |
| Return to Supplier Rate | < 1% | Returns / Total receipts |
Last Updated: November 14, 2025 Version: 6.0 Migrated From: Dealership_System_Documentation_v5_1.md (M08) Changes: Restructured as P1 Master Data module, updated dependencies to P0 baseline