Author:
Kirill Gaiduk
Changed on:
17 Sept 2025
The Sourcing Profile GraphQL API allows technical users to manage sourcing logic within the Fluent platform.
Prerequisites
You should have knowledge of:
Author:
Kirill Gaiduk
Changed on:
2 Oct 2025
This article provides technical users with information about the Sourcing Profile GraphQL API, which enables configuration and querying of Sourcing Profiles within the Fluent Platform.
`createSourcingProfile` mutation to create new Sourcing Profiles or generate updated versions`activateSourcingProfile` mutation; this sets it to `ACTIVE` and automatically sets the previous `ACTIVE` profile version to `INACTIVE``sourcingProfile` query (single Sourcing Profile by Reference) or `sourcingProfiles` query (multiple, with filters)The Sourcing Profile GraphQL API allows technical users to manage sourcing logic within the Fluent Platform:
The following diagram explains the key steps of Sourcing Profile management:

The following permissions are required for different operations on Sourcing Profiles:
`SOURCINGPROFILE_CREATE``SOURCINGPROFILE_UPDATE``SOURCINGPROFILE_VIEW`The following diagram explains the Sourcing Profile GraphQL API behavior:

The Sourcing Profile GraphQL API provides the following functionalities:
The `createSourcingProfile` mutation creates a Sourcing Profile (or its newer version) for a Retailer:
`ref` is unique, it creates the first version with `ACTIVE` status`SourcingProfile` with the same `ref` already exists, it creates a new version with `DRAFT` statusThe `activateSourcingProfile` mutation activates a specific version of a Sourcing Profile. When called, it performs the following actions:
`ACTIVE``ACTIVE` version to `INACTIVE`The `sourcingProfile` query retrieves a Sourcing Profile by its Reference:
The `sourcingProfiles` query retrieves existing Sourcing Profiles and supports multiple filters and pagination. For example, you can use it to:
`ACTIVE` status filter`INACTIVE` status filter`DRAFT` status filterHere is a collection of common scenarios for the Sourcing Profile GraphQL API usage:
Author:
Kirill Gaiduk
Changed on:
2 Oct 2025
The `createSourcingProfile` mutation creates a Sourcing Profile (or its newer version, i.e., updates) for a Retailer:
`ref` is unique, it creates the first version with `ACTIVE` status`SourcingProfile` with the same `ref` already exists, it creates a new version with `DRAFT` status`SOURCINGPROFILE_CREATE` and `SOURCINGPROFILE_VIEW` permissions`GLOBAL_DEFAULT`)The Input fields for creating a Sourcing Profile are defined with the `CreateSourcingProfileInput`:
Field | Type | Description | Notes |
|
| Unique reference of the Sourcing Profile | Provide a business-readable reference (in order to make the Recommended format: Parts:
The uniqueness of a Sourcing Profile is determined by the combination of |
|
| Comment for the Sourcing Profile version | |
|
| Human-readable name of the Sourcing Profile | |
|
| Human-readable description of the Sourcing Profile | |
|
| Retailer to which the Sourcing Profile belongs to | The Sourcing Profile’s Retailer is immutable after it is set by the create mutation; updates are not allowed See the Access Validation section below for more details |
| Virtual Catalog Reference used by default | The Virtual Catalog Reference is required to retrieve Available-to-Sell (ATS) quantities for the requested Items | |
| Network Reference used by default | The Network Reference is required to retrieve the list of available Locations for sourcing request fulfillment | |
|
| Limit of split operations used by default |
|
| List of Primary Sourcing Strategies of the Sourcing Profile | The order of inputs defines the | |
| List of Fallback Sourcing Strategies of the Sourcing Profile | The order of inputs defines the |
The Input fields for adding Primary and Fallback Sourcing Strategies are defined with the `CreateSourcingStrategyInput` and `CreateSourcingFallbackStrategyInput`:
Field | Type | Description | Notes |
|
| Reference of the Primary / Fallback Sourcing Strategy | The Sourcing Strategy Reference must be unique within a specific Sourcing Profile version
Recommendation: use a UUID in order to guarantee uniqueness. |
|
| Human-readable name of the Primary / Fallback Sourcing Strategy | |
|
| Human-readable description of the Primary / Fallback Sourcing Strategy | |
|
| Status of the Primary / Fallback Sourcing Strategy | The |
| Virtual Catalog Reference used by the Primary / Fallback Sourcing Strategy |
| |
| Network Reference used by the Primary / Fallback Sourcing Strategy |
| |
|
| Limit of split operations used by the Primary / Fallback Sourcing Strategy |
Negative inputs are invalid |
| List of Sourcing Conditions that determine whether a Sourcing Strategy is applicable to a sourcing request | When multiple Sourcing Conditions are provided, they are evaluated using a logical AND | |
| List of Sourcing Criteria used to rank Locations during the sourcing process | The order of inputs matters because each subsequent Sourcing Criterion acts as a tie-breaker |
The Input fields for adding Sourcing Conditions and Criteria are defined with the `CreateSourcingConditionInput` and `CreateSourcingCriterionInput`:
Field | Type | Description | Notes |
|
| Name of the Sourcing Condition / Criterion | The Name serves as a unique identifier for Sourcing Conditions and Criteria |
|
| Type of the Sourcing Condition / Criterion | The Type is mapped to a specific function in the |
|
| Parameters of the Sourcing Condition / Criterion | The Parameters configure Sourcing Conditions and Criteria to support specific customer sourcing logic |
The GraphQL framework applies the Standard Permission Check for the target operation and entity:
`UserRole` contributes:`SOURCINGPROFILE_CREATE`, `SOURCINGPROFILE_UPDATE`, `SOURCINGPROFILE_VIEW`)`RoleContext`) that scope those permissions:`ACCOUNT` - applies across all Retailers`RETAILER` - applies only when the context’s Retailer ID (`contextId`) matches the target RetailerResult: The request succeeds only if at least one user role grants the required permission in a context applicable to the target Retailer; otherwise, the request is denied or the response contains `null`.
1mutation createSourcingProfile($input: CreateSourcingProfileInput) {
2 createSourcingProfile (input: $input) {
3 id
4 ref
5 version
6 versionComment
7 name
8 description
9 status
10 user {
11 id
12 }
13 createdOn
14 updatedOn
15 retailer {
16 id
17 }
18 defaultVirtualCatalogue {
19 ref
20 }
21 defaultNetwork {
22 ref
23 }
24 defaultMaxSplit
25 sourcingStrategies {
26 id
27 ref
28 sourcingProfile {
29 id
30 }
31 name
32 description
33 status
34 priority
35 createdOn
36 updatedOn
37 virtualCatalogue {
38 ref
39 }
40 network {
41 ref
42 }
43 maxSplit
44 sourcingConditions {
45 name
46 type
47 params
48 }
49 sourcingCriteria {
50 name
51 type
52 params
53 }
54 }
55 sourcingFallbackStrategies {
56 id
57 ref
58 sourcingProfile {
59 id
60 }
61 name
62 description
63 status
64 priority
65 createdOn
66 updatedOn
67 virtualCatalogue {
68 ref
69 }
70 network {
71 ref
72 }
73 maxSplit
74 sourcingConditions {
75 name
76 type
77 params
78 }
79 sourcingCriteria {
80 name
81 type
82 params
83 }
84 }
85 }
86}1{
2 "input": {
3 "ref": "GLOBAL_DEFAULT",
4 "versionComment": "Lorem ipsum",
5 "name": "Lorem ipsum",
6 "description": "Lorem ipsum",
7 "retailer": {
8 "id": 1
9 },
10 "defaultVirtualCatalogue": {
11 "ref": "BASE:1"
12 },
13 "defaultNetwork": {
14 "ref": "CLICK_AND_COLLECT"
15 },
16 "defaultMaxSplit": 5,
17 "sourcingStrategies": [
18 {
19 "ref": "bbc42abb-609b-495a-ab74-d3c6d55ca445",
20 "name": "Primary Lorem ipsum",
21 "description": "Primary Lorem ipsum",
22 "status": "ACTIVE",
23 "sourcingConditions": [
24 ],
25 "sourcingCriteria": [
26 {
27 "name": "locationDistance",
28 "type": "fc.sourcing.criterion.locationDistance"
29 }
30 ]
31 }
32 ],
33 "sourcingFallbackStrategies": [
34 {
35 "ref": "7c194aef-dd50-4d8e-9b8d-b59df4090740",
36 "name": "Fallback Lorem ipsum",
37 "description": "Fallback Lorem ipsum",
38 "status": "ACTIVE",
39 "sourcingConditions": [
40 ],
41 "sourcingCriteria": [
42 {
43 "name": "locationDistance",
44 "type": "fc.sourcing.criterion.locationDistance"
45 }
46 ]
47 }
48 ]
49 }
50}1{
2 "data": {
3 "createSourcingProfile": {
4 "id": "607",
5 "ref": "GLOBAL_DEFAULT",
6 "version": 1,
7 "versionComment": "Lorem ipsum",
8 "name": "Lorem ipsum",
9 "description": "Lorem ipsum",
10 "status": "ACTIVE",
11 "user": {
12 "id": "1982"
13 },
14 "createdOn": "2025-08-27T20:33:01.469Z",
15 "updatedOn": "2025-08-27T20:33:01.469Z",
16 "retailer": {
17 "id": "1"
18 },
19 "defaultVirtualCatalogue": {
20 "ref": "BASE:1"
21 },
22 "defaultNetwork": {
23 "ref": "CLICK_AND_COLLECT"
24 },
25 "defaultMaxSplit": 5,
26 "sourcingStrategies": [
27 {
28 "id": "1019",
29 "ref": "bbc42abb-609b-495a-ab74-d3c6d55ca445",
30 "sourcingProfile": {
31 "id": "607"
32 },
33 "name": "Primary Lorem ipsum",
34 "description": "Primary Lorem ipsum",
35 "status": "ACTIVE",
36 "priority": 1,
37 "createdOn": "2025-08-27T20:33:01.478Z",
38 "updatedOn": "2025-08-27T20:33:01.478Z",
39 "virtualCatalogue": null,
40 "network": null,
41 "maxSplit": null,
42 "sourcingConditions": null,
43 "sourcingCriteria": [
44 {
45 "name": "locationDistance",
46 "type": "fc.sourcing.criterion.locationDistance",
47 "params": null
48 }
49 ]
50 }
51 ],
52 "sourcingFallbackStrategies": [
53 {
54 "id": "555",
55 "ref": "7c194aef-dd50-4d8e-9b8d-b59df4090740",
56 "sourcingProfile": {
57 "id": "607"
58 },
59 "name": "Fallback Lorem ipsum",
60 "description": "Fallback Lorem ipsum",
61 "status": "ACTIVE",
62 "priority": 1,
63 "createdOn": "2025-08-27T20:33:01.473Z",
64 "updatedOn": "2025-08-27T20:33:01.473Z",
65 "virtualCatalogue": null,
66 "network": null,
67 "maxSplit": null,
68 "sourcingConditions": null,
69 "sourcingCriteria": [
70 {
71 "name": "locationDistance",
72 "type": "fc.sourcing.criterion.locationDistance",
73 "params": null
74 }
75 ]
76 }
77 ]
78 }
79 }
80}Author:
Kirill Gaiduk
Changed on:
2 Oct 2025
The `activateSourcingProfile` mutation activates a specific version of a Sourcing Profile. When called, it performs the following actions:
`ACTIVE``ACTIVE` version to `INACTIVE``SOURCINGPROFILE_UPDATE` and `SOURCINGPROFILE_VIEW` permissions`ACTIVE` version, ensuring that only one Sourcing Profile version remains active at any timeThe Input fields for activating a Sourcing Profile are defined with the `ActivateSourcingProfileInput`:
Field | Type | Description |
|
| Reference of the Sourcing Profile to activate |
|
| Version number of the Sourcing Profile to activate |
The GraphQL framework applies the Standard Permission Check for the target operation and entity:
`UserRole` contributes:`SOURCINGPROFILE_CREATE`, `SOURCINGPROFILE_UPDATE`, `SOURCINGPROFILE_VIEW`)`RoleContext`) that scope those permissions:`ACCOUNT` - applies across all Retailers`RETAILER` - applies only when the context’s Retailer ID (`contextId`) matches the target RetailerResult: The request succeeds only if at least one user role grants the required permission in a context applicable to the target Retailer; otherwise, the request is denied or the response contains `null`.
1mutation activateSourcingProfile($input: ActivateSourcingProfileInput) {
2 activateSourcingProfile(input: $input) {
3 ref
4 version
5 status
6 }
7}1{
2 "input": {
3 "ref": "GLOBAL_DEFAULT",
4 "version": 2
5 }
6}1{
2 "data": {
3 "activateSourcingProfile": {
4 "ref": "GLOBAL_DEFAULT",
5 "version": 2,
6 "status": "ACTIVE"
7 }
8 }
9}Author:
Kirill Gaiduk
Changed on:
2 Oct 2025
The `sourcingProfile` query retrieves a Sourcing Profile by its Reference:
`SOURCINGPROFILE_VIEW` permission`status` argument lets you filter results (e.g., `ACTIVE`, `INACTIVE`, `DRAFT`) so you can target Profiles in a specific lifecycle stateThe Input arguments for retrieving a single Sourcing Profile:
Field | Type | Description | Notes |
|
| Reference of the Sourcing Profile | |
|
| Version number of the Sourcing Profile | |
|
| Status filter | For example:
|
The GraphQL framework applies the Standard Permission Check for the target operation and entity:
`UserRole` contributes:`SOURCINGPROFILE_CREATE`, `SOURCINGPROFILE_UPDATE`, `SOURCINGPROFILE_VIEW`)`RoleContext`) that scope those permissions:`ACCOUNT` - applies across all Retailers`RETAILER` - applies only when the context’s Retailer ID (`contextId`) matches the target RetailerResult: The request succeeds only if at least one user role grants the required permission in a context applicable to the target Retailer; otherwise, the request is denied or the response contains `null`.
1query sourcingProfile($ref: String!, $version: Int, $status: String) {
2 sourcingProfile(ref: $ref, version: $version, status: $status) {
3 id
4 ref
5 version
6 versionComment
7 name
8 description
9 status
10 user {
11 id
12 }
13 createdOn
14 updatedOn
15 retailer {
16 id
17 }
18 defaultVirtualCatalogue {
19 ref
20 }
21 defaultNetwork {
22 ref
23 }
24 defaultMaxSplit
25 sourcingStrategies {
26 id
27 ref
28 sourcingProfile {
29 id
30 }
31 name
32 description
33 status
34 priority
35 createdOn
36 updatedOn
37 virtualCatalogue {
38 ref
39 }
40 network {
41 ref
42 }
43 maxSplit
44 sourcingConditions {
45 name
46 type
47 params
48 }
49 sourcingCriteria {
50 name
51 type
52 params
53 }
54 }
55 sourcingFallbackStrategies {
56 id
57 ref
58 sourcingProfile {
59 id
60 }
61 name
62 description
63 status
64 priority
65 createdOn
66 updatedOn
67 virtualCatalogue {
68 ref
69 }
70 network {
71 ref
72 }
73 maxSplit
74 sourcingConditions {
75 name
76 type
77 params
78 }
79 sourcingCriteria {
80 name
81 type
82 params
83 }
84 }
85 }
86}1{
2 "ref": "GLOBAL_DEFAULT",
3 "version": 1,
4 "status": "INACTIVE"
5}1{
2 "data": {
3 "sourcingProfile": {
4 "id": "1128",
5 "ref": "GLOBAL_DEFAULT",
6 "version": 1,
7 "versionComment": "Lorem ipsum",
8 "name": "Lorem ipsum",
9 "description": "Lorem ipsum",
10 "status": "INACTIVE",
11 "user": {
12 "id": "1982"
13 },
14 "createdOn": "2025-09-01T10:18:24.113Z",
15 "updatedOn": "2025-09-01T10:21:49.386Z",
16 "retailer": {
17 "id": "1"
18 },
19 "defaultVirtualCatalogue": {
20 "ref": "BASE:1"
21 },
22 "defaultNetwork": {
23 "ref": "CLICK_AND_COLLECT"
24 },
25 "defaultMaxSplit": 5,
26 "sourcingStrategies": [
27 {
28 "id": "2308",
29 "ref": "bbc42abb-609b-495a-ab74-d3c6d55ca445",
30 "sourcingProfile": {
31 "id": "1128"
32 },
33 "name": "Primary Lorem ipsum",
34 "description": "Primary Lorem ipsum",
35 "status": "ACTIVE",
36 "priority": 1,
37 "createdOn": "2025-09-01T10:18:24.118Z",
38 "updatedOn": "2025-09-01T10:18:24.118Z",
39 "virtualCatalogue": null,
40 "network": null,
41 "maxSplit": null,
42 "sourcingConditions": null,
43 "sourcingCriteria": [
44 {
45 "name": "locationDistance",
46 "type": "fc.sourcing.criterion.locationDistance",
47 "params": null
48 }
49 ]
50 }
51 ],
52 "sourcingFallbackStrategies": [
53 {
54 "id": "1128",
55 "ref": "7c194aef-dd50-4d8e-9b8d-b59df4090740",
56 "sourcingProfile": {
57 "id": "1128"
58 },
59 "name": "Fallback Lorem ipsum",
60 "description": "Fallback Lorem ipsum",
61 "status": "ACTIVE",
62 "priority": 1,
63 "createdOn": "2025-09-01T10:18:24.115Z",
64 "updatedOn": "2025-09-01T10:18:24.115Z",
65 "virtualCatalogue": null,
66 "network": null,
67 "maxSplit": null,
68 "sourcingConditions": null,
69 "sourcingCriteria": [
70 {
71 "name": "locationDistance",
72 "type": "fc.sourcing.criterion.locationDistance",
73 "params": null
74 }
75 ]
76 }
77 ]
78 }
79 }
80}Author:
Kirill Gaiduk
Changed on:
2 Oct 2025
The `sourcingProfiles` query retrieves existing Sourcing Profiles.
It supports multiple filters and pagination.
`SOURCINGPROFILE_VIEW` permission`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`first`, `last`, `before`, `after`), making it efficient to handle large sets of Sourcing Profiles The Input arguments for retrieving Sourcing Profiles (i.e., filters):
Field | Type | Description | Notes |
|
| Reference of the Sourcing Profile | |
|
| Version number of the Sourcing Profile | |
|
| Comment for the Sourcing Profile version | |
|
| Human-readable name of the Sourcing Profile | |
|
| Human-readable description of the Sourcing Profile | |
|
| Status of the Sourcing Profile | For example:
|
|
| Filter by creation date | Specify range with |
|
| Filter by last updated date | Specify range with |
|
| Limit of split operations used by default | |
|
| Return the first n results | |
|
| Return the last n results | |
|
| Return results before the specified global ID | This is a cursor (the value is used for pagination) |
|
| Return results after the specified global ID | This is a cursor (the value is used for pagination) |
The GraphQL framework applies the Standard Permission Check for the target operation and entity:
`UserRole` contributes:`SOURCINGPROFILE_CREATE`, `SOURCINGPROFILE_UPDATE`, `SOURCINGPROFILE_VIEW`)`RoleContext`) that scope those permissions:`ACCOUNT` - applies across all Retailers`RETAILER` - applies only when the context’s Retailer ID (`contextId`) matches the target RetailerResult: The request succeeds only if at least one user role grants the required permission in a context applicable to the target Retailer; otherwise, the request is denied or the response contains `null`.
1query sourcingProfiles($ref: [String!]){
2 sourcingProfiles(ref: $ref) {
3 edges {
4 node {
5 id
6 ref
7 version
8 versionComment
9 name
10 description
11 status
12 user {
13 id
14 }
15 createdOn
16 updatedOn
17 retailer {
18 id
19 }
20 defaultVirtualCatalogue {
21 ref
22 }
23 defaultNetwork {
24 ref
25 }
26 defaultMaxSplit
27 sourcingStrategies {
28 id
29 ref
30 sourcingProfile {
31 id
32 }
33 name
34 description
35 status
36 priority
37 createdOn
38 updatedOn
39 virtualCatalogue {
40 ref
41 }
42 network {
43 ref
44 }
45 maxSplit
46 sourcingConditions {
47 name
48 type
49 params
50 }
51 sourcingCriteria {
52 name
53 type
54 params
55 }
56 }
57 sourcingFallbackStrategies {
58 id
59 ref
60 sourcingProfile {
61 id
62 }
63 name
64 description
65 status
66 priority
67 createdOn
68 updatedOn
69 virtualCatalogue {
70 ref
71 }
72 network {
73 ref
74 }
75 maxSplit
76 sourcingConditions {
77 name
78 type
79 params
80 }
81 sourcingCriteria {
82 name
83 type
84 params
85 }
86 }
87 }
88 }
89 }
90}1{
2 "ref": ["GLOBAL_DEFAULT"]
3}1{
2 "data": {
3 "sourcingProfiles": {
4 "edges": [
5 {
6 "node": {
7 "id": "1129",
8 "ref": "GLOBAL_DEFAULT",
9 "version": 2,
10 "versionComment": "Lorem ipsum",
11 "name": "UPDATED Lorem ipsum",
12 "description": "Lorem ipsum",
13 "status": "ACTIVE",
14 "user": {
15 "id": "1982"
16 },
17 "createdOn": "2025-09-01T10:19:08.618Z",
18 "updatedOn": "2025-09-01T12:51:19.370Z",
19 "retailer": {
20 "id": "1"
21 },
22 "defaultVirtualCatalogue": {
23 "ref": "BASE:1"
24 },
25 "defaultNetwork": {
26 "ref": "CLICK_AND_COLLECT"
27 },
28 "defaultMaxSplit": 5,
29 "sourcingStrategies": [
30 {
31 "id": "2309",
32 "ref": "bbc42abb-609b-495a-ab74-d3c6d55ca445",
33 "sourcingProfile": {
34 "id": "1129"
35 },
36 "name": "Primary Lorem ipsum",
37 "description": "Primary Lorem ipsum",
38 "status": "ACTIVE",
39 "priority": 1,
40 "createdOn": "2025-09-01T10:19:08.621Z",
41 "updatedOn": "2025-09-01T10:19:08.621Z",
42 "virtualCatalogue": null,
43 "network": null,
44 "maxSplit": null,
45 "sourcingConditions": null,
46 "sourcingCriteria": [
47 {
48 "name": "locationDistance",
49 "type": "fc.sourcing.criterion.locationDistance",
50 "params": null
51 }
52 ]
53 }
54 ],
55 "sourcingFallbackStrategies": [
56 {
57 "id": "1129",
58 "ref": "7c194aef-dd50-4d8e-9b8d-b59df4090740",
59 "sourcingProfile": {
60 "id": "1129"
61 },
62 "name": "Fallback Lorem ipsum",
63 "description": "Fallback Lorem ipsum",
64 "status": "ACTIVE",
65 "priority": 1,
66 "createdOn": "2025-09-01T10:19:08.620Z",
67 "updatedOn": "2025-09-01T10:19:08.620Z",
68 "virtualCatalogue": null,
69 "network": null,
70 "maxSplit": null,
71 "sourcingConditions": null,
72 "sourcingCriteria": [
73 {
74 "name": "locationDistance",
75 "type": "fc.sourcing.criterion.locationDistance",
76 "params": null
77 }
78 ]
79 }
80 ]
81 }
82 },
83 {
84 "node": {
85 "id": "1128",
86 "ref": "GLOBAL_DEFAULT",
87 "version": 1,
88 "versionComment": "Lorem ipsum",
89 "name": "Lorem ipsum",
90 "description": "Lorem ipsum",
91 "status": "INACTIVE",
92 "user": {
93 "id": "1982"
94 },
95 "createdOn": "2025-09-01T10:18:24.113Z",
96 "updatedOn": "2025-09-01T10:21:49.386Z",
97 "retailer": {
98 "id": "1"
99 },
100 "defaultVirtualCatalogue": {
101 "ref": "BASE:1"
102 },
103 "defaultNetwork": {
104 "ref": "CLICK_AND_COLLECT"
105 },
106 "defaultMaxSplit": 5,
107 "sourcingStrategies": [
108 {
109 "id": "2308",
110 "ref": "bbc42abb-609b-495a-ab74-d3c6d55ca445",
111 "sourcingProfile": {
112 "id": "1128"
113 },
114 "name": "Primary Lorem ipsum",
115 "description": "Primary Lorem ipsum",
116 "status": "ACTIVE",
117 "priority": 1,
118 "createdOn": "2025-09-01T10:18:24.118Z",
119 "updatedOn": "2025-09-01T10:18:24.118Z",
120 "virtualCatalogue": null,
121 "network": null,
122 "maxSplit": null,
123 "sourcingConditions": null,
124 "sourcingCriteria": [
125 {
126 "name": "locationDistance",
127 "type": "fc.sourcing.criterion.locationDistance",
128 "params": null
129 }
130 ]
131 }
132 ],
133 "sourcingFallbackStrategies": [
134 {
135 "id": "1128",
136 "ref": "7c194aef-dd50-4d8e-9b8d-b59df4090740",
137 "sourcingProfile": {
138 "id": "1128"
139 },
140 "name": "Fallback Lorem ipsum",
141 "description": "Fallback Lorem ipsum",
142 "status": "ACTIVE",
143 "priority": 1,
144 "createdOn": "2025-09-01T10:18:24.115Z",
145 "updatedOn": "2025-09-01T10:18:24.115Z",
146 "virtualCatalogue": null,
147 "network": null,
148 "maxSplit": null,
149 "sourcingConditions": null,
150 "sourcingCriteria": [
151 {
152 "name": "locationDistance",
153 "type": "fc.sourcing.criterion.locationDistance",
154 "params": null
155 }
156 ]
157 }
158 ]
159 }
160 }
161 ]
162 }
163 }
164}