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 createdCreatedBy- contact information about customer (i.e. person) purchasing productCustomer- information about customer company purchasing productSupplier- information about supplier company supplying productVendor- information about vendor company providing productProductId- the unique identifier of purchased productOrderLines- the collection of product items (e.g. features, packages, subscriptions) delivered with productCurrentStatusInfo- contains current system status (seeSystemStatusproperty), 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 orderNonStandardStatusInfo- contains current system status (seeSystemStatusproperty), used for 'non-standard' product order onlyFirstInvoiceDate- UTC datetime of the first invoice (optional)TotalPriceWithoutVatandVat- the indicative summarized price, used only in simple scenarios- Hint: to get the most accurate values, it is better to use
BillingPeriodCode,Price,BasePriceandLicenceCountof the items inOrderLinescollection
- Hint: to get the most accurate values, it is better to use
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 alsoCustomsection for advanced scenarios of 'non-standard' product order