Fluent Commerce Logo
Docs
Sign In

Domain Model & Entities

Essential knowledge

Authors:

Matthew Hesford, Esma Tuzovic, Anita Gu, Cille Schliebitz

Changed on:

2 Feb 2025

Overview

In this section the reader will learn about the Fluent domain model and the various entities that make it up. 

Key points

  • Fluent provides a flexible domain model to represent data and processes critical for running any business. There are nine Domains:
    • Order Management Domain
    • Billing Management Domain
    • Global Inventory Domain
    • Foundation Domain
    • Store Fulfilment Domain
    • Security Domain
    • Shipping Domain
    • Payment Domain
    • Product Availability Domain

Domain Model & Entities

Lets learn about each Domain

No alt provided

Order Orchestration 

No alt provided

Order Orchestration represents and stores details about all orders across the Fluent platform. 

On the Fluent Platform, an item represents a product plus (+) quantity, as well as pricing and other customisation information.

Entities that exist in this Domain include:

  • Order:  An order is created when a customer completes the checkout process. Both the order and its details are recorded in an e-commerce system and the Fluent platform. Fulfilment Choice is a property of Order and contains the details of how the customer would like to receive the items.  Examples include - home delivery vs. click and collect; Which location/address; Standard vs. express post.
  • Fulfilment: Represents a Plan for stock movement between different locations. In a home delivery scenario, this might be from a warehouse to a customer's address. When an order is split (i.e. stock is drawn from multiple locations) multiple fulfilments will be created to model the overall plan to get the order to the customer.
  • Article:  Represents the physical parcel that transports order items from dispatch to the final destination. Examples of Articles include - physical, parcel, bag, satchel, and pallet.
  • Return Order:  Represents an Order that requires a return to the location of dispatch. It can only be created after an Order has been created and fulfilled.
  • Return Fulfilment:  Return fulfilment is associated with a return order.
  • Customer: Represents an entity that purchases goods or services from a shop or business.
  • Consignment: A consignment represents the shipping information related to the physical parcel. E.g. A label that is printed and glued/stuck/added to the box (also referred to as the Article)

Billing Management

No alt provided

Billing Management Domain facilitates the management of all billing requirements across the Fluent platform.

Entities that exist in this domain include

  • Billing Account: Billing Accounts are responsible for orchestrating all invoices and invoice adjustments (credit and debit memos). This entity also manages all associated downstream outcomes including payments, invoice notifications, and ERP integrations.
  • Invoice: This entity represents and itemizes sales transactions between buyers and sellers. Invoices also track associated credit memos, debit memos, and payments.
  • Credit Memo: This entity is issued from a seller to a buyer as evidence of a reduction or change in a sale. It represents a credit to the customer in the form of a refund, store credit, or the difference in the value of an item exchange (i.e. if the replacement product has a higher value).

Inventory

No alt provided

Inventory represents aggregations of product inventory across e-Commerce systems and the Fluent platform.

Entities that exist in this domain include

  • Product Catalog: Represents a grouping of products,  product attributes, and details associated with each product in the group. Different catalogs might be used to represent product information coming from different sources (e.g. different vendors in a marketplace scenario) or different views on the same set of products (e.g. language translations of the same product information).
  • Category: Represents a class or division of product regarded as having particular shared characteristics.  

Products can be classified as:

  • Standard Product: Represents a base product available to customers. A standard product is correlated to a product detail page but typically won't have inventory as customers buy a specific variant (e.g. size and colour combo) of the product.
  • Variant Product: Represents a variation of a base product (e.g. variation in color, size, etc.).
  • Group Product: Represents a set of products that can be purchased together as a single item. Examples include a furniture item that requires multiple SKUs to assemble.

3. Inventory Catalogue: Responsible for tracking the latest record (known as the on-hand quantity) of what products are in stock and at which locations. This Catalogue consists of inventory positions that can be aggregated from multiple sources to show the on-hand inventory of products, variants, and groups.

4. Inventory Position: Represents unique records that identify whether stock exists in a location for a specific stock-keeping unit.

5. Inventory Quantity:  Represents the quantity of inventory of an available product, SKU, and/or variant. This quantity makes up an Inventory Position. 

