# Attribute

Attribute verwalten und abrufen.

**Feldtypen**

| **Typ** | **Beschreibung** |
| --- | --- |
| `1` | Einzelauswahl |
| `2` | Mehrfachauswahl |
| `3` | Freier Wert (einzeln) |
| `4` | Freie Werte (mehrere) |
| `5` | Anhänge |
| `6` | Textbereich |
| `7` | Datum/Uhrzeit |
| `8` | Zahl |
| `9` | Boolean |
| `10` | Farbe |
| `11` | JSON |
| `12` | Standort |
| `13` | Audiodatei |
| `14` | Videodatei |

### Wertformat je Feldtyp

| **Feldtyp** | **Wertformat** |
| --- | --- |
| Einzelauswahl (`1`) | Eine Attributwert-ID oder ein Wert. |
| Mehrfachauswahl (`2`) | Array aus Attributwert-IDs oder Werten. |
| Freier Wert (`3`) | Eine frei eingegebene Zeichenfolge oder ein Skalarwert. |
| Mehrere freie Werte (`4`) | Array freier Werte. |
| Anhänge (`5`) | Array hochgeladener Datei-URLs oder Dateireferenzen. |
| Textbereich (`6`) | Freie Zeichenfolge, üblicherweise mehrzeilig. |
| Datum/Uhrzeit (`7`) | Datum-/Uhrzeitzeichenfolge im ISO-8601-Format. |
| Zahl (`8`) | Numerischer Wert. |
| Boolean (`9`) | `true` oder `false`. |
| Farbe (`10`) | Farbzeichenfolge, etwa ein Hexwert (`#FF0000`). |
| JSON (`11`) | Gültiges JSON-Objekt oder -Array. |
| Standort (`12`) | Standortobjekt, normalerweise mit Breiten- und Längengrad. |
| Audiodatei (`13`) | URL oder Referenz einer hochgeladenen Audiodatei. |
| Videodatei (`14`) | URL oder Referenz einer hochgeladenen Videodatei. |

## Attribut-Antwortobjekt

Ein Attribut beschreibt ein benutzerdefiniertes Feld für einen Objekttyp, etwa ein Angebot oder Konto. `field_type` legt das Eingabe-/Wertformat fest; `type` bezeichnet den Objektbereich und darf nicht mit `field_type` verwechselt werden.

**Beispielobjekt**

```
{
    "id": 71,
    "type": "listings",
    "field_type": 4,
    "icon_path": null,
    "optional": true,
    "private": false,
    "show_in_filter": true,
    "visible": true,
    "active": true,
    "order_by": 1,
    "attribute_group_id": 12,
    "metadata": {},
    "name": "Fabric",
    "tooltip": "Select all applicable fabrics",
    "categories": [
        {
            "id": 252,
            "parent": 9,
            "type": "listings",
            "active": true,
            "image_path": "https://cdn2.iconfinder.com/data/icons/shirts-glyph/48/Clothing_Shirts_Artboard_2-512.png",
            "order_by": 1,
            "sub_category": [],
            "name": "V-Neck",
            "hierarchy": [
                {
                    "id": 252,
                    "name": "V-Neck",
                    "level": 3
                }
            ]
        }
    ]
}

```

**Felder des Attributobjekts**

