Subject Area Concepts
This subject area contains the core set of customer order entity types. Retailers may define their own different types of customer orders using the CustomerOrderType entity. They may establish a standard set of terms and conditions through the CustomerOrderTermsAndConditions entity and apply those that apply through a foreign key reference from the CustomerOrderType. Each instance of a CustomerOrderTermsAndConditions entity may reference one or more CustomerOrderCharge entities. This provides retailers with flexibility to fine tune special processing and handling fees for each set of terms and conditions
CustomerOrder entities include CustomerOrderLineItem entity type instances as children. CustomerOrderLineItem entity type are sub-typed into:
•CustomerOrderProductLineItem entities - to capture each item being ordered by a customer
•CustomerOrderChargeLineItem entities - to capture the processing and handling fees mentioned earlier for this specific order
•Customer OrderTaxLineItem entities - to capture sales, use, VAT and other consumption taxes charged for the order. In ARTS there is support for tax exemptions (CustomerOrderTaxExemption) and tax override (CustomerOrderTaxOverride) for customers with appropriate clearance from the tax authority
•CustomerOrderTenderPreAuthorization entities - to capture the customer's agreement and their bank credit/debit card provider's authorization to pay for the order when it is shipped. When a bank credit/debit card service provider authorizes a monetary amount to be charged to their customer's account, they record it so the customer's available credit is reduced by the authorization amount. The funds are not transferred at this point, simply allocated. When the order is settled through a RetailTransaction the bank transfers money from the customer account to the retailer account.
•CustomerOrderPaymentLineItem - to capture the actual transfer of funds related to deposit, down payment or other pre-sales recognition collection of tender by the retailer.
It is important to note that customer orders are NOT SALES. They are a request to purchase products. Sales (and sales revenues) are recognized immediately after an item is shipped during the settlement process as described in the Customer Order theme topic.
Customer Order Status
CustomerOrder and CustomerOrderLineItem entities are relatively long lived (unlike RetailTransaction entities). CustomerOrder entity instances may be canceled, backordered, expedited in part or as a whole. To accommodate these kinds of changes the ARTS model has two entity types that define enumerated values for order states: CustomerOrderState (for the order header) and CustomerOrderLineItemState (for each line item which enables partial status changes). These two entities establish retail standard status definitions. These states are associated to the underlying CustomerOrder and CustomerOrderLineItem entities through the CustomerOrderStateAssignment and the CustomerOrderLineItemStateAssignment associative entity types. This facilitates keeping a history of status changes for customer orders and line items which is important in tracking and auditing customer order activity and service levels.
Customer Order Line Item Reconstitution
As discussed in the Customer Order Theme Concepts topic, customer orders and line items may be split up and reconstituted into a number of different shipments and retail transactions. The CustomerOrderProduct group entity identifies a logical container to collect CustomerOrderProductLineItem instances that are to be picked, packed and shipped together. The CustomerOrderProductAssignment join entity type allows the retailer to split single line items into multiple shipments (CustomerOrderProductGroup instances). This flexibility allows retailers to decompose and reconstruct orders into shipments and settlements in any way they choose to accommodate their customers.
In addition to its role in helping to refactor customer orders for shipping and settlement, the CustomerOrderProductGroup entity also enables orders to be split up based on inventory location and supplier. With this feature, retailers can refactor orders around particular suppliers (Supplier) (e.g. for drop shipment delivery) and inventory locations (InventoryLocation) for picking and packing.
The CustomerOrderProductGroupType entity type establishes a retailer defined enumerated list of valid kinds of CustomerOrderProductGroup entity type instances.