31 March 2025
Composable Commerce
HTTP API
Enhancement
B2BCustomersGraphQL

You can now move a Business Unit to a new company, providing greater flexibility for your organizational needs. With this enhancement, you can do the following:

  • Convert a company into a sub-division of another company
  • Convert a sub-division into a sub-division of another company
  • Convert a sub-division into a new company

This functionality is available in public beta. Previously, Business Units could be moved only to another parent in the same company.

This feature is only available as part of Composable Commerce for B2B and will be subject to additional terms and pricing. To get access to Composable Commerce for B2B, contact the Composable Commerce support team.

Changes:

  • [API] Added the Set Unit Type update action to the Business Units API.
  • [API] Added the BusinessUnitTopLevelUnitSet and BusinessUnitTypeSet Messages.
  • [GraphQL API] Added the following types to the GraphQL schema: SetBusinessUnitUnitType, BusinessUnitTopLevelUnitSet, BusinessUnitTypeSet.
  • [GraphQL API] Added setUnitType input field to the BusinessUnitUpdateAction type.

The following changes were introduced in terms of GraphQL SDL:

extend input BusinessUnitUpdateAction {
  "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
  setUnitType: SetBusinessUnitUnitType
}

"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
input SetBusinessUnitUnitType {
  unitType: BusinessUnitType!
  parentUnit: ResourceIdentifierInput
}

"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type BusinessUnitTopLevelUnitSet implements MessagePayload {
  oldTopLevelUnit: BusinessUnit!
  topLevelUnit: BusinessUnit!
  oldTopLevelUnitRef: KeyReference
  topLevelUnitRef: KeyReference
  type: String!
}

"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type BusinessUnitTypeSet implements MessagePayload {
  oldUnitType: BusinessUnitType!
  unitType: BusinessUnitType!
  parentUnit: BusinessUnit
  oldParentUnit: BusinessUnit
  parentUnitRef: KeyReference
  oldParentUnitRef: KeyReference
  type: String!
}