Fluent Commerce Logo
Docs

Frameworks

User Interface Framework (WebApps, Manifest Configuration, Fragments, Components, and their Elements.), Orchestration Framework (Workflow, Actions, Rules, Entities, Contracts, Settings, Triggers, Status, and Variables), Developer Tooling (Modules, Templates, Connectors, and SDKs.)

Responsive Sourcing Framework Overview

Essential knowledge

The Responsive Sourcing Framework is a configurable, scalable alternative to custom Workflows and Rules for managing sourcing strategies. You’ll learn how to define and optimize sourcing logic using Sourcing Profiles, Strategies, Conditions, and Criteria. The Framework empowers both technical and business users with faster implementation, greater control, and transparency into how sourcing decisions are made and why.

  • Prerequisites: You should have knowledge of Order Management and Order lifecycle, Order Reference Module, and GraphQL API
  • The Responsive Sourcing Framework is designed for both technical and business users - logic is transparent and comes with a configurable User Experience (UX)
  • Enables faster implementation by reusing modular sourcing logic building blocks such as Sourcing Profiles, Strategies, Conditions, and Criteria
  • Sourcing Profile GraphQL API is required to correctly set up your sourcing logic
  • Supports custom Sourcing Conditions and Criteria through externally developed extensions for advanced or domain-specific logic

Sourcing Profiles Interface

Essential knowledge
  • Part of Admin UI: Sourcing Profiles are managed in the Admin interface for Fluent OMS.
  • Profile Versions: Editing a profile in the Admin UI triggers the creation of a new draft version via the `updateProfile` mutation.
  • Centralized Management: View all active profiles with key details such as version, status, last updated, default catalog, networks, and max split.
  • Sourcing Strategies: Create new strategies (including fallback) and edit existing ones. Strategies within profiles are assigned priorities, ensuring that the most critical business rules are applied first.
  • Conditions & Criteria: Define or adjust fulfillment logic using configurable IF conditions and THEN criteria.
  • Intuitive Editing Experience: Users can easily add or configure conditions, set maximum splits, and apply catalogs or networks through guided forms.

Exception Management in writing Rules

Essential knowledge
  • To ensure that the Orchestration Audit Events contain as much useful information as possible, it is important to consider the Exception Strategy used by your Rules.
  • Don't swallow exceptions inside Rules, and always allow a caught exception to be re-thrown, or added as a cause to a new exception to ensure the cause is included in the Audit Events.
  • The Workflow Framework provides a special exception type called RuleExecutionException which provides special handling of exceptions differently from all others.

Rule Context Generator

Essential knowledge

The `RuleContextGenerator` is the underlying class that the `RuleExecutor` and `WorkflowExecutor` use to construct a mock `Context` for your tests. While you will most often interact with it through the executors, you can also use it directly to manually create a `Context` object.

This is particularly useful when you are unit testing a helper or utility class that requires a `Context` object as a parameter, but you don't need to execute a full rule.

  • Core Context Builder`RuleContextGenerator` is the fundamental builder class that the `RuleExecutor` and `WorkflowExecutor` use to create the mock `Context` for your tests.
  • Direct Instantiation: You can use it directly (`RuleContextGenerator.of(...)`) when you need a `Context` object for testing a helper class or utility method, but don't need to execute a full rule.
  • Action Tracking: It automatically captures and tracks all actions (events, mutations, logs) performed during execution, providing methods like `getActionsOfType()` and `getLastActionOfType()` for verification.
  • Foundation of Testing: It is the foundational component of the test utilities, providing the mock environment that makes isolated unit and integration testing possible.

Orchestration & Audit Events

Essential knowledge

On Workflows and Workflow Fragments

Essential knowledge

Workflows are the backbone of the Fluent platform as they describe the lifecycle of an entity. Defining subsections or sub-processes within a workflow allows to manage and evolve them independently. Thus fostering loosely coupled and self-contained fragments with no duplication of shared or unchanged behavior of a baseline workflow.

On this page we will look at the different ways of structuring workflows into fragments and then how to optimally merge them into a final workflow that is used to orchestrate entities. Finally how to package both workflows and fragments into a module.

  • A Workflow defines behavior of an entity, such as order, fulfillment, or an inventory position.
  • A Workflow Fragment is a sub-process within a larger workflow, managed separately from the rest of the workflow.
  • Keeping workflow customizations in a workflow fragment and applying one or more fragments on top of a reference workflow reduces the duplication of rulesets and minimizes future maintenance.
  • At module deployment time, the Fluent CLI will combine multiple fragments into a final workflow and upload to the target retailer. More details on the CLI commands are in Working with Workflows and Fragments.
  • Asset execution order: `workflows` before `workflow-fragments`.

