Skip to content

Order Lifecycle

Máté Károlyi edited this page Oct 6, 2025 · 2 revisions

🛒 Order Lifecycle

This page describes the business flow of an Order aggregate in the OMS (Order Management System).

Overview

An order goes through multiple states during its lifecycle.
The transitions are controlled by domain rules and emitted as domain events.

Status Flow

  • WAITING_FOR_PAYMENT → order is waiting for customer payment
  • PAID_SUCCESSFULLY → payment confirmed, order is ready for processing
  • PROCESSING → order is being prepared (e.g., picking & packing)
  • SHIPPED → order left the warehouse and is on its way
  • DELIVERED → customer received the order
  • RETURNED → customer returned the order
  • REFUNDED → refund processed for customer
  • CANCELLED → order was cancelled
  • PAYMENT_FAILED / PAYMENT_CANCELED → payment attempt unsuccessful

Diagram

Order flow

Domain Events

Each significant transition emits a domain event:

  • OrderCreated
  • OrderPaid
  • OrderShipped
  • OrderDelivered
  • OrderCanceled
  • OrderReturned
  • OrderRefunded
  • OrderPaymentFailed
  • OrderPaymentCanceled

These events can trigger actions such as:

  • Clearing the basket after order creation
  • Sending system notifications (email/SMS)
  • Initiating refunds
  • Updating projections for queries

Clone this wiki locally