Channels and Policies API

Use the Channels and Policies API to set up distribution channels, locales, and policies to filter products into custom catalogs with customer-specific pricing and regional settings for language, currency, and units of measure. For more information about the API, see the developer documentation.

API Endpoints
https://<your store>/graphql
Headers
# Your API token from the dashboard. Must be included in all API calls.
Authorization: Bearer <YOUR_TOKEN_HERE>
Version

1.0.0

Queries

channel

Description

Fetches a single channel by its identifier.

Parameters:

  • channelId: Channel identifier to filter by.

Available Channel fields to include in the query:

  • channelId: Channel identifier.
  • name: Channel name.
  • scopes: List of locale scopes identifiers.
  • policyIds: List of policy identifiers.
  • allowedPriceBookIds: List of price book identifiers allowed within the channel.
  • defaultPriceBookId: Default price book identifier for the channel.
  • createdAt: Timestamp when the channel was created.
  • updatedAt: Timestamp when the channel data was last updated.
  • policies: List of Policy objects associated with the current channel.

Available Policy fields to query for:

  • policyId: Policy identifier.
  • name: Policy Name.
  • mandatory: Indicates if the policy is compulsory or not (true | false).
  • createdAt: Timestamp when the policy was created.
  • updatedAt: Timestamp when the policy data was last updated.
  • actions: List of actions for the policies, comprised by triggers and filters.

Available Action fields to query for:

  • triggers: List of triggers where the policy is activated.
  • filters: List of action filters.

Available Trigger fields to query for:

  • name: Name of the trigger.
  • transportType: Type of transport type, currently only "HTTP_HEADER" is supported.

Available Action Filters fields to query for:

  • attribute: Name of the attribute to filter by.
  • values: Values to query for.
  • enabled: Indicates if the filter is enabled or not (true | false).
  • valueSource: Any of "TRIGGER" , "STATIC".
  • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".

Query Examples

  1. Using an invalid / non-existent channel identifier parameter:
query {
    channel(channelId: "NON_EXISTENT_ID") {
        channelId
        name
    }
}

Response

{
    "errors": [
        {
            "message": "Channel [NON_EXISTENT_ID] not found for Environment [ENV_ID]",
            "locations": [
                {
                    "line": 2,
                    "column": 9
                }
            ],
            "path": ["channel"],
            "extensions": {
                "classification": "ValidationError"
            }
        }
    ],
    "extensions": {
        "request-id": "b17b7816ec286028"
    }
}
  1. Querying only channel information:
query {
    channel(channelId: "3945d84e-93d7-4dc0-b304-b6f48d91226d") {
        channelId
        name
        allowedPriceBookIds
        defaultPriceBookId
        scopes {
          locale
        }
    }
}

Response

{
    "data": {
        "channel": {
            "channelId": "3945d84e-93d7-4dc0-b304-b6f48d91226d",
            "name": "Brand A",
            "allowedPriceBookIds": [
                "PBA"
            ],
            "defaultPriceBookId": "PBA",
            "scopes": [
                { "locale": "locale1" },
                { "locale": "locale2" }
            ]
        }
    },
    "extensions": {
        "request-id": "c7b4488e0d2ba5ca"
    }
}
  1. Querying channel with policies information:
query {
    channel(channelId: "3945d84e-93d7-4dc0-b304-b6f48d91226d") {
        channelId
        name
        allowedPriceBookIds
        defaultPriceBookId
        policies {
            policyId
            name
            mandatory
        }
    }
}

Response

{
    "data": {
        "channel": {
            "channelId": "3945d84e-93d7-4dc0-b304-b6f48d91226d",
            "name": "Brand A",
            "allowedPriceBookIds": [
                "PBA"
            ],
            "defaultPriceBookId": "PBA",
            "policies": [
                {
                    "policyId": "105de4d4-8f95-4382-bf09-bac063af068d",
                    "name": "Policy-1",
                    "mandatory": false,
                }, ...
            ]
        }
    },
    "extensions": {
        "request-id": "cdf07806c25b92aa"
    }
}
Response

Returns a ChannelResponse!

Arguments
Name Description
channelId - String!

Example

Query
query channel($channelId: String!) {
  channel(channelId: $channelId) {
    allowedPriceBookIds
    channelId
    createdAt
    defaultPriceBookId
    name
    policies {
      ...PolicyResponseFragment
    }
    policyIds
    scopes {
      ...ChannelScopeResponseFragment
    }
    updatedAt
  }
}
Variables
{"channelId": "abc123"}
Response
{
  "data": {
    "channel": {
      "allowedPriceBookIds": ["abc123"],
      "channelId": "abc123",
      "createdAt": "xyz789",
      "defaultPriceBookId": "xyz789",
      "name": "xyz789",
      "policies": [PolicyResponse],
      "policyIds": ["xyz789"],
      "scopes": [ChannelScopeResponse],
      "updatedAt": "abc123"
    }
  }
}
back to top

channels

Description

Fetches an array of all channels.

Available Channel fields to include in query:

  • channelId: Channel identifier.
  • name: Channel name.
  • scopes: List of locale scopes identifiers.
  • policyIds: List of policy identifiers.
  • allowedPriceBookIds: List of price book identifiers allowed within the channel.
  • defaultPriceBookId: Default price book identifier for the channel.
  • createdAt: Timestamp when the channel was created.
  • updatedAt: Timestamp when the channel data was last updated.
  • policies: List of Policy objects associated with the current channel.

Available Policy fields to query for:

  • policyId: Policy identifier.
  • name: Policy Name.
  • mandatory: Indicates if the policy is compulsory or not (true | false).
  • createdAt: Timestamp when the policy was created.
  • updatedAt: Timestamp when the policy data was last updated.
  • actions: List of actions for the policies, comprised by triggers and filters.

Available Action fields to query for:

  • triggers: List of triggers where the policy is activated.
  • filters: List of action filters.

Available Trigger fields to query for:

  • name: Name of the trigger.
  • transportType: Type of transport type, currently only "HTTP_HEADER" is supported.

Available Action Filters fields to query for:

  • attribute: Name of the attribute to filter by.
  • values: Values to query for.
  • enabled: Indicates if the filter is enabled or not (true | false).
  • valueSource: Any of "TRIGGER" , "STATIC".
  • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".

Query Examples

  1. List Channels only:
query {
    channels {
        channelId
        name
        allowedPriceBookIds
        defaultPriceBookId
        scopes {
          locale
        }
    }
}

Response

