Product, stock, and price are different facts
E-commerce data becomes unreliable when product identity, inventory quantity, commercial price, promotion, tax, and currency are collapsed into one record. These facts change at different rates and have different owners; orders need snapshots of the commercial decision while catalog data continues evolving.
Model variants, locations, price lists, and money precisely
- Product defines merchandising identity; SKU/variant defines the stockable sellable unit.
- Inventory belongs to location and should distinguish on-hand, reserved, and available.
- Prices should carry currency, price-list/context, validity period, and rounding rule.
- Currency conversion should use an explicit rate source/effective time when conversion is part of pricing.
- Order lines snapshot SKU description, quantity, unit price, currency, discounts, and tax outcome.
Layers behind a sellable item
Catalog provides the variant, inventory answers availability, pricing resolves the commercial offer, and checkout snapshots the result into the order.
From product identity to an immutable order line
Catalog provides the variant, inventory answers availability, pricing resolves the commercial offer, and checkout snapshots the result into the order.
Selling one SKU in two currencies and warehouses
Data shortcuts that create wrong totals
Commerce-data checklist
- Separate product, variant, inventory, and pricing models.
- Track inventory by location and reservation state.
- Represent money with currency and deterministic precision.
- Snapshot commercial terms on the order.
- Test concurrent stock reservation and multi-currency rounding.
