Bestellerfassung
Wenn Ihre Organisation nicht über Shopify verkauft, können Sie mit der Bestellerfassung Bestellungen direkt aus Ihrem eigenen Vertriebskanal in RxScale einspielen — Ihre eigene Website, Ihr Kassensystem oder jedes andere führende System. Alles, was danach passiert (Rezepte, Apotheken-Routing, Fulfillment), funktioniert genau wie bei einer Shopify-Bestellung; nur die Art, wie die Bestellung in RxScale gelangt, unterscheidet sich.Dies ist für Ihre eigene Integration gedacht, die Bestellungen in Ihre eigene Organisation
einspielt. Wenn Sie als Telemedizin-Anbieter in einen der Shops eines RxScale-Kunden integrieren,
lesen Sie stattdessen die Public API.
Bevor Sie beginnen
- Erforderliche Berechtigung: Jeder Endpoint auf dieser Seite erfordert
order:writeauf Ihrem API-Schlüssel. - Ein Shop muss zuerst existieren. Bestellungen werden gegen einen
shop_identifierangelegt, den RxScale bei der Einrichtung der Integration für Ihre Organisation konfiguriert. Wenden Sie sich an Ihren RxScale-Ansprechpartner, wenn Sie noch keinen haben. - Der Bestellstatus für Ihre eigenen Kunden liegt an anderer Stelle. Diese Seite behandelt nur
das Einspielen von Bestellungen. Um den Status einer Bestellung während der Rezeptprüfung und der
Apotheken-Abwicklung zu verfolgen, verwenden Sie
GET /v1/management/orders— die bereits auf der Seite Bestellungen dokumentierten Lese-Endpoints.
Vier Operationen
Fulfillment-Aufträge sind unveränderlich. Es gibt keinen Endpoint, um die Positionen eines
Fulfillment-Auftrags nach dessen Anlage zu ändern. Um zu ändern, was ausgeliefert wird, stornieren
Sie den Fulfillment-Auftrag und legen Sie einen neuen mit den korrigierten Positionen an — dadurch
wird auch ein neues Rezept für die neuen Positionen angestoßen.
Bestellung anlegen
order:write
Legt eine Bestellung zusammen mit ihrem ersten Fulfillment-Auftrag an (oder mehreren gleichzeitig).
Die Anlage erfolgt strikt einmalig pro external_id — siehe
Wiederholungen und doppelte Anfragen unten.
Request Body
Customer-Objekt
Adress-Objekt
Money-Objekt
RxScale akzeptiert niemals Dezimal- oder Gleitkommabeträge — Beträge sind immer Ganzzahlen in der kleinsten Währungseinheit (Cent bei EUR), dieselbe Konvention wie im gesamten System.Fulfillment-Objekt
Ein Fulfillment-Auftrag ist eine Gruppe von Positionen, die gemeinsam versendet und verschrieben wird. Die meisten Bestellungen haben einen; eine Bestellung mit Positionen aus verschiedenen Apotheken oder mit unterschiedlichem Bearbeitungsstand (z. B. eine Position versandbereit, eine noch auf ein Rezept wartend) hat mehrere.Item-Objekt
Rezept verknüpfen
Eine Position benötigt ein Rezept, sobald ihr Produkt eines erfordert. Es gibt vier Wege, dies zu erfüllen, und jede Position nutzt genau einen davon:Freiverkäuflich -- kein Rezept nötig
Freiverkäuflich -- kein Rezept nötig
Lassen Sie
prescription_uid, prescription_reference und anamnesis_uid alle unbesetzt. Nur
gültig für Produkte in Ihrem Katalog, die als nicht rezeptpflichtig konfiguriert sind.An einen RxScale-Arzt senden
An einen RxScale-Arzt senden
Setzen Sie
anamnesis_uid auf die UID einer für diesen Kunden ausgefüllten Fragebogenantwort.
Ein RxScale-Arzt prüft sie und stellt das Rezept aus; die Bestellung wechselt bis dahin in den
Status waiting for doctor.Ein bereits vorhandenes Rezept referenzieren
Ein bereits vorhandenes Rezept referenzieren
Setzen Sie
prescription_uid auf die UID eines bereits signierten Rezepts — zum Beispiel
eines, das Ihre Integration zuvor über einen anderen RxScale-Ablauf erhalten hat. Das Rezept
muss bereits Ihrer Organisation gehören.Signiertes PDF direkt hochladen
Signiertes PDF direkt hochladen
Fügen Sie dem eigenen
prescriptions-Array des Fulfillment-Auftrags einen Eintrag hinzu:
{"id": "your-reference", "pdf_base64": "..."}. Das PDF wird als Teil der Anfrage auf eine
qualifizierte elektronische Signatur (QES) geprüft — ein unsigniertes oder ungültiges PDF lehnt
die gesamte Bestellung ab, nichts wird angelegt. Setzen Sie in der Position
prescription_reference auf dieselbe id, die Sie in prescriptions verwendet haben. RxScale
wandelt den Upload automatisch in ein Rezept um und verknüpft es mit der Position; ab diesem
Zeitpunkt verhält es sich genau wie die vorherige Option.Beispielanfrage
Antwort (201 Created)
Fehlerantworten
Wenn eine Anfrage abgelehnt wird, wird nichts angelegt — weder die Bestellung noch ein Rezept
aus einem eingebetteten PDF, nichts. Die
external_id bleibt frei für einen erneuten Versuch mit
einem korrigierten Request Body.Wiederholungen und doppelte Anfragen
Die Anlage einer Bestellung erfolgt strikt einmalig proexternal_id: Ein zweites POST mit
derselben external_id liefert immer 409 mit code: "order_already_exists", selbst wenn die
Antwort auf die erste Anfrage Sie nie erreicht hat (Timeout, abgebrochene Verbindung). Die 409-Antwort
enthält die order_uid der bestehenden Bestellung, sodass die Wiederherstellung nach einer verlorenen
Antwort keinen weiteren Aufruf braucht — wiederholen Sie einfach denselben Request Body und lesen Sie
order_uid aus der Fehlerantwort:
Fulfillment-Auftrag hinzufügen
string
erforderlich
Ihre
external_id für die bestehende Bestellungorder:write
Fügt einer bereits bestehenden Bestellung einen neuen Fulfillment-Auftrag (mit seinen
Positionen) hinzu. Der Request Body ist ein einzelnes Fulfillment-Objekt —
nicht in eine Bestellung eingebettet. Verwenden Sie dies, wenn Positionen derselben Bestellung zu
unterschiedlichen Zeitpunkten verfügbar werden oder auf mehrere Apotheken aufgeteilt werden müssen.
Eine external_id eines Fulfillment-Auftrags, die auf dieser Bestellung bereits existiert, wird
abgelehnt: Fulfillment-Aufträge können nach ihrer Anlage nicht geändert, sondern nur storniert und
ersetzt werden.
Beispielanfrage
Antwort (201 Created)
Fehlerantworten
Bestellung aktualisieren
string
erforderlich
Ihre
external_id für die bestehende Bestellungorder:write
Aktualisiert bestellebenen-Felder, die nicht an Positionen gebunden sind. Positionen werden hier
nie akzeptiert — sie kommen immer innerhalb eines Fulfillment-Auftrags (siehe
Fulfillment-Auftrag hinzufügen); ein Request Body mit einem
items-Schlüssel wird abgelehnt.
Request Body
Alle Felder sind optional; senden Sie nur, was Sie ändern möchten.Beispielanfrage
Antwort (200 OK)
Fehlerantworten
Fulfillment-Auftrag stornieren
string
erforderlich
Ihre
external_id für die Bestellungstring
erforderlich
Ihre
external_id für den zu stornierenden Fulfillment-Auftragorder:write
Storniert einen Fulfillment-Auftrag. Dies ist der einzige Weg, den Inhalt eines
Fulfillment-Auftrags zu ändern — stornieren Sie ihn und
fügen Sie einen neuen Fulfillment-Auftrag hinzu mit den
korrigierten Positionen.
Beispielanfrage
Antwort (200 OK)
Fehlerantworten
Wo der Bestellstatus liegt
Diese Seite behandelt das Einspielen von Bestellungen in RxScale. Um eine Bestellung danach zu verfolgen — ihren Status, welches Rezept angehängt ist, welcher Apothekenauftrag angelegt wurde — verwenden SieGET /v1/management/orders und
GET /v1/management/orders/{order_uid},
bereits auf der Seite Bestellungen dokumentiert. Wenn Sie stattdessen als Telemedizin-Anbieter
Bestellungen verfolgen, die Sie über die Public API aufgegeben haben, liegt der Bestellstatus für
diesen Ablauf in der Public API — nicht hier.