Fluent Commerce Logo
Docs

fc.rubix.order.sourcing.criteria

Setting

Changed on:

26 Sept 2025

Setting AreaOrders, UI component
Supported context levels:GLOBAL

Overview

This Setting defines the Reference Sourcing Criteria Schema. It lists:

  • available Sourcing Criteria
  • their tags
  • parameter descriptors (including UI component metadata)

It allows business users to configure Criteria within Sourcing Strategies.

Values

Data TypeValues
JSON
1[ {
2  "name" : "locationDistance",
3  "type" : "fc.sourcing.criterion.locationDistance",
4  "tags" : [ "ATS-agnostic" ],
5  "params" : [ ]
6}, {
7  "name" : "locationTypeExclusion",
8  "type" : "fc.sourcing.criterion.locationTypeExclusion",
9  "tags" : [ "Exclusion", "ATS-agnostic" ],
10  "params" : [ {
11    "name" : "value",
12    "component" : "fc.field.multistring",
13    "mandatory" : true,
14    "exactSearch" : true
15  } ]
16}, {
17  "name" : "locationDistanceBanded",
18  "type" : "fc.sourcing.criterion.locationDistanceBanded",
19  "tags" : [ "ATS-agnostic" ],
20  "params" : [ {
21    "name" : "value",
22    "component" : "fc.field.multistring",
23    "mandatory" : true,
24    "type" : "number"
25  }, {
26    "name" : "valueUnit",
27    "component" : "select",
28    "mandatory" : true,
29    "options" : [ {
30      "label" : "fc.sourcing.criterion.locationDistanceBanded.valueunit.kilometres",
31      "value" : "kilometres"
32    }, {
33      "label" : "fc.sourcing.criterion.locationDistanceBanded.valueunit.miles",
34      "value" : "miles"
35    } ]
36  } ]
37}, {
38  "name" : "orderValue",
39  "type" : "fc.sourcing.criterion.orderValue",
40  "tags" : [ "ATS-dependent" ],
41  "params" : [ ]
42}, {
43  "name" : "networkPriority",
44  "type" : "fc.sourcing.criterion.networkPriority",
45  "tags" : [ "ATS-agnostic" ],
46  "params" : [ {
47    "name" : "value",
48    "component" : "fc.field.multistring",
49    "mandatory" : true,
50    "exactSearch" : true
51  } ]
52}, {
53  "name" : "inventoryAvailability",
54  "type" : "fc.sourcing.criterion.inventoryAvailability",
55  "tags" : [ "ATS-dependent" ],
56  "params" : [ ]
57}, {
58  "name" : "locationDistanceExclusion",
59  "type" : "fc.sourcing.criterion.locationDistanceExclusion",
60  "tags" : [ "Exclusion", "ATS-agnostic" ],
61  "params" : [ {
62    "name" : "value",
63    "component" : "input",
64    "mandatory" : true
65  }, {
66    "name" : "valueUnit",
67    "component" : "select",
68    "mandatory" : true,
69    "options" : [ {
70      "label" : "fc.sourcing.criterion.locationDistanceExclusion.valueunit.kilometres",
71      "value" : "kilometres"
72    }, {
73      "label" : "fc.sourcing.criterion.locationDistanceExclusion.valueunit.miles",
74      "value" : "miles"
75    } ]
76  } ]
77}, {
78  "name" : "inventoryAvailabilityExclusion",
79  "type" : "fc.sourcing.criterion.inventoryAvailabilityExclusion",
80  "tags" : [ "Exclusion", "ATS-dependent" ],
81  "params" : [ {
82    "name" : "value",
83    "component" : "integer",
84    "mandatory" : true
85  } ]
86}, {
87  "name" : "inventoryAvailabilityBanded",
88  "type" : "fc.sourcing.criterion.inventoryAvailabilityBanded",
89  "tags" : [ "ATS-dependent" ],
90  "params" : [ {
91    "name" : "value",
92    "component" : "fc.field.multistring",
93    "mandatory" : true,
94    "type" : "number"
95  } ]
96}, {
97  "name" : "locationDailyCapacity",
98  "type" : "fc.sourcing.criterion.locationDailyCapacity",
99  "tags" : [ "ATS-agnostic" ],
100  "params" : [ ]
101}, {
102  "name" : "locationNetworkExclusion",
103  "type" : "fc.sourcing.criterion.locationNetworkExclusion",
104  "tags" : [ "Exclusion", "ATS-agnostic" ],
105  "params" : [ {
106    "name" : "value",
107    "component" : "fc.field.multistring",
108    "mandatory" : true,
109    "exactSearch" : true
110  } ]
111} ]

Detailed technical description

The `fc.rubix.order.sourcing.criteria` Setting provides the reference schema of Sourcing Criteria used for Sourcing Strategies. It defines:

  • the complete list of reference Sourcing Criteria
  • their structure
  • the user interface (UI) components required to configure them

Key Characteristics

Criterion Registry

The Setting acts as a reference catalog of available Sourcing Criteria. Each Criterion is represented as a JSON object with:

  • `name`
    unique identifier for the Criterion
  • `type`
    mapped to a specific Criterion implementation in the `util-sourcing` library (Criteria Utilities)
  • `tags` (e.g., ATS-agnostic, ATS-dependent, Exclusion)
    classify Criteria by behavior 
  • A set of `params`
    define configurable inputs and the UI components used to capture them (for example, threshold values, banded lists, or unit selectors)

Evaluation Order

Criteria are applied in the sequence they are defined within a Strategy:

  • Exclusion Criteria (e.g., distance or network exclusions) can remove candidate Locations early in the evaluation
  • Ranking Criteria assign ratings that are then normalized and compared across Locations
  • Additional Criteria serve as tie-breakers until a final ranking is established

This distinction enables precise modeling of sourcing priorities across metrics such as distance, availability, and capacity.

UI Integration

Business users interact with Sourcing Criteria through the configuration UI. The `params` definitions (such as `fc.field.multistring`, `select`, `integer`, or `input`) ensure that the correct entry component is automatically rendered for each Criterion. For example:

  • `fc.field.multistring` supports lists of values with optional exact match validation (`"exactSearch": true`)
  • `select` presents predefined options, such as measurement units (`kilometres` or `miles`)
  • `integer` captures numeric thresholds (e.g., minimum availability percentage)
  • `input` allows direct entry of a single numeric or text value

Configuration example

1This setting is automatically available for all accounts and does not require a creation process.

Update example

1This setting is immutable.
2To extend or override specific criteria, a separate fc.rubix.order.sourcing.criteria.custom setting can be created. 
3If a criterion with the same name is defined in the custom setting, it takes precedence over the global one. 
4This ensures flexibility while preserving a stable baseline schema.