# Bundle erstellen

Erstellt ein Bundle – eine Zusammenstellung von Artikeln, die als eine Einheit verkauft werden. Ein Bundle kann virtuelle Gegenstände, virtuelle Währungspakete, Spielschlüssel und andere Bundles enthalten. Weitere Informationen finden Sie im Abschnitt Bundles.

HinweisAlle Artikel im Array content müssen zuvor in Ihrem Projekt erstellt worden sein. Das System gibt eine Fehlermeldung aus, wenn die angegebene SKU nicht existiert.

Endpoint: POST /v2/project/{project_id}/admin/items/bundle
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    Projekt-ID. Dieser Parameter wird im Kundenportal neben dem Projektnamen angezeigt sowie in der Adressleiste des Browsers, wenn Sie im Kundenportal ein Projekt geöffnet haben. Die URL hat das folgende Format: https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `sku` (string, required)
    Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten.

  - `name` (object,null, required)
    Objekt mit Lokalisierungen für Artikelnamen. Werte können in zwei Formaten angegeben werden: Sprachencode bestehend aus zwei Kleinbuchstaben (z. B. en) oder fünfstelliger Gebietsschemacode (z. B. en-US). Beide Formate werden als Eingabe akzeptiert, als Antwort werden jedoch stets zweistellige Sprachencodes in Kleinbuchstaben zurückgegeben. Wenn für dieselbe Sprache beide Optionen angegeben sind (z. B. en und en-US), wird der zuletzt angegebene Wert gespeichert. Die vollständige Liste der unterstützten Sprachen finden Sie in der [Dokumentation](/de/doc/shop-builder/references/supported-languages/).

  - `groups` (array)
    Gruppen, zu denen der Artikel gehört.

Hinweis: Der String-Wert bezieht sich auf die Gruppe external_id.

  - `attributes` (array)
    Liste der Attribute.

