21 January 2019
GraphQLOrders
You can now update orders using the GraphQL schema.
- [GraphQL API] Added the following types to the GraphQL schema: 
AddOrderDelivery,AddOrderItemShippingAddress,AddOrderParcelToDelivery,AddOrderPayment,AddOrderReturnInfo,ChangeOrderPaymentState,ChangeOrderShipmentState,ChangeOrderState,DeliveryItemDraftType,ImportOrderCustomLineItemState,ImportOrderLineItemState,ItemShippingDetailsDraftType,ItemStateDraftType,OrderCartCommand,OrderMyCartCommand,OrderUpdateAction,ParcelMeasurementsDraftType,RemoveOrderDelivery,RemoveOrderItemShippingAddress,RemoveOrderParcelFromDelivery,RemoveOrderPayment,ReturnItemDraftType,SetOrderBillingAddress,SetOrderCustomField,SetOrderCustomLineItemCustomField,SetOrderCustomLineItemCustomType,SetOrderCustomLineItemShippingDetails,SetOrderCustomType,SetOrderCustomerEmail,SetOrderCustomerId,SetOrderDeliveryAddress,SetOrderDeliveryItems,SetOrderLineItemCustomField,SetOrderLineItemCustomType,SetOrderLineItemShippingDetails,SetOrderLocale,SetOrderNumber,SetOrderParcelItems,SetOrderParcelMeasurements,SetOrderParcelTrackingData,SetOrderReturnPaymentState,SetOrderReturnShipmentState,SetOrderShippingAddress,ShippingTargetDraftType,TrackingDataDraftType,TransitionOrderCustomLineItemState,TransitionOrderLineItemState,TransitionOrderState,UpdateOrderItemShippingAddress,UpdateOrderSyncInfo. - [GraphQL API] Changed the 
Mutationtype:- Added the 
updateOrderfield to theMutationtype. - Added the 
createOrderFromCartfield to theMutationtype. - Added the 
createMyOrderFromCartto theMutationtype. - Added the 
deleteOrderfield to theMutationtype. 
 - Added the 
 
