10 July 2020
OrdersGraphQL
Order edits can now be queried, created, updated, and deleted using the GraphQL API.
- [GraphQL API] Added the following types to the GraphQL schema: 
AddOrderEditStagedAction,AddStagedOrderCustomLineItem,AddStagedOrderCustomLineItemOutput,AddStagedOrderDelivery,AddStagedOrderDeliveryOutput,AddStagedOrderDiscountCode,AddStagedOrderDiscountCodeOutput,AddStagedOrderItemShippingAddress,AddStagedOrderItemShippingAddressOutput,AddStagedOrderLineItem,AddStagedOrderLineItemOutput,AddStagedOrderParcelToDelivery,AddStagedOrderParcelToDeliveryOutput,AddStagedOrderPayment,AddStagedOrderPaymentOutput,AddStagedOrderReturnInfo,AddStagedOrderReturnInfoOutput,AddStagedOrderShoppingList,AddStagedOrderShoppingListOutput,ChangeStagedOrderCustomLineItemMoney,ChangeStagedOrderCustomLineItemMoneyOutput,ChangeStagedOrderCustomLineItemQuantity,ChangeStagedOrderCustomLineItemQuantityOutput,ChangeStagedOrderLineItemQuantity,ChangeStagedOrderLineItemQuantityOutput,ChangeStagedOrderOrderState,ChangeStagedOrderOrderStateOutput,ChangeStagedOrderPaymentState,ChangeStagedOrderPaymentStateOutput,ChangeStagedOrderShipmentState,ChangeStagedOrderShipmentStateOutput,ChangeStagedOrderTaxCalculationMode,ChangeStagedOrderTaxCalculationModeOutput,ChangeStagedOrderTaxMode,ChangeStagedOrderTaxModeOutput,ChangeStagedOrderTaxRoundingMode,ChangeStagedOrderTaxRoundingModeOutput,CustomLineItemDraftOutput,CustomerGroupReferenceIdentifier,ExternalTaxAmountDraftOutput,ExternalTaxRateDraftOutput,ImportStagedOrderCustomLineItemState,ImportStagedOrderCustomLineItemStateOutput,ImportStagedOrderLineItemState,ImportStagedOrderLineItemStateOutput,ItemShippingDetailsDraftOutput,LineItemDraftOutput,NotProcessed,OrderEdit,OrderEditDraft,OrderEditQueryResult,OrderEditResult,OrderEditUpdateAction,RecalculateStagedOrder,RecalculateStagedOrderOutput,RemoveStagedOrderCustomLineItem,RemoveStagedOrderCustomLineItemOutput,RemoveStagedOrderDelivery,RemoveStagedOrderDeliveryOutput,RemoveStagedOrderDiscountCode,RemoveStagedOrderDiscountCodeOutput,RemoveStagedOrderItemShippingAddress,RemoveStagedOrderItemShippingAddressOutput,RemoveStagedOrderLineItem,RemoveStagedOrderLineItemOutput,RemoveStagedOrderParcelFromDelivery,RemoveStagedOrderParcelFromDeliveryOutput,RemoveStagedOrderPayment,RemoveStagedOrderPaymentOutput,ResourceIdentifier,ReturnItemDraftTypeOutput,ScoreShippingRateInputDraftOutput,Set,SetOrderEditComment,SetOrderEditCustomField,SetOrderEditCustomType,SetOrderEditKey,SetOrderEditStagedActions,SetStagedOrderBillingAddress,SetStagedOrderBillingAddressOutput,SetStagedOrderCountry,SetStagedOrderCountryOutput,SetStagedOrderCustomField,SetStagedOrderCustomFieldOutput,SetStagedOrderCustomLineItemCustomField,SetStagedOrderCustomLineItemCustomFieldOutput,SetStagedOrderCustomLineItemCustomType,SetStagedOrderCustomLineItemCustomTypeOutput,SetStagedOrderCustomLineItemShippingDetails,SetStagedOrderCustomLineItemShippingDetailsOutput,SetStagedOrderCustomLineItemTaxAmount,SetStagedOrderCustomLineItemTaxAmountOutput,SetStagedOrderCustomLineItemTaxRate,SetStagedOrderCustomLineItemTaxRateOutput,SetStagedOrderCustomShippingMethod,SetStagedOrderCustomShippingMethodOutput,SetStagedOrderCustomType,SetStagedOrderCustomTypeOutput,SetStagedOrderCustomerEmail,SetStagedOrderCustomerEmailOutput,SetStagedOrderCustomerGroup,SetStagedOrderCustomerGroupOutput,SetStagedOrderCustomerId,SetStagedOrderCustomerIdOutput,SetStagedOrderDeliveryAddress,SetStagedOrderDeliveryAddressOutput,SetStagedOrderDeliveryItems,SetStagedOrderDeliveryItemsOutput,SetStagedOrderLineItemCustomField,SetStagedOrderLineItemCustomFieldOutput,SetStagedOrderLineItemCustomType,SetStagedOrderLineItemCustomTypeOutput,SetStagedOrderLineItemPrice,SetStagedOrderLineItemPriceOutput,SetStagedOrderLineItemShippingDetails,SetStagedOrderLineItemShippingDetailsOutput,SetStagedOrderLineItemTaxAmount,SetStagedOrderLineItemTaxAmountOutput,SetStagedOrderLineItemTaxRate,SetStagedOrderLineItemTaxRateOutput,SetStagedOrderLineItemTotalPrice,SetStagedOrderLineItemTotalPriceOutput,SetStagedOrderLocale,SetStagedOrderLocaleOutput,SetStagedOrderOrderNumber,SetStagedOrderOrderNumberOutput,SetStagedOrderOrderTotalTax,SetStagedOrderOrderTotalTaxOutput,SetStagedOrderParcelItems,SetStagedOrderParcelItemsOutput,SetStagedOrderParcelMeasurements,SetStagedOrderParcelMeasurementsOutput,SetStagedOrderParcelTrackingData,SetStagedOrderParcelTrackingDataOutput,SetStagedOrderReturnPaymentState,SetStagedOrderReturnPaymentStateOutput,SetStagedOrderReturnShipmentState,SetStagedOrderReturnShipmentStateOutput,SetStagedOrderShippingAddress,SetStagedOrderShippingAddressAndCustomShippingMethod,SetStagedOrderShippingAddressAndCustomShippingMethodOutput,SetStagedOrderShippingAddressAndShippingMethod,SetStagedOrderShippingAddressAndShippingMethodOutput,SetStagedOrderShippingAddressOutput,SetStagedOrderShippingMethod,SetStagedOrderShippingMethodOutput,SetStagedOrderShippingMethodTaxAmount,SetStagedOrderShippingMethodTaxAmountOutput,SetStagedOrderShippingMethodTaxRate,SetStagedOrderShippingMethodTaxRateOutput,SetStagedOrderShippingRateInput,SetStagedOrderShippingRateInputOutput,SetStagedOrderStore,SetStagedOrderStoreOutput,ShippingRateInputDraftOutput,StagedOrderUpdateAction,StagedOrderUpdateActionOutput,TransitionStagedOrderCustomLineItemState,TransitionStagedOrderCustomLineItemStateOutput,TransitionStagedOrderLineItemState,TransitionStagedOrderLineItemStateOutput,TransitionStagedOrderState,TransitionStagedOrderStateOutput,UpdateStagedOrderItemShippingAddress,UpdateStagedOrderItemShippingAddressOutput,UpdateStagedOrderSyncInfo,UpdateStagedOrderSyncInfoOutput. - [GraphQL API] Changed the 
Querytype:- Added the 
orderEditfield to theQuerytype. - Added the 
orderEditsfield to theQuerytype. 
 - Added the 
 - [GraphQL API] Changed the 