{
    "data": {
        "channels": [
            {
                "channelId": "b3361730-03d5-4cff-a09d-a05c5f930fa7",
                "name": "Brand B",
                "allowedPriceBookIds": [
                    "PBA",
                    "PBB"
                ],
                "defaultPriceBookId": "PBB",
                "scopes": [
                    { "locale": "locale3" },
                    { "locale": "locale4" }
                ]
            },
            {
                "channelId": "3945d84e-93d7-4dc0-b304-b6f48d91226d",
                "name": "Brand A",
                "allowedPriceBookIds": [
                    "PBA",
                    "PBB"
                ],
                "defaultPriceBookId": "PBA",
                "scopes": [
                    { "locale": "locale1" },
                    { "locale": "locale2" }
                ]
            }, ...
        ]
    },
    "extensions": {
        "request-id": "85399873f950a5d7"
    }
}
  1. List Channels with Policies:
query {
    channels {
        channelId
        name
        allowedPriceBookIds
        defaultPriceBookId
        policies {
            policyId
            name
            mandatory
            actions {
                filters {
                    attribute
                    values
                    enabled
                    valueSource
                }
            }
        }
    }
}

Response

{
    "data": {
        "channels": [
            {
                "channelId": "b3361730-03d5-4cff-a09d-a05c5f930fa7",
                "name": "Brand B",
                "allowedPriceBookIds": [
                    "PBA",
                    "PBB"
                ],
                "defaultPriceBookId": "PBB",
                "policies": [
                    {
                        "policyId": "105de4d4-8f95-4382-bf09-bac063af068d",
                        "name": "Static Value Policy",
                        "mandatory": false,
                        "actions": [
                            {
                                "filters": [
                                    {
                                        "attribute": "my_attribute",
                                        "values": ["2"],
                                        "enabled": true,
                                        "valueSource": "STATIC"
                                    }
                                ]
                            }
                        ]
                    }, ...
                ]
            },
            {
                "channelId": "3945d84e-93d7-4dc0-b304-b6f48d91226d",
                "name": "Brand A",
                "allowedPriceBookIds": [
                    "PBA",
                    "PBB"
                ],
                "defaultPriceBookId": "PBA",
                "policies": []
            }
        ]
    },
    "extensions": {
        "request-id": "80efd740df9e55eb"
    }
}
Response

Returns [ChannelResponse!]

Example

Query
query channels {
  channels {
    allowedPriceBookIds
    channelId
    createdAt
    defaultPriceBookId
    name
    policies {
      ...PolicyResponseFragment
    }
    policyIds
    scopes {
      ...ChannelScopeResponseFragment
    }
    updatedAt
  }
}
Response
{
  "data": {
    "channels": [
      {
        "allowedPriceBookIds": ["xyz789"],
        "channelId": "xyz789",
        "createdAt": "xyz789",
        "defaultPriceBookId": "abc123",
        "name": "abc123",
        "policies": [PolicyResponse],
        "policyIds": ["xyz789"],
        "scopes": [ChannelScopeResponse],
        "updatedAt": "xyz789"
      }
    ]
  }
}
back to top

policies

Description

Fetches a list of policies.

Available Policy fields to query for:

  • policyId: Policy identifier.
  • name: Policy Name.
  • mandatory: Indicates if the policy is compulsory or not (true | false).
  • createdAt: Timestamp when the policy was created.
  • updatedAt: Timestamp when the policy data was last updated.
  • actions: List of actions for the policies, comprised by triggers and filters.

Available Action fields to query for:

  • triggers: List of triggers where the policy is activated.
  • filters: List of action filters.

Available Trigger fields to query for:

  • name: Name of the trigger.
  • transportType: Type of transport type, currently only "HTTP_HEADER" is supported.

Available Action Filters fields to query for:

  • attribute: Name of the attribute to filter by.
  • values: Values to query for.
  • enabled: Indicates if the filter is enabled or not (true | false).
  • valueSource: Any of "TRIGGER" , "STATIC".
  • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".

Query Examples

  1. List Policies
query {
    policies {
        policyId
        name
        mandatory
        actions {
            filters {
                attribute
                values
                enabled
                valueSource
            }
        }
    }
}

Response

{
    "data": {
        "policies": [
            {
                "policyId": "105de4d4-8f95-4382-bf09-bac063af068d",
                "name": "Static Value Policy",
                "mandatory": false,
                "actions": [
                    {
                        "filters": [
                            {
                                "attribute": "my_attribute",
                                "values": ["2"],
                                "enabled": true,
                                "valueSource": "STATIC"
                            }
                        ]
                    }
                ]
            },
            ...
        ]
    },
    "extensions": {
        "request-id": "b9cb7fb1852ca4f0"
    }
}
Response

Returns [PolicyResponse!]

Example

Query
query policies {
  policies {
    actions {
      ...ActionResponseFragment
    }
    createdAt
    mandatory
    name
    policyId
    updatedAt
  }
}
Response
{
  "data": {
    "policies": [
      {
        "actions": [ActionResponse],
        "createdAt": "abc123",
        "mandatory": true,
        "name": "xyz789",
        "policyId": "abc123",
        "updatedAt": "xyz789"
      }
    ]
  }
}
back to top

policy

Description

Fetches a single policy by its identifier.

Parameters:

  • policyId: Policy identifier.

Available Policy fields to query for:

  • policyId: Policy identifier.
  • name: Policy Name.
  • mandatory: Indicates if the policy is compulsory or not (true | false).
  • createdAt: Timestamp when the policy was created.
  • updatedAt: Timestamp when the policy data was last updated.
  • actions: List of actions for the policies, comprised by triggers and filters.

Available Action fields to query for:

  • triggers: List of triggers where the policy is activated.
  • filters: List of action filters.

Available Trigger fields to query for:

  • name: Name of the trigger.
  • transportType: Type of transport type, currently only "HTTP_HEADER" is supported.

Available Action Filters fields to query for:

  • attribute: Name of the attribute to filter by.
  • values: Values to query for.
  • enabled: Indicates if the filter is enabled or not (true | false).
  • valueSource: Any of "TRIGGER" , "STATIC".
  • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".

Query Examples:

  1. Querying for a non-existent policy:
query {
    policy(policyId: "NON_EXISTENT_ID") {
        policyId
        name
        mandatory
    }
}

Response

{
    "errors": [
        {
            "message": "Policy [NON_EXISTENT_ID] not found",
            "locations": [
                {
                    "line": 2,
                    "column": 5
                }
            ],
            "path": ["policy"],
            "extensions": {
                "classification": "ValidationError"
            }
        }
    ],
    "extensions": {
        "request-id": "d505090e43511f18"
    }
}
  1. Querying for an existent policy:
