Einleitung
Um sicherzustellen, dass Lieferbestellungen nur angenommen werden, wenn Lieferfahrer verfügbar sind, und um genaue Schätzungen in Bezug auf die geschätzte Lieferzeit und -kosten zu erstellen, wird die Funktion Promise, also „Versprechen“, sowohl für die eigene Lieferung als auch für die DSP-Lieferung eingeführt.
Sobald der Standort der Lieferung vom Benutzer ausgewählt wurde und der oder die Läden, die an diesen Standort liefern, identifiziert wurden, sendet das System die Promise-Anfragen an diese Läden.
Wenn es sowohl Dispatch- als auch Nicht-Dispatch-Läden gibt, die an den Standort des Kunden liefern, werden Dispatch-Läden bevorzugt, sofern es für diese Läden gültige Lieferversprechen gibt.
Die Promise-Antworten werden verglichen – jede Promise-Antwort enthält ein Promise-Token, einen Preis und eine Zeit.
Hier ist ein allgemeines Diagramm, das eine Prozessübersicht für diesen Fall darstellt:
Wie funktioniert das?
Versprechenserstellung je nach Laden
Die Versprechenserstellung erfolgt je nach Laden, da der Laden nach dem Liefergebiet ausgewählt wurde. Außerdem werden die Kostenvoranschläge anhand der Nähe des Fahrers zum Laden und zum Kunden erstellt. Jeder Laden kann seine bevorzugte Lieferung auswählen – die schnellste oder die billigste. Der Laden generiert ein Promise, also ein Versprechen, basierend auf den aktuellen Informationen über verfügbare Fahrer und DSPs.
Für die billigste Variante:
- Sowohl für ASAP- (Sofort) als auch für scheduled orders (vorgeplante Bestellungen) – eigene Fahrer werden immer bevorzugt. Wenn keine freien Fahrer verfügbar sind, wird die neue Route für jenen Fahrer geplant, der am frühesten frei wird, und die geschätzte Lieferzeit wird wie folgt berechnet:
- Zeit für den Fahrer, um von seiner aktuellen Lieferroute zurückzukehren + Zeit, um alle verbleibenden, zuvor geplanten Routen zu beenden + Pufferzeit (CMS-basiert) + 3 Minuten + geschätzte Lieferzeit zum Kunden
- Wenn für den aktuellen Laden keine eigenen Fahrer verfügbar sind, werden die DSP-Lieferversprechen analysiert: Jeder DSP liefert ein Versprechen, das geschätzte Lieferzeit, geschätzte Abholzeit und Kosten enthält.
- Die Kosten werden verglichen und das günstigste Versprechen wird ausgewählt
- Wenn ein DSP nicht in der Lage ist, eine Schätzung der Lieferkosten abzugeben, wird er aus dem Vergleich entfernt.
- Wenn mehrere DSPs keine geschätzten Lieferkosten angeben oder kein DSP die geschätzten Lieferkosten angibt, wird der erste in der Liste ausgewählt und das Versprechen enthält einen „Null“-Wert für die Lieferkosten;
- Wenn keine eigenen Fahrer oder DSPs verfügbar sind, ist das Versprechen leer.
Für die schnellste Variante:
-
Sowohl bei ASAP- als auch bei vorgeplanten Bestellungen – Eigene Fahrer werden bevorzugt, falls eigene Fahrer für die Lieferung verfügbar sind
-
Die geschätzte Lieferzeit wird für jeden verfügbaren Fahrer berechnet und die schnellste geschätzte Lieferzeit wird in das Versprechen aufgenommen;
-
Falls eigene Fahrer gerade unterwegs oder nicht verfügbar sind, analysiert der Promise-Algorithmus die DSP-Optionen
-
Jeder DSP gibt ein Versprechen ab, das die geschätzte Lieferzeit, die geschätzte Abholzeit und die Kosten enthält
-
Die geschätzten Lieferzeiten werden verglichen und die schnellste geschätzte Lieferzeit wird zum Versprechen hinzugefügt
-
Einige DSPs bieten keine geschätzten Lieferzeiten an. In diesem Fall geben sie einen „Null“-Wert zurück und werden vom Vergleich ausgeschlossen.
-
Wenn mehrere DSPs keine geschätzte Lieferzeit angeben und es keinen verfügbaren DSP mit einer geschätzten Lieferzeit gibt, wird ein „Null“-Wert für das Versprechen verwendet
-
Wenn für den aktuellen Laden keine DSPs aktiviert sind oder keine DSPs verfügbar sind, wird die neue Route für den Fahrer geplant, der am frühesten frei wird, und die geschätzte Lieferzeit wird auf folgende Weise berechnet:
-
Zeit für den Fahrer, um von seiner aktuellen Lieferroute zurückzukehren + Zeit, um alle verbleibenden, zuvor geplanten Routen zu beenden + Pufferzeit (CMS-basiert) + 3 Minuten + geschätzte Lieferzeit zum Kunden
-
-
Wenn keine eigenen Fahrer oder DSPs verfügbar sind, ist das Versprechen leer.
Vergleich der Versprechen
-
Die Versprechen der Läden, die an den ausgewählten Ort liefern können, werden verglichen und dann wird das beste Versprechen ausgewählt, je nachdem, was der Kunde bevorzugt: das billigste oder das schnellste.
-
Die Versprechen, die Nullwerte für das entsprechende Feld – geschätzte Lieferzeit oder Kosten – enthalten, werden aus dem Vergleich herausgenommen
-
Wenn das System zwischen mehreren gleichen Optionen wählen muss, wird die erste Option in der Liste bevorzugt
Ablauf der Versprechensüberprüfung
Sobald der Kunde die Auswahl der Artikel für seine Bestellung abgeschlossen hat, wird er zur Zahlungsseite weitergeleitet. Während dieser Weiterleitung sollte überprüft werden, ob das Versprechen noch gültig ist:
-
Das System führt einen weiteren Promise-Aufruf für den ausgewählten Laden durch
- Das Versprechen wird erstellt und danach, falls das Versprechen nicht leer ist, mit dem vorherigen Versprechen verglichen. Wenn die Token übereinstimmen, ist das Versprechen noch gültig
- Stimmen die Token nicht überein, wurde das Versprechen aktualisiert und es wird eine weitere Überprüfung durchgeführt, sollten die Zeit/Kosten immer noch gleich sein.
- Wenn sich die Zeit und die Kosten geändert haben, werden die aktualisierten Informationen dem Benutzer angezeigt, und er muss die aktualisierte Zeit und die Kosten bestätigen.
- Wenn das neue Versprechen nicht erstellt werden konnte, informiert die Web-App oder die mobile App den Benutzer darüber, dass die Lieferung in diesem Laden im Moment nicht verfügbar ist.
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.