Commerce Chain Optimization

Procurement

SCM procurement loop with governed PO confirmation, receipt, and invoice matching.

Overview

The canonical procurement loop (scm.procurement) governs PO confirmation through settlement.

Loop definition

States from canonical definitions:

Key transitions include confirm_po, schedule_receipt, receive_goods, and close_procurement.

Key actors

Guards

From canonical definitions:

Runtime support also includes human-only, confidence-threshold, and evidence-required.

YAML excerpt

id: scm.procurement
transitions:
  - id: confirm_po
    from: OPEN
    to: PO_CONFIRMED
    guards:
      - id: approval_obtained
      - id: actor_has_permission
  - id: receive_goods
    from: RECEIPT_SCHEDULED
    to: RECEIVED

TypeScript example

import { createLoopEngine } from '@loop-engine/sdk'

const loop = await engine.start({ loopId: 'scm.procurement', aggregateId: 'PO-42' })
await loop.transition('confirm_po', {
  actor: 'human:buyer',
  evidence: { budget_available: true, supplier_approved: true }
})

ERP adapter integration

Implement adapter hooks in @commerce-chain/adapters for PO creation, supplier confirmation, receipt posting, and invoice matching.

Industry Pack extensions

Pharma and Healthcare packs add stricter hold and compliance evidence requirements during receipt and dispute handling.