Achtung: Sie können für den Artikel maximal 20 Attribute angeben. Jeder Versuch, das Limit zu überschreiten, führt zu einem Fehler.

  - `attributes.external_id` (string, required)
    Eindeutige Attribut-ID. Die external_id darf nur lateinische Klein- und Großbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten.

  - `attributes.name` (object)
    Objekt mit lokalisierten Attributnamen. Schlüssel sind in ISO 3166-1 spezifiziert.

  - `attributes.values` (array, required)
    Achtung: Sie können für jedes Attribut maximal 6 Werte erstellen. Jeder Versuch, das Limit zu überschreiten, führt zu einem Fehler.
    Example: [{"external_id":"strategy","value":{"en":"Strategy","de":"Strategie"}},{"external_id":"action","value":{"en":"Action","de":"Aktion"}}]

  - `attributes.values.external_id` (string, required)
    Eindeutige Wert-ID für ein Attribut. Die external_id darf nur lateinische Kleinbuchstaben, alphanumerische Zeichen, Binde- und Unterstriche enthalten.
    Example: "value_external_id"

  - `attributes.values.value` (object, required)
    Objekt mit lokalisierten Wertnamen. Schlüssel sind in ISO 3166-1 spezifiziert.

  - `description` (object,null, required)
    Objekt mit Lokalisierungen für Artikelbeschreibungen. Werte können in zwei Formaten angegeben werden: Sprachencode bestehend aus zwei Kleinbuchstaben (z. B. en) oder fünfstelliger Gebietsschemacode (z. B. en-US). Beide Formate werden als Eingabe akzeptiert, als Antwort werden jedoch stets zweistellige Sprachencodes in Kleinbuchstaben zurückgegeben. Wenn für dieselbe Sprache beide Optionen angegeben sind (z. B. en und en-US), wird der zuletzt angegebene Wert gespeichert. Die vollständige Liste der unterstützten Sprachen finden Sie in der [Dokumentation](/de/doc/shop-builder/references/supported-languages/).

  - `long_description` (object,null)
    Objekt mit Lokalisierungen für lange Artikelbeschreibungen. Werte können in zwei Formaten angegeben werden: Sprachencode bestehend aus zwei Kleinbuchstaben (z. B. en) oder fünfstelliger Gebietsschemacode (z. B. en-US). Beide Formate werden als Eingabe akzeptiert, als Antwort werden jedoch stets zweistellige Sprachencodes in Kleinbuchstaben zurückgegeben. Wenn für dieselbe Sprache beide Varianten angegeben sind (z. B. en und en-US), wird der zuletzt angegebene Wert gespeichert. Die vollständige Liste der unterstützten Sprachen finden Sie in der [Dokumentation](/de/doc/shop-builder/references/supported-languages/).

  - `image_url` (string,null)
    Bild-URL. Damit das Bild im Zahlungsportal korrekt angezeigt und schnell geladen wird, beachten Sie bitte unsere Richtlinien für Bilder und URLs:Unterstützte Formate: WebP (empfohlen), PNG, JPG.Dateigröße: ≤ 50 kB (für WebP) oder ≤ 150 kB (für PNG und JPG).Bildgröße: 280 x 280 px.Farbraum: sRGB.Protokoll: HTTPS mit langlebigem Caching für versionierte URLs.

  - `prices` (array)
    Preise in echten Währungen.

  - `prices.amount` (string, required)
    Artikelpreis.

  - `prices.currency` (string, required)
    Währung des Artikelpreises. Dreistelliger Code pro [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).

  - `prices.is_default` (boolean, required)
    Der Standardpreis dient dazu, einen Katalog zu erstellen, wenn kein Preis in der Währung des Nutzers angegeben ist.

  - `prices.is_enabled` (boolean, required)
    Der Preis ist aktiviert.

  - `prices.country_iso` (string,null)
    Land, in dem dieser Preis gilt. Code bestehend aus zwei Buchstaben gemäß [ISO 3166-1 Alpha 2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
    Example: "US"

  - `vc_prices` (any)

  - `bundle_type` (string)
    Bundle-Typ. Durch Angabe von standard erstellen Sie ein Bundle mit Artikeln, wobei die SKUs der im Bundle enthaltenen Artikel anzugeben ist.
Durch Angabe von partner_side_content wird ein leeres Bundle erstellt, wobei die Artikel über einen [Webhook](https://developers.xsolla.com/de/webhooks/operation/personalized-partner-catalog/) hinzuzufügen sind. Dieser Typ wird nur für die [Katalogpersonalisierung aufseiten des Partners](https://developers.xsolla.com/de/doc/shop-builder/features/personalization/#guides_personalization_on_partner_side) verwendet.
    Enum: "standard", "partner_side_content"

  - `content` (array)
    Array der im Bundle enthaltenen Artikel. Jeder umfasst eine Artikelnummer (SKU) und die zugehörige Artikelmenge. Alle Artikel müssen zuvor in Ihrem Projekt erstellt worden sein. Das System gibt eine Fehlermeldung aus, wenn die angegebene SKU nicht existiert.
    Example: [{"sku":"com.xsolla.kg_1","quantity":1}]

  - `content.sku` (string, required)
    SKU eines Artikels, der in das Bundle aufgenommen werden soll. Der Artikel muss zuvor in Ihrem Projekt erstellt worden sein. Das System gibt eine Fehlermeldung aus, wenn die angegebene SKU nicht existiert. Zulässige Zeichen: a–z, A–Z, 0–9, Punkt (.), Bindestrich (-), Unterstrich (_).
    Example: "com.xsolla.kg_1"

  - `content.quantity` (integer)
    Menge der ausgewählten Artikel im Bundle.
    Example: 1

  - `is_free` (boolean)
    Ob der Artikel kostenlos ist.

  - `is_paid_randomized_reward` (boolean)
    Ob der Artikel eine kostenpflichtige zufällige Belohnung ist, z. B. eine Lootbox.

  - `is_enabled` (boolean)
    Ist diese Option deaktiviert, kann der Artikel weder gefunden noch gekauft werden.

  - `is_show_in_store` (boolean)
    Artikel ist käuflich erhältlich.

  - `media_list` (any)

  - `order` (integer)
    Priorität der Bundle-Reihenfolge in der Liste.

  - `regions` (array)

  - `regions.id` (integer)
    Example: 1

  - `limits` (object)
    Artikelbeschränkungen.

  - `limits.per_user` (any)
    Artikelbeschränkung für einen separaten Nutzer.

  - `limits.per_item` (integer,null)
    Globale Artikelbeschränkung.

  - `limits.recurrent_schedule` (object,null)
    Aktualisierungszeitraum begrenzen.

  - `limits.recurrent_schedule.per_user` (any)
    Das Kauflimit wird gemäß dem in Stunden angegebenen Zeitintervall zurückgesetzt.

  - `periods` (array,null)
    Artikelangebotszeitraum.

  - `periods.date_from` (string)
    Datum, an dem der angegebene Artikel zum Verkauf angeboten wird.
    Example: "2020-08-11T10:00:00+03:00"

  - `periods.date_until` (string,null)
    Datum, an dem der angegebene Artikel nicht mehr zum Verkauf angeboten wird. Möglich ist: null.
    Example: "2020-08-11T20:00:00+03:00"

  - `custom_attributes` (object)
    Ein JSON-Objekt mit den Artikelattributen und ‑werten. Attribute ermöglichen es Ihnen, Artikeln weitere Informationen hinzuzufügen, z. B. das Mindestlevel des Spielers, um den Artikel verwenden zu können. Attribute bereichern die interne Logik Ihres Spiels und sind über spezielle GET-Methoden und Webhooks abrufbar.

## Response 201 fields (application/json):

  - `sku` (string)
    Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten.

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

  - `errorMessage` (string)
    Example: "[0401-1020]: Error in Authentication method occurred"

## Response 422 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

  - `errorMessage` (string)
    Example: "[0401-1102]: Unprocessable Entity. The property `property_name` is required"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"

  - `errorMessageExtended` (array)


