Basic Knowledge
Essential knowledge articles related to GraphQL
Responsive Sourcing Framework Overview
Essential knowledgeThe 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
GraphQL Permissions
Essential knowledgeThe GraphQL Permissions define the access rights that control every operation in the Fluent platform’s GraphQL API. Each permission represents a single, specific action a user can perform on an entity, ensuring secure access management across all services.By assigning permissions to roles, organizations can control user capabilities at a granular level. This ensures that users only access and modify data relevant to their role and business context.- Permission Structure: GraphQL queries and mutations are secured by permissions that follow the ENTITY_ACTION naming convention (for example, ORDER_VIEW, ORDER_UPDATE). This ensures precise and predictable access control across all API operations
- Nested and Partial Mutations: Nested mutations require separate permissions. Partial mutations are not allowed — if one permission check fails, the entire operation is rolled back
- Plugin Management Access: Plugin-related operations are governed by specific permissions such as PLUGIN_VIEW, PLUGIN_UPLOAD, and PLUGIN_INSTALL. Only users with these permissions can manage plugin
- Error Handling and Troubleshooting: Operations attempted without proper permissions return the error code C0020E. Users must obtain the required permissions before retrying the operation
- Analytics Permissions: Domain-level permissions (for example, ORDER_REPORT, INVENTORY_REPORT) control access to analytics capabilities across business domains via the GraphQL API.
Users, Roles, and Permissions
Essential knowledgeThe Fluent platform provides a comprehensive user role management system, allowing for the assignment of diverse permissions via roles to regulate platform access and functionalities. Custom roles can be created and fine-tuned, ensuring users only have access to appropriate functionality and data. The system provides flexibility to specify the scope for a role at different context levels, such as Accounts, Retailers, and Locations.- A role can be assigned to multiple users, and a user can be assigned multiple roles.
- Permissions are granular access controls and protect every GraphQL or REST API operations. GraphQL permissions follow specific naming conventions.
- Context plays a pivotal role in access levels, allowing users to have role-based access to data for specific Accounts, Retailers, or Locations.
Stock Segmentation - Data Model and API Overview
Essential knowledgeStock Segmentation extends Fluent’s Inventory and Virtual Catalog data models to represent multiple logical segments for the same product and location using explicit, queryable factors.Stock Segmentation supports scenarios such as channel-specific reservations, manufacturing batch traceability, compliance restrictions (for example by country of origin), and supplier-level inventory management while preserving a single physical inventory model per product and location.This document explains the data model and GraphQL API capabilities introduced for Stock Segmentation.- Physical stock in the Inventory Catalog is represented through Inventory Quantities that can be segmented using dedicated fields such as
`condition`, `expiresOn`, `countryOfOrigin`, `channel`, `manufacturer`, `manufacturerBatchNumber`, `supplier`, and `segment1/2/3` - Inventory Quantities support parent-child hierarchies, allowing multi-level segmentation trees to be modeled explicitly via the parent relationship
- Inventory Quantities can be linked to operational entities using
`associationType` and `associationRef`, particularly for reservation linkage and traceability - Virtual availability can expose a single customer-facing segment using Virtual Segments
- Segmentation fields are exact-match searchable to ensure predictable query behavior (partial matching is not supported)
ICP, Qualification Criteria and Additional Use Cases
Essential knowledgeThe article provides a comprehensive guide to identifying the Ideal Customer Profile (ICP) for an Order Management System (OMS), highlighting key criteria and red flags to ensure successful implementation. It also explores Fluent OMS use cases, showcasing its capabilities in order capture, fulfillment, tracking, promising, shipping, and inventory management.- Ideal Customer Profile (ICP) based on specific industries, company maturity, and high order volumes
- Poor fit indicators, such as outdated legacy infrastructure or a lack of executive buy in
- Fast Qualification Framework to rapidly assess a prospect's Budget, Systems, Volume, and Channels.
BigDecimal Precision & Rounding Principles
Essential knowledgeThis document defines the core principles for using `BigDecimal` in monetary and high-precision calculations. After reading, developers can apply the appropriate constructors, division rules, and rounding strategies to ensure consistent numeric representation across services, APIs, and storage. These principles reduce defects caused by floating-point arithmetic, undefined division, rounding errors, and incorrect value comparisons.- Monetary calculations rely on deterministic precision across all services.
- Precision is preserved using
`NUMERIC` (DB), `BigDecimal` (Java), and (`unscaledValue`, `scale`) (API). - Division requires explicit scale and rounding to avoid runtime exceptions.
- Most defects originate from constructing from
`double`, confusing scale vs precision, or misusing `equals()`.
Search Sourcing Profiles
Essential knowledgeThe `sourcingProfiles` query retrieves existing Sourcing Profiles. It supports multiple filters and pagination.- Prerequisites: User should have
`SOURCINGPROFILE_VIEW` permission - Flexible Filtering: Multiple filters are supported, including
`ref`, `version`, `versionComment`, `name`, `description`, `status`, `defaultMaxSplit`, and date ranges (`createdOn`, `updatedOn`). This lets you target specific Profiles or narrow results down by lifecycle state and time window - Pagination Support: The query supports cursor-based pagination (
`first`, `last`, `before`, `after`), making it efficient to handle large sets of Sourcing Profiles
APIs Overview
Essential knowledgeFluent provides both REST and GraphQL APIs. However, REST APIs are limited to specific Platform operations, while the GraphQL API provides the core Domain Model.- Common Authentication Token: Both Platform REST and Domain GraphQL APIs utilize a shared authentication token, ensuring a unified authentication approach.
- Platform REST APIs: Various Platform-level APIs, including Event, Workflow, Job, Plugin, and User Action APIs, are implemented in REST format with version 4.1.
- GraphQL API Advantages: The actively supported GraphQL API offers significant benefits over REST, while deprecated Domain-based REST APIs are in maintenance mode for existing clients, with documentation available for reference.