# Artikelaktion aktualisieren

Aktualisiert die Werbeaktion.
<div class='note'><b>Hinweis</b><br><br>Neue Daten ersetzen alte Daten. Auch wenn Sie nur einen Teil einer Werbeaktion aktualisieren möchten, sollten Sie alle erforderlichen Daten in der Anfrage übermitteln.</div>
Werbeaktionen gewähren einen Rabatt (in %) auf Artikel.
Der Rabatt wird auf alle Preise der angegebenen Artikel angewendet.

Endpoint: PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/item
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    Projekt-ID. Dieser Parameter wird im [Kundenportal](https://publisher.xsolla.com/0/projects/0/) 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/<merchant_id>/projects/<project_id>`.

  - `promotion_id` (integer, required)
    Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts.

## Request fields (application/json):

  - `promotion_periods` (array)
    Gültigkeitszeitraum der Werbeaktion. Wenn mehrere Zeiträume angegeben sind, sind sowohl `date_from` als auch `date_until` erforderlich.

  - `promotion_periods.date_from` (string, required)
    Startdatum für die angegebene Werbeaktion.
    Example: 2020-08-11T10:00:00+03:00

  - `promotion_periods.date_until` (string | null)
    Enddatum für die angegebene Werbeaktion. Wenn `null` festgelegt ist, läuft die Werbeaktion unbefristet. Kann nur `null` sein, wenn ein einzelner Gültigkeitszeitraum angegeben ist.
    Example: 2020-08-11T20:00:00+03:00

  - `discount` (object, required)

  - `discount.percent` (string, required)
    Prozentualer Rabatt.
Der Preis des Artikels wird um einen Wert verringert, der anhand dieses Prozentsatzes berechnet und dann auf zwei Dezimalstellen gerundet wird.
    Example: 10

  - `items` (array, required)

  - `items.sku` (string, required)
    Artikel-SKU.

  - `attribute_conditions` (array)
    Bedingungen für die Validierung von Nutzerattributen.
Steuert die Verfügbarkeit der Werbeaktion basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen.

  - `attribute_conditions.attribute` (string, required)
    Benutzerattributcode.

  - `attribute_conditions.type` (string, required)
    Benutzerattributtyp.
    Enum: "string"

  - `attribute_conditions.operator` (string, required)
    Art der durchgeführten Operation nach Bedingung. Für den Attributtyp string.
Mögliche Werte:
- `eq` – ist gleich
- `ne` – ist ungleich
    Enum: "eq", "ne"

  - `attribute_conditions.value` (string, required)
    Bedingungswert, mit dem der Benutzerattributwert verglichen wird. Der Typ hängt vom Attributtyp ab.

  - `attribute_conditions.can_be_missing` (boolean)
    Gibt an, dass die Bedingung erfüllt ist, auch wenn das Attribut in den Benutzerattributen fehlt. Übermitteln Sie `true`, um den Artikel den Nutzern anzuzeigen, die dieses Attribut nicht haben. Nutzer, die das Attribut haben, dessen Wert jedoch nicht mit dem in der Bedingung angegebenen Wert übereinstimmt, sehen den Artikel nicht. `false` – Nutzer, die das Attribut haben, dessen Wert jedoch nicht mit dem in der Bedingung angegebenen Wert übereinstimmt oder bei denen das Attribut fehlt, sehen den Artikel nicht.

  - `attribute_conditions.operator` (string, required)
    Art der durchgeführten Operation nach Bedingung. Für den Attributtyp number.
Mögliche Werte:
- `eq` – ist gleich
- `ne` – ist nicht gleich
- `gt` – ist größer
- `ge` – ist größer oder gleich
- `lt` – ist kleiner
- `le` – ist kleiner oder gleich
    Enum: "eq", "ne", "gt", "ge", "lt", "le"

  - `attribute_conditions.operator` (string, required)
    Art der durchgeführten Operation nach Bedingung. Für den Attributtyp date.
Mögliche Werte:
- `eq` – ist gleich
- `ne` – ist nicht gleich
- `lt` – früher
- `gt` – später
- `le` – früher oder gleich
- `ge` –später oder gleich
    Enum: "eq", "ne", "lt", "gt", "le", "ge"

  - `price_conditions` (array | null)
    Objekt-Array mit Bedingungen für die Preisspanne, innerhalb der die Werbeaktion angewandt wird. Die Aktion wird nur auf Artikel angewandt, deren Preis alle in dem Array aufgelisteten Bedingungen erfüllt. Wenn Sie dieses Array übermitteln, müssen Sie den Wert des Objekts [items](/de/api/shop-builder/operation/create-item-promotion/#!path=items&t=request) auf `null` setzen.

  - `price_conditions.operator` (string, required)
    Vergleichsoperator zum Festlegen der Preisspanne für die Anwendung der Werbeaktion.
Mögliche Werte:
- `ge` – ist größer oder gleich
- `gt` – ist größer als
- `le` – ist kleiner oder gleich
- `lt` – ist kleiner als
- `eq` – ist gleich
- `ne` – ist nicht gleich
    Enum: "ge", "gt", "le", "lt", "eq", "ne"

  - `price_conditions.value` (string, required)
    Wert zur Bestimmung der Preisspanne für die Anwendung der Werbeaktion.

  - `limits` (object)
    Werbebeschränkungen.

  - `limits.per_user` (integer | null)
    Werbebeschränkungen für einen separaten Nutzer.

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

  - `limits.recurrent_schedule.per_user` (any)
    Aktualisierungszeitraum für das Nutzerlimit.

  - `limits.recurrent_schedule.per_user.interval_type` (string)
    Typ des wiederkehrenden Aktualisierungszeitraums.
    Enum: "daily"

  - `limits.recurrent_schedule.per_user.time` (string)
    Zeitpunkt der Limitaktualisierung in der gewünschten Zeitzone (auf Stunden gerundet).
    Example: 11:00:00+03:00

  - `limits.recurrent_schedule.per_user.reset_next_date` (integer)
    Datum und Uhrzeit der Limitaktualisierung (Unix-Zeitstempel).
    Example: 1677553200

  - `limits.recurrent_schedule.per_user.displayable_reset_start_date` (string)
    Datum und Uhrzeit der ersten Limitaktualisierung (ISO 8601).
    Example: 2023-02-28T11:00:00+08:00

  - `limits.recurrent_schedule.per_user.displayable_reset_next_date` (string)
    Datum und Uhrzeit, zu der die Limits zurückgesetzt werden sollen (ISO 8601).
    Example: 2023-02-28T11:00:00+08:00

  - `limits.recurrent_schedule.per_user.day_of_week` (integer | null)
    Wochentag, an dem die Limits aktualisiert werden. 1 seht für Montag, und 7 steht für Sonntag. `null` ist bei Limitaktualisierungszeiträumen vom Typ `weekly` unzulässig.

  - `limits.recurrent_schedule.per_user.day_of_month` (integer | null)
    Tag im Monat, an dem die Limits aktualisiert werden. Hat der Monat weniger Tage als der ausgewählte Tag, erfolgt die Aktualisierung am letzten Tag des Monats. `null` ist bei Limitaktualisierungszeiträumen vom Typ `monthly` unzulässig.

  - `excluded_promotions` (array)
    Liste der IDs der Werbeaktionen, die bei der Anwendung dieser Werbeaktion ausgeschlossen werden sollen. Example: `[12, 789]`
    Example: [12,789]

  - `is_enabled` (boolean)
    Ob die Werbeaktion aktiviert ist oder nicht.
    Example: true

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

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

## Response 404 fields (application/json):

  - `statusCode` (integer)
    Example: 404

  - `errorCode` (integer)
    Example: 9502

  - `errorMessage` (string)
    Example: [0401-9502]: Can not find promotion with ID = 111425 in project 59080

## Response 422 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

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

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

