Fluent Commerce Logo
Docs

Configuring Profiles and Sourcing Strategies: A Step-by-Step Guide

How-to Guide

Author:

Yulia Andreyanova

Changed on:

3 Oct 2025

Key Points

  • The Sourcing Profiles interface delivers a clear and user-friendly experience, enabling business users to configure and manage sourcing strategies with ease. 
  • Full functionality requires several settings that define default values. 
  • This guide outlines the configuration steps with examples from a reference solution.
No alt text provided

Steps

Step arrow right iconConfigure Status Colors for Profiles and Strategies

Add JSON settings at the ACCOUNT/RETAILER level to enable colored status dots in the Sourcing Profiles interface.

For Profiles statuses, configure the setting `fc.sourcingprofile.list.status.column` with the following mappings:

  • Active → Green (`#16782C`)
  • Draft → Blue (`#82BBFF`)
  • Inactive → Grey (`#999999`)
1[
2    {
3      "name": "ACTIVE",
4      "color": "#16782C" 
5    },
6    {
7      "name": "INACTIVE",
8      "color": "#999999" 
9    },
10    {
11      "name": "DRAFT",
12      "color": "#82BBFF" 
13    }
14  ]

For strategy and fallback strategy statuses, configure the setting `fc.sourcingprofile.details.strategy.status.column` with the following mappings:

  • Active → Green (`#16782C`)
  • Inactive → Grey (`#999999`)
1[
2    {
3      "name": "ACTIVE",
4      "color": "#16782C" 
5    },
6    {
7      "name": "INACTIVE",
8      "color": "#999999" 
9    }
10  ]

Step arrow right iconConfigure Labels and Descriptions for Custom Conditions and Criteria

When custom conditions or criteria are introduced (see Getting Started with Custom Sourcing Conditions and Getting Started with Custom Sourcing Criteria for details), both labels and descriptions should have translations to ensure clarity in the strategy drawer.

  • Labels may be defined in the setting or, if omitted, are auto-generated. Without translations, labels may appear as raw technical identifiers in the UI.
  • Descriptions follow the same logic: they may be defined in the setting or auto-generated if missing. Without translations, descriptions also surface raw identifiers, reducing usability.

Templates for Descriptions
Templates allow values to be displayed consistently on condition and criterion cards. The following options are available:

  • `placeholderText`
  • `placeholderDate`
  • `placeholderArray`

A default configuration is provided out of the box, but can be overridden if needed. For more details on how these templates work and how to customize them, see UX Configuration – Common Concepts.

Step arrow right iconDefine UI Components for Conditions and Criteria

Custom conditions and criteria also require UI components to be configured to define how fields are rendered in the Configure Condition/Criterion drawer. This ensures that users interact with the correct input types and that mandatory values are enforced.

Configuration is done through the `params` object, where each parameter specifies:

  • component – the UI element used for rendering (e.g., `integer``fc.field.filterComplex`)
  • mandatory – whether the field must be filled (`true`/`false`)
  • extensions – advanced settings such as GraphQL queries, chip configuration, `onChange` handlers, and excluded fields
1{
2  "name": "locationDailyCapacityExclusion",
3  "type": "fc.sourcing.criterion.locationDailyCapacityExclusion",
4  "tags": ["exclusion"],
5  "params": [
6    {
7      "name": "value",
8      "component": "integer",
9      "mandatory": true
10    }
11  ]
12}
13
1{
2  "name": "pickupLocationAllNetworksIn",
3  "type": "fc.sourcing.condition.path",
4  "tags": ["Pickup Location"],
5  "params": [
6    {
7      "name": "path",
8      "value": "fulfilmentChoice.pickupLocation.networks"
9    },
10    {
11      "name": "operator",
12      "value": "in"
13    },
14    {
15      "name": "value",
16      "component": "fc.field.filterComplex",
17      "mandatory": true,
18      "extensions": {
19        "query": "query ($networks_first: Int) { networks(first: $networks_first) { edges { node { id ref type } } } }",
20        "variables": { "networks_first": 100 },
21        "searchItemConfig": {
22          "component": "fc.card.product",
23          "props": { "title": "{{node.ref}}", "attributes": [] }
24        },
25        "chipItemConfig": { "label": "{{node.ref}}" },
26        "onChangeValues": {
27          "value": "node.ref",
28          "variableName": "networks_ref"
29        },
30        "exclude": ["createdon", "updatedon", "type", "status"]
31      }
32    },
33    {
34      "name": "conditionScope",
35      "value": "ALL"
36    }
37  ]
38}
39