Channels
Channels represent a source or destination of different entities. They can be used to model warehouses or stores.
Channels are used in different parts of the commercetools Platform to connect different entities (like inventory or price) to some specific source or destination of entities. For example, inventory may be connected to a supply channel that would describe from which supplier a stock comes from. Price may also have connection to the channel. In this case, you can save the inventory pricing information from the specific channel into the system. Similarly, after the disposition process, line items can get supply channel information that would uniquely identify inventory entries that should be reserved.
Representations
Channel
idString | Unique ID of the Channel. |
versionInt | Current version of the Channel. |
keyString | User-defined unique identifier for the Channel. |
createdAt | Date and time (UTC) the Channel was initially created. |
createdByBETA | Present on resources created after 1 February 2019 except for events not tracked. |
lastModifiedAt | Date and time (UTC) the Channel was last updated. |
lastModifiedByBETA | Present on resources updated after 1 February 2019 except for events not tracked. |
rolesArray of ChannelRoleEnum | Roles of the Channel. |
name | Name of the Channel. |
description | Description of the Channel. |
address | Address where the Channel is located (for example, if the Channel is a physical store). |
reviewRatingStatistics | Statistics about the review ratings taken into account for the Channel. |
geoLocation | GeoJSON geometry object encoding the geo location of the Channel. |
custom | Custom Fields defined for the Channel. |
ChannelDraft
keyString | User-defined unique identifier for the Channel. |
rolesArray of ChannelRoleEnum | Roles of the Channel.
Each channel must have at least one role.
If not specified, then |
name | Name of the Channel. |
description | Description of the Channel. |
address | Address where the Channel is located. |
geoLocation | GeoJSON geometry object encoding the geo location of the Channel. Currently, only the Point type is supported. |
custom | Custom fields defined for the Channel. |
ChannelPagedQueryResponse
PagedQueryResult with results containing an array of Channel.
limitInt | Number of results requested in the query request. |
offsetInt | Offset supplied by the client or server default. It is the number of elements skipped, not a page number. |
countInt | Actual number of results returned. |
totalInt | Total number of results matching the query.
This number is an estimation that is not strongly consistent.
This field is returned by default.
For improved performance, calculating this field can be deactivated by using the query parameter |
resultsArray of Channel | Channels matching the query. |
ChannelReference
idString | Unique ID of the referenced Channel. |
typeIdString | "channel" |
obj | Contains the representation of the expanded Channel. Only present in responses to requests with Reference Expansion for Channels. |
ChannelResourceIdentifier
ResourceIdentifier to a Channel.
ChannelRoleEnum
Describes the purpose and type of the Channel. A Channel can have one or more roles.
InventorySupplyChannel can be used to track inventory entries (for example, Channels with this role can be treated as warehouses).
ProductDistributionChannel can be used to expose Products to a specific distribution Channel. The Channel can be used by a Cart to select a Product Price.
OrderExportChannel can be used to track order export activities.
OrderImportChannel can be used to track order import activities.
PrimaryThis role can be combined with the other roles (for example, with
InventorySupply). If used, the Channel is considered as the primary or main channel among Channels of the same type.
Get Channel
view_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
idString |
|
expand | The parameter can be passed multiple times. |
200Channel
curl -X GET https://api.{region}.commercetools.com/{projectKey}/channels/{id} -i \--header 'Authorization: Bearer ${BEARER_TOKEN}'
Query Channels
view_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
where | The parameter can be passed multiple times. |
/^var[.][a-zA-Z0-9]+$/Any string parameter matching this regular expression | Predicate parameter values. The parameter can be passed multiple times. |
sort | The parameter can be passed multiple times. |
expand | The parameter can be passed multiple times. |
limitInt | Number of results returned. |
offsetInt | Number of results skipped. |
withTotalBoolean | Controls the calculation of the total number of query results. Set to |
curl -X GET https://api.{region}.commercetools.com/{projectKey}/channels -i \--header 'Authorization: Bearer ${BEARER_TOKEN}'
Create Channel
manage_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
expand | The parameter can be passed multiple times. |
201Channel
curl -X POST https://api.{region}.commercetools.com/{projectKey}/channels -i \--header 'Authorization: Bearer ${BEARER_TOKEN}' \--header 'Content-Type: application/json' \--data-binary @- << DATA{"key" : "commercetools","roles" : [ "InventorySupply" ]}DATA
Update Channel
manage_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
idString |
|
expand | The parameter can be passed multiple times. |
versionInt | Expected version of the Channel on which the changes should be applied. If the expected version does not match the actual version, a 409 Conflict error will be returned. |
actionsArray of ChannelUpdateAction | Update actions to be performed on the Channel. |
200Channel
curl -X POST https://api.{region}.commercetools.com/{projectKey}/channels/{id} -i \--header 'Authorization: Bearer ${BEARER_TOKEN}' \--header 'Content-Type: application/json' \--data-binary @- << DATA{"version" : 1,"actions" : [ {"action" : "changeName","name" : {"en" : "New Name"}} ]}DATA
Update actions
Change Key
keyString | New value to set. Must not be empty. |
actionString | "changeKey" |
{"action" : "changeKey","key" : "myNewChannelKey"}
Change Name
actionString | "changeName" |
name | New value to set. Must not be empty. |
{"action" : "changeName","name" : {"en" : "new Channel Name EN","de" : "new Channel Name DE"}}
Change Description
actionString | "changeDescription" |
description | New value to set. Must not be empty. |
{"action" : "changeDescription","description" : {"en" : "new Description EN","de" : "new Description DE"}}
Set Roles
actionString | "setRoles" |
rolesArray of ChannelRoleEnum | Value to set. If not specified, then |
{"action" : "setRoles","roles" : [ "ProductDistribution", "Primary" ]}
Add Roles
actionString | "addRoles" |
rolesArray of ChannelRoleEnum | Value to append to the array. |
{"action" : "addRoles","roles" : [ "InventorySupply" ]}
Remove Roles
actionString | "removeRoles" |
rolesArray of ChannelRoleEnum | Value to remove from the array. |
{"action" : "removeRoles","roles" : [ "InventorySupply" ]}
Set Address
actionString | "setAddress" |
address | Value to set. If empty, any existing value will be removed. |
{"action" : "setAddress","address" : {"id" : "exampleAddress","key" : "exampleKey","title" : "My Address","salutation" : "Mr.","firstName" : "Example","lastName" : "Person","streetName" : "Examplary Street","streetNumber" : "4711","additionalStreetInfo" : "Backhouse","postalCode" : "80933","city" : "Exemplary City","region" : "Exemplary Region","state" : "Exemplary State","country" : "DE","company" : "My Company Name","department" : "Sales","building" : "Hightower 1","apartment" : "247","pOBox" : "2471","phone" : "+49 89 12345678","mobile" : "+49 171 2345678","email" : "mail@mail.com","fax" : "+49 89 12345679","additionalAddressInfo" : "no additional Info","externalId" : "Information not needed"}}
Set Custom Type
actionString | "setCustomType" |
type | If absent, the custom type and any existing CustomFields are removed. |
fields | Valid JSON object, based on the FieldDefinitions of the Type. Sets the custom fields to this value. |
{"action" : "setCustomType","type" : {"id" : "{{type-id}}","typeId" : "type"},"fields" : {"examplaryStringTypeField" : "TextString"}}
Set CustomField
actionString | "setCustomField" |
nameString | Name of the Custom Field. |
valueAny | Value must be of type Value.
If |
{"action" : "setCustomField","name" : "ExamplaryStringTypeField","value" : "TextString"}
Set CustomType in Address
actionString | "setAddressCustomType" |
type | If absent, the custom type and any existing CustomFields are removed from the address. |
fields | Valid JSON object, based on the FieldDefinitions of the Type. Sets the custom fields to this value. |
{"action" : "setAddressCustomType","type" : {"id" : "{{type-id}}","typeId" : "type"},"fields" : {"examplaryStringTypeField" : "TextString"}}
Set CustomField in Address
actionString | "setAddressCustomField" |
nameString | Name of the Custom Fields. |
valueAny | Specifies the format of the value of the Custom Field defined by |
{"action" : "setAddressCustomField","name" : "ExamplaryStringTypeField","value" : "TextString"}
Set GeoLocation
actionString | "setGeoLocation" |
geoLocation | Value to set. |
{"action" : "setGeoLocation","geoLocation" : {"type" : "Point","coordinates" : [ 48.163569, 11.558663 ]}}
Delete Channel
manage_products:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
idString |
|
expand | The parameter can be passed multiple times. |
versionInt | Last seen version of the resource. |
200Channel
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/channels/{id}?version={version} -i \--header 'Authorization: Bearer ${BEARER_TOKEN}'