Extension points - sales orders

We want to enable custom workflows to be injected into the regular order processing flows. For this, it is not sufficient to have a single extension point as the lifecycle of a line item contains various state transitions that should be customizable.

The following diagram shows a simplified line item lifecycle with the extension points for custom workflows:

alt_text

The above diagram shows the four possible extension points for custom workflows:

  1. Creation of line item(s) - ConfigureLineItem
  2. Custom assembly for a line item - AssembleProduct
  3. Canceling an unpaid line item - CancelLineItem
  4. Refunding a paid line item - RefundLineItem