14 December 2020
Messages/SubscriptionsGraphQLProduct catalog
We added the new field 
oldSlug to the CategorySlugChanged Message and ProductSlugChanged Message that contains the slug as it was before the change. This information makes it easier for you to track changes of your slugs and to implement auto-redirection strategies for those product and category pages that have moved temporarily or permanently. On the GraphQL API you can now also query for the oldSlugAllLocales field of the messages in the fragments CategorySlugChanged and ProductSlugChanged.- [API] Added optional field 
oldSlugto CategorySlugChanged Message. - [API] Added optional field 
oldSlugto ProductSlugChanged Message. - [GraphQL API] Added the 
oldSlugandoldSlugAllLocalesfields toCategorySlugChangedtype ofmessagesquery. - [GraphQL API] Added the 
oldSlugandoldSlugAllLocalesfields toProductSlugChangedtype tomessagesquery. 
The following changes were introduced in terms of GraphQL SDL:
type CategorySlugChanged implements MessagePayload {
  slug(
    "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
  slugAllLocales: [LocalizedString!]!
  oldSlug(
    "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
  oldSlugAllLocales: [LocalizedString!]!
  type: String!
}
type ProductSlugChanged implements MessagePayload {
  slug(
    "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
  slugAllLocales: [LocalizedString!]!
  oldSlug(
    "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
  oldSlugAllLocales: [LocalizedString!]!
  type: String!
}