Rezepte & Behandlungen
Erstellen Sie Checkout-Sitzungen für Rezepte oder Behandlungen. Diese Endpoints übernehmen die Rezeptvalidierung, die Checkout-Erstellung und geben eine Checkout-URL oder einen Bestellentwurf zurück, über den der Patient seinen Kauf abschließen kann.Rezept-Checkout erstellen
Laden Sie ein oder mehrere signierte Rezepte (als Base64-kodierte PDFs) zusammen mit Positionen und Patientendaten hoch, um einen Checkout zu erstellen.string
erforderlich
Eindeutiger Bezeichner für den Shop
create_prescription_checkout
Anfragekörper
buyerIdentity.customerAccessToken gilt nur, wenn checkout_type auf checkout_link gesetzt ist, da Shopify dieses Feld für Storefront-Carts verwendet. Es verknüpft kein Kundenkonto mit Shopify-Bestellentwürfen.Senden Sie
buyerIdentity, wenn Sie checkout_type: "draft_order_without_checkout_request" verwenden. RxScale lehnt die Anfrage ohne dieses Feld ab, weil keine Shopify-Checkout-Anfrage gesendet wird, über die Kundendaten später erfasst werden könnten.Zuordnung der Versandmethode
delivery.delivery_type ist Ihr eigener Bezeichner für eine Versandmethode. Ein RxScale-Administrator kann jeden Ihrer delivery_type-Werte einer der Shopify-Versandmethoden des Stores zuordnen. Wenn Sie delivery senden, sucht RxScale nach einer Zuordnung für den exakt gesendeten Wert — der Abgleich unterscheidet Groß-/Kleinschreibung und Leerzeichen, sodass "Express" und "express" als unterschiedliche Werte gelten —, und eines von drei Ergebnissen tritt ein:
- Es wird eine zugeordnete Shopify-Versandmethode gefunden, und
delivery.delivery_pricefehlt oder entspricht dem eigenen Preis dieser Methode. Die Versandposition übernimmt Namen und Preis dieser Methode. In Ihrem Shopify-Adminbereich erscheint sie dabei als benutzerdefinierte Versandposition — nicht als der eigene, aktive Tarif des Stores —, auch wenn Name und Preis exakt mit der zugeordneten Methode übereinstimmen. delivery.delivery_priceweicht vom Preis der zugeordneten Methode ab, Shopify bietet aktuell keinen aktiven Tarif unter dem Namen der zugeordneten Methode an, oder es existiert keine Zuordnung für Ihrendelivery_type. Es wird eine Versandposition mit dem von Ihnen gesendetendelivery_priceerstellt. Ihr Name ist der Name der zugeordneten Shopify-Versandmethode, sobald eine Zuordnung existiert — auch dann, wenn lediglich der Preis abweicht — und nur ohne Zuordnung der von Ihnen gesendetedelivery_type.- Es existiert keine Zuordnung für Ihren
delivery_type— oder es existiert eine, aber Shopify bietet aktuell keinen aktiven Tarif unter dem Namen dieser Methode an (zum Beispiel weil sie in Shopify umbenannt oder deaktiviert wurde) —, und es wurde keindelivery.delivery_priceangegeben. Der Bestellung wird keine Versandposition hinzugefügt.
delivery.delivery_type und delivery.delivery_price werden weiterhin wie bisher als Shopify-Bestellattribute angehängt — unabhängig davon, welches der drei oben genannten Ergebnisse eintritt. Dies ist eine additive Änderung: Bestehende Integrationen, die diese Attribute auslesen, funktionieren unverändert weiter.Die Zuordnung der Versandmethode gilt nur, wenn
checkout_type draft_order oder draft_order_without_checkout_request ist. Bei checkout_type: "checkout_link" gibt RxScale einen Shopify-Storefront-Cart zurück, der keine Versandposition besitzt — der Kunde wählt seine Versandoption im eigenen Checkout-Prozess von Shopify."express" einer Shopify-Versandmethode zugeordnet, übernimmt die Versandposition der entstehenden Bestellung Namen und Preis dieser Methode (im Shopify-Adminbereich sichtbar als benutzerdefinierte Versandposition, nicht als aktiver Tarif des Stores). Die Checkout-Antwort ist unabhängig davon, welches Ergebnis eintritt, unverändert — die aufgelöste Versandposition ist auf dem Shopify-Bestellentwurf bzw. der Bestellung selbst sichtbar, nicht in dieser Antwort:
Checkout-Typen
Das Feldcheckout_type steuert, wie die Bestellung in Shopify erstellt wird:
Wenn
reserved_draft_order_id gesetzt ist, wird checkout_type ignoriert. RxScale speichert die signierten Rezepte und ergänzt _prescription_uid-Metadaten an den passenden reservierten Draft-Order-Positionen (nicht an Bestell-Attributen auf Order-Ebene). Die Zuordnung erfolgt über die Shopify-Variante aus sku_uid; doppelte sku_uid-Werte werden abgelehnt, weil sie nicht eindeutig sind. Schlüssel mit führendem _ sind private Shopify-Properties und in der Shopify-Admin-UI oft ausgeblendet — prüfen Sie sie bei Bedarf über die Admin-GraphQL-API. Wenn buyerIdentity.email und/oder buyerIdentity.phone gesetzt (und nicht leer) sind, überschreiben sie die Käuferkontaktdaten des reservierten Bestellentwurfs; leere Werte werden ignoriert, sodass vorhandene Kontaktdaten nie gelöscht werden. Die billing_address und shipping_address aus der Anfrage werden an den Bestellentwurf übergeben; der Name des Patienten aus patient_data wird in jede Adresse eingesetzt, sofern dort kein Name angegeben ist (Shopify-Bestellentwürfe haben kein separates Kundennamensfeld). Der reservierte Bestellentwurf muss zum Telemedizin-Anbieter gehören, der mit dem API-Schlüssel verknüpft ist.Beispielanfrage
Antwort
reserved_draft_order_id verwendet wird, erstellt RxScale keinen neuen Checkout und keinen neuen Bestellentwurf. Der vorhandene reservierte Bestellentwurf wird aktualisiert und kann nach der Zahlung den normalen Shopify-Bestell- und Fulfillment-Prozess durchlaufen.
Fehlerantworten
Doppelte
prescriptions[].id:
external_order_id (auch wenn prescriptions[].id neu ist):
code entspricht der Management-API-Antwort bei doppelter Bestellannahme, sodass Retries dieselbe Behandlung nutzen können. Verwenden Sie prescription_uid mit dem Bestellungen-Endpoint, solange order_uid noch null ist (typisch direkt nach der Übermittlung, bevor Shopify die Bestellung anlegt).
Eine
prescriptions[].id oder external_order_id wird erst blockiert, wenn sie erfolgreich akzeptiert wurde. Ist eine frühere Anfrage fehlgeschlagen (zum Beispiel mit einem 4xx/5xx-Status vor Abschluss), wird ein erneutes Senden desselben Werts nicht blockiert und normal verarbeitet. Dadurch kann die Rezeptübermittlung nach einer fehlgeschlagenen oder unklaren Anfrage gefahrlos wiederholt werden — eine erneute Übermittlung einer bereits akzeptierten ID liefert 409 statt stillschweigend eine doppelte Bestellung zu erzeugen, und kann daher als idempotenter No-op statt als alarmierender Fehler behandelt werden.reserved_draft_order_id).
Behandlungs-Checkout erstellen
Erstellen Sie einen Checkout für behandlungsbasierte Bestellungen (kein Rezept erforderlich).string
erforderlich
Eindeutiger Bezeichner für den Shop
create_treatment_checkout
Anfragekörper
buyerIdentity.customerAccessToken gilt nur, wenn checkout_type auf checkout_link gesetzt ist, da Shopify dieses Feld für Storefront-Carts verwendet. Es verknüpft kein Kundenkonto mit Shopify-Bestellentwürfen.Senden Sie
buyerIdentity, wenn Sie checkout_type: "draft_order_without_checkout_request" verwenden. RxScale lehnt die Anfrage ohne dieses Feld ab, weil keine Shopify-Checkout-Anfrage gesendet wird, über die Kundendaten später erfasst werden könnten.