query {
    policy(policyId: "6f8b5a55-b97c-481a-94f3-5a813821c787") {
        policyId
        name
        mandatory
        actions {
            triggers {
                name
                transportType
            }
        }
    }
}

Response

{
    "data": {
        "policy": {
            "policyId": "6f8b5a55-b97c-481a-94f3-5a813821c787",
            "name": "Policy-1",
            "mandatory": false,
            "actions": [
                {
                    "triggers": [
                        {
                            "name": "AC-Policy-POL1",
                            "transportType": "HTTP_HEADER"
                        },
                        ...
                    ]
                },
                ...
            ]
        }
    },
    "extensions": {
        "request-id": "a2f4514b3b106663"
    }
}
Response

Returns a PolicyResponse!

Arguments
Name Description
policyId - String!

Example

Query
query policy($policyId: String!) {
  policy(policyId: $policyId) {
    actions {
      ...ActionResponseFragment
    }
    createdAt
    mandatory
    name
    policyId
    updatedAt
  }
}
Variables
{"policyId": "xyz789"}
Response
{
  "data": {
    "policy": {
      "actions": [ActionResponse],
      "createdAt": "abc123",
      "mandatory": false,
      "name": "xyz789",
      "policyId": "abc123",
      "updatedAt": "xyz789"
    }
  }
}
back to top

priceBooks

Description

The list of price books including the hierarchy of their parent child relationships.

Parameters:

  • searchTerm: The search term to filter the price book list by (optional)
  • scrollId: The pagination token to continue a previous search (optional)
  • size: The number of price books to return (optional, default: 50)
Response

Returns a PriceBooksResponse!

Arguments
Name Description
scrollId - String
searchTerm - String
size - Int

Example

Query
query priceBooks(
  $scrollId: String,
  $searchTerm: String,
  $size: Int
) {
  priceBooks(
    scrollId: $scrollId,
    searchTerm: $searchTerm,
    size: $size
  ) {
    items {
      ...PriceBookFragment
    }
    scrollId
  }
}
Variables
{
  "scrollId": "abc123",
  "searchTerm": "abc123",
  "size": 123
}
Response
{
  "data": {
    "priceBooks": {
      "items": [PriceBook],
      "scrollId": "xyz789"
    }
  }
}
back to top

scopes

Description

Retrieves composable catalog scope information such as locales

Response

Returns [Scope]!

Example

Query
query scopes {
  scopes {
    locale
  }
}
Response
{"data": {"scopes": [{"locale": "xyz789"}]}}
back to top

Mutations

batchChannel

Description

Inserts or Updates channels in a single batch operation.

Input:

  • channels (UpdateChannelRequest): a list of items to insert or update. If any item in the batch does not have a channelId field, a new channel will be created for that record; otherwise, it will be updated.
    • channelId: Channel identifier. Optional.
    • name: Name of the channel. Optional
    • scopes: List of locale scopes identifiers. If provided, it cannot be empty.
    • policyIds: List of policy identifiers. If provided, it cannot be empty.
    • allowedPriceBookIds: List of price book identifiers. Optional
    • defaultPriceBookId: Default price book identifier for the channel. Optional.

Example

mutation {
    batchChannel(channels: [
        {
            channelId: "844ed921",
            name: "Channel Web/Online & Offline",
            allowedPriceBookIds: [
                "PBA",
                "PBB"
            ],
            defaultPriceBookId: "PBA",
            scopes: [
                { locale : "en_US" },
                { locale : "en_UK" },
                { locale : "es_ES" }
            ]
        },
        {
            name: "Offline Channel",
            allowedPriceBookIds: [
                "PBA",
                "PBB"
            ],
            defaultPriceBookId: "PBB",
            scopes: [
                { locale : "en_UK" },
                { locale : "fr_FR" }
            ],
            policyIds : [
                "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
                "a3f4e403-a720-4b27-a266-d69099ae2421"
            ],
            allowedPriceBookIds : [
                "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
                "a3f4e403-a720-4b27-a266-d69099ae2421"
            ]
        }
    ]) {
        channels {
            channelId
            name
            allowedPriceBookIds
            defaultPriceBookId
            scopes {
              locale
            }
            policyIds
            allowedPriceBookIds
            createdAt
            updatedAt
        }
        errors
    }
}

Response

{
    "data": {
        "batchChannel": {
        "channels": [
            {
                "channelId": "e3cbe432-71a2-47cb-938f-29af8be940ab",
                "name": "Channel Web/Online & Offline",
                "defaultPriceBookId": "PBA",
                "scopes": [
                    { "locale": "en_US" },
                    { "locale": "en_UK" },
                    { "locale": "es_ES" }
                ],
                "policyIds": [
                    "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
                    "a3f4e403-a720-4b27-a266-d69099ae2421"
                ],
                "allowedPriceBookIds": [
                    "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
                    "a3f4e403-a720-4b27-a266-d69099ae2421"
                ],
                "createdAt": "2024-11-08T14:55:37.938",
                "updatedAt": "2024-11-12T11:13:22.554967"
            },
            {
                "channelId": "f485f368-3a5a-497b-a13e-4fff8c66df09",
                "name": "Offline Channel",
                "defaultPriceBookId": "PBB",
                "scopes": [
                    { "locale": "en_UK" },
                    { "locale": "fr_FR" }
                ],
                "policyIds": [
                    "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
                    "a3f4e403-a720-4b27-a266-d69099ae2421"
                ],
                "allowedPriceBookIds": [
                    "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
                    "a3f4e403-a720-4b27-a266-d69099ae2421"
                ],
                "createdAt": "2024-11-12T11:13:22.562566",
                "updatedAt": "2024-11-12T11:13:22.562566"
            }
        ],
        "errors": []
        }
    },
    "extensions": {
        "request-id": "d5863f2f668d897a"
    }
}

In the provided example, the first item, with channel identifier of '844ed921' will update the provided attributes, while the second item in the list will be created, as reflected by the 'createdAt' and 'updatedAt' attributes for the response. Please note that the response returns also an errors list, where any transaction failure will be appended to.

Response

Returns a BatchChannelResponse!

Arguments
Name Description
channels - [UpdateChannelRequest!]!

Example

