From cb1298ce376ee2cddff48447fb637dde6a3faa49 Mon Sep 17 00:00:00 2001 From: Slava Mankivski Date: Wed, 7 Oct 2026 10:25:42 -0500 Subject: [PATCH] DATA-7320: Catalog Service products: ACO videos/images.sortOrder support + unified gallery field - Document the unified product media gallery GraphQL field Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../schema/catalog-service/queries/product-variants.md | 7 +++++++ .../graphql/schema/catalog-service/queries/products.md | 7 +++++++ .../schema/catalog-service/queries/refine-product.md | 7 +++++++ src/pages/includes/graphql/catalog-service/product-view.md | 7 +++++++ 4 files changed, 28 insertions(+) diff --git a/src/pages/graphql/schema/catalog-service/queries/product-variants.md b/src/pages/graphql/schema/catalog-service/queries/product-variants.md index dfdc88aff..eee229de3 100644 --- a/src/pages/graphql/schema/catalog-service/queries/product-variants.md +++ b/src/pages/graphql/schema/catalog-service/queries/product-variants.md @@ -632,6 +632,7 @@ The `ProductView` return object is an interface that can contain the following f | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | @@ -658,6 +659,7 @@ The `ComplexProductView` type represents bundle, configurable, and group product | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | @@ -704,6 +706,10 @@ The `ProductViewAttribute` type is a container for customer-defined attributes t | `roles` | [String] | Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or "Show in Search". | | `value` | JSON | Attribute value, arbitrary of type. | +### ProductViewMedia union + +The `ProductViewMedia` union represents an entry in the ordered product media gallery. Use inline fragments on `ProductViewImage` and `ProductViewVideo` to retrieve fields for each media type. Entries are returned in resolved display order, and clients should preserve that order. + ### ProductViewImage type The `ProductViewImage` type contains details about a product image. @@ -862,6 +868,7 @@ The `SimpleProductView` type represents all product types, except bundle, config | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | diff --git a/src/pages/graphql/schema/catalog-service/queries/products.md b/src/pages/graphql/schema/catalog-service/queries/products.md index 167bfb98e..2efa6107f 100644 --- a/src/pages/graphql/schema/catalog-service/queries/products.md +++ b/src/pages/graphql/schema/catalog-service/queries/products.md @@ -845,6 +845,7 @@ The `ProductView` return object is an interface that can contain the following f | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | @@ -871,6 +872,7 @@ The `ComplexProductView` type represents bundle, configurable, and group product | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | @@ -917,6 +919,10 @@ The `ProductViewAttribute` type is a container for customer-defined attributes t | `roles` | [String] | Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or "Show in Search". | | `value` | JSON | Attribute value, arbitrary of type. | +### ProductViewMedia union + +The `ProductViewMedia` union represents an entry in the ordered product media gallery. Use inline fragments on `ProductViewImage` and `ProductViewVideo` to retrieve fields for each media type. Entries are returned in resolved display order, and clients should preserve that order. + ### ProductViewImage type The `ProductViewImage` type contains details about a product image. @@ -1075,6 +1081,7 @@ The `SimpleProductView` type represents all product types, except bundle, config | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | diff --git a/src/pages/graphql/schema/catalog-service/queries/refine-product.md b/src/pages/graphql/schema/catalog-service/queries/refine-product.md index 9c895fbba..fb3039c7c 100644 --- a/src/pages/graphql/schema/catalog-service/queries/refine-product.md +++ b/src/pages/graphql/schema/catalog-service/queries/refine-product.md @@ -289,6 +289,7 @@ The `ProductView` return object is an interface that can contain the following f | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | @@ -315,6 +316,7 @@ The `ComplexProductView` type represents bundle, configurable, and group product | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | @@ -361,6 +363,10 @@ The `ProductViewAttribute` type is a container for customer-defined attributes t | `roles` | [String] | Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or "Show in Search". | | `value` | JSON | Attribute value, arbitrary of type. | +### ProductViewMedia union + +The `ProductViewMedia` union represents an entry in the ordered product media gallery. Use inline fragments on `ProductViewImage` and `ProductViewVideo` to retrieve fields for each media type. Entries are returned in resolved display order, and clients should preserve that order. + ### ProductViewImage type The `ProductViewImage` type contains details about a product image. @@ -519,6 +525,7 @@ The `SimpleProductView` type represents all product types, except bundle, config | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | diff --git a/src/pages/includes/graphql/catalog-service/product-view.md b/src/pages/includes/graphql/catalog-service/product-view.md index 9f4f68084..ad3de76b9 100644 --- a/src/pages/includes/graphql/catalog-service/product-view.md +++ b/src/pages/includes/graphql/catalog-service/product-view.md @@ -7,6 +7,7 @@ The `ProductView` return object is an interface that can contain the following f | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | @@ -33,6 +34,7 @@ The `ComplexProductView` type represents bundle, configurable, and group product | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. | @@ -79,6 +81,10 @@ The `ProductViewAttribute` type is a container for customer-defined attributes t | `roles` | [String] | Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or "Show in Search". | | `value` | JSON | Attribute value, arbitrary of type. | +### ProductViewMedia union + +The `ProductViewMedia` union represents an entry in the ordered product media gallery. Use inline fragments on `ProductViewImage` and `ProductViewVideo` to retrieve fields for each media type. Entries are returned in resolved display order, and clients should preserve that order. + ### ProductViewImage type The `ProductViewImage` type contains details about a product image. @@ -237,6 +243,7 @@ The `SimpleProductView` type represents all product types, except bundle, config | `description` | String | The detailed description of the product. | | `externalId`| String | The external ID of the product. | | `id` | ID! | The product ID, generated as a composite key, unique per locale. | +| `gallery` | [`[ProductViewMedia]`](#productviewmedia-union) | A single ordered list containing all images and videos defined for the product. | | `images(roles: [String])` | [`[ProductViewImage]`](#productviewimage-type) | A list of images defined for the product. | | `inputOptions` | [`[ProductViewInputOption]`](#productviewinputoption-type) | A list of input options the shopper can supply to customize a product. | | `inStock` | Boolean | Indicates whether the product is in stock. |