Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.

Order model

OrderModel is the essential contract of business integration process. It will change and extend in future, but it is necessary to keep compatibility as much as possible using defensive development practices.

General principles for maintaining compatibility

  • Properties can be set as obsolete and replaced with new ones in future
  • Collections and lists can't guarantee item order
    • Hint: use filtering expression to find appropriate item(s), not index
  • Enumerations can add additional items and the existing ones will be preserved as obsolete
  • Use KISS principles and minimize impact of potential changes, see: basic, intermediate and advanced level(s)
    • Hint: read properties necessary to fulfill needs of your business integration process only

Basic level properties

These properties are necessary to fulfill any business integration process.
The basic level properties of ASOL.PlatformStore.Order.Contracts.OrderModel contract class:

  • Id - the unique identifier of order (primary key)
  • OrderNumber - the order number (human-readable identifier)
  • CreatedOn - UTC datetime when order was created
  • CreatedBy - contact information about customer (i.e. person) purchasing product
  • Customer - information about customer company purchasing product
  • Supplier - information about supplier company supplying product
  • Vendor - information about vendor company providing product
  • ProductId - the unique identifier of purchased product
  • OrderLines - the collection of product items (e.g. features, packages, subscriptions) delivered with product
  • CurrentStatusInfo - contains current system status (see SystemStatus property), can be null when order is released, but not acknowledged

Intermediate level properties

These properties are necessary to fulfill basic scenarios of business integration process using 'non-standard' product order.
The intermediate level properties of ASOL.PlatformStore.Order.Contracts.OrderModel contract class:

  • IsNonStandard - boolean flag to recognize 'standard' and 'non-standard' product order
  • NonStandardStatusInfo - contains current system status (see SystemStatus property), used for 'non-standard' product order only
  • FirstInvoiceDate - UTC datetime of the first invoice (optional)
  • TotalPriceWithoutVat and Vat - the indicative summarized price, used only in simple scenarios
    • Hint: to get the most accurate values, it is better to use BillingPeriodCode, Price, BasePrice and LicenceCount of the items in OrderLines collection

Advanced level properties

These properties are available to provide maximal details for the most complex business integration process.
The advanced level properties of ASOL.PlatformStore.Order.Contracts.OrderModel contract class:

  • OrderSummary - the complex structure describing sections of product order, can contain also Custom section for advanced scenarios of 'non-standard' product order