Mutationtype:- Added the 
deleteOrderEditfield to theMutationtype. - Added the 
createOrderEditfield to theMutationtype. - Added the 
updateOrderEditfield to theMutationtype. 
 - Added the 
 
Introduced the following changes to the GraphQL schema (in SDL format):
extend type Query {
  orderEdit(
    "Queries with specified ID"
    id: String,
    "Queries with specified key"
    key: String): OrderEdit
  orderEdits(where: String, sort: [String!], limit: Int, offset: Int): OrderEditQueryResult!
}
extend type Mutation {
  createOrderEdit(draft: OrderEditDraft!): OrderEdit
  deleteOrderEdit(version: Long!,
    "Queries with specified ID"
    id: String,
    "Queries with specified key"
    key: String): OrderEdit
  updateOrderEdit(version: Long!, actions: [OrderEditUpdateAction!]!, dryRun: Boolean = false,
    "Queries with specified ID"
    id: String,
    "Queries with specified key"
    key: String): OrderEdit
}
input AddOrderEditStagedAction {
  stagedAction: StagedOrderUpdateAction!
}
input AddStagedOrderCustomLineItem {
  shippingDetails: ItemShippingDetailsDraftType
  custom: CustomFieldsDraft
  quantity: Long
  externalTaxRate: ExternalTaxRateDraft
  taxCategory: ResourceIdentifierInput
  slug: String!
  money: BaseMoneyInput!
  name: [LocalizedStringItemInputType!]!
}
type AddStagedOrderCustomLineItemOutput implements StagedOrderUpdateActionOutput {
  type: String!
  draft: CustomLineItemDraftOutput!
}
input AddStagedOrderDelivery {
  items: [DeliveryItemDraftType!] = []
  parcels: [DeliveryItemDraftType!] = []
  address: AddressInput
}
type AddStagedOrderDeliveryOutput implements StagedOrderUpdateActionOutput {
  type: String!
  items: [DeliveryItem!]!
  parcels: [ParcelData!]!
  address: Address
}
input AddStagedOrderDiscountCode {
  code: String!
  validateDuplicates: Boolean = false
}
type AddStagedOrderDiscountCodeOutput implements StagedOrderUpdateActionOutput {
  type: String!
  code: String!
  validateDuplicates: Boolean!
}
input AddStagedOrderItemShippingAddress {
  address: AddressInput!
}
type AddStagedOrderItemShippingAddressOutput implements StagedOrderUpdateActionOutput {
  type: String!
  address: Address!
}
input AddStagedOrderLineItem {
  shippingDetails: ItemShippingDetailsDraftType
  externalTotalPrice: ExternalLineItemTotalPriceDraft
  externalPrice: BaseMoneyInput
  externalTaxRate: ExternalTaxRateDraft
  custom: CustomFieldsDraft
  catalog: ReferenceInput
  distributionChannel: ResourceIdentifierInput
  supplyChannel: ResourceIdentifierInput
  variantId: Int
  quantity: Long
  sku: String
  productId: String
}
type AddStagedOrderLineItemOutput implements StagedOrderUpdateActionOutput {
  type: String!
  draft: LineItemDraftOutput!
}
input AddStagedOrderParcelToDelivery {
  deliveryId: String!
  measurements: ParcelMeasurementsDraftType
  trackingData: TrackingDataDraftType
  items: [DeliveryItemDraftType!] = []
}
type AddStagedOrderParcelToDeliveryOutput implements StagedOrderUpdateActionOutput {
  type: String!
  deliveryId: String!
  measurements: ParcelMeasurements
  trackingData: TrackingData
  items: [DeliveryItem!]!
}
input AddStagedOrderPayment {
  payment: ResourceIdentifierInput!
}
type AddStagedOrderPaymentOutput implements StagedOrderUpdateActionOutput {
  type: String!
  paymentResId: ResourceIdentifier!
}
input AddStagedOrderReturnInfo {
  items: [ReturnItemDraftType!]!
  returnDate: DateTime
  returnTrackingId: String
}
type AddStagedOrderReturnInfoOutput implements StagedOrderUpdateActionOutput {
  type: String!
  items: [ReturnItemDraftTypeOutput!]!
  returnDate: DateTime
  returnTrackingId: String
}
input AddStagedOrderShoppingList {
  shoppingList: ResourceIdentifierInput!
  supplyChannel: ResourceIdentifierInput
  distributionChannel: ResourceIdentifierInput
}
type AddStagedOrderShoppingListOutput implements StagedOrderUpdateActionOutput {
  type: String!
  shoppingListResId: ResourceIdentifier!
  supplyChannelResId: ChannelReferenceIdentifier
  distributionChannelResId: ChannelReferenceIdentifier
}
input ChangeStagedOrderCustomLineItemMoney {
  customLineItemId: String!
  money: BaseMoneyInput!
}
type ChangeStagedOrderCustomLineItemMoneyOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  money: BaseMoney!
}
input ChangeStagedOrderCustomLineItemQuantity {
  customLineItemId: String!
  quantity: Long!
}
type ChangeStagedOrderCustomLineItemQuantityOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  quantity: Long!
}
input ChangeStagedOrderLineItemQuantity {
  lineItemId: String!
  quantity: Long!
  externalPrice: BaseMoneyInput
  externalTotalPrice: ExternalLineItemTotalPriceDraft
}
type ChangeStagedOrderLineItemQuantityOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  quantity: Long!
  externalPrice: BaseMoney
  externalTotalPrice: ExternalLineItemTotalPrice
}
input ChangeStagedOrderOrderState {
  orderState: OrderState!
}
type ChangeStagedOrderOrderStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  orderState: OrderState!
}
input ChangeStagedOrderPaymentState {
  paymentState: PaymentState!
}
type ChangeStagedOrderPaymentStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  paymentState: PaymentState!
}
input ChangeStagedOrderShipmentState {
  shipmentState: ShipmentState!
}
type ChangeStagedOrderShipmentStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  shipmentState: ShipmentState!
}
input ChangeStagedOrderTaxCalculationMode {
  taxCalculationMode: TaxCalculationMode!
}
type ChangeStagedOrderTaxCalculationModeOutput implements StagedOrderUpdateActionOutput {
  type: String!
  taxCalculationMode: TaxCalculationMode!
}
input ChangeStagedOrderTaxMode {
  taxMode: TaxMode!
}
type ChangeStagedOrderTaxModeOutput implements StagedOrderUpdateActionOutput {
  type: String!
  taxMode: TaxMode!
}
input ChangeStagedOrderTaxRoundingMode {
  taxRoundingMode: RoundingMode!
}
type ChangeStagedOrderTaxRoundingModeOutput implements StagedOrderUpdateActionOutput {
  type: String!
  taxRoundingMode: RoundingMode!
}
type CustomFieldsCommand {
  typeId: String
  typeKey: String
  type: ResourceIdentifier
  fields: Json!
}
type CustomLineItemDraftOutput {
  money: BaseMoney!
  slug: String!
  taxCategory: ResourceIdentifier
  externalTaxRate: ExternalTaxRateDraftOutput
  quantity: Long
  custom: CustomFieldsCommand
  shippingDetails: ItemShippingDetailsDraftOutput
  name(
    "String is defined for different locales. This argument specifies the desired locale."
    locale: Locale,
    "List of languages the client is able to understand, and which locale variant is preferred."
    acceptLanguage: [Locale!]): String
  nameAllLocales: [LocalizedString!]!
}
type CustomerGroupReferenceIdentifier {
  typeId: String!
  id: String
  key: String
}
type ExternalTaxAmountDraftOutput {
  totalGross: Money!
  taxRate: ExternalTaxRateDraftOutput!
}
type ExternalTaxRateDraftOutput {
  name: String!
  amount: Float
  country: Country!
  state: String
  subRates: [SubRate!]!
  includedInPrice: Boolean!
}
input ImportStagedOrderCustomLineItemState {
  customLineItemId: String!
  state: [ItemStateDraftType!]!
}
type ImportStagedOrderCustomLineItemStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  state: Set!
}
input ImportStagedOrderLineItemState {
  lineItemId: String!
  state: [ItemStateDraftType!]!
}
type ImportStagedOrderLineItemStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  state: Set!
}
type ItemShippingDetailsDraftOutput {
  targets: [ItemShippingTarget!]!
}
type LineItemDraftOutput {
  productId: String
  sku: String
  quantity: Long
  variantId: Int
  supplyChannel: ChannelReferenceIdentifier
  distributionChannel: ChannelReferenceIdentifier
  catalog: Reference
  custom: CustomFieldsCommand
  externalTaxRate: ExternalTaxRateDraftOutput
  externalPrice: BaseMoney
  externalTotalPrice: ExternalLineItemTotalPrice
  shippingDetails: ItemShippingDetailsDraftOutput
}
type NotProcessed implements OrderEditResult {
  type: String!
}
type OrderEdit implements Versioned {
  key: String
  resourceRef: Reference!
  resource: Order
  stagedActions: [StagedOrderUpdateActionOutput!]!
  result: OrderEditResult!
  comment: String
  custom: CustomFieldsType
  id: String!
  version: Long!
  createdAt: DateTime!
  lastModifiedAt: DateTime!
  createdBy: Initiator
  lastModifiedBy: Initiator
}
input OrderEditDraft {
  key: String
  resource: ReferenceInput!
  stagedActions: [StagedOrderUpdateAction!]!
  custom: CustomFieldsDraft
  comment: String
  dryRun: Boolean
}
type OrderEditQueryResult {
  offset: Int!
  count: Int!
  total: Long!
  results: [OrderEdit!]!
}
interface OrderEditResult {
  type: String!
}
input OrderEditUpdateAction {
  addStagedAction: AddOrderEditStagedAction
  setComment: SetOrderEditComment
  setCustomField: SetOrderEditCustomField
  setCustomType: SetOrderEditCustomType
  setKey: SetOrderEditKey
  setStagedActions: SetOrderEditStagedActions
}
type PreviewFailure implements OrderEditResult {
  type: String!
  errors: [Json!]!
}
type PreviewSuccess implements OrderEditResult {
  type: String!
  preview: Order!
}
input RecalculateStagedOrder {
  updateProductData: Boolean = false
}
type RecalculateStagedOrderOutput implements StagedOrderUpdateActionOutput {
  type: String!
  updateProductData: Boolean!
}
input RemoveStagedOrderCustomLineItem {
  customLineItemId: String!
}
type RemoveStagedOrderCustomLineItemOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
}
input RemoveStagedOrderDelivery {
  deliveryId: String!
}
type RemoveStagedOrderDeliveryOutput implements StagedOrderUpdateActionOutput {
  type: String!
  deliveryId: String!
}
input RemoveStagedOrderDiscountCode {
  discountCode: ReferenceInput!
}
type RemoveStagedOrderDiscountCodeOutput implements StagedOrderUpdateActionOutput {
  discountCode: DiscountCode
  discountCodeRef: Reference!
  type: String!
}
input RemoveStagedOrderItemShippingAddress {
  addressKey: String!
}
type RemoveStagedOrderItemShippingAddressOutput implements StagedOrderUpdateActionOutput {
  type: String!
  addressKey: String!
}
input RemoveStagedOrderLineItem {
  lineItemId: String!
  quantity: Long
  externalPrice: BaseMoneyInput
  externalTotalPrice: ExternalLineItemTotalPriceDraft
  shippingDetailsToRemove: ItemShippingDetailsDraftType
}
type RemoveStagedOrderLineItemOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  quantity: Long
  externalPrice: BaseMoney
  externalTotalPrice: ExternalLineItemTotalPrice
  shippingDetailsToRemove: ItemShippingDetailsDraftOutput
}
input RemoveStagedOrderParcelFromDelivery {
  parcelId: String!
}
type RemoveStagedOrderParcelFromDeliveryOutput implements StagedOrderUpdateActionOutput {
  type: String!
  parcelId: String!
}
input RemoveStagedOrderPayment {
  payment: ResourceIdentifierInput!
}
type RemoveStagedOrderPaymentOutput implements StagedOrderUpdateActionOutput {
  type: String!
  paymentResId: ResourceIdentifier!
}
type ResourceIdentifier {
  typeId: String!
  key: String
  id: String
}
type ReturnItemDraftTypeOutput {
  quantity: Long!
  lineItemId: String
  customLineItemId: String
  comment: String
  shipmentState: ReturnShipmentState!
}
type ScoreShippingRateInputDraftOutput implements ShippingRateInputDraftOutput {
  score: Int!
  type: String!
}
scalar Set
input SetOrderEditComment {
  comment: String
}
input SetOrderEditCustomField {
  name: String!
  value: String
}
input SetOrderEditCustomType {
  fields: [CustomFieldInput!]
  type: ResourceIdentifierInput
  typeKey: String
  typeId: String
}
input SetOrderEditKey {
  key: String
}
input SetOrderEditStagedActions {
  stagedActions: [StagedOrderUpdateAction!]!
}
input SetStagedOrderBillingAddress {
  address: AddressInput
}
type SetStagedOrderBillingAddressOutput implements StagedOrderUpdateActionOutput {
  type: String!
  address: Address
}
input SetStagedOrderCountry {
  country: Country
}
type SetStagedOrderCountryOutput implements StagedOrderUpdateActionOutput {
  type: String!
  country: Country
}
input SetStagedOrderCustomField {
  name: String!
  value: String
}
type SetStagedOrderCustomFieldOutput implements StagedOrderUpdateActionOutput {
  type: String!
  name: String!
  value: Json
}
input SetStagedOrderCustomLineItemCustomField {
  customLineItemId: String!
  name: String!
  value: String
}
type SetStagedOrderCustomLineItemCustomFieldOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  name: String!
  value: Json
}
input SetStagedOrderCustomLineItemCustomType {
  customLineItemId: String!
  fields: [CustomFieldInput!]
  type: ResourceIdentifierInput
  typeKey: String
  typeId: String
}
type SetStagedOrderCustomLineItemCustomTypeOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  custom: CustomFieldsCommand!
}
input SetStagedOrderCustomLineItemShippingDetails {
  customLineItemId: String!
  shippingDetails: ItemShippingDetailsDraftType
}
type SetStagedOrderCustomLineItemShippingDetailsOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  shippingDetails: ItemShippingDetailsDraftOutput
}
input SetStagedOrderCustomLineItemTaxAmount {
  customLineItemId: String!
  externalTaxAmount: ExternalTaxAmountDraft
}
type SetStagedOrderCustomLineItemTaxAmountOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  externalTaxAmount: ExternalTaxAmountDraftOutput
}
input SetStagedOrderCustomLineItemTaxRate {
  customLineItemId: String!
  externalTaxRate: ExternalTaxRateDraft
}
type SetStagedOrderCustomLineItemTaxRateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  externalTaxRate: ExternalTaxRateDraftOutput
}
input SetStagedOrderCustomShippingMethod {
  shippingMethodName: String!
  shippingRate: ShippingRateDraft!
  taxCategory: ResourceIdentifierInput
  externalTaxRate: ExternalTaxRateDraft
}
type SetStagedOrderCustomShippingMethodOutput implements StagedOrderUpdateActionOutput {
  type: String!
  shippingMethodName: String!
  shippingRate: ShippingRate!
  taxCategoryResId: ResourceIdentifier
  externalTaxRate: ExternalTaxRateDraftOutput
}
input SetStagedOrderCustomType {
  fields: [CustomFieldInput!]
  type: ResourceIdentifierInput
  typeKey: String
  typeId: String
}
type SetStagedOrderCustomTypeOutput implements StagedOrderUpdateActionOutput {
  type: String!
  custom: CustomFieldsCommand!
}
input SetStagedOrderCustomerEmail {
  email: String
}
type SetStagedOrderCustomerEmailOutput implements StagedOrderUpdateActionOutput {
  type: String!
  email: String
}
input SetStagedOrderCustomerGroup {
  customerGroup: ResourceIdentifierInput
}
type SetStagedOrderCustomerGroupOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customerGroupResId: CustomerGroupReferenceIdentifier
}
input SetStagedOrderCustomerId {
  customerId: String
}
type SetStagedOrderCustomerIdOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customerId: String
}
input SetStagedOrderDeliveryAddress {
  deliveryId: String!
  address: AddressInput
}
type SetStagedOrderDeliveryAddressOutput implements StagedOrderUpdateActionOutput {
  type: String!
  deliveryId: String!
  address: Address
}
input SetStagedOrderDeliveryItems {
  deliveryId: String!
  items: [DeliveryItemDraftType!]!
}
type SetStagedOrderDeliveryItemsOutput implements StagedOrderUpdateActionOutput {
  type: String!
  deliveryId: String!
  items: [DeliveryItem!]!
}
input SetStagedOrderLineItemCustomField {
  lineItemId: String!
  name: String!
  value: String
}
type SetStagedOrderLineItemCustomFieldOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  name: String!
  value: Json
}
input SetStagedOrderLineItemCustomType {
  lineItemId: String!
  fields: [CustomFieldInput!]
  type: ResourceIdentifierInput
  typeKey: String
  typeId: String
}
type SetStagedOrderLineItemCustomTypeOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  custom: CustomFieldsCommand!
}
input SetStagedOrderLineItemPrice {
  lineItemId: String!
  externalPrice: BaseMoneyInput
}
type SetStagedOrderLineItemPriceOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  externalPrice: BaseMoney
}
input SetStagedOrderLineItemShippingDetails {
  lineItemId: String!
  shippingDetails: ItemShippingDetailsDraftType
}
type SetStagedOrderLineItemShippingDetailsOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  shippingDetails: ItemShippingDetailsDraftOutput
}
input SetStagedOrderLineItemTaxAmount {
  lineItemId: String!
  externalTaxAmount: ExternalTaxAmountDraft
}
type SetStagedOrderLineItemTaxAmountOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  externalTaxAmount: ExternalTaxAmountDraftOutput
}
input SetStagedOrderLineItemTaxRate {
  lineItemId: String!
  externalTaxRate: ExternalTaxRateDraft
}
type SetStagedOrderLineItemTaxRateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  externalTaxRate: ExternalTaxRateDraftOutput
}
input SetStagedOrderLineItemTotalPrice {
  lineItemId: String!
  externalTotalPrice: ExternalLineItemTotalPriceDraft
}
type SetStagedOrderLineItemTotalPriceOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  externalTotalPrice: ExternalLineItemTotalPrice
}
input SetStagedOrderLocale {
  locale: Locale
}
type SetStagedOrderLocaleOutput implements StagedOrderUpdateActionOutput {
  type: String!
  locale: Locale
}
input SetStagedOrderOrderNumber {
  orderNumber: String
}
type SetStagedOrderOrderNumberOutput implements StagedOrderUpdateActionOutput {
  type: String!
  orderNumber: String
}
input SetStagedOrderOrderTotalTax {
  externalTotalGross: MoneyInput
  externalTaxPortions: [TaxPortionDraft!] = []
}
type SetStagedOrderOrderTotalTaxOutput implements StagedOrderUpdateActionOutput {
  type: String!
  externalTotalGross: Money
  externalTaxPortions: [TaxPortion!]!
}
input SetStagedOrderParcelItems {
  parcelId: String!
  items: [DeliveryItemDraftType!]!
}
type SetStagedOrderParcelItemsOutput implements StagedOrderUpdateActionOutput {
  type: String!
  parcelId: String!
  items: [DeliveryItem!]!
}
input SetStagedOrderParcelMeasurements {
  parcelId: String!
  measurements: ParcelMeasurementsDraftType
}
type SetStagedOrderParcelMeasurementsOutput implements StagedOrderUpdateActionOutput {
  type: String!
  parcelId: String!
  measurements: ParcelMeasurements
}
input SetStagedOrderParcelTrackingData {
  parcelId: String!
  trackingData: TrackingDataDraftType
}
type SetStagedOrderParcelTrackingDataOutput implements StagedOrderUpdateActionOutput {
  type: String!
  parcelId: String!
  trackingData: TrackingData
}
input SetStagedOrderReturnPaymentState {
  returnItemId: String!
  paymentState: ReturnPaymentState!
}
type SetStagedOrderReturnPaymentStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  returnItemId: String!
  paymentState: ReturnPaymentState!
}
input SetStagedOrderReturnShipmentState {
  returnItemId: String!
  shipmentState: ReturnShipmentState!
}
type SetStagedOrderReturnShipmentStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  returnItemId: String!
  shipmentState: ReturnShipmentState!
}
input SetStagedOrderShippingAddress {
  address: AddressInput
}
input SetStagedOrderShippingAddressAndCustomShippingMethod {
  address: AddressInput!
  shippingMethodName: String!
  shippingRate: ShippingRateDraft!
  taxCategory: ResourceIdentifierInput
  externalTaxRate: ExternalTaxRateDraft
}
type SetStagedOrderShippingAddressAndCustomShippingMethodOutput implements StagedOrderUpdateActionOutput {
  type: String!
  address: Address!
  shippingMethodName: String!
  shippingRate: ShippingRate!
  taxCategoryResId: ResourceIdentifier
  externalTaxRate: ExternalTaxRateDraftOutput
}
input SetStagedOrderShippingAddressAndShippingMethod {
  address: AddressInput!
  shippingMethod: ResourceIdentifierInput
  externalTaxRate: ExternalTaxRateDraft
}
type SetStagedOrderShippingAddressAndShippingMethodOutput implements StagedOrderUpdateActionOutput {
  type: String!
  address: Address!
  shippingMethodResId: ResourceIdentifier
  externalTaxRate: ExternalTaxRateDraftOutput
}
type SetStagedOrderShippingAddressOutput implements StagedOrderUpdateActionOutput {
  type: String!
  address: Address
}
input SetStagedOrderShippingMethod {
  shippingMethod: ResourceIdentifierInput
  externalTaxRate: ExternalTaxRateDraft
}
type SetStagedOrderShippingMethodOutput implements StagedOrderUpdateActionOutput {
  type: String!
  shippingMethodResId: ResourceIdentifier
  externalTaxRate: ExternalTaxRateDraftOutput
}
input SetStagedOrderShippingMethodTaxAmount {
  externalTaxAmount: ExternalTaxAmountDraft
}
type SetStagedOrderShippingMethodTaxAmountOutput implements StagedOrderUpdateActionOutput {
  type: String!
  externalTaxAmount: ExternalTaxAmountDraftOutput
}
input SetStagedOrderShippingMethodTaxRate {
  externalTaxRate: ExternalTaxRateDraft
}
type SetStagedOrderShippingMethodTaxRateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  externalTaxRate: ExternalTaxRateDraftOutput
}
input SetStagedOrderShippingRateInput {
  shippingRateInput: ShippingRateInputDraft
}
type SetStagedOrderShippingRateInputOutput implements StagedOrderUpdateActionOutput {
  type: String!
  shippingRateInput: ShippingRateInputDraftOutput
}
input SetStagedOrderStore {
  store: ResourceIdentifierInput
}
type SetStagedOrderStoreOutput implements StagedOrderUpdateActionOutput {
  type: String!
  storeResId: ResourceIdentifier
}
interface ShippingRateInputDraftOutput {
  type: String!
}
input StagedOrderUpdateAction {
  addCustomLineItem: AddStagedOrderCustomLineItem
  addDelivery: AddStagedOrderDelivery
  addDiscountCode: AddStagedOrderDiscountCode
  addItemShippingAddress: AddStagedOrderItemShippingAddress
  addLineItem: AddStagedOrderLineItem
  addParcelToDelivery: AddStagedOrderParcelToDelivery
  addPayment: AddStagedOrderPayment
  addReturnInfo: AddStagedOrderReturnInfo
  addShoppingList: AddStagedOrderShoppingList
  changeCustomLineItemMoney: ChangeStagedOrderCustomLineItemMoney
  changeCustomLineItemQuantity: ChangeStagedOrderCustomLineItemQuantity
  changeLineItemQuantity: ChangeStagedOrderLineItemQuantity
  changeOrderState: ChangeStagedOrderOrderState
  changePaymentState: ChangeStagedOrderPaymentState
  changeShipmentState: ChangeStagedOrderShipmentState
  changeTaxCalculationMode: ChangeStagedOrderTaxCalculationMode
  changeTaxMode: ChangeStagedOrderTaxMode
  changeTaxRoundingMode: ChangeStagedOrderTaxRoundingMode
  importCustomLineItemState: ImportStagedOrderCustomLineItemState
  importLineItemState: ImportStagedOrderLineItemState
  recalculate: RecalculateStagedOrder
  removeCustomLineItem: RemoveStagedOrderCustomLineItem
  removeDelivery: RemoveStagedOrderDelivery
  removeDiscountCode: RemoveStagedOrderDiscountCode
  removeItemShippingAddress: RemoveStagedOrderItemShippingAddress
  removeLineItem: RemoveStagedOrderLineItem
  removeParcelFromDelivery: RemoveStagedOrderParcelFromDelivery
  removePayment: RemoveStagedOrderPayment
  setBillingAddress: SetStagedOrderBillingAddress
  setCountry: SetStagedOrderCountry
  setCustomField: SetStagedOrderCustomField
  setCustomLineItemCustomField: SetStagedOrderCustomLineItemCustomField
  setCustomLineItemCustomType: SetStagedOrderCustomLineItemCustomType
  setCustomLineItemShippingDetails: SetStagedOrderCustomLineItemShippingDetails
  setCustomLineItemTaxAmount: SetStagedOrderCustomLineItemTaxAmount
  setCustomLineItemTaxRate: SetStagedOrderCustomLineItemTaxRate
  setCustomShippingMethod: SetStagedOrderCustomShippingMethod
  setCustomType: SetStagedOrderCustomType
  setCustomerEmail: SetStagedOrderCustomerEmail
  setCustomerGroup: SetStagedOrderCustomerGroup
  setCustomerId: SetStagedOrderCustomerId
  setDeliveryAddress: SetStagedOrderDeliveryAddress
  setDeliveryItems: SetStagedOrderDeliveryItems
  setLineItemCustomField: SetStagedOrderLineItemCustomField
  setLineItemCustomType: SetStagedOrderLineItemCustomType
  setLineItemPrice: SetStagedOrderLineItemPrice
  setLineItemShippingDetails: SetStagedOrderLineItemShippingDetails
  setLineItemTaxAmount: SetStagedOrderLineItemTaxAmount
  setLineItemTaxRate: SetStagedOrderLineItemTaxRate
  setLineItemTotalPrice: SetStagedOrderLineItemTotalPrice
  setLocale: SetStagedOrderLocale
  setOrderNumber: SetStagedOrderOrderNumber
  setOrderTotalTax: SetStagedOrderOrderTotalTax
  setParcelItems: SetStagedOrderParcelItems
  setParcelMeasurements: SetStagedOrderParcelMeasurements
  setParcelTrackingData: SetStagedOrderParcelTrackingData
  setReturnPaymentState: SetStagedOrderReturnPaymentState
  setReturnShipmentState: SetStagedOrderReturnShipmentState
  setShippingAddress: SetStagedOrderShippingAddress
  setShippingAddressAndCustomShippingMethod: SetStagedOrderShippingAddressAndCustomShippingMethod
  setShippingAddressAndShippingMethod: SetStagedOrderShippingAddressAndShippingMethod
  setShippingMethod: SetStagedOrderShippingMethod
  setShippingMethodTaxAmount: SetStagedOrderShippingMethodTaxAmount
  setShippingMethodTaxRate: SetStagedOrderShippingMethodTaxRate
  setShippingRateInput: SetStagedOrderShippingRateInput
  setStore: SetStagedOrderStore
  transitionCustomLineItemState: TransitionStagedOrderCustomLineItemState
  transitionLineItemState: TransitionStagedOrderLineItemState
  transitionState: TransitionStagedOrderState
  updateItemShippingAddress: UpdateStagedOrderItemShippingAddress
  updateSyncInfo: UpdateStagedOrderSyncInfo
}
interface StagedOrderUpdateActionOutput {
  type: String!
}
input TransitionStagedOrderCustomLineItemState {
  customLineItemId: String!
  quantity: Long!
  fromState: ResourceIdentifierInput!
  toState: ResourceIdentifierInput!
  actualTransitionDate: DateTime
}
type TransitionStagedOrderCustomLineItemStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  customLineItemId: String!
  quantity: Long!
  fromStateResId: ResourceIdentifier!
  toStateResId: ResourceIdentifier!
  actualTransitionDate: DateTime
}
input TransitionStagedOrderLineItemState {
  lineItemId: String!
  quantity: Long!
  fromState: ResourceIdentifierInput!
  toState: ResourceIdentifierInput!
  actualTransitionDate: DateTime
}
type TransitionStagedOrderLineItemStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  lineItemId: String!
  quantity: Long!
  fromStateResId: ResourceIdentifier!
  toStateResId: ResourceIdentifier!
  actualTransitionDate: DateTime
}
input TransitionStagedOrderState {
  state: ResourceIdentifierInput!
  force: Boolean = false
}
type TransitionStagedOrderStateOutput implements StagedOrderUpdateActionOutput {
  type: String!
  stateResId: ResourceIdentifier!
  force: Boolean!
}
input UpdateStagedOrderItemShippingAddress {
  address: AddressInput!
}
type UpdateStagedOrderItemShippingAddressOutput implements StagedOrderUpdateActionOutput {
  type: String!
  address: Address!
}
input UpdateStagedOrderSyncInfo {
  channel: ResourceIdentifierInput!
  syncedAt: DateTime
  externalId: String
}
type UpdateStagedOrderSyncInfoOutput implements StagedOrderUpdateActionOutput {
  type: String!
  channelResId: ChannelReferenceIdentifier!
  syncedAt: DateTime
  externalId: String
}