# ProductGroupConnection A connection to a list of ProductGroup items. ## Connection Structure ```graphql type ProductGroupConnection { edges: [ProductGroupEdge] nodes: [ProductGroup] pageInfo: PageInfo! totalCount: Int } ``` ## Pagination Arguments | Argument | Type | Description | |----------|------|-------------| | first | Int | Returns the first n items from the list | | last | Int | Returns the last n items from the list | | before | String | Returns items before the specified cursor | | after | String | Returns items after the specified cursor | ## PageInfo Structure The `pageInfo` object contains pagination metadata about the connection. It provides information about whether additional pages exist and supplies cursor values for navigating between pages. The `pageInfo` field is required and always returns a `PageInfo` object with fields including `hasNextPage`, `hasPreviousPage`, `startCursor`, and `endCursor`. ## Example ```graphql query { productGroups(first: 10, after: "eyJpZCI6IDEwMH0=") { edges { cursor node { id name } } nodes { id name } pageInfo { hasNextPage hasPreviousPage startCursor endCursor } totalCount } } ``` ## Edge Type The `ProductGroupEdge` type represents an individual item in the connection. Each edge contains a `node` field that holds the actual `ProductGroup` object, and a `cursor` field that provides an opaque string for pagination purposes. The cursor can be used in subsequent queries with the `before` or `after` arguments to navigate through the list. ## Related Types - [ProductGroupEdge](/reference/storefront/v1/connections/product-group-edge) - [ProductGroup](/reference/storefront/v1/objects/product-group) - [PageInfo](/reference/storefront/v1/objects/page-info)