Domain model

The domain model of the enfore Organization Structure & Configuration-API consists of the core objects:

  • POSSalesChannel
  • ServiceLocation
  • ProcessingLocation
  • StorageLocation

The enfore platform uses sales channels as a concept to model different ways via wich to sell products to customer. A POSSalesChannel is a sales channel that is realized by a physical store location. Other types of sales channels are used to represent sales via online channels such as the enfore OnlinePresence, Amazon, Ebay or a custom online store.

Every direct physical interaction with customers is performed at a ServiceLocation. As such a service locations represents a physical place that customers can access and must have a name and an address.

There is a 1:1 relationship between POSSalesChannels and ServiceLocations. That is, there is exactly one ServiceLocation for each POSSalesChannel and vice versa. This combination is also called a "POS location", for example in the enforePOS client application UI.

In a POS location, the sales channel is used to configure how products are sold (e.g., is pickup possible). Whereas the service location is used to configure how the sale is recorded (e.g., cash management settings, settings for how revenue is booked) and fulfilled (e.g., where are productions, pickups and deliveries performed).

For the production of items and the preparation of pickup and delivery operations, a ProcessingLocation is needed. These processing locations always belong to a specific service location, even though they might have a different phyiscal location (e.g., a garage where bicycles are built that are sold from a store across the street).

The ProcessingLocation holds configuration for the production, pickup and delivery processes. For example, what type of tracking is enabled. Or which documents are printed and what printer to use.

TBD: What about inconsistencies between SalesChannel and AssemblyLocation settings. E.g., SalesChannel states "Delivery splip is printed" but AssemblyLocation does not have this setting and might not even have a printer configured?

A StorageLocation is a place where the organization stores physical goods such as inventory items or raw materials.