> For the complete documentation index, see [llms.txt](https://docs.akinon.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.akinon.com/technical-guides/commerce/group-attribute-sets.md).

# Group Attribute Sets

The **Group Attribute Sets** feature allows users to organize the attributes of an attribute set into logical groups. This configuration enables the grouped display of attributes on the product detail page, improving readability and usability.

{% hint style="info" %}
This page is about grouping **attributes** — putting `size` and `gender` under a "Variant Attributes" heading on the product detail page. It has nothing to do with grouping **products**. For selling several products together as a set or combination, see [Grouped Products & Combinations](/technical-guides/commerce/grouped-products-and-combinations.md).
{% endhint %}

The configuration for attribute groups can be managed in **Omnitron**, under **Products and Catalogs > Group Attribute Sets**. Once configured, this data can be retrieved via API to implement grouped attribute display on brand applications (e.g., web or mobile interfaces).

## <mark style="color:red;">Steps for Configuration</mark>

To configure **Group Attribute Sets**, an attribute set must first be created. For detailed instructions, refer to the [Attributes & Attribute Sets](/tutorials/omnitron/products-and-catalogs/how-to-create-product-attributes-and-attribute-sets-in-omnitron.md) tutorial on creating attribute sets.

Once the attribute set is created, it will be listed on the **Products and Catalogs > Group Attribute Sets** page, where grouping can be configured.

### Step 1: Creating Group Names

* Navigate to **Products and Catalogs > Group Attribute Sets.**

  <figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-0cc5ede731bdf26ea2335cadd47b8bd0fc7a33a6%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
* Select the desired attribute set to configure from the list.

  <figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-6fb24053c77ea5a6e0e55b976782171baa269f5b%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
* In the right-hand column, enter the group names for the attributes, click **Save** to apply the changes.

  <figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-f9a303740d3b5f057309717b4f68ad2f80aadfff%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

### Step 2. Adding Attributes to Groups

* **Expand** the respective group name by clicking on it and then click the **“+”** button to **add** the attributes you want to include in that group.

  <figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-a972439fa0480437de5999159dff93e35b5bc45c%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
* To verify the changes, navigate to **Product Pool > + New Product**, select the configured **Attribute Set**, and observe the grouped attributes displayed under their respective group names.
* Any attributes not assigned to a group will appear under **“Ungrouped Attributes”.**

  <figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-e2a3981cc7c191a7a45ca0f4f409603a3f905399%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**“Ungrouped Attributes” is a heading drawn by the screen, not a group.** It is where the page collects the attributes you have not assigned anywhere. No record exists behind it, and the API returns only attributes that belong to a real group — so these never appear in the response. See [Ungrouped attributes](#ungrouped-attributes) below for how to render them anyway.

Creating a group named “Ungrouped Attributes” does not change this. Group names are free text, so the name is allowed and such a group is returned like any other — but it returns **only the attributes you explicitly put in it**, and an attribute you put in it is no longer ungrouped. There is no way to make the API emit the unassigned ones.
{% endhint %}

## <mark style="color:red;">Where the Configuration Lives</mark>

Attribute config groups are configured in **Omnitron** and synced to **Commerce**, which is where the storefront reads them from. A change made in Omnitron therefore does not appear on the storefront instantly.

### Omnitron endpoints

If you are working on the Omnitron side, the groups are a standard resource there. The payload is the group record itself — `pk`, `name` and `order` — not the attribute-keyed shape the storefront endpoint returns.

| Endpoint                                                      | Purpose                                                                                                    |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `/api/v1/attribute_config_groups/`                            | Create, list and update groups. Filterable by `name`, `attribute_set`, `attribute` and `attribute_config`. |
| `/api/v1/attribute_config_groups/{id}/attribute_list/`        | The attributes in one group (paginated).                                                                   |
| `/api/v1/attribute_config_groups/{id}/attribute_config_list/` | The attribute configs in one group (paginated).                                                            |

To list the groups used by one attribute set: `GET /api/v1/attribute_config_groups/?attribute_set={attribute_set_pk}`.

## <mark style="color:red;">Fetching Attribute Config Groups</mark>

Once the attribute groups are configured, they can be fetched programmatically for integration into brand applications.

### `GET` Attribute Config Groups

This API retrieves the attribute configuration groups for a specific attribute set.

**Path**: `/attribute_set/{attribute_set_pk}/attribute_config_groups/` **Permission**: public — no authentication, so the storefront can call it directly.

Groups come back ordered by the group's `order` value, ascending, so the response order is the order you should render in. `order` is set per group and defaults to `0`.

#### **Example Response (200 OK)**

When the request is successful, the response will include a list of attribute configuration groups and their respective attributes.

| Parameter                 | Data Type | Description                                                      |
| ------------------------- | --------- | ---------------------------------------------------------------- |
| `attribute_config_groups` | list      | List of attribute config groups, ordered by the group's `order`. |
| `attributes`              | list      | Keys of the attributes in the current attribute config group.    |
| `group_name`              | string    | The name of the attribute config group.                          |

```json
{
   "attribute_config_groups":[
       {
            "attributes": [
                 "size",
                 "gender"
            ],
            "group_name": "Variant Attributes Group"
       },
       {
            "attributes": [
                 "description"
            ],
            "group_name": "Other Attributes Group"
       }
   ]
}
```

An attribute set with no grouped attributes returns an empty list, not an error:

```json
{"attribute_config_groups": []}
```

### Ungrouped attributes

**The response contains only attributes that belong to a group.** Attributes left unassigned are filtered out entirely — there is no fallback group, and the “Ungrouped Attributes” heading seen in Omnitron is not part of the payload.

Creating a group called “Ungrouped Attributes” is not a workaround: a group only ever returns the attributes explicitly assigned to it, and assigning an attribute is exactly what stops it being ungrouped.

So if the product detail page needs to show them, derive them on your side: take the attribute set's full attribute list, subtract every key that appears in `attribute_config_groups`, and render the remainder under whatever heading you choose.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.akinon.com/technical-guides/commerce/group-attribute-sets.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
