Templates / Order to cash / order-to-cash

Order to Cash

Takes an order from receipt to cash in the bank. A DMN table sets the credit decision, stock is reserved in a sub-process that throws OUT_OF_STOCK when it cannot be, invoicing and shipping run in parallel, and the instance waits for the payment message correlated on the order id before closing the order. An out-of-stock order is cancelled and the customer is told why.

dmnerror boundaryparallel gatewaymessage correlatione-commerce
Open in editor Download .bpmn
casen template use order-to-cash
Reserve stock declined approved invoice ship yes no Validateorder Decidecredit terms Notifycustomer:declined Cancel order Notifycustomer:out of stock Createinvoice Ship order Awaitpayment Close order Check stock Reserveitems Order received Credit approved? Order declined Out of stock Order cancelled Order closed In stock?

Scenarios · 3

  • Valid order in stock is invoiced, shipped and paid credit-decision → reserve-items → create-invoice → await-payment → order-closed
  • Out-of-stock order is cancelled through the error boundary out-of-stock → on-out-of-stock → cancel-order → order-cancelled
  • Order from a customer rated C is declined credit-decision → notify-declined → order-declined

Job types · 8

  • customer-notify Notify customer: declined, Notify customer: out of stock
  • inventory-check Check stock
  • inventory-reserve Reserve items
  • invoice-create Create invoice
  • order-cancel Cancel order
  • order-close Close order
  • order-validate Validate order
  • shipment-create Ship order

Files · 3

Every scenario passes on @bpmnkit/engine's runScenario in the package's tests. casen template use order-to-cash [dir] writes the files above into your project — see the templates guide for running the scenarios and deploying.