Introduced the following changes to the GraphQL schema (in SDL format):
extend type Mutation {
  createMyOrderFromCart(draft: OrderMyCartCommand!): Order
  createOrderFromCart(draft: OrderCartCommand!): Order
  deleteOrder(version: Long!, personalDataErasure: Boolean = false,
    "Queries with specified ID"
    id: String, orderNumber: String): Order
  updateOrder(version: Long!, actions: [OrderUpdateAction!]!,
    "Queries with specified ID"
    id: String, orderNumber: String): Order
}
input AddOrderDelivery {
  items: [DeliveryItemDraftType!] = []
  parcels: [DeliveryItemDraftType!] = []
  address: AddressInput
}
input AddOrderItemShippingAddress {
  address: AddressInput!
}
input AddOrderParcelToDelivery {
  deliveryId: String!
  measurements: ParcelMeasurementsDraftType
  trackingData: TrackingDataDraftType
  items: [DeliveryItemDraftType!] = []
}
input AddOrderPayment {
  payment: ResourceIdentifierInput!
}
input AddOrderReturnInfo {
  items: [ReturnItemDraftType!]!
  returnDate: DateTime
  returnTrackingId: String
}
input ChangeOrderPaymentState {
  paymentState: PaymentState!
}
input ChangeOrderShipmentState {
  shipmentState: ShipmentState!
}
input ChangeOrderState {
  orderState: OrderState!
}
input DeliveryItemDraftType {
  id: String!
  quantity: Long!
}
input ImportOrderCustomLineItemState {
  customLineItemId: String!
  state: [ItemStateDraftType!]!
}
input ImportOrderLineItemState {
  lineItemId: String!
  state: [ItemStateDraftType!]!
}
input ItemShippingDetailsDraftType {
  targets: [ShippingTargetDraftType!]!
}
input ItemStateDraftType {
  quantity: Long!
  state: ReferenceInput!
}
input OrderCartCommand {
  id: String!
  version: Long!
  paymentState: PaymentState
  orderState: OrderState
  state: ReferenceInput
  shipmentState: ShipmentState
  orderNumber: String
}
input OrderMyCartCommand {
  id: String!
  version: Long!
}
input OrderUpdateAction {
  addDelivery: AddOrderDelivery
  addItemShippingAddress: AddOrderItemShippingAddress
  addParcelToDelivery: AddOrderParcelToDelivery
  addPayment: AddOrderPayment
  addReturnInfo: AddOrderReturnInfo
  changeOrderState: ChangeOrderState
  changePaymentState: ChangeOrderPaymentState
  changeShipmentState: ChangeOrderShipmentState
  importCustomLineItemState: ImportOrderCustomLineItemState
  importLineItemState: ImportOrderLineItemState
  removeDelivery: RemoveOrderDelivery
  removeItemShippingAddress: RemoveOrderItemShippingAddress
  removeParcelFromDelivery: RemoveOrderParcelFromDelivery
  removePayment: RemoveOrderPayment
  setBillingAddress: SetOrderBillingAddress
  setCustomField: SetOrderCustomField
  setCustomLineItemCustomField: SetOrderCustomLineItemCustomField
  setCustomLineItemCustomType: SetOrderCustomLineItemCustomType
  setCustomLineItemShippingDetails: SetOrderCustomLineItemShippingDetails
  setCustomType: SetOrderCustomType
  setCustomerEmail: SetOrderCustomerEmail
  setCustomerId: SetOrderCustomerId
  setDeliveryAddress: SetOrderDeliveryAddress
  setDeliveryItems: SetOrderDeliveryItems
  setLineItemCustomField: SetOrderLineItemCustomField
  setLineItemCustomType: SetOrderLineItemCustomType
  setLineItemShippingDetails: SetOrderLineItemShippingDetails
  setLocale: SetOrderLocale
  setOrderNumber: SetOrderNumber
  setParcelItems: SetOrderParcelItems
  setParcelMeasurements: SetOrderParcelMeasurements
  setParcelTrackingData: SetOrderParcelTrackingData
  setReturnPaymentState: SetOrderReturnPaymentState
  setReturnShipmentState: SetOrderReturnShipmentState
  setShippingAddress: SetOrderShippingAddress
  transitionCustomLineItemState: TransitionOrderCustomLineItemState
  transitionLineItemState: TransitionOrderLineItemState
  transitionState: TransitionOrderState
  updateItemShippingAddress: UpdateOrderItemShippingAddress
  updateSyncInfo: UpdateOrderSyncInfo
}
input ParcelMeasurementsDraftType {
  heightInMillimeter: Int
  lengthInMillimeter: Int
  widthInMillimeter: Int
  weightInGram: Int
}
input RemoveOrderDelivery {
  deliveryId: String!
}
input RemoveOrderItemShippingAddress {
  addressKey: String!
}
input RemoveOrderParcelFromDelivery {
  parcelId: String!
}
input RemoveOrderPayment {
  payment: ResourceIdentifierInput!
}
input ReturnItemDraftType {
  quantity: Long!
  lineItemId: String
  customLineItemId: String
  comment: String
  shipmentState: ReturnShipmentState!
}
input SetOrderBillingAddress {
  address: AddressInput
}
input SetOrderCustomField {
  name: String!
  value: String
}
input SetOrderCustomLineItemCustomField {
  customLineItemId: String!
  name: String!
  value: String
}
input SetOrderCustomLineItemCustomType {
  customLineItemId: String!
  fields: [CustomFieldInput!]
  type: ResourceIdentifierInput
  typeKey: String
  typeId: String
}
input SetOrderCustomLineItemShippingDetails {
  customLineItemId: String!
  shippingDetails: ItemShippingDetailsDraftType
}
input SetOrderCustomType {
  fields: [CustomFieldInput!]
  type: ResourceIdentifierInput
  typeKey: String
  typeId: String
}
input SetOrderCustomerEmail {
  email: String
}
input SetOrderCustomerId {
  customerId: String
}
input SetOrderDeliveryAddress {
  deliveryId: String!
  address: AddressInput
}
input SetOrderDeliveryItems {
  deliveryId: String!
  items: [DeliveryItemDraftType!]!
}
input SetOrderLineItemCustomField {
  lineItemId: String!
  name: String!
  value: String
}
input SetOrderLineItemCustomType {
  lineItemId: String!
  fields: [CustomFieldInput!]
  type: ResourceIdentifierInput
  typeKey: String
  typeId: String
}
input SetOrderLineItemShippingDetails {
  lineItemId: String!
  shippingDetails: ItemShippingDetailsDraftType
}
input SetOrderLocale {
  locale: Locale
}
input SetOrderNumber {
  orderNumber: String
}
input SetOrderParcelItems {
  parcelId: String!
  items: [DeliveryItemDraftType!]!
}
input SetOrderParcelMeasurements {
  parcelId: String!
  measurements: ParcelMeasurementsDraftType
}
input SetOrderParcelTrackingData {
  parcelId: String!
  trackingData: TrackingDataDraftType
}
input SetOrderReturnPaymentState {
  returnItemId: String!
  paymentState: ReturnPaymentState!
}
input SetOrderReturnShipmentState {
  returnItemId: String!
  shipmentState: ReturnShipmentState!
}
input SetOrderShippingAddress {
  address: AddressInput
}
input ShippingTargetDraftType {
  addressKey: String!
  quantity: Long!
}
input TrackingDataDraftType {
  trackingId: String
  carrier: String
  provider: String
  providerTransaction: String
  isReturn: Boolean = false
}
input TransitionOrderCustomLineItemState {
  customLineItemId: String!
  quantity: Long!
  fromState: ResourceIdentifierInput!
  toState: ResourceIdentifierInput!
  actualTransitionDate: DateTime
}
input TransitionOrderLineItemState {
  lineItemId: String!
  quantity: Long!
  fromState: ResourceIdentifierInput!
  toState: ResourceIdentifierInput!
  actualTransitionDate: DateTime
}
input TransitionOrderState {
  state: ResourceIdentifierInput!
  force: Boolean = false
}
input UpdateOrderItemShippingAddress {
  address: AddressInput!
}
input UpdateOrderSyncInfo {
  channel: ResourceIdentifierInput!
  syncedAt: DateTime
  externalId: String
}