Query
mutation batchChannel($channels: [UpdateChannelRequest!]!) {
  batchChannel(channels: $channels) {
    channels {
      ...ChannelResponseFragment
    }
    errors
  }
}
Variables
{"channels": [UpdateChannelRequest]}
Response
{
  "data": {
    "batchChannel": {
      "channels": [ChannelResponse],
      "errors": ["abc123"]
    }
  }
}
back to top

batchPolicy

Description

Updates a batch of policies.

Input

  • policies (UpdatePolicyRequest). List of items to insert or update. If any item in the batch does not have a policyId field, a new policy will be created for that record; otherwise, it will be updated.
    • policyId: Policy identifier. Optional.
    • name: Name of the policy. Optional.
    • mandatory: Indicates if the policy is compulsory or not (true | false). Optional.
    • actions: List of actions to update. Optional. If passed, it cannot be empty.

Action fields:

  • triggers: List of triggers where the policy is activated.
  • filters: List of action filters.

Trigger fields:

  • name: Name of the trigger. If it does not start with "AC-Policy-", an error is returned.
  • transportType: Type of transport type, currently only "HTTP_HEADER" is supported.

Action Filters fields:

  • attribute: Name of the attribute to filter by.
  • values: Values to query for.
  • enabled: Indicates if the filter is enabled or not (true | false).
  • valueSource: Any of "TRIGGER" , "STATIC".
  • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".

Caveat:

Currently, appending or removing items to the list of actions, triggers, or filters, is an all-or-nothing operation, meaning that, if the fields are included, then, whatever it is provided, will replace the current values.

Example

  1. Creates a new policy "POL18:1" and updates policy with id "39c8106d":
mutation {
    batchPolicy(
        policies: [
            {
                name: "Policy-18122024"
                mandatory: false
            },
            {
                name: "Policy-1""
                mandatory: false
                actions: [{
                    filters: [{
                        attribute: "my_attribute"
                        values: ["AC-Policy-POL1"]
                        enabled: false
                        actionFilterOperator: EQUALS
                        valueSource: TRIGGER
                    }]
                    triggers: [{
                        transportType: HTTP_HEADER
                        name: "AC-Policy-POL1"
                    }]
                }]
            }
        ]
    ) {
        policies {
            policyId
            name
            mandatory
            createdAt
            updatedAt
        }
        errors
    }
}

Response

{
    "data": {
        "batchPolicy": {
            "policies": [
                {
                    "policyId": "d179f1b6-e2bb-4f1e-843b-c06ca828de2d",
                    "name": "Policy-1",
                    "mandatory": false,
                    "createdAt": "2024-11-12T12:00:16.146",
                    "updatedAt": "2024-11-12T18:15:50.847842"
                },
                {
                    "policyId": "887962f7-0b0c-4836-8cd3-2087d908cd91",
                    "name": "Policy-2",
                    "mandatory": false,
                    "createdAt": "2024-11-12T18:15:50.855190",
                    "updatedAt": "2024-11-12T18:15:50.855190"
                }
            ],
            "errors": []
        }
    },
    "extensions": {
        "request-id": "e22f7db098c31607"
    }
}
Response

Returns a BatchPolicyResponse!

Arguments
Name Description
policies - [UpdatePolicyRequest!]!

Example

Query
mutation batchPolicy($policies: [UpdatePolicyRequest!]!) {
  batchPolicy(policies: $policies) {
    errors
    policies {
      ...PolicyResponseFragment
    }
  }
}
Variables
{"policies": [UpdatePolicyRequest]}
Response
{
  "data": {
    "batchPolicy": {
      "errors": ["abc123"],
      "policies": [PolicyResponse]
    }
  }
}
back to top

createChannel

Description

Creates a new channel.

Input

  • channelRequest (CreateChannelRequest): Channel creation information map.

    • name: Name of the channel. Mandatory. Needs to be unique.
    • scopes: List of locale scopes identifiers. At least one locale object should be provided.
    • policyIds: List of policy identifiers. These should be already created and available. At least one policy identifier should be provided.
    • allowedPriceBookIds: List of price book identifiers allowed within the channel. Optional.
    • defaultPriceBookId: Default price book identifier for the channel. Optional.

Example

  1. Create a new channel:
mutation {
    createChannel(
        channelRequest: {
            name: "Channel Web/Online",
            scopes: [
                { locale: "en_US" },
                { locale: "en_UK" }
            ]
            policyIds : [
                "6f8b5a55-b97c-481a-94f3-5a813821c787",
                "63992079-52b5-49b2-a739-312a079c19b7",
            ],
            allowedPriceBookIds : [
                "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
                "a3f4e403-a720-4b27-a266-d69099ae2421"
            ],
            defaultPriceBookId: "PBA"
        }
    ) {
        channelId
        name
        scopes {
          locale
        }
        policyIds
        allowedPriceBookIds
        defaultPriceBookId
        createdAt
        updatedAt
    }
}

Response

{
    "data": {
        "createChannel": {
            "channelId": "1e3c0bc2-d2c8-4eff-aa7b-aa83a824825a",
            "name": "Channel Web/Online",
            "scopes": [
                { "locale" : "en_US" },
                { "locale" : "en_UK" }
            ],
            policyIds : [
                "6f8b5a55-b97c-481a-94f3-5a813821c787",
                "63992079-52b5-49b2-a739-312a079c19b7",
            ],
            allowedPriceBookIds : [
            "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
            "a3f4e403-a720-4b27-a266-d69099ae2421"
            ],
            "defaultPriceBookId": "PBA",
            "createdAt": "2024-11-08T14:57:24.541128",
            "updatedAt": "2024-11-08T14:57:24.541128"
        }
    },
    "extensions": {
        "request-id": "ea46a3e19c219068"
    }
}
  1. Create a new channel and requesting its associated policies:
mutation {
    createChannel(
        channelRequest: {
            name: "Brand A"
            scopes: [
                { locale : "en_US"}
                { locale : "en_UK"}
            ]
            policyIds : [
                "6f8b5a55-b97c-481a-94f3-5a813821c787",
                "63992079-52b5-49b2-a739-312a079c19b7",
            ],
            allowedPriceBookIds : [
            "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
            "a3f4e403-a720-4b27-a266-d69099ae2421"
            ]
            defaultPriceBookId: "PBA"
        }
    ) {
        channelId
        name
        scopes {
            locale
        }
        policyIds
        allowedPriceBookIds
        defaultPriceBookId
        createdAt
        updatedAt
        policies {
            policyId
            name
            actions {
                triggers {
                    transportType
                    name
                }
                filters {
                    attribute
                    actionFilterOperator
                    values
                    enabled
                    valueSource
                }
            }
            mandatory
            createdAt
            updatedAt
        }
    }
}

