Appearance
Sales Cycle Management (SCM)
Status: Implemented (core flows + OMS/DOM expansion: promise quotes, routing policies/plans, exception workflows).
Purpose
SCM owns sales transactions end-to-end: quotes, orders, fulfillment, returns, and tender handling. It records the sales truth for each logical facility and references sales-channel carts or worksheets as inputs.
Goals
- Provide an OMS-grade sales lifecycle with full traceability and exceptions handling.
- Enforce sellability through PMC and pricing through PPM for every sale.
- Support omnichannel fulfillment across stores, warehouses, and partners.
- Preserve the price and catalog snapshot at time of sale.
Non-goals
- SCM does not define product truth (owned by PVM).
- SCM does not define sellability (owned by PMC).
- SCM does not define pricing rules (owned by PPM).
Scope and gating
- All sales are org-scoped.
- Operational actions are logical-facility scoped.
- Channel context is required for quotes, orders, and returns.
- Sales channels define carts and checkout experiences; SCM references those carts.
Request context checklist
- Org: required for all sales operations.
- Logical facility: required for quotes, orders, fulfillment, and returns.
- Sales channel: required for all sales transactions and attribution.
- Actor + role: required for approvals, overrides, and tender exceptions.
- Cost-centre: optional attribution for billing and audit.
Core business entities and relationships
- Sales order and order lines (facility + channel scoped).
- Order lines support each, weight, and volume quantities with UoM conversions.
- Quotes and quote lines (for wholesale or negotiated sales).
- Fulfillment records: pick, pack, ship, delivery, pickup.
- SLA targets per order/fulfillment (promise/ship/deliver/pickup-by timestamps).
- Substitution policies per order/fulfillment (allow/mode/max/approval).
- Returns/RMAs, exchanges, refunds, credits.
- Tenders: gift cards, store credits, layaway, and other instruments.
- Tender liability tracking for stored-value instruments (open/settled/voided) with settlement references.
- Wholesale credit terms, invoices, credit-hold status, and payment terms captured on quotes/orders (credit snapshots recorded at order placement).
- Backorder commitments with promise dates and fulfillment status.
- Special order requests with approval and supplier confirmation status.
- Exception records: short picks, substitutions, carrier issues, shipment cancellations.
- EDI records for inbound/outbound transaction sets with partner references, status tracking, and payload references.
Lifecycle and status model (described in words)
- Quotes move from draft to sent to accepted/expired.
- Orders move from draft to pending approval (when required) to submitted and reserved/allocated/committed, then fulfilled or cancelled.
- Fulfillments progress through pick, pack, ship/deliver, then complete.
- Returns move from requested to authorized to received/inspected to resolved.
- Cancellations can be full or partial and must retain audit reasons.
- Order cancellations capture cancel_code, optional notes, and cancelled_at for audit.
- Partial line cancellations record cancelled_qty + cancel_reason_code on the line and do not auto-cancel the order (use order/cancel for full cancellation).
- Backorder cancellations capture cancel_code, optional notes, and cancelled_at for audit.
- Special order cancellations capture cancel_code, optional notes, and cancelled_at for audit.
- Backorders move from open -> promised -> partially fulfilled -> fulfilled or canceled/expired.
- Special orders move from requested -> approved -> supplier confirmed -> inbound or drop-ship -> fulfilled/canceled.
End-to-end workflows
Happy paths
- Quote -> acceptance -> order -> fulfillment -> completion.
- Direct order -> reserve/allocate -> fulfillment -> completion.
- Inbound EDI 850/855/856/810 captured and tied to sales or fulfillment records as needed. Note: EDI is a record/list surface (store and retrieve transaction metadata); SCM does not parse or generate EDI documents.
- BOPIS and curbside flows with pickup windows and confirmations.
- Gift card/store credit tender application, liability tracking, and settlement updates.
- Backorders created for out-of-stock items with promise dates and customer notifications.
- Special orders placed for procure-to-order items with deposits or terms as configured.
Exceptions and edge cases
- Short picks and substitutions restricted to channel-sellable items.
- Short picks record short_qty + reason codes per line during shipment exceptions.
- Shipment exceptions are resolvable back to a valid operational state with resolution codes and audit notes.
- Lost/damaged shipments with resolution paths.
- Partial shipments and partial refunds with explicit reason codes.
- No-show pickups with restock and refund rules.
- Cross-channel returns with policy gating.
- Returns disposition outcomes (restock, quarantine, refurb, scrap).
- Fraud/abuse flags that trigger holds without blocking valid returns.
- Backorder cancellations and expirations with reason codes and customer notification.
- Special order cancellation policies that respect supplier commitments and restocking fees.
Configuration and defaults
- The platform is enterprise-grade by default; applications may hide complexity via defaults.
- Order promising rules: reserve vs allocate vs commit and backorder policies.
- Promise holds use stage-specific TTL defaults (reserve/allocate/commit) with explicit overrides; releases record reason codes for audit. SCM propagates
expires_atinto ICS allocation/commit holds for reconciliation. - Allocation and promising can use configurable factors (demand, availability, lead times, thresholds, channel priority); recommendations are distinct from commitments.
- Split fulfillment policies by facility and channel.
- Routing policies and plan generation are exposed via
/scm/routing/policy/*and/scm/routing/plan/*. - Return and exchange rules with eligibility windows and disposition outcomes.
- Tender policies: gift card and store credit liability, settlement, and expiry rules.
- Default behavior: gift card/store credit tenders settle liability at capture unless explicitly overridden; layaway remains open until settled or voided, and order cancellation auto-voids any open layaway liabilities by default.
- Quote pricing uses PPM price resolution (configurable); SCM owns quote lifecycle.
- SLA targets and substitution policies are set per channel with optional facility overrides; orders and fulfillments preserve the active policy snapshot.
- Channel policy is managed via
/scm/channel/policy/get+/scm/channel/policy/setand enforced on order + shipment create (defaults + guardrails). - Orders support org-scoped partial-match search for operational lookup with channel/status filters (search plane-backed).
- Backorder policies: allow/disable by org/facility/channel/category, max backorder qty, max age, and partial-ship rules.
- Special order policies: approval requirements, deposit rules, supplier confirmation windows, and cancellation windows.
- Approval policies: required approver roles for discount overrides, special orders, and backorders; thresholds are % and $ values set per org with facility overrides; approvals capture approver, timestamp, and reason with optional no-self-approval rules.
- Wholesale credit terms and credit-hold policies are enforced at order time.
Taxation and compliance (order-level)
- Taxes are calculated per jurisdiction using global reference rules plus org overlays; SCM exposes
/scm/tax/policy/get|list|setfor versioned policy control. - Tax quotes (
/scm/tax/quote) compute taxes with policy snapshot or passthrough connector, capture tax basis and liability trigger, and preserve certificate snapshots when present. - Tax finalization (
/scm/tax/finalize) locks audit-grade records tied to the order/invoice/shipment reference, preserving the policy version and computed tax components. - Tax basis is explicit: tax-included or tax-added by channel and facility policy.
- Tax-on-tax rules apply only where configured; ordering is preserved in audit.
- Customer exemptions are honored when valid; certificates are recorded with expiry.
- Luxury and excise taxes are applied based on product tax category and thresholds.
- DTC exemptions and tax holidays apply only where jurisdiction rules allow.
Sales and merchandising analytics (best-practice expectations)
- Sell-through, conversion rate, basket size, and repeat rate by channel and facility.
- Margin, GMROI, and promo lift by category and time bucket.
- Stockout and oversell rates, lost-sales estimates, and substitution rates.
- Returns rate, reason distribution, and refund leakage by category and channel.
- Price sensitivity and elasticity signals tied to PPM price history.
- Assortment performance by taxonomy (division/department/category) and option (size/color).
BI and KPI expectations
- GMV, net sales, units, and AOV by channel and facility.
- Order cycle time, on-time ship rate, and partial fulfillment rate.
- Cancellation, substitution, and backorder rates with reasons.
- Return and exchange rates with refund leakage and reason codes.
- Tender mix, chargeback rate, and liability deltas for credits/gift cards.
KPI readiness checklist
- Order, fulfillment, and return timestamps captured with status transitions.
- Price snapshot, discounts, and taxes captured per order line.
- Channel, facility, and fulfillment method captured per order.
- Return reasons and disposition outcomes captured.
- Tender instruments and liabilities recorded with references.
Rebalancing and recalibration
- Rebalance order routing across facilities to protect SLAs and reduce short picks.
- Recalibrate substitution rules and allocation priorities by category and channel.
- Adjust backorder release rules based on inbound supply and service targets.
- Apply guardrails for max backorder exposure and substitution tolerance.
Omnichannel requirements
- Support ship-to-home, ship-from-store, BOPIS, curbside, and delivery.
- Support split fulfillment and multi-node allocation.
- Support channel-specific fulfillment policies without breaking auditability.
Performance requirements
- Checkout, reservation, and payment flows must be near-instant.
- Fulfillment transitions must be near-instant for high-throughput operations.
- Returns processing must be near-instant for store and warehouse operations.
- Backorder release and promise-date updates must be near-instant after inventory changes.
- Approval checks must not slow operational sales flows.
Operational resilience checklist
- Operations are idempotent and retry-safe; duplicate submissions do not double-apply.
- Event emission is non-blocking; operational actions do not wait on analytics pipelines.
- Out-of-order events are tolerated; reconciliation uses timestamps and source references.
- Exceptions generate actionable inbox items and can be retried or reversed with audit trails.
- Long-running workflows are resumable with explicit state checkpoints.
Training and change management
- Policy and workflow changes include training notes and operational checklists.
- Critical changes use staged rollout with rollback guidance to reduce operational risk.
- Support runbooks cover common disputes, returns, and fulfillment exceptions.
Downstream accounting and integration capture
- Every sales event captures org, facility, channel, customer, SKU, qty, unit price, discounts, taxes, timestamps, and source references.
- Orders preserve the catalog version and effective price snapshot at time of sale.
- Catalog changes do not alter historical orders; orders remain self-contained.
- Returns and credits carry reason codes and reversal references.
- Events include optional cost-centre attribution for billing and audit.
Comments and inbox
- Every sales record supports comments, threads, and attachments with revision history.
- Exceptions and holds generate team inbox notifications.
Governance and roles
- Facility-scoped operational roles (scm_* roles) with explicit facility grants for members.
- Price overrides require explicit permissions and policy guardrails.
- Submission approvals require designated approver roles (scm_discount_approve, scm_special_order_approve, scm_backorder_approve) when thresholds are exceeded, with optional no-self-approval rules.
- Cost visibility is restricted to
cost_view(facility) orfinance_audit(org-wide). - Role grants can be permanent, time-bounded, or scheduled.
Relationships and data flow
- Sales channels create carts and checkout context; SCM references those carts for orders.
- PMC determines whether a line item is sellable for a channel.
- PPM provides final price resolution for quotes and orders.
- ICS provides availability and reservation outcomes.
- CRM/Loyalty provides customer and tender balances.
- Influencer/Affiliate receives attribution and earnings inputs.
- Consignment sales respect ownership vs possession and trigger settlement events.
- Special orders may trigger PCM procurement workflows or drop-ship flows as configured.
Example scenarios and acceptance criteria
Scenario 1: BOPIS with no-show
- A customer places a BOPIS order for a store pickup window.
- The order is reserved and picked; the customer does not arrive.
- The order is cancelled and stock is restocked per policy.
- Acceptance: inventory is restored, refund or credit is issued, and audit trails are complete.
Scenario 2: Split fulfillment with substitution
- An order is split across a warehouse and a store.
- One location short-picks and offers a substitution.
- Substitution is restricted to channel-sellable items and is recorded.
- Acceptance: substitutions are auditable and do not violate channel sellability.
Scenario 3: Wholesale quote to order
- A wholesale quote is issued with negotiated terms.
- The quote is accepted and converted to an order.
- Price resolution uses PPM rules and is preserved on the order.
- Acceptance: order retains the quote price snapshot and audit trace.
Scenario 4: Backorder lifecycle
- An order is placed for an out-of-stock item and is backordered.
- A promise date is set and the customer is notified.
- Inventory arrives and the backorder is allocated and fulfilled.
- Acceptance: backorder status and promise dates are tracked; fulfillment occurs on receipt; audit trail is complete.
Scenario 5: Special order with supplier confirmation
- A customer places a special order for an item not normally stocked.
- The order is approved and a supplier confirmation is obtained.
- The item is received and fulfilled, or the order is canceled per policy.
- Acceptance: special order status reflects supplier confirmation; deposits and cancellation rules are enforced; audit trail is complete.
Scenario 6: Discount override below price floor
- A cashier applies a discount that would drop the price below the allowed floor.
- Policy requires an approver with
scm_discount_approveand cost visibility; the override is approved with a reason. - Acceptance: the order records the approver, policy version, and final price snapshot; the below-floor event is flagged for review.
Scenario 7: Cross-channel return with loyalty reversal
- A customer buys online and returns the item at a store.
- The return is processed, inventory is restocked at the return facility, and loyalty points are reversed.
- Acceptance: the return links to the original order, the loyalty ledger is updated, and tax basis is preserved for audit.