Add md file features in region, route, store, fleet, pricing, procurement, SFA, promotions, returns, finance, reporting, notifications, integration, and mobile capabilities

This commit is contained in:
2026-08-19 15:18:31 +05:30
parent 45f374133f
commit d2390e7b12
25 changed files with 1565 additions and 88 deletions
@@ -0,0 +1,70 @@
# 14 — Pricing & Supplier Master Data
**Status**: Not Started
**Depends On**: 01 — Item Catalog
---
## Goal
Covers the remainder of [mainPlan.md §7](./mainPlan.md#7-master-data-management)
not already handled by [01_item_catalog.md](./01_item_catalog.md): price lists and supplier master
records. `createProduct`/`deactivateSku` live in 01; this step is everything else in §7.
---
## Background / Context
`Item.BasePrice` (from [01_item_catalog.md](./01_item_catalog.md)) is a single flat price. There is
no concept of a region- or date-scoped price list, and no `Supplier` entity anywhere in the schema.
---
## Data Model Changes
### Price List
`Name`, `RegionId` (nullable — null means global), `EffectiveFrom`, `EffectiveTo`.
### Price List Item
`PriceListId`, `ItemId`, `Price` — overrides `Item.BasePrice` when an applicable, currently-
effective price list exists for the order's region.
### Supplier
`Name`, `ContactInfo`, `PerformanceScore` (nullable, populated by
[15_procurement.md](./15_procurement.md)'s `evaluateSupplier`).
---
## API Endpoints
| Function reference | Endpoint intent |
|---|---|
| `createPriceList(name, region, effectiveDates)` | `POST /api/price-lists` |
| `updateProductPricing(sku, priceListId, price)` | `PUT /api/price-lists/{id}/items/{sku}` |
| `createSupplierMaster(supplierData)` | `POST /api/suppliers` |
---
## Business Rules
- `applyPricingAndDiscounts` (§1, used in [01_item_catalog.md](./01_item_catalog.md) and
[06_sale_ride.md](./06_sale_ride.md)) resolves price in this order: region-scoped active price
list → global active price list → `Item.BasePrice`.
- Two price lists cannot have overlapping `EffectiveFrom`/`EffectiveTo` ranges for the same
`(ItemId, RegionId)` pair.
---
## Open Questions
- Are price lists customer/segment-specific as well as region-specific (ties into `Store.Segment`
from [12_store_management.md](./12_store_management.md)), or region-only in v1?
---
## Implementation Notes
> Fill this section in during planning discussion before writing any code.