Fluent Store Dispatch Template

Essential knowledge
  • Pack and Dispatch Orders: This template facilitates the packing of items into boxes or satchels and allows for printing of packing slips and carrier labels.
  • Multiple Order Types: It supports packing for various order types including Home Delivery, Click & Collect, and Store Transfers.
  • Configurable Workflow: The template relies on the Location Store Workflow with a Wave Dispatch User Action to streamline the dispatch process.
  • Wizard Page Integration: Utilizes the fc.page.wizard component from the Component Library for step-by-step guidance through the packing process.

Availability Interface

Essential knowledge

The Availability interface provides visibility into fulfilment options generated by the system when evaluating how an order can be completed. Availability ensures that orders are processed in line with business rules, inventory availability, and delivery or collection methods.

The interface contains one submenu: Fulfilment Options. This section provides access to all generated fulfilment options and their related fulfilment plans.

  • The Availability interface contains one submenu: Fulfilment Options.
  • Fulfilment Options represent possible ways to complete an order, while Fulfilment Plans define the strategy behind each option.
  • Together, these views provide oversight of how orders are fulfilled according to rules and inventory.

Feeds Interface

Essential knowledge
  • You should know about Inventory Feeds.
  • The Feeds Dashboard offers a comprehensive overview of inventory feeds. It presents general information for selected periods and provides users with insights into their account's feed activities.

Products Interface

Essential knowledge
  • The Products interface is a centralized hub for managing a collection of products, encompassing all associated attributes and details, offering a holistic approach to product management.
  • It focuses on Product Catalog management, Standard Product management, and Category management. It empowers users to efficiently organize and oversee their product-related information, providing a seamless and comprehensive solution.
  • The interface offers specific configurations for managing Categories and Product Catalogs, ensuring a tailored and effective product categorization and cataloging approach.

Rulesets

Essential knowledge

Rulesets are fundamental components in implementing business flows. They are reusable collections of rules that contain orchestration logic. These functions can be applied across various workflows and use cases, providing flexibility and efficiency. The Order, Inventory, and Fulfilment reference modules contain a set of pre-defined rulesets, each with its corresponding rules.

  • Rulesets are a collection of rules.
  • Rulesets are functions that can be used in multiple places for different use cases.
  • There are four possible Actions available to your rules: SendEventAction, WebhookAction, MutateAction, and LogAction.
  • The Core module contains rules that are common to all reference modules.

Rule Development Guidelines & Recommended Practices

Essential knowledge
  • This document will cover the following topics:
    • Best Practices
    • Rule Naming Conventions
    • Rule Descriptions
    • Rule Parameters
    • Exception Handling
    • Logging & Audit Events
    • Utilities Bundles
    • Constants
    • Documentation
    • Additional Best Practices

Languages and Localisation

Essential knowledge

As a part of Internationalisation, the Fluent platform supports multiple languages. This support allows users of web apps such as OMS Webapp and Fluent Store to configure and view the modules and interfaces of the Fluent platform in their preferred language.

As of the Fluent v4.45 release, the Fluent platform provides pre-configured support for the following languages.

Fluent Order Management uses a default language of Australian English `en-AU`.

  • Australian English `en-AU` - Default
  • American English - `en-US`
  • French - `fr-FR`
  • Mexican Spanish - `es-MX`
  • Italian - `it-IT`
  • Enable additional language in OMS
  • Additional language Support - Beta
  • Custom Language Bundles
  • Language Preferences for User Accounts
  • Customizing Languages and Key
  • Customizing Workflow User Actions
  • Adding new Mutation Actions
  • Priority and Fall Back Options of Internationalization
  • Limitations

Fetching Data with the useQuery Hook

Essential knowledge

This lesson focuses on fetching data within a custom form field using the `useQuery` hook. We'll move away from relying on page query data and instead directly query the Fluent GraphQL API to retrieve a list of nearby locations with product stock. This involves defining data structures for query results, storing the query in a constant, and using the `useQuery` hook to execute the query with dynamic parameters derived from the form's context and the user's context (via `useAuth`). We will then render the results in a selectable list using radio buttons.

  • Data Independence: Components should fetch their own data using the `useQuery` hook, rather than relying on potentially unavailable page query data.
  • GraphQL Query: A GraphQL query (`searchVirtualInventory`) is used to retrieve nearby locations with stock.
  • Data Structures: Interfaces (SVINode, SVIResult) are defined to structure the query results.
  • `useQuery` Hook: The `useQuery` hook is used to execute the GraphQL query with dynamic parameters.
  • Dynamic Parameters: Query parameters (`productRef`, `locationRef`, `lat`, `lng`) are derived from the form's entity context (product) and the user's context (location) using the `useAuth` hook.
  • Loading State: A loading state is implemented while the query progresses.
  • Result Rendering: The query results are initially logged to the console and then rendered as a list of selectable locations using radio buttons.
  • User Selection: A state variable and event handler are used to track the user's selected location.

