> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rxscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Shop-Produkte

> Shop-Produkte über die Management API anlegen, lesen, aktualisieren und löschen

# Shop-Produkte

Ein Shop-Produkt verknüpft ein Produkt mit einem Shop (z. B. einem Shopify-Produkt).

**Leseberechtigung:** `product:read`\
**Schreibberechtigung:** `product:write`

## Shop-Produkte auflisten

```bash theme={null}
GET /v1/management/shop-products
```

<ParamField query="page" type="integer" default="0">
  Seitennummer (0-indexiert)
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Anzahl der Shop-Produkte pro Seite
</ParamField>

<ParamField query="shop_uid" type="string">
  Filter auf einen einzelnen Shop
</ParamField>

```bash theme={null}
curl -X GET "https://api.rxscale.com/v1/management/shop-products?shop_uid=shop-001" \
  -H "X-API-Key: your-api-key-here"
```

## Shop-Produkt anlegen

```bash theme={null}
POST /v1/management/shop-products
```

Pflichtfelder: `product_uid`, `shop_uid`. Optional: `external_id`, `external_status`.

```bash theme={null}
curl -X POST "https://api.rxscale.com/v1/management/shop-products" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "product_uid": "prod-abc123",
    "shop_uid": "shop-001",
    "external_id": "shopify-product-456",
    "external_status": "active"
  }'
```

Gibt HTTP 201 zurück. Beim Anlegen wird `external_status` in Großbuchstaben gespeichert. Das Anlegen eines zweiten Shop-Produkts für eine `product_uid`, die bereits mit demselben `shop_uid` verknüpft ist, gibt HTTP 409 zurück.

Pro Shop genau ein Shop-Produkt je Produkt: Führt der Shop diese `product_uid` bereits,
wird die Anfrage mit HTTP 409 abgelehnt und nichts angelegt. Dasselbe Produkt darf
selbstverständlich in beliebig vielen verschiedenen Shops gelistet sein.

## Shop-Produkt abrufen / aktualisieren / löschen

```bash theme={null}
GET    /v1/management/shop-products/{shop_product_uid}
PATCH  /v1/management/shop-products/{shop_product_uid}
DELETE /v1/management/shop-products/{shop_product_uid}
```

Aktualisierbare Felder: `product_uid`, `external_id`, `external_status`. Löschen gibt HTTP 204 zurück und entfernt auch zugehörige Shop-SKUs.

Ein Wechsel auf eine `product_uid`, die der Shop bereits führt, wird mit HTTP 409 abgelehnt.
Das Leeren des Feldes (`"product_uid": null`) wird mit HTTP 400 abgelehnt, solange Shop-SKUs
unterhalb dieses Shop-Produkts noch auf SKUs des bisherigen Produkts verweisen — lösen oder
löschen Sie diese zuerst, damit keine Listung ein Produkt beschreibt, das sie nicht mehr nennt.
