> ## 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.

# Bestelllebenszyklus

> Statusübergänge von Bestellungen in RxScale verstehen

# Bestelllebenszyklus

Jede Bestellung in RxScale durchläuft eine Reihe von Status, während sie von der Erstellung bis zum Abschluss fortschreitet. Das Verständnis dieser Status ist entscheidend für den Aufbau einer zuverlässigen Integration.

## Statusablauf

```
  init
     |
     v
waiting for pharmacy -----> cancelled
     |
     v
 pending review ----------> cancelled
     |
     v
 in-progress
     |
     v
ready_for_pickup
     |
     v
 completed
```

## Statusbeschreibungen

| Status                 | Beschreibung                                                                       | Wer setzt ihn                     |
| ---------------------- | ---------------------------------------------------------------------------------- | --------------------------------- |
| `init`                 | Bestellung wurde im System erstellt, ist aber noch keiner Apotheke zugewiesen      | System                            |
| `waiting for pharmacy` | Bestellung ist einer Apotheke zugewiesen und bereit zur Verarbeitung               | System                            |
| `pending review`       | Apotheke prüft die Bestellung und die Verfügbarkeit                                | Apotheke (über API)               |
| `in-progress`          | Apotheke hat mit der Vorbereitung begonnen                                         | Apotheke (über API)               |
| `ready_for_pickup`     | Bestellung ist verpackt und bereit zur Abholung oder zum Versand                   | Apotheke (über API)               |
| `completed`            | Bestellung wurde zugestellt und abgeschlossen (einschließlich Bestandsreduzierung) | Apotheke (über Complete-Endpoint) |
| `cancelled`            | Bestellung wurde vor Abschluss storniert                                           | System oder Apotheke              |

## Übergänge

### Waiting for Pharmacy zu Pending Review

Wenn Ihre Apotheke eine neue Bestellung erhält (Status: `waiting for pharmacy`), bestätigen Sie, dass die Prüfung begonnen hat:

```bash theme={null}
curl -X PATCH "https://api.rxscale.com/v1/external_pharmacy_api/pharmacy_orders/po-abc123/status" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{"status": "pending review"}'
```

### Pending Review zu In Progress

Sobald die Verfügbarkeit bestätigt wurde und die Vorbereitung beginnt, aktualisieren Sie den Status auf `in-progress`:

```bash theme={null}
curl -X PATCH "https://api.rxscale.com/v1/external_pharmacy_api/pharmacy_orders/po-abc123/status" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{"status": "in-progress"}'
```

### In Progress zu Ready for Pickup

Sobald die Bestellung verpackt und zur Abholung oder zum Versand bereit ist, aktualisieren Sie den Status auf `ready_for_pickup`:

```bash theme={null}
curl -X PATCH "https://api.rxscale.com/v1/external_pharmacy_api/pharmacy_orders/po-abc123/status" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{"status": "ready_for_pickup"}'
```

### Ready for Pickup zu Completed

Wenn die Bestellung zugestellt oder anderweitig erfüllt wurde, schließen Sie sie über den dedizierten Complete-Order-Endpoint ab. Dieser Schritt umfasst die Bestandsreduzierung und den Bestellabschluss.

```bash theme={null}
curl -X PATCH "https://api.rxscale.com/v1/external_pharmacy_api/pharmacy_orders/po-abc123/complete_order" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "tracking_links": [
      {
        "tracking_link": "https://tracking.example.com/parcel/123",
        "carrier": "DHL"
      }
    ]
  }'
```

<Note>
  Setzen Sie `completed` nicht über den generischen Status-Endpoint. Verwenden Sie `complete_order`, damit RxScale den Bestand reduzieren und Versand- sowie Bestellaktualisierungsereignisse konsistent auslösen kann.
</Note>

### Stornierung

Eine Bestellung kann vor dem Abschluss storniert werden:

```bash theme={null}
curl -X PATCH "https://api.rxscale.com/v1/external_pharmacy_api/pharmacy_orders/po-abc123/status" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{"status": "cancelled"}'
```

## Webhook-Benachrichtigungen

Sie erhalten Webhook-Benachrichtigungen bei Statusänderungen, wenn Sie den Ereignistyp `pharmacy_order_updated` abonniert haben. Jede Benachrichtigung enthält die vollständigen Bestelldaten mit dem neuen Status.

Siehe [Webhook-Ereignisse](/de/webhooks/events) für Payload-Details.

## Best Practices

<AccordionGroup>
  <Accordion title="Bestellungen zeitnah verarbeiten">
    Setzen Sie Bestellungen von `waiting for pharmacy` auf `pending review`, sobald Ihr Team mit der Prüfung beginnt. Dies schafft Transparenz für alle Beteiligten.
  </Accordion>

  <Accordion title="Status bei jedem Schritt aktualisieren">
    Halten Sie den Status aktuell. Eine genaue Statusverfolgung unterstützt die Kundenkommunikation, das Reporting und die Problemlösung.
  </Accordion>

  <Accordion title="Stornierungen ordnungsgemäß behandeln">
    Achten Sie auf `pharmacy_order_updated`-Webhooks mit dem Status `cancelled`. Wenn eine Stornierung eintrifft, während Sie eine Bestellung vorbereiten, stoppen Sie die Verarbeitung und aktualisieren Sie Ihre internen Systeme entsprechend.
  </Accordion>

  <Accordion title="Status nicht überspringen">
    Folgen Sie immer der Reihenfolge: `waiting for pharmacy` zu `pending review` zu `in-progress` zu `ready_for_pickup`. Verwenden Sie `complete_order` erst, wenn die Bestellung erfüllt ist.
  </Accordion>
</AccordionGroup>