6. Virtual Catalog: A Virtual Catalog (VC) is a collection of subsets of intersections between a product catalog, an inventory catalog, and a set of location networks. It provides a view of the Inventory Catalogue, tailored to a specific purpose. These quantities may also be buffered (to avoid overpromising in case of in-store sales), and thus is known as "available to sell" or ATS.

7. Virtual Position: The Virtual Position entity represents different virtual catalogs and the stock available in each of the positions in each of the virtual catalogs. It maintains the ATS of a single product at a single location, or in some cases the aggregate quantity across a network of locations.

8. Controls: Controls are the individual Buffers & Exclusions which are used to calculate the ATS value presented to a customer.

9.  Control Group: A Control Group is a collection of Buffers and Exclusions which are used to impact what the ATS value is that will be presented to customers depending on which products and stores their fulfillment request is coming from.

Foundation

No alt provided

Foundation represents the setup and configurations needed in order to implement and build experiences using the Fluent Commerce app ecosystem.

Entities that exist in this Domain include:

  • Account: this entity represents an installation of the Fluent platform. An account can consist of multiple retailers.
  • Retailer: A business that sells goods to the public. Retailers can have distinct business processes (workflows), users, and entities, but can optionally share most things as well. Each retailer is typically either a different brand or a geographic region of the same brand.
  • Activity: The Activity entity tracks all activities that are recorded across the Fluent platform. Activities are also known as Events.
  • Location/Store: A location represents a physical place, whether that is a retail store, a warehouse, or even third-party vendor facilities.
  • Network: A network defines a named group of locations for the purpose of separating locations into logical or geographic categories.

*We will be learning more about the Foundation domain in the next lesson

Store

No alt provided

Store provides the foundation for retailers to manage all aspects of order fulfillment and the following entity:

Wave: A Wave is the process of grouping orders. The Wave entity holds information about the progress of created waves such as completed and started. It is also used to manage the batch pick and pack, and ship processes across a group of fulfilments assigned to a single location. Different types of waves can follow different processes, allowing clients to tailor the store fulfilment process across different types of locations (e.g. boutique vs department store).

Security

No alt provided

Security represents the usersroles, and permissions that are applicable across the Fluent platform.

Entities that exist in this Domain include:

  • User: A user is an entity that is interacting with the system. A user can be assigned roles and permissions.
  • Role: A Role is a set of permissions for a user. Roles are assigned to users in a given "context" (either account-wide or a specific retailer or location) to give fine-grained control over what a user can access.
  • Permissions: Permissions can be assigned to users. A permission documents abilities

Shipping

No alt provided

Shipping holds and records shipping details about an order. These details include the chosen carrier and consignment for each article associated with an order.

Entities that exist in this Domain include:

  • Carrier: A provider of delivery and shipping services between buyers, sellers, and customers.
  • Carrier Consignment: A consignment is created when an article has been processed for Home Delivery. There is only ever one consignment per article.
  • Manifest: The Manifest entity records and documents all details pertaining to the shipping of an order. These details include name, carrier, and location.

Payments

No alt provided

Payments holds payments details specific to a payment provider and all of Fluent's interactions with that specifically identified payment provider and has the following entity:

Financial Transactions: This entity holds the details of the payment. The Financial Transactions entity holds all financial activities that are recorded across the Fluent platform. This is usually a "pre-authorization" token for a specific payment gateway that can be "captured" at a later stage, e.g. after fulfilment. The fluent platform does not handle credit card information.

Availability

No alt provided

Availability provides a range of Availability information for different products. This information is provided by considering custom attributes defined in a business workflow.

Entities that exist in this Domain include:

  • Fulfilment Option: Retrieves and identifies the Fulfilment option for the proposed order.  A Fulfilment Options call will return multiple plans for how an order might be fulfilled, such as ETA and pricing information.
  • Fulfilment Plan: The Fulfillment plan identifies the strategy to be used to fulfill an order. A fulfillment plan may identify multiple fulfillments to complete an order.

Learn more by reading the complete entity-relationship diagram.


Copyright © 2025 Fluent Retail Pty Ltd (trading as Fluent Commerce). All rights reserved. No materials on this docs.fluentcommerce.com site may be used in any way and/or for any purpose without prior written authorisation from Fluent Commerce. Current customers and partners shall use these materials strictly in accordance with the terms and conditions of their written agreements with Fluent Commerce or its affiliates.

Fluent Logo