All Release Notes

Deliveries can now be extended with Custom Fields

20 December 2021
Composable Commerce
HTTP API
Enhancement
GraphQLOrdersExtensibility

You can now extend the Delivery object on the Order resource with Custom Fields. With these you can, for example, add meta data associated with your ERP system to the deliveries of the Orders.

Changes:

  • [API] Added custom field to Delivery.
  • [API] Added update actions Set Delivery Custom Type and Set Delivery CustomField to the Order.
  • [GraphQL API] Added the following types to the GraphQL schema: SetOrderDeliveryCustomField, SetOrderDeliveryCustomType, SetStagedOrderDeliveryCustomField, SetStagedOrderDeliveryCustomFieldOutput, SetStagedOrderDeliveryCustomType, SetStagedOrderDeliveryCustomTypeOutput.
  • [GraphQL API] Changed the AddOrderDelivery type:
    • Input field custom was added to AddOrderDelivery type
  • [GraphQL API] Changed the Delivery type:
    • Added the custom field to the Delivery type.
  • [GraphQL API] Changed the AddStagedOrderDelivery type:
    • Input field custom was added to AddStagedOrderDelivery type
  • [GraphQL API] Changed the StagedOrderUpdateAction type:
    • Input field setDeliveryCustomField was added to StagedOrderUpdateAction type
    • Input field setDeliveryCustomType was added to StagedOrderUpdateAction type
  • [GraphQL API] Changed the AddStagedOrderDeliveryOutput type:
    • Added the custom field to the AddStagedOrderDeliveryOutput type.
  • [GraphQL API] Changed the OrderUpdateAction type:
    • Input field setDeliveryCustomType was added to OrderUpdateAction type
    • Input field setDeliveryCustomField was added to OrderUpdateAction type

The following changes were introduced in terms of GraphQL SDL:

extend type Delivery {
custom: CustomFieldsType
}
extend type AddStagedOrderDeliveryOutput {
custom: CustomFieldsCommand
}
extend input AddOrderDelivery {
custom: CustomFieldsDraft
}
extend input AddStagedOrderDelivery {
custom: CustomFieldsDraft
}
extend input StagedOrderUpdateAction {
setDeliveryCustomField: SetStagedOrderDeliveryCustomField
setDeliveryCustomType: SetStagedOrderDeliveryCustomType
}
extend input OrderUpdateAction {
setDeliveryCustomField: SetOrderDeliveryCustomField
setDeliveryCustomType: SetOrderDeliveryCustomType
}
input SetOrderDeliveryCustomField {
name: String!
value: String
deliveryId: String!
}
input SetOrderDeliveryCustomType {
fields: [CustomFieldInput!]
type: ResourceIdentifierInput
typeKey: String
typeId: String
deliveryId: String!
}
input SetStagedOrderDeliveryCustomField {
name: String!
value: String
deliveryId: String!
}
type SetStagedOrderDeliveryCustomFieldOutput implements StagedOrderUpdateActionOutput {
type: String!
name: String!
value: Json
deliveryId: String!
}
input SetStagedOrderDeliveryCustomType {
fields: [CustomFieldInput!]
type: ResourceIdentifierInput
typeKey: String
typeId: String
deliveryId: String!
}
type SetStagedOrderDeliveryCustomTypeOutput implements StagedOrderUpdateActionOutput {
type: String!
custom: CustomFieldsCommand!
deliveryId: String!
}