| **Name** | **Typ** | **Beschreibung** |
| --- | --- | --- |
| `id` | `integer` | Eindeutige ID des Attributs |
| `name` | `string` | Name des Attributs |
| `field_type` | `integer` | Feldtyp des Attributs; siehe die Feldtypübersicht oben |
| `icon_path` | `string \| null` | Optionales Symbol oder Bild des Attributs |
| `optional` | `boolean` | Gibt an, ob dieses Attribut optional ist |
| `private` | `boolean` | Gibt an, ob das Attribut privat ist; private Attribute sind nur für Administratoren sichtbar |
| `show_in_filter` | `boolean` | Gibt an, ob das Attribut in der Filterliste erscheint |
| `visible` | `boolean` | Steuert, ob das Attribut Kunden angezeigt wird |
| `active` | `boolean` | Gibt an, ob das Attribut aktiv ist |
| `order_by` | `integer` | Anzeigereihenfolge unter den Attributen |
| `type` | `string` | Typ des zurückgegebenen Objekts |
| `attribute_group_id` | `integer \| null` | Optionale Gruppe zum Organisieren zugehöriger Attribute |
| `metadata` | `object \| array \| null` | Zusätzliche, vom Tenant definierte Konfiguration; JSON-Struktur beibehalten |
| `tooltip` | `string \| null` | Optionaler Hilfetext für das Feld |
| `categories` | `array` | Diesem Attribut zugeordnete Kategorien; siehe Kategorieobjekt |
| `values` | `array` | Aktive Optionen für Feldtypen 1 und 2; jede enthält `id`, `name`, `active`, `order_by` und `metadata` |

`values` wird nur für Auswahlattribute zurückgegeben. Verwenden Sie beim Übermitteln eines Auswahlwerts die `id` einer vorhandenen Option und erfinden Sie keine IDs.

## Werte übermitteln und speichern

Produkt- oder Kontoattribute werden als Array von Objekten übergeben. Jedes Objekt enthält die Attribut-ID und ein Array namens `values`, auch wenn das Feld nur einen Wert akzeptiert:

```json
{
  "attributes": [
    { "id": 71, "values": ["cotton", "linen"] },
    { "id": 72, "values": [true] }
  ]
}
```

Felder mit Einzelwert müssen genau einen Eintrag in `values` enthalten. Auswahlfelder verwenden IDs aus der `values`-Liste des Attributs. Dateien müssen zuerst hochgeladen werden; anschließend wird ihre URL oder Referenz übermittelt. Die API speichert Werte als JSON. Behalten Sie daher den dokumentierten JSON-Typ bei und senden Sie keine Zeichenfolge, die einen Boolean, eine Zahl oder ein Objekt darstellt.

## Regeln je Typ

| **Feldtyp** | **Erwarteter Wert** | **Wichtige Regel** |
| --- | --- | --- |
| Einzelauswahl (`1`) | Eine Options-ID | Option muss aktiv sein und zu diesem Attribut gehören |
| Mehrfachauswahl (`2`) | Array von Options-IDs | Jede Option muss aktiv sein und zu diesem Attribut gehören |
| Freier Wert (`3`) | Ein Skalar-/Freitextwert | Genau ein Eintrag |
| Mehrere freie Werte (`4`) | Array freier Werte | Mehrere Einträge sind erlaubt |
| Anhänge (`5`) | Array von Datei-URLs/Referenzen | Dateien vor dem Übermitteln hochladen |
| Textbereich (`6`) | Eine Zeichenfolge | Mehrzeiliger Text ist zulässig |
| Datum/Uhrzeit (`7`) | Eine Datum-/Uhrzeitzeichenfolge | Gültigen ISO-8601-Wert verwenden, möglichst UTC (`2026-09-15T10:30:00Z`) |
| Zahl (`8`) | Eine Zahl | JSON-Zahl statt formatierter Zeichenfolge senden |
| Boolean (`9`) | Ein Boolean | `true`/`false` statt `"true"`/`"false"` senden |
| Farbe (`10`) | Eine Farbzeichenfolge | Hex (`#RGB`/`#RRGGBB`) oder `rgb(a)`/`hsl(a)` |
| JSON (`11`) | Ein JSON-Objekt oder -Array | Muss gültiges, strukturiertes JSON sein |
| Standort (`12`) | Ein Objekt | Numerische `latitude` (-90..90) und `longitude` (-180..180) angeben |
| Audiodatei (`13`) | URL/Referenz einer hochgeladenen Audiodatei | Zuerst hochladen und die zurückgegebene Referenz speichern |
| Videodatei (`14`) | URL/Referenz einer hochgeladenen Videodatei | Zuerst hochladen und die zurückgegebene Referenz speichern |