Response

{
    "data": {
        "createChannel": {
            "channelId": "b4ab7a72-1556-49b4-b1ac-125902f37a0b",
            "name": "Brand A",
            "scopes": [
                { "locale": "en_US" },
                { "locale": "en_UK" }
            ],
            "policyIds": [
                "6f8b5a55-b97c-481a-94f3-5a813821c787",
                "63992079-52b5-49b2-a739-312a079c19b7"
            ],
            allowedPriceBookIds : [
            "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
            "a3f4e403-a720-4b27-a266-d69099ae2421"
            ],
            "defaultPriceBookId": "PBA",
            "createdAt": "2024-11-20T17:53:53.613",
            "updatedAt": "2024-11-20T17:53:53.613",
            "policies": [
                {
                    "policyId": "6f8b5a55-b97c-481a-94f3-5a813821c787",
                    "name": "Policy-1",
                    "actions": [
                        {
                            "triggers": [
                                {
                                    "transportType": "HTTP_HEADER",
                                    "name": "AC-Policy-POL1"
                                }
                            ],
                            "filters": [
                                {
                                    "attribute": "my_attribute",
                                    "actionFilterOperator": "EQUALS",
                                    "values": ["AC-Policy-POL1"],
                                    "enabled": true,
                                    "valueSource": "TRIGGER"
                                }
                            ]
                        }
                    ],
                    "mandatory": false,
                    "createdAt": "2024-11-20T14:09:57",
                    "updatedAt": "2024-11-20T14:09:57"
                },
                {
                    "policyId": "63992079-52b5-49b2-a739-312a079c19b7",
                    "name": "Policy-1",
                    "actions": [
                        {
                            "triggers": [
                                {
                                    "transportType": "HTTP_HEADER",
                                    "name": "AC-Policy-POL1"
                                }
                            ],
                            "filters": [
                                {
                                    "attribute": "my_attribute",
                                    "actionFilterOperator": "EQUALS",
                                    "values": ["AC-Policy-POL1"],
                                    "enabled": false,
                                    "valueSource": "STATIC"
                                }
                            ]
                        }
                    ],
                    "mandatory": false,
                    "createdAt": "2024-11-20T14:09:57",
                    "updatedAt": "2024-11-20T14:09:57"
                }
            ]
        }
    },
    "extensions": {
        "request-id": "caefdeb372058548"
    }
}
Response

Returns a ChannelResponse!

Arguments
Name Description
channelRequest - CreateChannelRequest!

Example

Query
mutation createChannel($channelRequest: CreateChannelRequest!) {
  createChannel(channelRequest: $channelRequest) {
    allowedPriceBookIds
    channelId
    createdAt
    defaultPriceBookId
    name
    policies {
      ...PolicyResponseFragment
    }
    policyIds
    scopes {
      ...ChannelScopeResponseFragment
    }
    updatedAt
  }
}
Variables
{"channelRequest": CreateChannelRequest}
Response
{
  "data": {
    "createChannel": {
      "allowedPriceBookIds": ["abc123"],
      "channelId": "xyz789",
      "createdAt": "xyz789",
      "defaultPriceBookId": "xyz789",
      "name": "xyz789",
      "policies": [PolicyResponse],
      "policyIds": ["xyz789"],
      "scopes": [ChannelScopeResponse],
      "updatedAt": "xyz789"
    }
  }
}
back to top

createPolicy

Description

Creates a new policy.

Input

  • policyRequest (CreatePolicyRequest):

    • name: Name of the policy. Mandatory
    • mandatory: Indicates if the policy is compulsory or not (true | false).
    • actions: List of actions. Mandatory.

Action fields:

  • triggers: List of triggers where the policy is activated.
  • filters: List of action filters.

Trigger fields:

  • name: Name of the trigger. If it does not start with "AC-Policy-", an error is returned.
  • transportType: Type of transport type, currently only "HTTP_HEADER" is supported.

Action Filters fields:

  • attribute: Name of the attribute to filter by.
  • values: Values to query for.
  • enabled: Indicates if the filter is enabled or not (true | false).
  • valueSource: Any of "TRIGGER" , "STATIC".
  • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".

Example

mutation {
    createPolicy(
        policyRequest: {
            name: "Policy-200212000",
            actions: [
                {
                    triggers: [
                        {
                            transportType: HTTP_HEADER,
                            name: "AC-Policy-POL1"
                        }
                    ],
                    filters: [
                        {
                            attribute: "my_attribute",
                            actionFilterOperator: EQUALS,
                            values: ["AC-Policy-POL01"],
                            enabled: true,
                            valueSource: TRIGGER
                        }
                    ]
                }
            ],
            mandatory: true
        }) {
            policyId
            name
            mandatory
            actions {
                triggers {
                    transportType
                    name
                }
                filters {
                    attribute
                    actionFilterOperator
                    values
                    enabled
                    valueSource
                }
            }
            createdAt
            updatedAt
        }
}

Response

{
    "data": {
        "createPolicy": {
            "policyId": "39c8106d-aab2-49b2-aac3-177608d4d058",
            "name": "Policy-1",
            "mandatory": true,
            "actions": [
                {
                    "triggers": [
                        {
                            "transportType": "HTTP_HEADER",
                            "name": "AC-Policy-POL01"
                        }
                    ],
                    "filters": [
                        {
                            "attribute": "my_attribute",
                            "actionFilterOperator": "EQUALS",
                            "values": ["AC-Policy-POL01"],
                            "enabled": true,
                            "valueSource": "TRIGGER"
                        }
                    ]
                }
            ],
            "createdAt": "2024-11-12T12:00:16.146157",
            "updatedAt": "2024-11-12T12:00:16.146157"
        }
    },
    "extensions": {
        "request-id": "bbcdcbc79b5d873b"
    }
}
Response

Returns a PolicyResponse!

Arguments
Name Description
policyRequest - CreatePolicyRequest!

Example