Metrics Overview

Essential knowledge

This document is intended to introduce the Metrics and describe their place within the Fluent Big Inventory product.

Pre-requisites:

  • Metrics are available for all Fluent Order Management and Fluent Big Inventory customers.
  • Metrics data is captured, uploaded, and stored in a monitoring system.
  • Metrics data is retrieved via the Metrics API.
  • Metrics data can be visualized with the OMX UX Framework, Business intelligence tools, and third-party Metrics analytics platforms.

How Metrics works

Essential knowledge

This document is intended to describe to implementers Metrics technical details within the Fluent Big Inventory product.

Pre-requisites:

  • All customers' Metrics are isolated in the dedicated workspaces.
  • Metrics are captured from the Fluent APIs, Orchestration Engine (Rubix), Batch Pre-Processing, and Inventory Feeds.
  • Use `metricInstant` and `metricRange` GraphQL queries to retrieve the Metrics data.

How to transform v1.0 manifest into the manifest v2.0

Essential knowledge
  • Admin Console Vs Fluent OMS Manifests
  • How to add a component to a tab
  • How to add a filter and exclude filters that should not be displayed on
  • How to add breadcrumbs
  • How to set the default page size
  • How to add Mutations and UserActions
  • How to add components to a card
  • How to add components to a list
  • How to configure navigation from Dashboard to the page with applying date and time range filter

Getting Started with Metrics API

Essential knowledge

This guide is intended to provide implementers with information about the Metrics API within the Fluent Big Inventory product, describing its functionalities and utilization principles within the Fluent Platform.

Pre-requisites:

  • Metrics data is fetched and visualized for the Fluent Platform Observability enablement.
  • Use `metricInstant` and `metricRange` GraphQL queries to retrieve the Metrics data.
  • Prometheus Query Language is utilized for the Metrics API queries construction.

Metrics usage for Platform Observability

Essential knowledge

This document is intended to describe to implementers which Metrics are available within the Fluent Big Inventory product and what kind of data they provide to achieve Platform Observability.

Pre-requisites:

  • Metrics are available for all customers with Fluent Order Management and Fluent Big Inventory.
  • Metrics data is captured, uploaded, and stored in the Metrics workspace.
  • Metrics data is fetched and visualized for the Platform Observability enablement.

Self-Service IPU/IPC visibility Overview

Essential knowledge

This document will detail how customers can view their Inventory Position Update(IPU) and Inventory Position Change(IPC) usage from within the Inventory Web App. Using this, customers can easily compare their usage to contracted rates.

Pre-requisites

Webhooks Frequently Asked Questions

Essential knowledge
  • Static IP Whitelisting: Fluent Commerce's AWS Cloud setup doesn't allow for static IP whitelisting due to the potential for IP address changes caused by scaling or architectural adjustments, as well as AWS's own IP address alterations.
  • Authentication Measures: Instead of relying on IP Access Control Lists, Fluent Commerce employs strong authentication measures for webhook requests, including cryptographic signing with a private key and verification using a public key to ensure the request's legitimacy and integrity.
  • IP-Based Restrictions: Implementing IP-based restrictions, such as whitelisting or IP ranges, is not recommended due to the dynamic nature of IP addresses in the AWS Cloud setup, which can lead to high exposure levels and difficulty in implementation.
  • Alternative Approaches for Access Control: Instead of IP-based restrictions, companies can utilize firewall/networking equipment or reverse proxies to restrict access based on incoming HTTP request details, or configure unique, specific static URLs for incoming traffic to filter and accept connections securely.

Using the Event API

Essential knowledge

Using the Event API

Workflow Configuration - Getting Started

Essential knowledge

Clients and Partners will need to have their Fluent Account set up prior to being able to work with Orchestration.

You should have received an "Account Ready" email with your Fluent Account Details, including user login credentials.

If you do not have access to a Sandbox account, please contact your Fluent Account Manager.

  • Overview and Key Concepts on Workflow Configuration.
  • The primary setting required to be enabled for working with Orchestration is that your Account should be RUBIX_ENABLED. 
  • As a user working with the Orchestration Modeller via the Admin Console, you will require the ORCHESTRATION_ADMIN role.