> For the complete documentation index, see [llms.txt](https://docs.solutioo.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.solutioo.de/shopware/shopware6_en_us/data-from-shopware-download-and-matching/match-attributes-and-properties-property-groups.md).

# Match Attributes & Properties (Property Groups)

In Shopware, product properties such as color, material, size, or technical characteristics are represented as **property groups** with associated **options** (values). In Business Central, these correspond to **item attributes** and **item attribute values**. So that filters, property display, and variants continue to work in the shop, both worlds must be **linked** – without attributes being created twice.

For this purpose, the connector provides the **Match Attributes** action. It is the counterpart to the upload and ensures that properties that already exist in the shop are reused.

**What the matching run does exactly**

The **Match Attributes** action compares the existing **Shopware attributes** with the **BC item attributes** based on their **name**. When they match, the connector sets the following on the attribute:

* the **Web-ID** (the Shopware property group ID),
* the **Web Attribute** flag (the attribute is relevant for Shopware), and
* the **Synchronized** flag.

Important: the matching run does **not create any new attributes**. It only links what already exists on both sides. Afterwards, the **option values** of each attribute are matched **by their value** and linked as well.

```mermaid
flowchart TD
    A[Match attributes] --> B{Shopware attribute name = BC attribute name?}
    B -->|yes| C[Set Web-ID, Web Attribute, Synchronized]
    B -->|no| X[skip - no new record created]
    C --> D{Option value = BC attribute value?}
    D -->|yes| E[Link the option value]
    D -->|no| Y[skip]
```

**Prerequisites for successful matching**

Because matching is based purely on **names** (attribute) and **values** (option), the **exact spelling** determines success or failure:

* **Identical attribute name:** "Color" in BC must correspond to "Color" in Shopware – not "Colors" or "colour".
* **Capitalization and spaces** should be identical.
* **Identical option values:** "Red" ↔ "Red", not "red" versus "Red (RAL 3020)".

{% hint style="info" %}
Plan a **consistent naming standard** for attributes and values before you start matching. This saves rework later on.
{% endhint %}

**Understanding the mapping table**

For more fine-grained control, the connector provides an **attribute mapping**. Among other things, the following information is kept for each entry:

<table data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Attribute ID / attribute name</strong></td><td>Link between the BC attribute and the Shopware property group.</td></tr><tr><td><strong>Attribute value ID / attribute value</strong></td><td>Link for the individual option value.</td></tr><tr><td><strong>Attribute scope</strong></td><td>Scope of the attribute.</td></tr><tr><td><strong>Data type &#x26; back-end type</strong></td><td>Technical type of the attribute (for example, text or option).</td></tr><tr><td><strong>Mandatory field</strong></td><td>Indicates whether the attribute must be filled in.</td></tr></tbody></table>

**Step by step**

{% stepper %}
{% step %}
**Prepare the attributes in BC**

Create or maintain the required item attributes and values in Business Central. Make sure the names are exactly the same as in Shopware.
{% endstep %}

{% step %}
**Run the matching**

Start **Match Attributes**. The connector links all attributes and option values whose names and values are identical.
{% endstep %}

{% step %}
**Check the result**

Check whether **Web-ID**, **Web Attribute**, and **Synchronized** are set. Entries that were not linked indicate differing names.
{% endstep %}

{% step %}
**Align the names & repeat**

Correct any differing names or values and run the matching again.
{% endstep %}
{% endstepper %}

**Interaction with variants**

For **products with variants**, attribute matching is the basis: only once the property groups for **color** and **size** are correctly linked can the variant axes (option 1/2/3) be assigned cleanly. To learn how to configure the color and size properties, see [Match Variants (Color & Size)](/shopware/shopware6_en_us/data-from-shopware-download-and-matching/match-variants-color-and-size.md).

**Troubleshooting**

<table data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>The attribute remains unlinked</strong></td><td>The name differs. Align the name exactly with Shopware and match again.</td></tr><tr><td><strong>Option value is missing</strong></td><td>The value does not match (spelling/addition). Align the value.</td></tr><tr><td><strong>A new attribute was created in Shopware</strong></td><td>It was uploaded instead of matched. Match first, then upload.</td></tr></tbody></table>

{% hint style="success" %}
After successful matching, attribute changes are transferred as an **update** from then on – the link is retained.
{% endhint %}

### Frequently Asked Questions

#### Which API endpoints are used to create attributes in Shopware?

Attributes are represented as property groups: the property (group) is created via `property-group` and the individual option values via `property-group-option`. In the connector, this is handled by the `Upload_ItemAttribute` (group) and `Upload_ItemAttributeValue` (options) procedures.

#### How are attribute translations maintained?

Translations of attribute names and option values are handled through the language mapping in the "SOUSHW Mapping" (Language module). For each stored language, the value is updated specifically by means of a language header, so that the attributes appear correctly in all active shop languages.


---

# 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.solutioo.de/shopware/shopware6_en_us/data-from-shopware-download-and-matching/match-attributes-and-properties-property-groups.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.