Query
mutation createPolicy($policyRequest: CreatePolicyRequest!) {
  createPolicy(policyRequest: $policyRequest) {
    actions {
      ...ActionResponseFragment
    }
    createdAt
    mandatory
    name
    policyId
    updatedAt
  }
}
Variables
{"policyRequest": CreatePolicyRequest}
Response
{
  "data": {
    "createPolicy": {
      "actions": [ActionResponse],
      "createdAt": "abc123",
      "mandatory": true,
      "name": "abc123",
      "policyId": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}
back to top

deleteChannel

Description

Deletes a channel by its identifier.

Input

  • channelId: Channel identifier. If not provided, it will return an error.

Example

  1. Delete an existing channel:
mutation {
    deleteChannel(channelId: "11730ac6-9f52-4490-a366-0c8237239a3f")
}

Response

{
    "data": {
        "deleteChannel": "11730ac6-9f52-4490-a366-0c8237239a3f"
    },
    "extensions": {
        "request-id": "819e07d8b8b80af9"
    }
}
  1. Trying to delete a non-existent channel:
mutation {
    deleteChannel(channelId: "11730ac6-9f52-4490-a366-0c8237239a3f")
}

Response

{
    "errors": [
        {
            "message": "Channel 11730ac6-9f52-4490-a366-0c8237239a3f not found",
            "locations": [
                {
                "line": 2,
                "column": 3
                }
            ],
            "path": ["deleteChannel"],
            "extensions": {
                "classification": "ValidationError"
            }
        }
    ],
    "extensions": {
        "request-id": "98e60e98e0c8a0ff"
    }
}
Response

Returns a String!

Arguments
Name Description
channelId - String!

Example

Query
mutation deleteChannel($channelId: String!) {
  deleteChannel(channelId: $channelId)
}
Variables
{"channelId": "abc123"}
Response
{"data": {"deleteChannel": "xyz789"}}
back to top

deletePolicy

Description

Deletes a given policy by its identifier.

Input

  • policyId: Policy identifier. Mandatory. If not found, an error is returned.

Examples

  1. Deleting an existing policy:
mutation {
    deletePolicy(policyId: "8ac25122")
}

Response

{
    "data": {
        "deletePolicy": "8ac25122"
    },
    "extensions": {
        "request-id": "9b88d28bb67856bd"
    }
}
  1. Deleting a missing policy. An error is returned:
mutation {
    deletePolicy(policyId: "NON_EXISTENT_POLICY_ID")
}

Response

{
    "errors": [
        {
            "message": "Policy NON_EXISTENT_POLICY_ID not found",
            "locations": [{
                "line": 2,
                "column": 7
            }],
            "path": ["deletePolicy"],
            "extensions": {
                "classification": "ValidationError"
            }
        }
    ],
    "extensions": {
        "request-id": "87962a2e351180d7"
    }
}
Response

Returns a String!

Arguments
Name Description
policyId - String!

Example

Query
mutation deletePolicy($policyId: String!) {
  deletePolicy(policyId: $policyId)
}
Variables
{"policyId": "xyz789"}
Response
{"data": {"deletePolicy": "xyz789"}}
back to top

updateChannel

Description

Updates data in an existing channel by its identifier.

Input:

  • channelRequest (UpdateChannelRequest). Channel information to update.

    • channelId: Channel identifier. Mandatory.
    • name: Name of the channel. Optional.
    • scopes: List of locale scopes identifiers. Optional.
    • policyIds: List of policy identifiers. Optional
    • allowedPriceBookIds: List of price book identifiers. Optional
    • defaultPriceBookId: Default price book identifier for the channel. Optional.

Caveat:

Currently, appending or removing to the list of locales or policies
is an all-or-nothing operation, meaning that, if the fields are included,
then, whatever it is provided, will replace the current values.

Example

  1. Updating the name of a given channel:
mutation {
    updateChannel(
        channelRequest: {
            channelId: "1e3c0bc2-d2c8-4eff-aa7b-aa83a824825a",
            name: "Channel Web/Online/Mortar&Bricks"
        }) {
        channelId
        name
        allowedPriceBookIds
        defaultPriceBookId
        createdAt
        updatedAt
    }
}

Response

{
    "data": {
        "updateChannel": {
            "channelId": "1e3c0bc2-d2c8-4eff-aa7b-aa83a824825a",
            "name": "Channel Web/Online/Mortar&Bricks",
            "allowedPriceBookIds": [
                "PBA",
                "PBB"
            ],
            "defaultPriceBookId": "PBA",
            "createdAt": "2024-11-08T14:57:24.541",
            "updatedAt": "2024-11-08T15:22:34.168738"
        }
    },
    "extensions": {
        "request-id": "d1d390da0b92d91a"
    }
}
Response

Returns a ChannelResponse!

Arguments
Name Description
channelRequest - UpdateChannelRequest!

Example

Query
mutation updateChannel($channelRequest: UpdateChannelRequest!) {
  updateChannel(channelRequest: $channelRequest) {
    allowedPriceBookIds
    channelId
    createdAt
    defaultPriceBookId
    name
    policies {
      ...PolicyResponseFragment
    }
    policyIds
    scopes {
      ...ChannelScopeResponseFragment
    }
    updatedAt
  }
}
Variables
{"channelRequest": UpdateChannelRequest}
Response
{
  "data": {
    "updateChannel": {
      "allowedPriceBookIds": ["abc123"],
      "channelId": "xyz789",
      "createdAt": "xyz789",
      "defaultPriceBookId": "abc123",
      "name": "abc123",
      "policies": [PolicyResponse],
      "policyIds": ["abc123"],
      "scopes": [ChannelScopeResponse],
      "updatedAt": "abc123"
    }
  }
}
back to top

updatePolicy

Description

Updates an existent policy.

Input

  • policyRequest (UpdatePolicyRequest). Policy information to update.
    • policyId: Policy identifier. Mandatory. If it doesn't exist, it fails with error.
    • name: Name of the policy. Optional.
    • mandatory: Indicates if the policy is compulsory or not (true | false). Optional.
    • actions: List of actions to update. Optional.

Action fields:

  • triggers: List of triggers where the policy is activated.
  • filters: List of action filters.

Trigger fields:

  • name: Name of the trigger. If it does not start with "AC-Policy-", an error is returned.
  • transportType: Type of transport type, currently only "HTTP_HEADER" is supported.

Action Filters fields:

  • attribute: Name of the attribute to filter by.
  • values: Values to query for.
  • enabled: Indicates if the filter is enabled or not (true | false).
  • valueSource: Any of "TRIGGER" , "STATIC".
  • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".

Caveat:

Currently, appending or removing items to the list of actions, triggers, or filters, is an all-or-nothing operation, meaning that, if the fields are included, then, whatever it is provided, will replace the current values.

Examples:

  1. Updating the name of a policy:
mutation {
    updatePolicy( policyRequest: {
        policyId:"39c8106d",
        name: "Offline Channel (Disabled)",
    }) {
        policyId
        name
    }
}

Response

{
    "data": {
        "updatePolicy": {
            "policyId": "39c8106d",
            "name": "Offline Channel (Disabled)"
        }
    },
    "extensions": {
        "request-id": "a0347b3b579e1acb"
    }
}
  1. Attempting to update a missing policy. An error is returned:
mutation {
    updatePolicy( policyRequest: {
        policyId:"NON_EXISTENT_POLICY_ID",
        name: "Offline Channel (Disabled)",
    }) {
        policyId
        name
    }
}

Response

{
    "errors": [
        {
            "message": "Policy NON_EXISTENT_POLICY_ID not found",
            "locations": [
                {
                "line": 2,
                "column": 5
                }
            ],
            "path": [
                "updatePolicy"
            ],
            "extensions": {
                "classification": "ValidationError"
            }
        }
    ],
    "extensions": {
        "request-id": "82c39ad9e91b4620"
    }
}
  1. Updating a policy's actions list:
mutation {
    updatePolicy(policyRequest: {
        policyId:"d179f1b6-e2bb-4f1e-843b-c06ca828de2d",
            actions: [{
                triggers: [{
                    transportType: HTTP_HEADER,
                    name: "AC-Policy-POL1"
                }],
                filters: [{
                    attribute: "my_attribute",
                    actionFilterOperator: EQUALS,
                    values: ["AC-Policy-POL1"],
                    enabled: true,
                    valueSource: TRIGGER
                }]
            }]
    }) {
        policyId
        name
        actions {
            triggers {
                transportType
                name
            }
            filters {
                attribute
                actionFilterOperator
                values
                enabled
                valueSource
            }
        }
        createdAt
        updatedAt
    }
}

Response

{
    "data": {
        "updatePolicy": {
            "policyId": "d179f1b6-e2bb-4f1e-843b-c06ca828de2d",
            "name": "Offline Channel (Disabled)",
            "actions": [{
                "triggers": [{
                    "transportType": "HTTP_HEADER",
                    "name": "AC-Policy-POL1"
                }],
                "filters": [{
                    "attribute": "my_attribute",
                    "actionFilterOperator": "EQUALS",
                    "values": ["AC-Policy-POL1"],
                    "enabled": true,
                    "valueSource": "TRIGGER"
                }]
            }],
            "createdAt": "2024-11-12T12:00:16.146",
            "updatedAt": "2024-11-12T13:40:11.171292"
        }
    },
    "extensions": {
        "request-id": "bb8f5beda64d85cc"
    }
}
Response

Returns a PolicyResponse!

Arguments
Name Description
policyRequest - UpdatePolicyRequest!

Example

Query
mutation updatePolicy($policyRequest: UpdatePolicyRequest!) {
  updatePolicy(policyRequest: $policyRequest) {
    actions {
      ...ActionResponseFragment
    }
    createdAt
    mandatory
    name
    policyId
    updatedAt
  }
}
Variables
{"policyRequest": UpdatePolicyRequest}
Response
{
  "data": {
    "updatePolicy": {
      "actions": [ActionResponse],
      "createdAt": "abc123",
      "mandatory": false,
      "name": "abc123",
      "policyId": "abc123",
      "updatedAt": "abc123"
    }
  }
}
back to top

Types

ActionFilterOperator

Description

Action filter operator.

Values
Enum Value Description

EQUALS

GREATER_THAN_EQUAL

IN

LESS_THAN_EQUAL

Example
"EQUALS"
back to top

ActionFilterRequest

Description

Request input to define an action filter in a policy insert or update operation.

Fields
Input Field Description
actionFilterOperator - ActionFilterOperator! Filter comparison operator. Required.
attribute - String! Attribute name to use in the filter. Required.
enabled - Boolean! Indicates if the filter is enabled or not (true | false). Required.
value - String Filter attribute value. Deprecated. Use values instead. No longer supported
valueSource - ActionFilterValueSource!

Indicates the location of action filter's value. Required.

  • If TRIGGER, then a corresponding trigger must be configured.
  • If STATIC, the value field must contain the value to apply in the action filter.
values - [String!] Filter attribute values.
Example
{
  "actionFilterOperator": "EQUALS",
  "attribute": "abc123",
  "enabled": false,
  "value": "xyz789",
  "valueSource": "STATIC",
  "values": ["abc123"]
}
back to top

ActionFilterResponse

Description

Represents an action filter.

Fields
Field Name Description
actionFilterOperator - ActionFilterOperator Filter comparison operator.
attribute - String Attribute name to use in the filter.
enabled - Boolean Indicates if the filter is enabled or not (true | false).
value - String Filter attribute value. Deprecated. Use values instead. No longer supported
valueSource - ActionFilterValueSource Indicates the type of action filter.
values - [String] Filter attribute values.
Example
{
  "actionFilterOperator": "EQUALS",
  "attribute": "abc123",
  "enabled": false,
  "value": "xyz789",
  "valueSource": "STATIC",
  "values": ["xyz789"]
}
back to top

ActionFilterValueSource

Description

Action filter origin type.

Values
Enum Value Description

STATIC

TRIGGER

Example
"STATIC"
back to top

ActionRequest

Description

Request input for defining policy actions in an update or insert operation.

Fields
Input Field Description
filters - [ActionFilterRequest!] List of action filters for the enclosing policy action item. Optional.
triggers - [TriggerRequest!] List of triggers for the enclosing policy action item. Optional. If not provided, then the policy will always be applied.
Example
{
  "filters": [ActionFilterRequest],
  "triggers": [TriggerRequest]
}
back to top

ActionResponse

Description

Represents the associated triggers and filters for a given policy.

Fields
Field Name Description
filters - [ActionFilterResponse!] List of action filters for a given policy.
triggers - [TriggerResponse!] List of triggers for a given policy.
Example
{
  "filters": [ActionFilterResponse],
  "triggers": [TriggerResponse]
}
back to top

BatchChannelResponse

Description

Response for batch operations (insert or update) over a channel objects list.

Fields
Field Name Description
channels - [ChannelResponse!] List of channels to insert or update.
errors - [String!] List of errors found during the insert or update operations, if any.
Example
{
  "channels": [ChannelResponse],
  "errors": ["abc123"]
}
back to top

BatchPolicyResponse

Description

Response object for policy batch updates/inserts.

Fields
Field Name Description
errors - [String!] List of errors found during the insert or update operations, if any.
policies - [PolicyResponse!] List of policy objects created or modified.
Example
{
  "errors": ["abc123"],
  "policies": [PolicyResponse]
}
back to top

Boolean

Description

The Boolean scalar type represents true or false.

back to top

ChannelResponse

Description

Represents a channel.

Fields
Field Name Description
allowedPriceBookIds - [String!] List of price book identifiers allowed within the channel. If the list is empty, all price books will be allowed. The default value is empty.
channelId - String! Unique identifier for the channel.
createdAt - String Timestamp of when the channel was created, in ISO 8601 format (e.g., 2024-07-25T16:10:11.701669).
defaultPriceBookId - String Default price book identifier for the channel.
name - String! Name of the channel.
policies - [PolicyResponse] Policies associated to each channel (joined by policyIds).
policyIds - [String!] List of policy identifiers associated with the channel.
scopes - [ChannelScopeResponse!] List of scopes associated with the channel.
updatedAt - String Timestamp of the last update to the channel, in ISO 8601 format (e.g., 2024-07-25T16:10:11.701669).
Example
{
  "allowedPriceBookIds": ["xyz789"],
  "channelId": "abc123",
  "createdAt": "abc123",
  "defaultPriceBookId": "xyz789",
  "name": "xyz789",
  "policies": [PolicyResponse],
  "policyIds": ["abc123"],
  "scopes": [ChannelScopeResponse],
  "updatedAt": "xyz789"
}
back to top

ChannelScopeRequest

Fields
Input Field Description
locale - String!
Example
{"locale": "xyz789"}
back to top

ChannelScopeResponse

Fields
Field Name Description
locale - String!
Example
{"locale": "abc123"}
back to top

CreateChannelRequest

Description

Request input for creating a channel.

Fields
Input Field Description
allowedPriceBookIds - [String!] List of price book identifiers allowed within the channel. If the list is empty, all price books will be allowed. The default value is empty.
defaultPriceBookId - String Default price book identifier for the channel.
name - String! Name of the Chanel. Mandatory.
policyIds - [String!] List of policy identifiers.
scopes - [ChannelScopeRequest!] List of locale identifiers.
Example
{
  "allowedPriceBookIds": ["abc123"],
  "defaultPriceBookId": "abc123",
  "name": "xyz789",
  "policyIds": ["abc123"],
  "scopes": [ChannelScopeRequest]
}
back to top

CreatePolicyRequest

Description

Request input for creating a policy.

Fields
Input Field Description
actions - [ActionRequest]! List of policy's actions. Required, at least one item.
mandatory - Boolean! Indicates if the policy is required or not (true | false). Required.
name - String! Name of the policy. Required.
Example
{
  "actions": [ActionRequest],
  "mandatory": true,
  "name": "abc123"
}
back to top

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987
back to top

PolicyResponse

Description

Represents a policy.

Fields
Field Name Description
actions - [ActionResponse!] List of actions associated to the policy.
createdAt - String Record creation timestamp.
mandatory - Boolean Indicates if the policy is required or not (true | false).
name - String Policy name.
policyId - String Policy identifier.
updatedAt - String Record's latest update timestamp.
Example
{
  "actions": [ActionResponse],
  "createdAt": "abc123",
  "mandatory": false,
  "name": "abc123",
  "policyId": "abc123",
  "updatedAt": "xyz789"
}
back to top

PriceBook

Fields
Field Name Description
currency - String! The currency code of the price book.
id - String! The price book identifier.
level - Int! The level of the price book in the hierarchy.
modifiedAt - String! The timestamp that the price book was last modified.
name - String! The name of the price book.
parentIds - [String]!

The list of parent price book identifiers ordered by hierarchy.

Example price book hierarchy: base -> child1 -> child2 where "base" is the top-level price book, "child1" is a child of "base", and "child2" is a child of "child1". The resulting value for parentIds would be: parentIds: ["base", "child1", "child2"]

Example
{
  "currency": "xyz789",
  "id": "xyz789",
  "level": 123,
  "modifiedAt": "xyz789",
  "name": "abc123",
  "parentIds": ["abc123"]
}
back to top

PriceBooksResponse

Fields
Field Name Description
items - [PriceBook]! The list of price books.
scrollId - String The pagination token to continue fetching more price books.
Example
{
  "items": [PriceBook],
  "scrollId": "xyz789"
}
back to top

Scope

Fields
Field Name Description
locale - String
Example
{"locale": "xyz789"}
back to top

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"
back to top

TransportType

Description

Trigger's transport type.

Values
Enum Value Description

HTTP_HEADER

Example
"HTTP_HEADER"
back to top

TriggerRequest

Description

Request input to define a policy trigger in a policy insert or update operation.

Fields
Input Field Description
name - String! Name of the trigger. Required.
transportType - TransportType! Type of transport. Only HTTP_HEADER supported. Required.
Example
{
  "name": "xyz789",
  "transportType": "HTTP_HEADER"
}
back to top

TriggerResponse

Description

Represents a trigger action.

Fields
Field Name Description
name - String Name of the trigger. It should start with the "AC-Policy-" prefix.
transportType - TransportType Originating transport type. Currently only HTTP_HEADER is supported.
Example
{
  "name": "abc123",
  "transportType": "HTTP_HEADER"
}
back to top

UpdateChannelRequest

Description

Request input for updating a given channel. Also used for batch channel operations.

Fields
Input Field Description
allowedPriceBookIds - [String!] List of price book identifiers allowed within the channel. Providing an empty list removes all allowed price book restrictions within the channel.
channelId - String Channel identifier. Required only if used for an update operation. It can be omitted if used in a batch insert operation.
defaultPriceBookId - String Default price book identifier for the channel.
name - String Name of the channel to update.
policyIds - [String!] List of policy identifiers. Providing an empty list removes all policy links to the channel.
scopes - [ChannelScopeRequest!] List of scopes. Providing an empty list removes all scopes from the channel.
Example
{
  "allowedPriceBookIds": ["xyz789"],
  "channelId": "xyz789",
  "defaultPriceBookId": "xyz789",
  "name": "xyz789",
  "policyIds": ["xyz789"],
  "scopes": [ChannelScopeRequest]
}
back to top

UpdatePolicyRequest

Description

Request input for updating a given policy. Also used in policy batch operations.

Fields
Input Field Description
actions - [ActionRequest!] List of policy's actions. Optional.
mandatory - Boolean Indicates if the policy is compulsory or not (true | false). Optional.
name - String Name of the policy. Optional.
policyId - String Policy identifier. Required only if used for an update operation. It can be omitted if used in a batch insert operation.
Example
{
  "actions": [ActionRequest],
  "mandatory": true,
  "name": "abc123",
  "policyId": "xyz789"
}
back to top