Catalog Attribute Families — Datagrid Listing (GraphQL)
Cursor-paginated GraphQL query that mirrors the Bagisto admin Catalog → Attribute Families datagrid. Returns the flat family list with filtering, sorting, and cursor pagination.
For how a family's attribute groups and attributes are structured, and the delete guards, see the Attribute Families overview.
Operation
| Operation | Type | Pagination |
|---|---|---|
adminAttributeFamilies | Query | Cursor (first / after) |
Arguments
| Argument | Type | Description | Example |
|---|---|---|---|
first | Int | Number of items per page (default 10, max 50) | 10 |
after | String | Cursor from a previous pageInfo.endCursor for keyset pagination | "MA==" |
last | Int | Page size when paging backwards | 10 |
before | String | Cursor from a previous pageInfo.startCursor | "MA==" |
id | String | Filter by family ID — single integer or comma-separated list (e.g. "1" or "1,2") | "1" |
code | String | Partial family code match (SQL LIKE %value%) | "default" |
name | String | Partial family name match (SQL LIKE %value%) | "Apparel" |
sort | String | Column to sort by (see Sorting section below) | "id" |
order | String | Sort direction: "asc" or "desc" (default "desc") | "desc" |
Every filter is a first-class GraphQL argument — pass them alongside first and after, not inside a nested filter object. Filters combine with AND, so each one narrows the result.
Node Fields
Each edges[].node object contains:
| Field | Type | Description |
|---|---|---|
id | ID | API Platform IRI (e.g. /api/admin/catalog/families/1) |
_id | Int | Raw family ID |
code | String | Family code (e.g. default, apparel) |
name | String | Family display name (e.g. Default, Apparel) |
Fields That Are Not Here
The listing is deliberately three fields. Families carry no timestamps at all — there is no createdAt or updatedAt on this resource, unlike every other admin listing — so you cannot sort or filter by date here.
attributeGroups resolves only on adminAttributeFamily(id:); selecting it on the listing returns null.
Sorting
Pass sort with the column name and order for direction.
Sortable columns:
sort value | Sorts by |
|---|---|
id | Family ID (default) |
code | Family code |
name | Family display name |
Cursor Pagination
firstcontrols the page size (default10, max50).- To fetch the next page, pass the
pageInfo.endCursorvalue asafterin the next request. totalCountreflects the full count of matching families across all pages.
Notes
- Same provider as the REST endpoint —
AdminAttributeFamilyCollectionProviderserves both transports with identical filter and sort semantics. - Only 3 node fields are available. The listing is intentionally slim —
id,_id,code,name. No timestamps exist on the table and attribute groups are not embedded in the listing. extraArgsdeclares custom arguments. The filter/sort arguments are not part of the standard API Platform GraphQL schema forQueryCollection— they are explicitly declared viaextraArgson the operation. Pass them at the top level of the query, alongsidefirstandafter.attributeGroupsis not a field in this query. It is only populated by the item queryadminAttributeFamily(id: ID!). RequestingattributeGroupsin the collection query will cause a GraphQL schema error.

