24 August 2023
Composable Commerce
HTTP API
Enhancement
GraphQLB2BQuotesMessages/Subscriptions

You can now query QuoteRequest, StagedQuote, and Quote Messages via GraphQL.

In addition, you can now subscribe to Messages about Quote renegotiation requests.

Changes:

  • [API] added QuoteRenegotiationRequested Message.
  • [GraphQL API] Added the following types to the GraphQL schema: QuoteCreated, QuoteCustomerChanged, QuoteDeleted, QuoteRenegotiationRequested, QuoteRequestCreated, QuoteRequestCustomerChanged, QuoteRequestDeleted, QuoteRequestStateChanged, QuoteRequestStateTransition, QuoteStateChanged, QuoteStateTransition, StagedQuoteCreated, StagedQuoteDeleted, StagedQuoteSellerCommentSet, StagedQuoteStateChanged, StagedQuoteStateTransition, StagedQuoteValidToSet.
  • [GraphQL API] Changed the Quote type:
    • Added the customerGroup field to the Quote type.
    • Added the customerGroupRef field to the Quote type.
  • [GraphQL API] Changed the QuoteRequest type:
    • Added the customerGroup field to the QuoteRequest type.
    • Added the customerGroupRef field to the QuoteRequest type.

The following changes were introduced in terms of GraphQL SDL:

extend type Quote {
  customerGroup: CustomerGroup
  customerGroupRef: Reference
}

extend type QuoteRequest {
  customerGroup: CustomerGroup
  customerGroupRef: Reference
}

type QuoteCreated implements MessagePayload {
  quote: Quote!
  type: String!
}

type QuoteCustomerChanged implements MessagePayload {
  customerRef: Reference!
  previousCustomerRef: Reference!
  customer: Customer
  previousCustomer: Customer
  type: String!
}

type QuoteDeleted implements MessagePayload {
  type: String!
}

type QuoteRenegotiationRequested implements MessagePayload {
  buyerComment: String
  type: String!
}

type QuoteRequestCreated implements MessagePayload {
  quoteRequest: QuoteRequest!
  type: String!
}

type QuoteRequestCustomerChanged implements MessagePayload {
  customerRef: Reference!
  previousCustomerRef: Reference!
  customer: Customer
  previousCustomer: Customer
  type: String!
}

type QuoteRequestDeleted implements MessagePayload {
  type: String!
}

type QuoteRequestStateChanged implements MessagePayload {
  quoteRequestState: QuoteRequestState!
  oldQuoteRequestState: QuoteRequestState!
  type: String!
}

type QuoteRequestStateTransition implements MessagePayload {
  stateRef: Reference!
  oldStateRef: Reference
  force: Boolean!
  state: State
  oldState: State
  type: String!
}

type QuoteStateChanged implements MessagePayload {
  quoteState: QuoteState!
  oldQuoteState: QuoteState!
  type: String!
}

type QuoteStateTransition implements MessagePayload {
  stateRef: Reference!
  oldStateRef: Reference
  force: Boolean!
  state: State
  oldState: State
  type: String!
}

type StagedQuoteCreated implements MessagePayload {
  stagedQuote: StagedQuote!
  type: String!
}

type StagedQuoteDeleted implements MessagePayload {
  type: String!
}

type StagedQuoteSellerCommentSet implements MessagePayload {
  sellerComment: String
  type: String!
}

type StagedQuoteStateChanged implements MessagePayload {
  stagedQuoteState: StagedQuoteState!
  oldStagedQuoteState: StagedQuoteState!
  type: String!
}

type StagedQuoteStateTransition implements MessagePayload {
  stateRef: Reference!
  oldStateRef: Reference
  force: Boolean!
  state: State
  oldState: State
  type: String!
}

type StagedQuoteValidToSet implements MessagePayload {
  validTo: DateTime
  type: String!
}