NAV
shell

Einführung

Dieses Dokument ist die offizielle Referenz für die OptimoRoute Web Service Application Programming Interface (WS API).

Unsere Webdienst-API basiert auf HTTP

Die Methoden zum Abrufen von Daten aus unserer Webdienst-API erfordern eine HTTP-GET-Anfragemethode.

Die Methoden, die Daten einreichen, ändern oder löschen, erfordern eine POST-Anfragemethode.

Die API-Methoden geben einen Fehler zurück, wenn die Anfrage nicht mit der korrekten HTTP-Methode erfolgt.

Wir verwenden JSON für den strukturierten Datenaustausch

Unsere API verwendet das JSON (JavaScript Object Notation) Format.

Weitere Informationen zu JSON und wie es funktioniert, finden Sie hier: http://json.org/ und hier: http://en.wikipedia.org/wiki/JSON.

Es gibt viele leicht verfügbare Bibliotheken, um in das JSON-Format zu konvertieren und davon zu konvertieren, sowohl für populäre als auch für ungewöhnlichere Programmiersprachen.

SSL ist erforderlich

Die Nutzung von SSL (https) ist erforderlich, um zu vermeiden, dass der Authentifizierungsschlüssel und potenziell vertrauliche Daten im Klartext über das Web übertragen werden.

Begrenzte Anzahl gleichzeitiger Anfragen

Die maximale Anzahl gleichzeitiger Webdienst-API-Anfragen für ein Konto oder eine IP-Adresse ist auf 5 begrenzt.

Allgemeine Fehlercodes

Die folgenden Fehlercodes sind für alle API-Operationen anwendbar:

Fehlercode Beschreibung
AUTH_KEY_MISSING der Authentifizierungsschlüssel fehlt
AUTH_KEY_UNKNOWN ein falscher Authentifizierungsschlüssel wurde angegeben
MALFORMED_REQUEST etwas ist mit der Eingabe falsch
ERR_MISSING_MAND_FIELD eines der Pflichtfelder fehlt
ERR_INVALID_PARAM_FORMAT eines der angegebenen Felder hat ein ungültiges Format
ERR_TOO_MANY_CONNECTIONS es gibt zu viele gleichzeitige Anfragen
ERR_INTERNAL ein interner Serverfehler ist aufgetreten

Es gibt auch spezifische Fehlercodes, die im Abschnitt Fehler- und Warncodes jeder Methode beschrieben sind.

Fehlercodes bei Massenoperationen

Bei Massenoperationen gibt es mehrere Fehlermodi. Zum Beispiel, wenn eine Massenoperation bei Bestellungen durchgeführt wird:

Zusätzliche Felder in den Antwortnachrichten zulassen

Zusätzliche Felder könnten in Zukunft zu den JSON-Antwortnachrichten hinzugefügt werden, daher sollte Ihr Client-Code zusätzliche Felder ignorieren.  

Authentifizierung

Der OptimoRoute Webdienst-API-Authentifizierungsschlüsselparameter ist bei allen API-Anfragen erforderlich, zusätzlich zu allen Standardparametern.

Um die API zu aktivieren und den API-Schlüssel zu generieren, melden Sie sich bitte in der OptimoRoute-Webanwendung an. Wählen Sie im Abschnitt Administration die Option Einstellungen -> WS API aus und aktivieren Sie die API. Der API-Schlüssel wird für Sie generiert.

Die Webdienst-API ist auch während der kostenlosen Testphase verfügbar.

Datenobjekte

Einige Endpunkte in der API teilen Definitionen von Objekten, die in der Anfrage und der Antwort gesendet werden.

Bestellobjekt

Beispiel Bestellobjekt

{
  "orderNo": "ORD001",
  "id": "6671978a86b19d18c69cc934315cb100",
  "date": "2018-11-12",
  "duration": 60,
  "priority": "M",
  "type": "T",
  "load1": 1,
  "load2": 0,
  "load3": 0,
  "load4": 0,
  "assignedTo": {"externalId": "DRV001", "serial": "001"},
  "location": {
    "locationNo": "LOC001",
    "address": "393 Hanover St, Boston, MA 02113, USA",
    "locationName": "Green Cross Pharmacy North End",
    "latitude": 42.365142,
    "longitude": -71.052882,
    "checkInTime": 0,
    "notes": ""
  },
  "timeWindows": [{
      "twFrom": "11:00",
      "twTo": "17:00"
  }],
  "allowedWeekdays": ["mon", "tue", "wed", "thu", "fri"],
  "allowedDates": {},
  "allowedDateTimes": [{
      "from": "2019-12-10T07:39:00",
      "to": "2019-12-15T19:39:00"
  }],
  "skills": ["SK001"],
  "vehicleFeatures": [],
  "notes": "",
  "email": "john.doe@example.com",
  "phone": "",
  "customField1": "",
  "customField2": "",
  "customField3": "",
  "customField4": "",
  "customField5": "",
  "notificationPreference": "email"
}
Eigenschaft Typ Beschreibung
id string Die schreibgeschützte eindeutige Kennung der Bestellung, die von OptimoRoute zugewiesen wird. Wenn diese Eigenschaft in Anfragen gesendet wird, wird sie verwendet, um die zu aktualisierende, zu löschende oder abzurufende Bestellung zu finden und hat Vorrang vor orderNo.
orderNo string Eine vom Benutzer angegebene Bestellnummer, die auch in der Webanwendung angezeigt wird. Wenn id nicht in den WS API-Anfragen verwendet wird, werden Bestellungen anhand dieser Kennung abgeglichen, und sie kann verwendet werden, um Bestellungen zu aktualisieren, zu löschen oder abzurufen.
relatedOrderNo string oder null orderNo der zugehörigen Bestellung. Wird verwendet, um Abholungen und Lieferungen in Situationen zu verknüpfen, in denen Waren direkt von einem Kundenstandort zu einem anderen transportiert werden.
Beim Erstellen von Bestellungen sollte die Beziehung nur bei der zweiten zu erstellenden Bestellung angegeben werden (die erste Bestellung muss bereits im System vorhanden sein, damit sie referenziert werden kann).
Der Standardwert ist null, was bedeutet, dass die Bestellung mit keiner anderen Abholung/Lieferung verknüpft ist.
relatedId string oder null id der zugehörigen Bestellung. Siehe relatedOrderNo oben für Details zu verwandten Bestellungen.
date datum (string) Bestelldatum.
JJJJ-MM-TT Format, zum Beispiel 2013-12-20.
location Standortobjekt Liefer-/Dienststandort. Siehe Standortobjekt.
type string enum Bestellungstyp: D (Lieferung), P (Abholung) oder T (Aufgabe).
duration dezimal Die Zeit in Minuten, die erforderlich ist, um die Waren zu entladen oder eine Aufgabe am angegebenen Standort auszuführen. Wenn nicht angegeben, verwenden neu erstellte Bestellungen den in OptimoRoute konfigurierten Standardwert.
timeWindows Liste von Zeitfenstern Liste von Zeitfenstern, in denen der Auftrag ausgeführt werden kann.
Jedes Zeitfenster ist ein Objekt mit den Feldern twFrom und twTo. Beide Zeiten sind im 24-Stunden-Format (militärische Zeit) und liegen im Bereich von 00:00 bis 23:59.
twFrom gibt die früheste erlaubte Zeit für den Beginn des Dienstes an (wenn der Fahrer zu früh ankommt, muss er warten). twTo gibt die Frist an, um den Dienst zu beenden.
Beispiel:
[{"twFrom": "10:00", "twTo": "14:00"}].
Standard ist [], was bedeutet, dass es keine Zeitfenster gibt.
allowedWeekdays Liste von Strings Beschränkt die Wochentage, an denen der Auftrag geplant werden kann:
sun, mon, tue, wed, thu, fri, sat.
Zum Beispiel, wenn der Auftrag am Montag oder Dienstag geplant werden kann, sollte der Wert sein:
["mon", "tue"].
Standardmäßig sind alle Wochentage erlaubt.
allowedDates Datum-Bereichsobjekt Beschränkt die Daten, an denen der Auftrag geplant werden kann.
Der Datumsbereich wird als Objekt mit den Feldern from und to angegeben, zum Beispiel:
{"from": "2018-06-01", "to": "2018-07-01"}
Der Standard ist ein leeres Objekt {}, was keine Einschränkung bedeutet.
allowedDateTimes Liste von Datum-Zeitfenstern Liste von Datum-Zeitfenstern, in denen der Auftrag ausgeführt werden kann.
Jedes Objekt kann die Felder from und/oder to enthalten, die entweder Datum-Zeit-Strings oder null sind. Strings sind im Format YYYY-MM-DDTHH:MM:SS, z.B. 2020-01-30T15:54:02. Das Feld from definiert die früheste Zeit, um den Dienst zu beginnen, und to definiert die späteste Zeit, um den Dienst zu beginnen. Wenn nur ein Ende der Einschränkung angegeben wird, wird das andere als null angenommen, was bedeutet, dass es nicht eingeschränkt ist.
Beispiel:
[{"from": "2019-12-26T00:00:00", "to": "2019-12-31T23:59:59"}].
Standard ist [], was keine Einschränkung bedeutet.
assignedTo Objekt oder null Ein Objekt mit den String-Eigenschaften serial oder externalId, die den Fahrer eindeutig identifizieren, dem dieser Auftrag zugewiesen werden muss. Beispiel: {"serial": "102"} oder {"externalId": "444"}. Die Einstellung dieses Feldes zwingt dazu, dass dieser Auftrag von dem angegebenen Fahrer ausgeführt wird. Ein null-Wert bedeutet keine Zuordnung, was der Standard ist.
priority string Auftragspriorität, standardmäßig M. Werte können sein:
L – Niedrig
M – Mittel
H – Hoch
C – Kritisch
Hochpriorisierte Aufträge werden früher geplant und es ist weniger wahrscheinlich, dass sie unplanmäßig bleiben, wenn nicht alle Aufträge ausgeführt werden können.
load1 dezimal Die Lastanforderungen des Auftrags, d.h. wie viele Ladeeinheiten (Anzahl der Boxen, Kilos, Pfund, Liter usw.) geliefert werden sollen.
Die Bedeutung dieses Eintrags hängt von der bereitgestellten Konfiguration der Lade-/Kapazitätsbeschränkungen ab.
Standardwert ist 0.
load2 dezimal Siehe load1.
load2 dezimal Siehe load1.
load3 dezimal Siehe load1.
vehicleFeatures Liste von Strings Die Fahrzeugmerkmale, die verwendet werden, um einige Fahrzeuge von anderen zu unterscheiden. Die erforderlichen Fahrzeugmerkmale werden als Liste von Fahrzeugmerkmalscodes definiert. Standardwert ist eine leere Liste [].
skills Liste von Strings Die Fahrfähigkeiten, die verwendet werden, um einige Fahrer von anderen zu unterscheiden. Die erforderlichen Fähigkeiten werden als Liste von Fähigkeitscodes definiert. Standardwert ist eine leere Liste [].
notes string Die optionale Notiz, die die Anweisungen des Fahrers begleitet. Notizen haben keinen Einfluss auf den Optimierungsprozess. Ein freies Format für Zeichenketten.
customField1 string Wert, der im benutzerdefinierten Feld #1 gespeichert wird, standardmäßig leer.
customField2 string Wert, der im benutzerdefinierten Feld #2 gespeichert wird, standardmäßig leer.
customField3 string Wert, der im benutzerdefinierten Feld #3 gespeichert wird, standardmäßig leer.
customField4 string Wert, der im benutzerdefinierten Feld #4 gespeichert wird, standardmäßig leer.
customField5 string Wert, der im benutzerdefinierten Feld #5 gespeichert wird, standardmäßig leer.
customFields Benutzerdefiniertes Feldobjekt Ein Objekt, das benutzerdefinierte Felder enthält. Siehe Benutzerdefiniertes Feldobjekt.
email string Kunden-E-Mail. Wenn aktiviert, können Auftragsbenachrichtigungen an diese E-Mail gesendet werden. Standardmäßig leer.
phone string Kundentelefonnummer. Standardmäßig leer.
notificationPreference string enum Definiert die Zustellmethode für Auftragsverfolgungsbenachrichtigungen für diesen Auftrag. Benachrichtigungen werden nur gesendet, wenn dieses Konto die Auftragsverfolgung konfiguriert hat.
Erlaubte Werte:
dont_notify – keine Benachrichtigungen senden
email – Benachrichtigung an die in das E-Mail-Feld angegebene E-Mail-Adresse senden
sms – Textnachricht an die im Telefonfeld angegebene Nummer senden
both – sowohl E-Mail- als auch SMS-Benachrichtigungen senden
Standard ist both.
barcode Liste von Barcode-Objekten
optional
Liste der Barcodes, die dem Auftrag zugeordnet sind.
Jeder Barcode ist ein Objekt mit einem barcode-Feld. Der Wert ist eine beliebige Zeichenkette.
Beispiel:
[{"barcode": "12345678"}].
Wenn keine Barcodes dem Auftrag zugeordnet sind, wird das Ergebnis ein leeres Array zurückgeben. Nur vorhanden, wenn die Liefernachweis-Funktion verfügbar ist.

Standortobjekt

Standortobjekt-Beispiel mit GPS-Koordinaten:

{
  "address": "1350 N High St, Columbus, OH 43201, USA",
  "latitude": 39.9892,
  "longitude": -83.0054,
  "locationName": "Colorado pharmacy 033",
  "locationNo": "COL033",
  "valid": true,
  "notes": "GATE CODE 4412",
  "checkInTime": 3
}
Eigenschaft Typ / Standard Beschreibung
locationNo string Die eindeutige Kennung für den gegebenen Standort.
locationName string Standortname.
address string Die vollständige Adresse einschließlich des Landes, zum Beispiel 393 Hanover St, Boston, MA 02113, US
latitude dezimal Standort-Breitengrad.
longitude dezimal Standort-Längengrad.
valid boolean Schreibgeschütztes Attribut, nur in den Antworten verwendet. Wenn es in einer Anfrage gefunden wird, wird es ignoriert. Gibt zurück "true", wenn der Standort gültig ist. Gibt zurück "false", wenn der Standort ungültig ist. Ungültige Standorte sind diejenigen, die keinen bekannten Breitengrad und Längengrad haben (z.B. wurden sie durch Angabe einer Adresse erstellt, die nicht geokodiert werden konnte).
Standardmäßig akzeptiert das System beim Erstellen von Aufträgen und Standorten keine fehlerhaften oder unvollständigen Adressen und gibt einen Fehler zurück. Durch die Verwendung der storeInvalid-Flagge (aus zusätzlichen Standortobjekt-Parametern bei der Erstellung der Bestellung) wird verhindert, dass ein Fehler auftritt, und es können ungültige Standorte und zugehörige Aufträge in OptimoRoute gespeichert werden. Auf diese Weise können die problematischen Adressen in OptimoRoute korrigiert werden, jedoch können Aufträge mit ungültigen Standorten nicht Teil eines Plans sein, bis diese Standorte korrigiert sind.
Ungültige Standorte werden die Eigenschaften latitude und longitude in der Antwort enthalten, aber deren Werte sollten nicht berücksichtigt werden.
checkInTime integer Minimale Wartezeit am Standort (in Minuten). Wenn nicht angegeben, verwenden neu erstellte Standorte den in OptimoRoute konfigurierten Standardwert (standardmäßig Null). Bei Ankunft am Standort verbringt der Fahrer mindestens die checkInTime Minuten, bevor er mit dem Service von einem oder mehreren aufeinanderfolgenden Aufträgen am selben Ort beginnt.
Beispiel: wenn wir 3 Aufträge am selben Standort haben:
  • A: Dauer 10min, Check-In-Zeit 15min
  • B: Dauer 5min, Check-In-Zeit 15min
  • C: Dauer 20min, Check-In-Zeit 15min
Wenn ein Fahrer alle drei Aufträge nacheinander bedient, würde der Fahrer am Standort ankommen, 15 Minuten am Standort verbringen (zum Beispiel parken und einchecken) und dann mit der Ausführung der Aufträge A, B und C beginnen. Die Gesamtzeit am Standort würde 50min betragen = 15min (gemeinsame Dauer) + 10min (Auftrag A) + 5min (Auftrag B) + 20min (Auftrag C).
notes string Optionale Notizen zu diesem Standort.

Ausgewähltes Fahrerobjekt

Verwenden Sie entweder driverExternalId oder driverSerial (ein Feld reicht aus):

Eigenschaft Typ / Standard Beschreibung
driverExternalId
optional
string
-
Die externe Kennung, die dem Fahrer in der Fahreradministration zugewiesen wurde.
driverSerial
optional
string
-
Die Seriennummer des Fahrers.

Zeitobjekt

Eigenschaft Typ Beschreibung
unixTimestamp
mandatory
integer Anzahl der Sekunden, die seit dem 00:00 UTC am 1. Januar 1970 vergangen sind.
utcTime
mandatory
ISO 8601-Datum (string) Das UTC-Datum und die Uhrzeit
localTime
mandatory
ISO 8601-Datum (string) Die lokale Zeit

Die Felder unixTimestamp, utcTime und localTime beziehen sich alle auf denselben Moment, sodass Sie dasjenige verwenden können, das am praktischsten ist.

Benutzerdefiniertes Feldobjekt

Das Benutzerdefinierte Feldobjekt kann beliebig viele Eigenschaften enthalten, wobei jeder Eigenschaftenname mit dem Schlüssel eines benutzerdefinierten Feldes übereinstimmt, das in OptimoRoute konfiguriert ist.

Benutzerdefiniertes Feldobjekt-Beispiel (fruit_type ist vom Typ Einzelauswahl, wobei apple ein Optionsschlüssel ist, quantity ist vom Typ Zahl mit 0 Dezimalstellen, purity ist vom Typ Zahl mit 2 Dezimalstellen und instructions ist vom Typ Text):

{
  "fruit_type": "apple",
  "quantity": 100,
  "purity": 99.99,
  "instructions": "Deliver to the customer's door."
}
Eigenschaft Typ Beschreibung
{custom_field_key} string oder dezimal oder boolean Wenn das benutzerdefinierte Feld mit dem Typ Text oder Zahl konfiguriert ist, wird der bereitgestellte Wert in den entsprechenden Typ konvertiert, wenn möglich.
Wenn das benutzerdefinierte Feld mit dem Typ Einzelauswahl konfiguriert ist, muss der Wert genau mit einem der für dieses Feld konfigurierten Optionsschlüssel übereinstimmen.

HINWEIS: Kontaktieren Sie den OptimoRoute-Support, um die neuen benutzerdefinierten Felder zu aktivieren. Legacy-Benutzerdefinierte Felder (benutzerdefinierte Felder mit Schlüsseln custom_field_1 bis custom_field_5) sollten nicht in diesem Objekt enthalten sein - diese werden mit den separaten Feldern im Bestellobjekt (customField1 bis customField5) eingestellt.

Bestellung erstellen

Erstellt eine neue Bestellung im System oder aktualisiert eine vorhandene Bestellung.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/create_order

reqbody.json ist eine lokale Datei, die die zu sendenden JSON-Daten enthält.
Stellen Sie sicher, AUTH_KEY mit Ihrem API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/create_order?key=AUTH_KEY'

Parameter

Beispiel für Anforderungskörper:

{
  "operation": "CREATE",
  "orderNo": "ORD001",
  "type": "D",
  "date": "2014-10-14",
  "location": {
    "address": "393 Hanover St, Boston, MA 02113, USA",
    "locationNo": "LOC001",
    "locationName": "Green Cross Pharmacy North End",
    "acceptPartialMatch": true
  },
  "duration": 20,
  "twFrom": "10:00",
  "twTo": "10:59",
  "load1": 10,
  "load2": 25,
  "vehicleFeatures": ["FR"],
  "skills": ["SK001", "SK002"],
  "notes": "Deliver at back door"
}

Zusätzlich zu den Eigenschaften des Bestellobjekts sind folgende Eigenschaften verfügbar:

Eigenschaft Typ Beschreibung
operation string enum CREATE – erstellt eine neue Bestellung im System.

UPDATE – aktualisiert eine vorhandene Bestellung im System. Wenn die Bestellung nicht existiert, gibt das System einen Fehler zurück.

SYNC – wird empfohlen, wenn das Endziel darin besteht, sicherzustellen, dass Bestellungen in OptimoRoute reflektiert werden. Wenn dies eine neue Bestellung ist, werden wir sie erstellen. Wenn eine vorhandene Bestellung im System existiert, wird sie aktualisiert. SYNC sorgt für eine saubere Synchronisierung der Bestelldaten. Alles, was wir zu dieser Bestellung haben, wird durch die Daten ersetzt, die Sie uns bei SYNC senden.

MERGE – wird verwendet, um nur bestimmte Felder zu aktualisieren und alle anderen Felder unverändert zu lassen (zum Beispiel, wenn einige Felder manuell in OptimoRoute bearbeitet wurden und nicht aktualisiert werden sollen). Wenn dies eine neue Bestellung ist, werden wir sie erstellen. Wenn eine vorhandene Bestellung im System existiert, wird sie aktualisiert.

Für andere als CREATE-Operationen wird die Bestellung nach ihrer eindeutigen id gesucht, wenn in der Anfrage verwendet, oder orderNo, wenn id nicht verwendet wird.
acceptDuplicateOrderNo boolean Wenn auf true gesetzt, akzeptiert das System Bestellungen mit orderNo, die bereits im System vorhanden sind. Bei false oder nicht angegeben, gibt das System einen Fehler zurück.
twFrom Zeit (string) Veraltet, bitte das Feld timeWindows verwenden; ignoriert, wenn timeWindows gesetzt ist.

Die früheste Zeit, zu der der Service begonnen werden darf (wenn der Fahrer zu früh ankommt, muss er warten).
24-Stunden-Format (militärische Uhrzeit), zum Beispiel: 16:00
Die gültigen Werte liegen zwischen 00:00 und 23:59.
twTo Zeit (string) Veraltet, bitte das Feld timeWindows verwenden; ignoriert, wenn timeWindows gesetzt ist.

Die Frist, um den Service zu beenden.
24-Stunden-Format (militärische Uhrzeit), zum Beispiel 17:00
Die gültigen Werte liegen zwischen 00:00 und 23:59.

Die Eigenschaft operation ist obligatorisch. Wenn operation als UPDATE angegeben ist, sind einer von orderNo oder id obligatorisch, ansonsten sind die obligatorischen Eigenschaften date, type, location und einer von orderNo oder id.

Standortobjekt

Beispiel für ein Standortobjekt, das die Adresse zur Geokodierung angibt und jedes Resultat akzeptiert:

{
  "address": "1350 N High St, Columbus, OH 43201, USA",
  "acceptPartialMatch": true,
  "acceptMultipleResults": true
}

Zusätzlich zu den Eigenschaften aus dem Standortobjekt sind folgende Eigenschaften verfügbar:

Eigenschaft Typ Beschreibung
acceptMultipleResults boolean Wird nur verwendet, wenn ein neuer Standort durch Geokodierung des address-Felds erstellt wird. Wenn false oder nicht angegeben, akzeptiert das System keine geokodierten Adressen, bei denen mehrere Ergebnisse zur angegebenen Adresse gefunden wurden und ein Fehler wird ausgegeben.
acceptPartialMatch boolean Wird nur verwendet, wenn ein neuer Standort durch Geokodierung des address-Felds erstellt wird. Wenn false oder nicht angegeben, akzeptiert das System keine geokodierten Adressen, die nur eine teilweise Übereinstimmung waren (niedrigere Geokodierungsgenauigkeit) und es wird ein Fehler ausgegeben.
storeInvalid boolean Wird nur verwendet, wenn ein neuer Standort durch Geokodierung des address-Felds erstellt wird. Wenn false oder nicht angegeben, gibt das System einen Fehler aus, wenn die angegebene Adresse fehlerhaft oder unvollständig ist (es wurde keine Adresse gefunden, die der angegebenen entspricht). Wenn dieser Parameter auf true gesetzt ist, wird unvollständige Standortinformation gespeichert, die später korrigiert werden kann. Bis der Standort korrigiert ist, wird die Planung von Bestellungen mit diesem Standort nicht möglich sein.

Ein Standort ist durch einen der folgenden Punkte definiert:

Antwort

Antwort auf die Beispielanfrage:

{
  "success": true,
  "id": "8cde6711026ff11f79f15a719277fe26",
  "location": {
    "notes": "",
    "longitude": -71.0528824,
    "locationName": "Green Cross Pharmacy North End",
    "locationNo": "LOC001",
    "address": "393 Hanover St, Boston, MA 02113, USA",
    "latitude": 42.3651425,
    "valid": true,
    "checkInTime": 0
  },
  "geocodingResults": [
    [
      "393 Hanover St, Boston, MA 02113, USA",
      42.3651425,
      -71.0528824
    ]
  ]
}
Eigenschaft Typ / Standard Beschreibung
success
obligatorisch
boolean
-
true, wenn die Bestellung gespeichert wurde, false, wenn ein Fehler aufgetreten ist.
code
optional
string
-
Ein Fehlercode oder ein Warnungscode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
string
-
Eine Fehlerbeschreibung oder eine Warnungsbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).
id
optional
string
-
Die schreibgeschützte eindeutige Kennung der Bestellung, die von OptimoRoute zugewiesen wurde.
location
optional
Standortobjekt
-
Die Standortinformationen für die erstellte Bestellung (nur wenn die Operation erfolgreich war).
geocodingResults
optional
Liste
-
Die Liste der Geokodierungsergebnisse, wenn der Standort aus der angegebenen Adresse erstellt wird.
Jedes Geokodierungsergebnis wird definiert als:
[geocodedAddress, latitude, longitude, partialMatchFlag]

Fehler- und Warnungscodes

Die folgenden Fehlercodes sind für die Bestellung erstellen-Methode anwendbar:

Fehlercode Beschreibung
ERR_ORD_EXISTS eine Bestellung mit der angegebenen orderNo existiert bereits im System (nur überprüft, wenn das orderNo-Feld gesetzt ist)
ERR_RELATED_ORD_MISSING die Bestellung mit der in relatedOrderNo übergebenen ID existiert nicht
ERR_RELATED_ORD_MULTIPLE mehrere Bestellungen mit der in relatedOrderNo übergebenen ID existieren
ERR_RELATED_ORD_LINK Bestellung kann nicht mit Bestellung mit der in relatedOrderNo übergebenen ID verknüpft werden (nur Abholung und Lieferung können verknüpft werden)
ERR_DRV_NOT_EXISTS der Fahrer mit der in assignedTo übergebenen Seriennummer existiert nicht
ERR_DRV_MULTIPLE es gibt mehr als einen Fahrer mit der assignedTo-Seriennummer
ERR_LOC_NOT_VALID der angegebene Standort ist nicht gültig
ERR_LOC_GEOCODING die angegebene Adresse konnte nicht geokodiert werden
ERR_LOC_GEOCODING_MULTIPLE mehrere Ergebnisse wurden während der Geokodierung gefunden
ERR_LOC_GEOCODING_PARTIAL der Geokodierer lieferte keine genaue Übereinstimmung für die ursprüngliche Anfrage
ERR_LOC_NON_EXISTING_LOC der in locationNo angegebene Standort existiert nicht
ERR_LOC_MULTIPLE_LOC mehrere Standorte mit angegebenem locationNo wurden gefunden
ERR_VF_NOT_EXISTS das Fahrzeugmerkmal existiert nicht (für einen der im vehicleFeatures-Feld angegebenen Codes)
ERR_VF_MULTIPLE mehrere Fahrzeugmerkmale existieren (für einen der im vehicleFeatures-Feld angegebenen Codes)
ERR_SK_NOT_EXISTS die Fähigkeit existiert nicht (für einen der im skills-Feld angegebenen Codes)
ERR_SK_MULTIPLE mehrere Fähigkeiten existieren (für einen der im skills-Feld angegebenen Codes)
WAR_LOC_GEOCODING die angegebene Adresse konnte nicht geokodiert werden (aber die Bestellung wurde erstellt, da storeInvalid auf True gesetzt war)
WAR_LOC_GEOCODING_MULTIPLE mehrere Ergebnisse wurden während der Geokodierung gefunden (aber die Bestellung wurde erstellt, da acceptMultipleResults auf True gesetzt war)
WAR_LOC_GEOCODING_PARTIAL der Geokodierer lieferte keine genaue Übereinstimmung für die ursprüngliche Anfrage (aber die Bestellung wurde erstellt, da acceptPartialMatch auf True gesetzt war)

Erstellen oder Aktualisieren von Aufträgen (Massenverarbeitung)

Erstellen, aktualisieren oder ersetzen Sie einen oder mehrere Aufträge im System.

Beachten Sie, dass die Geokodierung von Adressen in diesem Aufruf nicht verfügbar ist. Die Standorte für Aufträge müssen entweder im System existieren oder mittels Breiten- und Längengradkoordinaten angegeben werden. Geokodierung ist verfügbar bei Auftrag Erstellen.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/create_or_update_orders

reqbody.json ist eine lokale Datei, die die zu postenden JSON-Daten enthält. Stellen Sie sicher, AUTH_KEY durch Ihren API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/create_or_update_orders?key=AUTH_KEY'

Parameter

Beispiel für einen Anfrageinhalt:

{
  "orders": [
    {
      "orderNo": "54913250",
      "date": "2019-03-22",
      "duration": 60,
      "priority": "H",
      "type": "T",
      "assignedTo": {"externalId": "DRV001", "serial": "001"},
      "location": {
        "locationNo": "G402333",
        "address": "393 Hanover St, Boston, MA 02113, USA",
        "locationName": "Green Cross Pharmacy North End",
        "latitude": 42.365142,
        "longitude": -71.052882,
        "checkInTime": 0,
      },
      "timeWindows": [{
        "twFrom": "11:00",
        "twTo": "17:00"
      }],
      "allowedWeekdays": ["mon", "tue", "wed", "thu", "fri"],
      "allowedDates": {},
      "skills": ["SK001"],
      "vehicleFeatures": [],
      "notes": "Manager benachrichtigen",
      "email": "joe.customer@example.com",
      "phone": "",
      "customField1": "300",
      "notificationPreference": "email"
    },
    {
      "orderNo": "27463225",
      "date": "2019-03-22",
      "duration": 10,
      "type": "D",
      "load1": 1,
      "location": {
        "locationNo": "999999999",
      },
    },
    {
      "orderNo": "09463221",
      "date": "2019-03-22",
      "duration": 10,
      "type": "D",
      "load1": 1,
      "location": {
        "notes": "",
        "locationNo": "R384892",
        "locationName": "Moe's Southwest Grill",
        "longitude": -71.7520717,
        "latitude": 42.2752323,
        "notes": "Tor benutzen"
      },
    }
  ]
}
Eigenschaft Typ / Standardwert Beschreibung
orders
verpflichtend
Liste von Auftragsobjekten
-
Liste von einem oder mehreren Auftragsobjekten, die im System erstellt, aktualisiert oder ersetzt werden sollen. Maximal 500 Aufträge können angegeben werden.

Auftragsobjekt

Zusätzlich zu Eigenschaften des Auftragsobjekts sind folgende Eigenschaften verfügbar:

Eigenschaft Typ Beschreibung
operation Zeichenketten-Enum MERGE – wird verwendet, um nur bestimmte Felder zu aktualisieren und alle anderen Felder unverändert zu lassen (zum Beispiel, wenn einige Felder manuell in OptimoRoute bearbeitet wurden und nicht aktualisiert werden sollten). Wenn dies ein neuer Auftrag ist, wird er erstellt. Wenn es einen bestehenden Auftrag im System gibt, wird dieser aktualisiert.

SYNC – empfohlen, wenn das Endziel darin besteht, sicherzustellen, dass Aufträge in OptimoRoute reflektiert werden. Wenn dies ein neuer Auftrag ist, wird er erstellt. Wenn es einen bestehenden Auftrag im System gibt, wird dieser aktualisiert. SYNC sorgt für eine saubere Synchronisation der Auftragsdaten. Was auch immer wir zu diesem Auftrag haben, wird durch die Daten, die Sie uns bei SYNC senden, ersetzt.

CREATE – erstellt einen neuen Auftrag im System; nicht erlaubt zusammen mit id

UPDATE – aktualisiert einen bestehenden Auftrag im System. Wenn der Auftrag nicht existiert, gibt das System einen Fehler zurück.
acceptDuplicateOrderNo boolesch Wenn auf true gesetzt, erlaubt das System die Erstellung von Aufträgen mit orderNo, die bereits im System existieren. Wenn false oder nicht angegeben, gibt das System einen Fehler zurück.

Jedes im Feld orders angegebene Auftragsobjekt führt zur Erstellung, Aktualisierung oder Ersetzung eines Auftrags im System. Das genaue Verhalten für jeden Auftrag kann über operation in jedem Auftragsobjekt konfiguriert werden. Das Standardverhalten ist:

Standortobjekt

Siehe Standortobjekt für alle verfügbaren Standorteigenschaften. Standorte können erstellt oder aktualisiert werden.

Wenn locationNo angegeben ist und ein passender Standort vorhanden ist, wird dieser Standort aktualisiert. Wenn locationNo nicht übereinstimmt, wird ein neuer Standort erstellt.

Wenn locationNo nicht angegeben ist und ein bestehender Auftrag aktualisiert wird, wird der Standort des Auftrags aktualisiert.

Während der Aktualisierung wird der übereinstimmende Standort mit den im Objekt angegebenen Werten aktualisiert, falls vorhanden. Bei der Aktualisierung sind keine Eigenschaften verpflichtend. Bei der Aktualisierung mit SYNC werden die Eigenschaften auf Standardwerte zurückgesetzt; andernfalls behalten sie ihre bestehenden Werte.

In Fällen, in denen ein neuer Standort erstellt wird, sind die folgenden Eigenschaften verpflichtend: latitude, longitude und eine von locationNo, address, locationName.

Antwort

Beispiel für eine Antwort:

{
  "orders": [
    {
      "success": true,
      "id": "c821486835d2f20539a9754454f7efbe",
      "orderNo": "54913250"
    },
    {
      "success": false,
      "code": "ERR_LOC_NON_EXISTING_LOC",
      "message": "Der Standort mit der angegebenen Standortnummer existiert nicht.",
      "orderNo": "27463225",
      "locationNo": "999999999"
    },
    {
      "success": true,
      "id": "8cde6711026ff11f79f15a719277fe26",
      "orderNo": "09463221"
    }
  ],
  "success": true
}
Eigenschaft Typ / Standardwert Beschreibung
success
verpflichtend
boolesch
-
true, wenn mindestens eine Operation erfolgreich war, false, wenn alle fehlgeschlagen sind
orders
Liste von Auftragsantwortobjekten
-
Jedes Auftragsobjekt in der Liste entspricht dem jeweiligen Auftrag in der Anfrage. Für weitere Informationen siehe Abschnitt Auftragsantwortobjekt.

Auftragsantwortobjekt

Eigenschaft Typ / Standardwert Beschreibung
success
verpflichtend
boolesch
-
true, wenn die Operation erfolgreich war, false, wenn ein Fehler auftrat.
orderNo
optional
Zeichenkette
-
Identifikator des jeweiligen Auftrags
id
optional
Zeichenkette
-
Die schreibgeschützte, eindeutige Identifikationsnummer des Auftrags, vergeben von OptimoRoute
locationNo
optional
Zeichenkette
-
Identifikator des Standorts, falls ein standortbezogener Fehler aufgetreten ist
code
optional
Zeichenkette
-
Ein auftragsweise spezifischer Fehlercode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
Zeichenkette
-
Eine Fehlerbeschreibung oder eine Warnungsbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).

Fehler- und Warncodes

Die folgenden auftragsweise spezifischen Fehlercodes sind anwendbar:

Fehlercode Beschreibung
ERR_INVALID_PARAM_FORMAT der angegebene Auftrag ist nicht gültig, möglicherweise konnte ein Auftrag, der erstellt/aktualisiert werden sollte, nicht im System existieren, weil eine verpflichtende Eigenschaft fehlt
ERR_ORD_EXISTS ein Auftrag mit der angegebenen orderNo existiert bereits im System (nur bei CREATE plus orderNo)
ERR_ORD_NOT_FOUND der Auftrag mit der passenden orderNo wurde nicht gefunden (nur bei UPDATE plus orderNo, oder wenn in der Anfrage id verwendet wird)
ERR_MULTIPLE_ORD_FOUND es gibt mehrere Aufträge, die zur orderNo passen
ERR_OPT_RUNNING Optimierung läuft für diesen Auftrag
ERR_RELATED_ORD_MISSING der Auftrag mit der in relatedOrderNo angegebenen orderNo existiert nicht
ERR_RELATED_ORD_MULTIPLE multiple Aufträge mit der in relatedOrderNo angegebenen orderNo existieren
ERR_RELATED_ORD_LINK Auftrag kann nicht mit Auftrag mit der in relatedOrderNo angegebenen orderNo verknüpft werden (nur Abholungen und Lieferungen können verknüpft werden)
ERR_DRV_NOT_EXISTS der in assignedTo angegebene Fahrer existiert nicht
ERR_DRV_MULTIPLE es gibt mehr als einen Fahrer mit den angegebenen assignedTo Werten
ERR_LOC_NOT_VALID der angegebene Standort ist nicht gültig, möglicherweise konnte ein Standort, der erstellt/aktualisiert werden sollte, nicht im System vorhanden sein, weil eine verpflichtende Eigenschaft fehlt
ERR_LOC_NON_EXISTING_LOC der durch locationNo angegebene Standort existiert nicht
ERR_LOC_MULTIPLE_LOC mehrere Standorte mit der angegebenen locationNo wurden gefunden
ERR_VF_NOT_EXISTS die Fahrzeugfunktion existiert nicht (für einen der in vehicleFeatures Feld angegebenen Codes)
ERR_VF_MULTIPLE mehrere Fahrzeugfunktionen existieren (für einen der in vehicleFeatures Feld angegebenen Codes)
ERR_SK_NOT_EXISTS die Fähigkeit existiert nicht (für einen der in skills Feld angegebenen Codes)
ERR_SK_MULTIPLE mehrere Fähigkeiten existieren (für einen der in skills Feld angegebenen Codes)

Aufträge abrufen (bulk)

Ruft einen oder mehrere Aufträge aus dem System ab.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/get_orders

reqbody.json ist eine lokale Datei, die die zu postenden JSON-Daten enthält.
Stellen Sie sicher, AUTH_KEY durch Ihren API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/get_orders?key=AUTH_KEY'

Parameter

Beispiel für den Anfragetext:

{
  "orders": [
    {
      "orderNo": "ORD001"
    },
    {
      "orderNo": "ORD99"
    },
    {
      "id": "04e7b09e993e8488024f46aaf9d8c72d"
    }
  ]
}
Eigenschaft Typ / Standard Beschreibung
orders
verpflichtend
Liste von Auftrag-Objekten
-
Liste der abzurufenden Auftrag-Objekte. Jedes Auftrag-Objekt kann eines der folgenden enthalten:
  • orderNo: die vom Benutzer festgelegte Kennung eines Auftrags
  • id: die vom OptimoRoute zugewiesene eindeutige Kennung des Auftrags
Es können höchstens 500 Aufträge angegeben werden.



Zur Flexibilität kann, wenn nur orderNo verwendet wird, der Aufruf von get_orders auch als HTTP GET-Anfrage durchgeführt werden:

Beispiel für GET-Anfrage:

curl 'https://api.optimoroute.com/v1/get_orders?key=AUTH_KEY&orderNo=ORD001&orderNo=ORD99'
Eigenschaft Typ / Standard Beschreibung
orderNo
verpflichtend
Zeichenkette
-
Die vom Benutzer festgelegte Kennung eines Auftrags; kann wiederholt werden, um mehrere Aufträge abzurufen

Antwort

Beispiel für eine Antwort:

{
  "success": true,
  "orders": [
    {
      "success": true,
      "id": "04e7b09e993e8488024f46aaf9d8c72d",
      "data": {
        "orderNo": "ORD001",
        "id": "04e7b09e993e8488024f46aaf9d8c72d",
        "date": "2018-11-12",
        "duration": 60,
        "priority": "M",
        "type": "T",
        "load1": 1,
        "load2": 0,
        "load3": 0,
        "load4": 0,
        "assignedTo": {"externalId": "DRV001", "serial": "001"},
        "location": {
          "locationNo": "LOC001",
          "address": "393 Hanover St, Boston, MA 02113, USA",
          "locationName": "Green Cross Pharmacy North End",
          "latitude": 42.365142,
          "longitude": -71.052882,
          "checkInTime": 0,
          "notes": ""
        },
        "timeWindows": [{
            "twFrom": "11:00",
            "twTo": "17:00"
        }],
        "allowedWeekdays": ["mon", "tue", "wed", "thu", "fri"],
        "allowedDates": {},
        "skills": ["SK001"],
        "vehicleFeatures": [],
        "notes": "",
        "email": "",
        "phone": "",
        "customField1": "",
        "customField2": "",
        "customField3": "",
        "customField4": "",
        "customField5": "",
        "notificationPreference": "email"
      }
    },
    {
      "message": "Der Auftrag mit der passenden orderNo wurde nicht gefunden.",
      "code": "ERR_ORD_NOT_FOUND",
      "orderNo": "ORD99",
      "success": false
    },
    {
      "success": true,
      "id": "04e7b09e993e8488024f46aaf9d8c72d",
      "data": {
        "orderNo": "-",
        "id": "04e7b09e993e8488024f46aaf9d8c72d",
        "date": "2018-11-12",
        "duration": 30,
        "priority": "M",
        "type": "T",
        "load1": 2,
        "load2": 0,
        "load3": 0,
        "load4": 0,
        "assignedTo": null,
        "location": {
          "locationNo": "LOC001",
          "address": "393 Hanover St, Boston, MA 02113, USA",
          "locationName": "Green Cross Pharmacy North End",
          "latitude": 42.365142,
          "longitude": -71.052882,
          "checkInTime": 0,
          "notes": ""
        },
        "timeWindows": [],
        "allowedWeekdays": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"],
        "allowedDates": {},
        "skills": ["SK001"],
        "vehicleFeatures": [],
        "notes": "",
        "email": "",
        "phone": "",
        "customField1": "",
        "customField2": "",
        "customField3": "",
        "customField4": "",
        "customField5": "",
        "notificationPreference": "email"
      }
    },
  ]
}
Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn mindestens ein Auftrag abgerufen wurde, false, wenn keine Aufträge abgerufen wurden.
orders
verpflichtend
Liste von Auftrag-Antwortobjekten
-
Jedes Auftrag-Objekt in der Liste entspricht der jeweiligen orderNo und/oder id in der Anfrage. Weitere Informationen finden Sie im Abschnitt Auftrag-Antwortobjekt.

Auftrag-Antwortobjekt

Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn der Auftrag abgerufen wurde, false, wenn ein Fehler aufgetreten ist.
code
optional
Zeichenkette
-
Ein Fehlercode oder Warncode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
Zeichenkette
-
Eine Fehlerbeschreibung oder Warnbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).
orderNo
optional
Zeichenkette
-
Die orderNo, deren Abruf fehlgeschlagen ist. Nur vorhanden, wenn die Operation nicht erfolgreich war und orderNo in der Anfrage verwendet wurde.
id
verpflichtend
Zeichenkette
-
Die von OptimoRoute zugewiesene eindeutige Kennung des Auftrags.
data
optional
Auftrag-Objekt
-
Der abgerufene Auftrag.

Auftrag-Objekt

Im Erfolgsfall wird data ein Objekt mit den im Auftrag-Objekt aufgelisteten Eigenschaften sein.

Die zurückgegebene Eigenschaft type kann zusätzlich break oder depot sein.

Fehler- und Warncodes

Die folgenden pro Auftrag geltenden Fehlercodes sind für die Methode Aufträge Abrufen anwendbar:

Fehlercode Beschreibung
ERR_ORD_NOT_FOUND Der Auftrag mit der passenden orderNo und/oder id wurde nicht gefunden.
ERR_MULTIPLE_ORD_FOUND Es gibt mehrere Aufträge, die der orderNo entsprechen.
ERR_INVALID_PARAM_FORMAT Dieses orderNo ist ungültig.

Bestellung löschen

Entfernt eine Bestellung aus dem System.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/delete_order

reqbody.json ist eine lokale Datei mit den zu sendenden JSON-Daten. Stellen Sie sicher, dass Sie AUTH_KEY durch Ihren API-Schlüssel ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/delete_order?key=AUTH_KEY'

Parameter

Beispiel für den Anfragetext:

{
  "orderNo": "ORD001"
}
Eigenschaft Typ / Standard Beschreibung
orderNo
verpflichtend
string
-
Der vom Benutzer angegebene Bezeichner der zu löschenden Bestellung.
forceDelete
optional
boolean
false
Wenn true, werden übliche Beschränkungen zur Löschung von Bestellungen in einem Live-Plan ignoriert.

Antwort

Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn die Bestellung gelöscht wurde, false, wenn ein Fehler aufgetreten ist.
code
optional
string
-
Ein Fehlercode oder ein Warnungscode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
string
-
Eine Fehlerbeschreibung oder eine Warnungsbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).
planningId
optional
integer
-
Die ID des Planungsprozesses, falls die Optimierung für diese Bestellung läuft.

Fehler- und Warncodes

Die folgenden Fehlercodes gelten für die Methode Bestellung löschen:

Fehlercode Beschreibung
ERR_ORD_NOT_FOUND die Bestellung mit der passenden orderNo wurde nicht gefunden
ERR_MULTIPLE_ORD_FOUND es gibt mehrere Bestellungen mit der gleichen orderNo
ERR_OPT_RUNNING die Optimierung läuft für diese Bestellung

Alle Bestellungen löschen

Entfernt alle Bestellungen und geplanten Routen für das angegebene Datum aus dem System. Wenn kein Datum festgelegt ist, werden alle Bestellungen und Routen aus dem System entfernt.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/delete_all_orders

reqbody.json ist eine lokale Datei, die die zu sendenden JSON-Daten enthält. Stellen Sie sicher, AUTH_KEY durch Ihren API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/delete_all_orders?key=AUTH_KEY'

Parameter

Beispiel für den Anforderungskörper:

{
  "date": "2014-10-14"
}
Eigenschaft Typ / Standard Beschreibung
date
optional
Datum (string)
-
Datum, für das Bestellungen und Routen gelöscht werden.
YYYY-MM-DD Format, zum Beispiel 2013-12-20.

Antwort

Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn Bestellungen gelöscht wurden, false, wenn ein Fehler auftrat.
code
optional
string
-
Ein Fehlercode oder ein Warncode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
string
-
Eine Fehlerbeschreibung oder eine Warnbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).
planningId
optional
integer
-
Die ID des Planungsprozesses, falls die Optimierung läuft.

Fehler- und Warncodes

Die folgenden Fehlercodes gelten für die Bestellung löschen-Methode:

Fehlercode Beschreibung
ERR_OPT_RUNNING Die Optimierung läuft für dieses Datum

Bestellungen löschen (Massenlöschung)

Entfernt eine oder mehrere Bestellungen aus dem System.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/delete_orders

reqbody.json ist eine lokale Datei, die die zu sendenden JSON-Daten enthält.
Stellen Sie sicher, AUTH_KEY durch Ihren API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/delete_orders?key=AUTH_KEY'

Parameter

Beispiel für den Anfrageinhalt:

{
  "orders": [
    {
      "orderNo": "ORD001"
    },
    {
      "orderNo": "ORD999"
    },
    {
      "id": "04e7b09e993e8488024f46aaf9d8c72d"
    }
  ]
}
Eigenschaft Typ / Standardwert Beschreibung
orders
verpflichtend
Liste von Bestellobjekten
-
Liste von Bestellobjekten, die gelöscht werden sollen. Jedes Bestellobjekt kann entweder enthalten:
  • orderNo: die vom Benutzer angegebene Kennung einer Bestellung
  • id: die von OptimoRoute zugewiesene eindeutige Kennung der Bestellung
Es können maximal 500 Bestellungen angegeben werden.
deleteMultiple
optional
boolean
false
Wenn false, wird ein Fehler zurückgegeben, wenn mehrere Bestellungen durch ein Bestellobjekt übereinstimmen. Wenn true, werden alle Treffer gelöscht.
forceDelete
optional
boolean
false
Wenn true, werden die üblichen Einschränkungen bezüglich des Löschens von Bestellungen in einem Live-Plan ignoriert.

Antwort

Beispiel für eine Antwort:

{
  "success": true,
  "orders": [
    {
      "orderNo": "ORD001",
      "success": true
    },
    {
      "message": "Die Bestellung mit der passenden Bestellnummer wurde nicht gefunden.",
      "code": "ERR_ORD_NOT_FOUND",
      "orderNo": "ORD999",
      "success": false
    },
    {
      "success": true,
      "id": "04e7b09e993e8488024f46aaf9d8c72d"
    }
  ]
}
Eigenschaft Typ / Standardwert Beschreibung
success
verpflichtend
boolean
-
true, wenn mindestens eine Bestellung gelöscht wurde, false, wenn keine Bestellungen gelöscht wurden.
orders
verpflichtend
Liste von Löschantwortobjekten
-
Jedes Bestellobjekt in der Liste entspricht der jeweiligen orderNo und/oder id in der Anfrage. Siehe Abschnitt Löschantwortobjekt für weitere Informationen.

Löschantwortobjekt

Eigenschaft Typ / Standardwert Beschreibung
success
verpflichtend
boolean
-
true, wenn gelöscht, false, wenn ein Fehler auftrat.
code
optional
string
-
Ein Fehlercode oder ein Warnungscode (nicht gesetzt, wenn der Vorgang erfolgreich war).
message
optional
string
-
Eine Fehler- oder Warnungsbeschreibung (nicht gesetzt, wenn der Vorgang erfolgreich war).
orderNo
optional
string
-
Die orderNo, die gelöscht wurde oder deren Löschung fehlgeschlagen ist. Nur vorhanden, wenn orderNo in der Anfrage verwendet wurde.
id
optional
string
-
Die id, die gelöscht wurde oder deren Löschung fehlgeschlagen ist. Nur vorhanden, wenn id in der Anfrage verwendet wurde.
planningId
optional
integer
-
Die ID des Planungsprozesses, falls die Optimierung für diese Bestellung läuft.

Fehler- und Warnungscodes

Die folgenden fehlerbezogenen Codes sind auf die Methode Bestellungen löschen anwendbar:

Fehlercode Beschreibung
ERR_ORD_NOT_FOUND die Bestellung mit der übereinstimmenden orderNo und/oder id wurde nicht gefunden
ERR_MULTIPLE_ORD_FOUND es gibt mehrere Bestellungen, die der orderNo entsprechen, aber deleteMultiple war auf false gesetzt
ERR_OPT_RUNNING eine Optimierung läuft für diese Bestellung
ERR_INVALID_PARAM_FORMAT diese orderNo oder id ist nicht gültig

Routen abrufen

Lädt die Routen für ein bestimmtes Datum.

HTTP-Anfrage

GET https://api.optimoroute.com/v1/get_routes

Stellen Sie sicher, dass Sie AUTH_KEY durch Ihren API-Schlüssel ersetzen.

curl 'https://api.optimoroute.com/v1/get_routes?key=AUTH_KEY&date=2013-12-20'
curl 'https://api.optimoroute.com/v1/get_routes?key=AUTH_KEY&date=2022-03-16&driverSerial=011&includeRoutePolyline=true'

Parameter

Eigenschaft Typ / Standard Beschreibung
date
verpflichtend
date (string)
-
Abgefragtes Datum.
YYYY-MM-DD Format, zum Beispiel 2013-12-20.
driverExternalId
optional
string
-
Optional, um nach dem externen Kennzeichen des Fahrers zu filtern.
driverSerial
optional
string
-
Optional, um nach der Seriennummer des Fahrers zu filtern.
vehicleRegistration
optional
string
-
Optional, um nach Fahrzeugregistrierung zu filtern.
includeRoutePolyline
optional
boolean
false
Optionale Eigenschaft, um die Routen-Polylinie in die Ausgabe aufzunehmen. Diese Polylinie kann verwendet werden, um die Route auf der Karte anzuzeigen. Die Polylinie ist eine Liste von Koordinaten, die mit dem Encoded Polyline Algorithm kodiert sind.
includeRouteStartEnd
optional
boolean
false
Optionale Eigenschaft, um die Start- und Endorte der Route in die Ausgabe einzuschließen.

Antwort

Beispielantwort

{
  "success": true,
  "routes": [
    {
      "driverExternalId": "",
      "driverSerial": "011",
      "driverName": "Driver 011",
      "vehicleRegistration": "Vehicle 011",
      "vehicleLabel": "011",
      "duration": 37,
      "distance": 19.563,
      "load1": 0,
      "load3": 0,
      "load2": 0,
      "load4": 0,
      "stops": [
        {
          "stopNumber": 1,
          "orderNo": "-",
          "id": "f7afe58fcddfcbf9f42620c79ebad7ff",
          "scheduledAt": "10:16",
          "scheduledAtDt": "2022-03-16 10:16:41",
          "arrivalTimeDt": "2022-03-16 10:16:41",
          "address": "Burwyn, IL",
          "locationName": "Burwyn, IL",
          "locationNo": "",
          "latitude": 41.8505874,
          "longitude": -87.7936685,
          "distance": 0,
          "travelTime": 0
        },
        {
          "stopNumber": 2,
          "orderNo": "-",
          "id": "0a077bd652b4b0c69fd9bdb3efefe729",
          "scheduledAtDt": "2022-03-16 10:33:18",
          "arrivalTimeDt": "2022-03-16 10:33:18",
          "scheduledAt": "10:33",
          "address": "Oak Park, Chicago",
          "locationName": "Oak Park, Chicago",
          "locationNo": "",
          "latitude": 41.8850317,
          "longitude": -87.7845025,
          "distance": 4668,
          "travelTime": 397
        }
      ],
      "routePolyline": "_}l~FlezvO????Ag@?Y?U?s@?c@AgCAmB?w@?]?IAc@Hm@AoCAw@A}C?WA_AAsFCwD?M?m@CsF?k@AwAAw@?W?_@U?qA@S?U@[?gEDiIHm@?cJHmJFiJJoJFmJHqGFe@?u@@gA@Q?oGHuBBuFFmJLq@Bg@?}CD]@m@?k@@o@@i@?oGH}HHc@@M?O?a@@yDD}BBM?_GFY@Y?O?O@W?U@w@?Q@y@?uABwA@Q?S@kA@M?{EDQ@S?gHD??fHER?PAzEEL?jAARAP?vAAtACx@?PAv@?TAV?AYA{E?qACaDAkBAw@?oAAgA?WAqA?E?_@A]?WC}E?k@Ae@?M?[AwBAsB?o@AoA?g@Ai@?mAAsACkCA{DA{BAo@?]CqF?G?e@Ae@?u@CcG?QEcF?O?m@?]A_F?QAy@?[PAX?J?^AH?FA~@AR?XA|@AhACP?R?tAChAAxAAh@A\\AR?RAd@?^AxACzAAvACr@Ad@AzAC~BAt@AN?RBPBfA?b@@f@?L?b@@^AtBQt@KEe@AMGw@c@mFa@wEOyCGoCQ}BMy^G}UC_ICwJC}JE_JIeHI_ICyBIqAMyAMmASsAWqA[mA_@kAo@iBm@{Aa@kA[cA]uAQu@Mw@QuAK}@IeAEcAC_ACcDAqGOwb@CsJCuKKc[AuDM_c@C_DCuASeF]uEWcD_@_F[wDo@uIUmDKsBIuBEsBGuCCqCAeFEkOGuQE}OC}HCkQCwM?wFC_SI{QCmEAwH@}FAmEGoNMqUAeEEcG?cC@sD?sB@mCB_EDkDBuBDeC@yBPuIDqGAyPAyECsBEsACyDAuB?u@?c@?sGCgCGkKC{BA_GAwB?S?u@AcD?Y?_A?yA@aA?s@B}AB{B?uB?]?eA?yC?OAkEAiB?_@?_AAmA?M]?]@G?G?}@Be@?yAB?F?bA?LM?aFFG?"
    }
  ]
}
Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn die Abfrage erfolgreich war, false, wenn ein Fehler aufgetreten ist.
routes
verpflichtend
Liste von Routen-Objekten
[]
Liste der Routen, die der Abfrage entsprechen.
code
optional
string
-
Ein Fehlercode oder ein Warnungscode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
string
-
Eine Fehlerbeschreibung oder eine Warnungsbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).

Routenobjekt

Eigenschaft Typ / Standard Beschreibung
driverExternalId
verpflichtend
string
-
Der externe Kennstein des Fahrers.
driverSerial
verpflichtend
string
-
Die dem Fahrer zugewiesene Seriennummer.
driverName
verpflichtend
string
-
Der Name des Fahrers.
vehicleRegistration
verpflichtend
string
-
Fahrzeugregistration.
vehicleLabel
verpflichtend
string
-
Fahrzeugbezeichnung.
duration
verpflichtend
integer
-
Routen-Dauer in Minuten.
distance
verpflichtend
decimal
-
Routendistanz in Kilometern.
load1
verpflichtend
integer
0
Routenlast #1.
load2
verpflichtend
integer
0
Routenlast #2.
load3
verpflichtend
integer
0
Routenlast #3.
load4
verpflichtend
integer
0
Routenlast #4.
stops
verpflichtend
Liste von Halteobjekten
[]
Eine geordnete Liste von Halten/Bestellungen auf der Route.
routePolyline
optional
string
-
Routenhüllkurve kodiert mit Encoded Polyline Algorithm. Nur enthalten, wenn includeRoutePolyline auf True gesetzt ist.

Halteobjekt

Eigenschaft Typ / Standard Beschreibung
stopNumber
verpflichtend
integer
-
Haltenummer. Beginnt bei 1.
orderNo
verpflichtend
string
-
Die Bestellnummer.
id
verpflichtend
string
-
Die schreibgeschützte eindeutige Kennung der Bestellung, die von OptimoRoute vergeben wurde.
locationNo
verpflichtend
string
-
Standorthummer.
locationName
verpflichtend
string
-
Standortname.
address
verpflichtend
string
-
Standortadresse.
latitude
verpflichtend
decimal
-
Standort-Breitengrad.
longitude
verpflichtend
decimal
-
Standort-Längengrad.
scheduledAt
verpflichtend
Uhrzeit (string)
-
Die geplante Zeit, um mit dem Dienst zu beginnen.
24-Stunden (militärisches) Uhrenformat, zum Beispiel: 16:00.
Die gültigen Werte reichen von 00:00 bis 23:59.
scheduledAtDt
verpflichtend
DatumUhrzeit (string)
-
Das geplante Datum und die Zeit, um mit dem Dienst zu beginnen. Format: YYYY-mm-dd HH:MM:SS, zum Beispiel 2018-01-01 13:10:37.
arrivalTimeDt
verpflichtend
DatumUhrzeit (string)
-
Das Datum und die Uhrzeit, zu der der Fahrer am Standort angekommen ist. Aufgrund von Zeitfenstern muss der Fahrer möglicherweise warten, um mit dem Dienst zu beginnen. Format: YYYY-mm-dd HH:MM:SS, zum Beispiel 2018-01-01 13:10:37.
travelTime
verpflichtend
integer
-
Reisezeit vom vorherigen Halt (in Sekunden).
distance
verpflichtend
integer
-
Entfernung vom vorherigen Halt (in Metern).
type
optional
string
-
Bestellart, die nur für Mittagspausen hinzugefügt wird (Wert wird break sein) und für Depotfahrten (Wert wird depot sein).

Fehler- und Warncodes

Keine.

Zeitpläne abrufen

Erhält die Zeitplaninformationen für die angegebene Bestellung. Für die Massenmethode siehe Bestellungen suchen

HTTP-Anfrage

GET https://api.optimoroute.com/v1/get_scheduling_info

Stellen Sie sicher, dass Sie AUTH_KEY durch Ihren API-Schlüssel ersetzen.

curl 'https://api.optimoroute.com/v1/get_scheduling_info?key=AUTH_KEY&orderNo=ORD001'

Parameter

Eigenschaft Typ / Standard Beschreibung
orderNo
optional
string
-
Vom Benutzer angegebener Bezeichner für die Bestellung.
id
optional
string
-
Die eindeutige Kennung der Bestellung, die von OptimoRoute zugewiesen wird.

Einer der beiden Eigenschaften muss in der Anfrage angegeben werden.

Antwort

Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn die Abfrage erfolgreich war, false, wenn ein Fehler aufgetreten ist.
orderScheduled
optional
boolean
-
true, wenn die Bestellung geplant ist, andernfalls false.
scheduleInformation
optional
Zeitplan-Info Objekt
-
Die Zeitplaninformationen der Bestellung.
code
optional
string
-
Ein Fehlercode oder ein Warncode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
string
-
Eine Fehlerbeschreibung oder eine Warnbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).

Objekt der Bestellungs-Zeitplaninformationen

Eigenschaft Typ / Standard Beschreibung
driverExternalId
verpflichtend
string
-
Der externe Bezeichner des Fahrers.
driverSerial
verpflichtend
string
-
Die dem Fahrer zugewiesene Seriennummer.
driverName
verpflichtend
string
-
Der Name des Fahrers.
vehicleRegistration
verpflichtend
string
-
Fahrzeugregistrierung.
vehicleLabel
verpflichtend
string
-
Bezeichnung des Fahrzeugs.
stopNumber
verpflichtend
integer
-
Haltenummer auf der Route. Beginnt bei 1.
scheduledAt
verpflichtend
time (string)
-
Die geplante Zeit, um den Service zu beginnen.
24-Stunden (militärisches) Uhrenformat, zum Beispiel: 16:00.
Die gültigen Werte reichen von 00:00 bis 23:59.
scheduledAtDt
verpflichtend
datetime (string)
-
Das geplante Datum und die Uhrzeit für den Beginn des Services. Format: YYYY-mm-dd HH:MM:SS, zum Beispiel 2018-01-01 13:10:37.
arrivalTimeDt
verpflichtend
datetime (string)
-
Das Datum und die Uhrzeit, wann der Fahrer am Standort ankam. Aufgrund von Zeitfenstern muss der Fahrer möglicherweise warten, um den Service zu beginnen. Format: YYYY-mm-dd HH:MM:SS, zum Beispiel 2018-01-01 13:10:37.
travelTime
verpflichtend
integer
-
Fahrzeit vom vorherigen Halt (in Sekunden).
distance
verpflichtend
integer
-
Entfernung vom vorherigen Halt (in Metern).

Fehler- und Warncodes

Die folgenden Fehlercodes gelten für die Methode Zeitpläne abrufen:

Fehlercode Beschreibung
ERR_ORD_NOT_FOUND Die Bestellung mit dem passenden orderNo wurde nicht gefunden
ERR_MULTIPLE_ORD_FOUND Es gibt mehrere Bestellungen mit dem gleichen orderNo

Beispielantwort 1

{
  "success": true,
  "orderScheduled": true,
  "scheduleInformation": {
    "stopNumber": 23,
    "scheduledAt": "11:23",
    "scheduledAtDt": "2020-02-07 11:23:22",
    "arrivalTimeDt": "2020-02-07 11:23:22",
    "driverSerial": "005",
    "driverExternalId": null,
    "driverName": "Driver 005",
    "vehicleLabel": "005",
    "vehicleRegistration": "Vehicle 005",
    "distance": 952,
    "travelTime": 123
  }
}

Beispielantwort 2

{
    "success":true,
    "orderScheduled":false
}

Start Planung

Startet den Planungsprozess für das angegebene Datum.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/start_planning

reqbody.json ist eine lokale Datei, die die zu postenden JSON-Daten enthält. Stellen Sie sicher, AUTH_KEY durch Ihren API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/start_planning?key=AUTH_KEY'

Parameter

Beispiel für Anfragetext:

{
  "date": "2013-12-20"
}
Eigenschaft Typ / Standard Beschreibung
date
obligatorisch
Datum (Zeichenkette)
-
Zu planendes Datum.
Format YYYY-MM-DD, zum Beispiel 2013-12-20.
dateRange
optional
Datumsbereich-Objekt Unterstützung für die Wöchentliche Planung (Planung eines längeren Zeithorizonts). Wenn dateRange angegeben ist, wird date ignoriert und kann weggelassen werden.
Der Datumsbereich wird als Objekt mit from und to Feldern angegeben, zum Beispiel:
{"from": "2020-04-27", "to": "2020-05-01"}.
balancing
optional
Zeichenkette
OFF
Einstellungen zur Routen-Ausgewogenheit. Erlaubte Werte:
OFF – Keine Ausgewogenheit
ON – Balance der Routen
ON_FORCE – Balance der Routen und Nutzung aller Fahrer

Keine Ausgewogenheit: gibt die besten Routen zurück, einige Fahrer könnten nicht genutzt werden.
Balance der Routen: verteilt die Arbeitslast zwischen den Fahrern, einige Fahrer könnten nicht genutzt werden.
Balance der Routen und Nutzung aller Fahrer: verteilt die Arbeitslast zwischen allen verfügbaren Fahrern.
balanceBy
optional
Zeichenkette
WT
Falls die Routen-Ausgewogenheit eingeschaltet ist, definiert dies die Kriterien für die Ausgewogenheit der Routen.

Erlaubte Werte:
WT – Arbeitszeit
NUM – Anzahl der Aufträge pro Fahrer
balancingFactor
optional
Dezimalzahl
0.3
Wichtigkeit der Ausgewogenheit im Vergleich zu den Routenkosten. Eine Erhöhung des Ausgewogenheitsfaktors führt zu ausgeglicheneren Routen.
Nur in Kombination mit ON_FORCE anwendbar (ansonsten ignoriert).

Minimalwert: 0.0
Maximalwert: 1.0
startWith
optional
Zeichenkette
EMPTY
Planung von bestehenden Routen aus starten oder von neu beginnen.

Erlaubte Werte:
EMPTY – Bestehende Routen ignorieren und von neu starten
CURRENT – Planung mit den bestehenden Routen beginnen
lockType
optional
Zeichenkette
NONE
Anwendbar, wenn startWith auf CURRENT gesetzt ist.

Erlaubte Werte:
NONE – Alle Änderungen an den bestehenden Routen erlauben
ROUTES - Geplante Routen unverändert lassen und neue Aufträge zu ungenutzten hinzufügen
RESOURCES - Fahrer/Fahrzeuge für geplante Aufträge behalten und neue Aufträge einfügen
depotTrips
optional
Boolean
false
Wenn true, werden Fahrer eingeplant, zum Lager zurückzukehren, um nachzuladen (oder im Fall von Abholungen abzuladen), wenn es noch Zeit innerhalb ihrer Arbeitsstunden gibt, eine weitere Route zu unternehmen.
Weitere Informationen sind auf unserem Blog verfügbar:
https://optimoroute.com/de/halten-sie-an-lagern-sie-nach-und-setzen-sie-ihren-weg-fort/.
depotVisitDuration
optional
Ganzzahl
0
Zeit in Minuten, die erforderlich ist, um im Lager nachzuladen oder abzuladen, bevor der Fahrer für einen weiteren Lauf hinausgeht.
Nur anwendbar, wenn depotTrips auf true gesetzt ist.
clustering
optional
Boolean
false
Wenn true, versucht das System, die Überschneidung zwischen den Fahrerrouten zu minimieren.
useDrivers
optional
Liste von SelectedDriver Objekten
[]
Ausgewählte Fahrer, die in der Optimierung verwendet werden sollen.
Standardmäßig (wenn useDrivers nicht gesetzt ist oder die Liste leer ist) werden alle verfügbaren Fahrer für das angegebene Datum verwendet.
useOrders
optional
Liste von Zeichenketten
[]
Veraltet, zugunsten von useOrderObjects.
Ausgewählte Aufträge, die in der Optimierung enthalten sein sollen.
Aufträge werden als Liste von Auftrags-Identifikatoren (orderNo Zeichenketten) angegeben.
Standardmäßig (wenn useOrders nicht gesetzt ist oder die Liste leer ist) werden alle Aufträge für das angegebene Datum mit einer gültigen Adresse eingeschlossen.

Aufträge, die nicht ausgewählt wurden, aber bereits Fahrern zugeordnet sind, die in der Optimierung verwendet werden, werden nicht eingeplant, es sei denn, das includeScheduledOrders-Flag ist auf true gesetzt.
useOrderObjects
optional
Liste von Objekten
[]
Teilmenge der Aufträge am geplanten Datum, die in der Optimierung enthalten sein sollen.
Aufträge werden als Liste von Objekten angegeben, die entweder enthalten können:
  • orderNo Eigenschaft mit der vom Benutzer spezifizierten Kennung eines Auftrags
  • id eindeutige Kennung des Auftrags, die von OptimoRoute vergeben wurde

Standardmäßig (wenn useOrderObjects nicht gesetzt ist oder die Liste leer ist) werden alle Aufträge für das angegebene Datum mit einer gültigen Adresse eingeschlossen.

Aufträge, die nicht ausgewählt wurden, aber bereits Fahrern zugeordnet sind, die in der Optimierung verwendet werden, werden nicht eingeplant, es sei denn, das includeScheduledOrders-Flag ist auf true gesetzt.
includeScheduledOrders
optional
Boolean
true
Bestimmt das Verhalten, wenn eine Teilmenge von Aufträgen ausgewählt wird, aber andere Aufträge bereits den betreffenden Fahrern zugeordnet sind.
Wenn includeScheduledOrders auf true gesetzt ist, werden diese Aufträge in die Optimierung einbezogen, andernfalls werden sie nicht eingeplant.

Antwort

Eigenschaft Typ / Standard Beschreibung
success
obligatorisch
Boolean
-
true, wenn die Optimierung gestartet wurde, false, wenn ein Fehler aufgetreten ist.
code
optional
Zeichenkette
-
Ein Fehlercode oder ein Warnhinweis (nicht gesetzt, wenn der Vorgang erfolgreich war).
planningId
optional
Ganzzahl
-
Gibt die ID der gestarteten Optimierung zurück, wenn der Vorgang erfolgreich war, oder die bereits laufende Optimierung im Falle eines ERR_OPT_RUNNING_FOR_DATE Fehlers. Die Planungs-ID kann später verwendet werden, um den Planungsstatus zu erhalten oder den Planungsprozess zu stoppen.
missingOrders
optional
Liste von Zeichenketten
[]
Im Falle eines ERR_ORD_NOT_FOUND Fehlers enthält dieses Feld die Liste fehlender Auftrags-Identifikatoren (orderNo Zeichenketten).
missingDrivers
optional
Liste von SelectedDriver Objekten
[]
Im Falle eines ERR_DRIVER_NOT_FOUND Fehlers enthält dieses Feld eine Liste fehlender Fahrer. Jeder Fahrer ist ein SelectedDriver Objekt.
ordersWithInvalidLocation
optional
Liste von Zeichenketten
[]
Im Falle eines ERR_ORD_WITH_INVALID_LOC Fehlers enthält dieses Feld die Liste von Auftrags-Identifikatoren (orderNo Zeichenketten), die einen ungültigen Ort haben.

Fehler- und Warncodes

Die folgenden Fehlercodes sind für die Methode Start Planung anwendbar:

Fehlercode Beschreibung
ERR_OPT_TRIAL_ENDED Die kostenlose Testversion ist für dieses Konto abgelaufen
ERR_OPT_RUNNING_FOR_DATE Planung läuft bereits für dieses Datum
ERR_OPT_RUNNING_FOR_ORDER Optimierung läuft bereits für einen oder mehrere in useOrders aufgeführten Aufträge
ERR_OPT_NO_REQUESTS Es existieren keine Aufträge für das angegebene Datum
ERR_OPT_NO_RESOURCES Es sind keine Fahrer für dieses Datum verfügbar
ERR_OPT_RESOURCES_EXCEEDED Anzahl der Fahrer überschritten
ERR_OPT_REQUESTS_EXCEEDED Anzahl der Aufträge überschritten
ERR_OPT_COULD_NOT_START Interner Fehler, bitte kontaktieren Sie den Support
ERR_ORD_NOT_FOUND Einer oder mehrere in useOrders angegebene Aufträge wurden nicht gefunden
ERR_ORD_WITH_INVALID_LOC Einer oder mehrere in useOrders angegebene Aufträge haben einen ungültigen Ort
ERR_DRIVER_NOT_FOUND Einer oder mehrere in useDrivers angegebene Fahrer wurden nicht gefunden
ERR_MULTIPLE_ORD_FOUND Mehrere Aufträge mit der angegebenen Kennung wurden gefunden
ERR_MULTIPLE_DRV Mehrere Fahrer mit der angegebenen Kennung wurden gefunden
ERR_UNSUPPORTED_BY_PRICING_PLAN Wöchentliche Planung wird nur mit dem aktuellen Plan unterstützt
ERR_DATE_RANGE_TOO_LONG Wöchentlicher Planungsbereich ist zu lang
ERR_DATE_RANGE_INVALID Ungültiger Bereich, to Datum ist früher als from Datum

Planung beenden

Beendet den Planungsprozess.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/stop_planning

reqbody.json ist eine lokale Datei, die die zu postenden JSON-Daten enthält. Stellen Sie sicher, AUTH_KEY durch Ihren API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/stop_planning?key=AUTH_KEY'

Parameter

Beispiel für den Anfragetext:

{
  " planningId": 8828
}
Eigenschaft Typ / Standardwert Beschreibung
planningId
verpflichtend
Integer
-
Die ID des zu stoppenden Planungsprozesses.

Antwort

Eigenschaft Typ / Standardwert Beschreibung
success
verpflichtend
Boolean
-
true, wenn die Optimierung gestoppt wurde, false, wenn ein Fehler aufgetreten ist.
code
optional
String
-
Ein Fehlercode oder ein Warncode (nicht gesetzt, wenn die Operation erfolgreich war).

Fehler- und Warncodes

Die folgenden Fehlercodes sind für die Methode Planung beenden anwendbar:

Fehlercode Beschreibung
ERR_JOB_NOT_FOUND Planungsauftrag mit der angegebenen ID wurde nicht gefunden
ERR_OPT_NOT_RUNNING Planungsauftrag läuft nicht
ERR_OPT_COULD_NOT_STOP interner Fehler, bitte kontaktieren Sie den Support

Abrufen des Planungsstatus

Gibt den Status des Planungsprozesses zurück.

HTTP-Anfrage

GET https://api.optimoroute.com/v1/get_planning_status

Stellen Sie sicher, dass Sie AUTH_KEY durch Ihren API-Schlüssel ersetzen.

curl 'https://api.optimoroute.com/v1/get_planning_status?key=AUTH_KEY&planningId=8828'

Parameter

Eigenschaft Typ / Standard Beschreibung
planningId
erforderlich
Ganzzahl
-
Die ID des Planungsprozesses.

Antwort

Eigenschaft Typ / Standard Beschreibung
success
erforderlich
Boolean
-
true, wenn die Anfrage erfolgreich war, false, wenn ein Fehler aufgetreten ist.
code
optional
Zeichenkette
-
Ein Fehlercode oder ein Warnungscode (nicht gesetzt, wenn der Vorgang erfolgreich war).
status
optional
Zeichenkette
-
N - Neu
R - Läuft
C - Vom Benutzer abgebrochen
F - Beendet
E - Fehler aufgetreten
percentageComplete
optional
Ganzzahl
-
Prozent abgeschlossen – Werte reichen von 0 bis 100.

Fehler- und Warnungscodes

Die folgenden Fehlercodes gelten für die Methode Abrufen des Planungsstatus:

Fehlercode Beschreibung
ERR_JOB_NOT_FOUND Der Planungsauftrag mit der angegebenen ID wurde nicht gefunden

Fahrerparameter aktualisieren

Aktualisiert Fahrerparameter für ein bestimmtes Datum sowie den Start- und Endstandort des Fahrers. Alle bestehenden Routen für das angegebene Datum/Fahrer werden nicht eingeplant.

Die folgenden Parameter können geändert werden:

HTTP-Anfrage

POST https://api.optimoroute.com/v1/update_driver_parameters

reqbody.json ist eine lokale Datei, die die zu veröffentlichenden JSON-Daten enthält. Stellen Sie sicher, AUTH_KEY mit Ihrem API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/update_driver_parameters?key=AUTH_KEY'

Parameter

Beispiel für den Anfragetext:

{
  "externalId": "3945300304540",
  "date": "2019-09-25",
  "workTimeFrom": "09:30",
  "workTimeTo": "18:00"
}
Eigenschaft Typ / Standard Beschreibung
externalId
verpflichtend
string
-
Die dem Fahrer in der Fahreradministration zugewiesene externe Kennung.
date
verpflichtend
date
-
Datum, das geplant werden soll.
YYYY-MM-DD Format, zum Beispiel 2013-12-20.
enabled
optional
boolean
unverändert
Aktiviert oder deaktiviert den Fahrer für das angegebene Datum.
workTimeFrom
optional
time (string)
unverändert
Beginn der Arbeitszeit des Fahrers für das angegebene Datum.
24-Stunden-Format, zum Beispiel: 08:00.
Die gültigen Werte reichen von 00:00 bis 23:59.
workTimeTo
optional
time (string)
unverändert
Ende der Arbeitszeit des Fahrers für das angegebene Datum.
24-Stunden-Format, zum Beispiel: 08:00. Die gültigen Werte reichen von 00:00 bis 23:59.
assignedVehicle
optional
string
unverändert
Die externe Kennung des Fahrzeugs, das dem Fahrer für das angegebene Datum zugewiesen wird. Dies wird auch die Fahrzeugladekapazitätsparameter aktualisieren (es sei denn, sie werden mit den vehicleCapacityX-Einstellungen überschrieben).
vehicleCapacity1
optional
integer
unverändert
Die neue Fahrzeugladekapazität #1 für das angegebene Datum.
vehicleCapacity2
optional
integer
unverändert
Die neue Fahrzeugladekapazität #2 für das angegebene Datum.
vehicleCapacity3
optional
integer
unverändert
Die neue Fahrzeugladekapazität #3 für das angegebene Datum.
vehicleCapacity4
optional
integer
unverändert
Die neue Fahrzeugladekapazität #4 für das angegebene Datum.
startLatitude
optional
decimal
unverändert
Die GPS-Breitengradposition des Fahrerstarts wird geändert (diese neue Position wird für alle zukünftigen Optimierungen verwendet). Wenn startLongitude nicht definiert ist, wird dieser Wert ignoriert.
startLongitude
optional
decimal
unverändert
Die GPS-Längengradposition des Fahrerstarts (diese neue Position wird für alle zukünftigen Optimierungen verwendet). Wenn startLatitude nicht definiert ist, wird dieser Wert ignoriert.
startAddress
optional
string
unverändert
Die Startadresse des Fahrers, die auf Berichten angezeigt wird (diese neue Position wird für alle zukünftigen Optimierungen verwendet). Wenn startLatitude und startLongitude nicht definiert sind, wird dieser Wert ignoriert.
endLatitude
optional
decimal
unverändert
Die GPS-Breitengradposition des Fahrerendes (diese neue Position wird für alle zukünftigen Optimierungen verwendet). Wenn endLongitude nicht definiert ist, wird dieser Wert ignoriert.
endLongitude
optional
decimal
unverändert
Die GPS-Längengradposition des Fahrerendes (diese neue Position wird für alle zukünftigen Optimierungen verwendet). Wenn endLatitude nicht definiert ist, wird dieser Wert ignoriert.
endAddress
optional
string
unverändert
Die Endadresse des Fahrers, die auf Berichten angezeigt wird (diese neue Position wird für alle zukünftigen Optimierungen verwendet). Wenn endLatitude und endLongitude nicht definiert sind, wird dieser Wert ignoriert.

Antwort

Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn die Fahrerparameter aktualisiert wurden, false, wenn ein Fehler auftrat.
code
optional
string
-
Ein Fehlercode oder ein Warnungscode (wird nicht gesetzt, wenn der Vorgang erfolgreich war).

Fehler- und Warncodes

Die folgenden Fehlercodes gelten für die Methode Fahrerparameter aktualisieren:

Fehlercode Beschreibung
ERR_DRIVER_NOT_FOUND der Fahrer mit der angegebenen externalId wurde nicht gefunden
ERR_MULTIPLE_DRV mehrere Fahrer mit der angegebenen externalId wurden gefunden
ERR_VEH_NOT_FOUND das Fahrzeug mit der angegebenen externalId wurde nicht gefunden
ERR_MULTIPLE_VEH mehrere Fahrzeuge mit der angegebenen externalId wurden gefunden

Fahrerparameter aktualisieren (bulk)

Aktualisiert Parameter mehrerer Fahrer für die angegebenen Daten. Alle bestehenden Routen für die angegebenen Fahrer und Daten werden storniert.

Die folgenden Parameter für bestimmte Daten können geändert werden:

HTTP-Anfrage

POST https://api.optimoroute.com/v1/update_drivers_parameters

reqbody.json ist eine lokale Datei, die die zu postenden JSON-Daten enthält. Stellen Sie sicher, dass Sie AUTH_KEY mit Ihrem API-Schlüssel ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/update_drivers_parameters?key=AUTH_KEY'

Parameter

Beispiel für Anforderungskörper:

{
  "updates": [
    {
      "driver": {
        "externalId": "001"
      },
      "date": "2022-02-15",
      "workTime": {
        "from": "08:15",
        "to": "16:15"
      },
      "vehicleCapacity1": 100,
      "startLocation": {
        "type": "custom",
        "latitude": 45.805945,
        "longitude": 16.237825
      },
      "endLocation": {
        "type": "startLocation"
      }
    },
    {
      "driver": {
        "serial": "S001"
      },
      "date": "2022-02-16",
      "workTime": {
        "from": "09:00",
        "to:": "17:00"
      },
      "assignedVehicle": {
        "registration": "VEH001"
      },
      "endLocation": {
        "type": "employeeDefault"
      }
    }
  ]
}
Eigenschaft Typ / Standard Beschreibung
updates
obligatorisch
Liste von Fahrerparameterobjekten
-
Liste von einem oder mehreren Fahrerparameterobjekten, die im System aktualisiert werden sollen. Es können maximal 500 Fahrerparameterobjekte angegeben werden.

DriverParameters Objekt

Eigenschaft Typ / Standard Beschreibung
driver
obligatorisch
Objekt
-
Ein Objekt mit Zeichenfolgeneigenschaften serial oder externalId, die den Fahrer eindeutig identifizieren. Beispiel: {"serial": "102"} oder {"externalId": "444"}.
date
obligatorisch
Datum
-
Zu planendes Datum.
Format YYYY-MM-DD, zum Beispiel 2013-12-20.
enabled
optional
boolean
unverändert
Fahrer für das angegebene Datum aktivieren oder deaktivieren.
workTime
optional
WorkTime Objekt
unverändert
Arbeitszeit des Fahrers von/bis für das angegebene Datum.
assignedVehicle
optional
String oder Objekt
unverändert
Der externe Bezeichner als Zeichenfolge oder ein Objekt mit Zeichenfolgeneigenschaften registration oder externalId, das das dem Fahrer für das angegebene Datum zuzuweisende Fahrzeug eindeutig identifiziert. Dies aktualisiert auch die Parameter zur Fahrzeugladungskapazität (es sei denn, sie werden mit den vehicleCapacityX-Einstellungen überschrieben). Beispiel: V103 oder {"registration": "444"} oder {"externalId": "V103"}.
vehicleCapacity1
optional
Integer
unverändert
Die neue Fahrzeugladekapazität #1 für das angegebene Datum.
vehicleCapacity2
optional
Integer
unverändert
Die neue Fahrzeugladekapazität #2 für das angegebene Datum.
vehicleCapacity3
optional
Integer
unverändert
Die neue Fahrzeugladekapazität #3 für das angegebene Datum.
vehicleCapacity4
optional
Integer
unverändert
Die neue Fahrzeugladekapazität #4 für das angegebene Datum.
startLocation
optional
LocationType Objekt
unverändert
Start-GPS-Standort des Fahrers (dieser Standort wird für zukünftige Optimierungen für das angegebene Datum verwendet). Standorttyp startLocation kann nicht verwendet werden.
endLocation
optional
LocationType Objekt
unverändert
Ziel-GPS-Standort des Fahrers (dieser Standort wird für zukünftige Optimierungen für das angegebene Datum verwendet).

Wenn locationType custom ist und es keinen Standort mit denselben latitude, longitude und address gibt, wird ein neuer Standort erstellt und in der Standortverwaltung angezeigt. Der Standortname entspricht der Adresse, falls definiert, andernfalls wird der Name aus Breite und Länge erzeugt.

WorkTime Objekt

Eigenschaft Typ / Standard Beschreibung
from
obligatorisch
Zeit (String)
-
Arbeitsbeginn des Fahrers.
24-Stunden (militärisches) Uhrformat, zum Beispiel: 08:00.
Die gültigen Werte reichen von 00:00 bis 23:59.
to
obligatorisch
Zeit (String)
-
Arbeitsende des Fahrers.
24-Stunden (militärisches) Uhrformat, zum Beispiel: 08:00. Die gültigen Werte reichen von 00:00 bis 23:59.

LocationType Objekt

Eigenschaft Typ / Standard Beschreibung
type
obligatorisch
string enum custom – Breite, Länge und Adresse des Standorts werden verwendet.

employeeDefault – Der Standardstandort des Mitarbeiters wird verwendet.

startLocation – Der Startstandort des Mitarbeiters wird verwendet.
address
optional
String
-
Standortadresse, die in Berichten angezeigt werden soll, z. B. 393 Hanover St, Boston, MA 02113, US.
latitude
optional
Dezimal
-
Breitengrad des Standorts.
longitude
optional
Dezimal
-
Längengrad des Standorts.

Die type-Eigenschaft ist obligatorisch. Wenn type als create festgelegt ist, sind die Pflichtfelder latitude und longitude, andernfalls sollte nur type definiert werden.

Antwort

Beispiel für eine Antwort:

{
  "updates": [
    {
      "success": true,
      "driver": {
        "externalId": "005"
      },
      "date": "2022-02-15"
    },
    {
      "success": false,
      "driver": {
        "serial": "S002"
      },
      "date": "2022-02-16",
      "code": "ERR_LOC_NOT_VALID",
      "message": "Location is not valid.",
    },
    {
      "success": false,
      "driver": {
        "externalId": "003"
      },
      "date": "2022-02-17",
      "code": "ERR_DRIVER_NOT_FOUND",
      "message": "Could not find a driver with the matching id",
    },
    {
      "success": false,
      "driver": {
        "externalId": "010"
      },
      "date": "2022-02-18",
      "code": "ERR_MULTIPLE_DRV",
      "message": "Found multiple drivers with matching external id or serial number.",
    }
  ],
  "success": true
}
Eigenschaft Typ / Standard Beschreibung
success
obligatorisch
boolean
-
true, wenn mindestens eine Operation erfolgreich war, false, wenn alle fehlgeschlagen sind.
updates
Liste von Fahrerantwortobjekten
-
Jedes Fahrerobjekt in der Liste entspricht dem jeweiligen Fahrer in der Anfrage. Siehe Abschnitt Fahrerantwortobjekt für mehr Informationen.

Fahrerantwortobjekt

Eigenschaft Typ / Standard Beschreibung
success
obligatorisch
boolean
-
true, wenn die Operation erfolgreich war, false, wenn ein Fehler aufgetreten ist.
driver
optional
Objekt
-
Identifikator des jeweiligen Fahrers als Objekt mit Zeichenfolgeneigenschaften serial oder externalId.
date
optional
Datum
-
Datum, das dem jeweiligen Fahrer zugeordnet ist.
code
optional
String
-
Ein pro Auftrag spezifischer Fehlercode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
String
-
Eine Fehler- oder Warnbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).

Fehler- und Warncodes

Die folgenden Fehlercodes sind für die Methode Fahrerparameter aktualisieren anwendbar:

Fehlercode Beschreibung
ERR_DRIVER_NOT_FOUND Der Fahrer mit der angegebenen externalId oder serial wurde nicht gefunden
ERR_MULTIPLE_DRV Mehrere Fahrer mit der angegebenen externalId oder serial wurden gefunden
ERR_VEH_NOT_FOUND Das Fahrzeug mit der angegebenen externalId oder serial wurde nicht gefunden
ERR_MULTIPLE_VEH Mehrere Fahrzeuge mit der angegebenen externalId oder serial wurden gefunden
ERR_LOC_NOT_VALID Der custom Standorttyp ohne Breiten- und Längengrad wurde gefunden

Mobile Events Abrufen

Rufen Sie mobile Ereignisse wie success, on_duty, failed, … für den derzeit aktiven Plan ab (d. h. der letzte Plan, der an die Fahrer gesendet wurde).

Jede Anfrage get_events gibt bis zu 500 Ereignisse zurück, die nach dem angegebenen Tag aufgetreten sind. Das Ergebnis enthält ein neues Tag, das Sie in der nächsten get_events Anfrage verwenden können, um bereits empfangene Ereignisse zu überspringen.

HTTP-Anfrage

GET https://api.optimoroute.com/v1/get_events

Achten Sie darauf, AUTH_KEY durch Ihren API-Schlüssel zu ersetzen.

curl 'https://api.optimoroute.com/v1/get_events?key=AUTH_KEY&after_tag='

Parameter

Eigenschaft Typ / Standard Beschreibung
after_tag
optional
Zeichenkette
-
Geben Sie das after_tag an, um nur die Ereignisse abzurufen, die seit einem bestimmten vorherigen Aufruf von get_events aufgetreten sind.
In diesem Fall muss after_tag das Tag aus dem vorherigen Aufruf enthalten.
Siehe untenstehendes Beispiel.

Antwort

Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
Boolean
-
true, es sei denn, es ist ein Fehler aufgetreten.
events
optional
Liste von Ereignisobjekten
[]
Eine Liste von Ereignisobjekten in der Reihenfolge, in der sie von den mobilen Apps der Fahrer eingegangen sind.
tag
optional
Zeichenkette
-
Markiert den Zeitpunkt des letzten in dieser Antwort empfangenen Ereignisses. Verwenden Sie es, um den after_tag Abfrageparameter in der nächsten get_events Anfrage anzugeben.
remainingEvents
optional
Ganzzahl
unverändert
Die Anzahl der Ereignisse, die aufgetreten sind, aber in dieser Antwort nicht abgerufen wurden (in jeder Antwort werden maximal 500 Ereignisse zurückgegeben).

Ereignisobjekt

Eigenschaft Typ Beschreibung
event
verpflichtend
Zeichenkette Ereignistyp. Derzeit einer der folgenden:
on_duty – der Fahrer ging in den Dienst
off_duty – der Fahrer ging aus dem Dienst
start_service - der Fahrer begann den Dienst
success – die angegebene Bestellung wurde erfolgreich abgeschlossen
failed – der Fahrer konnte die Bestellung nicht abschließen
rejected – der Fahrer lehnte die Bestellung ab
start_route – der Fahrer begann die Route
end_route – der Fahrer beendete die Route
start_time_changed – der Fahrer änderte die geplante Startzeit
unixTimestamp
verpflichtend
Ganzzahl Die Zeit, zu der das Ereignis auftrat.
Anzahl der seit dem 1. Januar 1970 00:00 UTC vergangenen Sekunden.
utcTime
verpflichtend
ISO 8601 Datum (Zeichenkette) Das UTC-Datum und die Uhrzeit, an denen das angegebene Ereignis auftrat.
localTime
verpflichtend
ISO 8601 Datum (Zeichenkette) Die lokale Uhrzeit am Ort der Bestellung, zu der das angegebene Ereignis auftrat.
driverName
optional
Zeichenkette Der Name des Fahrers.
Wird für Ereignisse gesendet, die sich auf einen bestimmten Fahrer beziehen.
driverSerial
optional
Zeichenkette Die Seriennummer des Fahrers.
Wird nicht gesendet, wenn leer oder wenn das Ereignis sich nicht auf einen bestimmten Fahrer bezieht.
driverExternalId
optional
Zeichenkette Die externe Kennung des Fahrers.
Wird nicht gesendet, wenn leer oder wenn das Ereignis sich nicht auf einen bestimmten Fahrer bezieht.
orderNo
optional
Zeichenkette Die Kennung der betroffenen Bestellung.
Wird für einige Ereignisse wie on_duty nicht gesendet.
orderId
optional
Zeichenkette
-
Die schreibgeschützte, von OptimoRoute zugewiesene, eindeutige Kennung der betroffenen Bestellung.
Wird für einige Ereignisse wie on_duty nicht gesendet.
plannedStartTime
optional
Zeitobjekt Die Zeit, zu der der Fahrer plant, die Route zu starten.
Wird nur mit dem start_time_changed Ereignis enthalten sein.

Die zurückgegebenen Ereignisfelder unixTimestamp, utcTime und localTime beziehen sich alle auf denselben Zeitpunkt, zu dem das Ereignis auftrat, sodass Sie das am besten geeignete verwenden können.

Bitte beachten Sie, dass einige mobile Geräte vorübergehend offline sein könnten und sie ihre Ereignisse erst dann synchronisieren, wenn sie sich wieder verbinden, sodass die von Ihnen empfangenen Ereignisse möglicherweise nicht in chronologischer Reihenfolge ankommen. Zum Beispiel könnte der erste Fahrer die Bestellung 001 um 09:00 Uhr erfolgreich abschließen, aber bis 09:15 Uhr offline sein. Der zweite Fahrer könnte die Bestellung 002 um 09:10 Uhr abschließen, aber die ganze Zeit online sein. Der Server wird das Ereignis für die Bestellung 002 zuerst empfangen und erst dann das Ereignis für die Bestellung 001.

Beispiele

Bei der ersten Anfrage werden wir den Parameter after_tag nicht angeben (wir lassen ihn leer):

curl 'https://api.optimoroute.com/v1/get_events?key=AUTH_KEY&after_tag='

Antwort:

{
  "remainingEvents": 0,
  "tag": "abcd1234xyz",
  "events": [
    {
      "unixTimestamp": 1516294800,
      "utcTime": "2018-01-18T17:00:00",
      "localTime": "2018-01-18T09:00:00",
      "driverName": "Charlie",
      "driverSerial": "0011",
      "event": "on_duty",
    },
    {
      "unixTimestamp": 1516296030,
      "event": "success",
      "utcTime": "2018-01-18T17:20:30",
      "localTime": "2018-01-18T09:20:30",
      "driverName": "Charlie",
      "driverSerial": "0011",
      "orderNo": "ORD232",
      "orderId": "f7afe58fcddfcbf9f42620c79ebad7ff"
    }
  ],
  "success": true
}

Wir werden die Abfrage in 10 Sekunden wiederholen, aber diesmal verwenden wir das Tag, das wir im letzten Ergebnis erhalten haben, als unseren after_tag Parameter:

curl 'https://api.optimoroute.com/v1/get_events?key=AUTH_KEY&after_tag=abcd1234xyz'

Antwort:

{
  "remainingEvents": 0,
  "tag": "abcd1234xyz",
  "events": [],
  "success": true
}

Es gab in der Zwischenzeit keine neuen Ereignisse. Wir werden die Abfrage in 10 Sekunden wiederholen:

curl 'https://api.optimoroute.com/v1/get_events?key=AUTH_KEY&after_tag=abcd1234xyz'

Antwort:

{
  "remainingEvents": 0,
  "tag": "qwe9876541213",
  "events": [
    {
      "unixTimestamp": 1516298030,
      "event": "success",
      "utcTime": "2018-01-18T17:53:50",
      "localTime": "2018-01-18T09:53:50",
      "driverName": "Charlie",
      "driverSerial": "0011",
      "orderNo": "ORD771",
      "id": "04e7b09e993e8488024f46aaf9d8c72d"
    }
  ],
  "success": true
}

Abschluss von Bestellungen abrufen

Ruft Abschlussdetails für eine oder mehrere Bestellungen ab, sobald diese abgeschlossen wurden. Für Echtzeit-Auftragsstatus-Updates verwenden Sie bitte den Get Mobile Events Endpoint.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/get_completion_details

reqbody.json ist eine lokale Datei, die die zu postenden JSON-Daten enthält. Stellen Sie sicher, dass Sie AUTH_KEY durch Ihren API-Schlüssel ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/get_completion_details?key=AUTH_KEY'

Parameter

Beispiel für den POST-Anfragekörper:

{
  "orders": [
    {
      "orderNo": "ORD001"
    },
    {
      "orderNo": "ORD99"
    },
    {
      "orderNo": "ORD55"
    },
    {
      "orderNo": "XXXYZ"
    },
    {
      "id": "84e5e94d341dc637ff77b56ea96cb8e3"
    }
  ]
}
Eigenschaft Typ / Standard Beschreibung
orders
verpflichtend
Liste von Bestellobjekten
-
Liste von Bestellobjekten, deren Abschlussdetails abgerufen werden sollen. Jedes Bestellobjekt kann eines der folgenden enthalten:
  • orderNo: der benutzerdefinierte Bezeichner einer Bestellung
  • id: der von OptimoRoute vergebene eindeutige Bezeichner der Bestellung
Es können maximal 500 Bestellungen angegeben werden.



Für Flexibilität kann der Aufruf von get_completion_details auch als HTTP GET-Anfrage erfolgen:

Beispiel für GET Anfrage:

curl 'https://api.optimoroute.com/v1/get_completion_details?key=AUTH_KEY&orderNo=ORD001&orderNo=ORD99&orderNo=ORD55&orderNo=XXXYZ'
Eigenschaft Typ / Standard Beschreibung
orderNo
verpflichtend
string
-
Der benutzerdefinierte Bezeichner einer Bestellung; kann wiederholt werden, um Abschlussdetails für mehrere Bestellungen abzurufen.

Antwort

Antwort:

{
  "orders": [
    {
      "success": true,
      "orderNo": "ORD001",
      "data": {
        "status": "failed",
        "startTime": {
          "unixTimestamp": 1604267055,
          "utcTime": "2020-11-01T21:44:15",
          "localTime": "2020-11-01T16:44:15"
        },
        "endTime": {
          "unixTimestamp": 1604267305,
          "utcTime": "2020-11-01T21:48:25",
          "localTime": "2020-11-01T16:48:25"
        },
        "form": {
          "note": "Kunde war nicht verfügbar, wartete 5 Minuten, niemand öffnete die Tür"
        },
        "tracking_url": "https://order.is/Ka231Xpp"
      }
    },
    {
      "success": true,
      "orderNo": "ORD99",
      "data": {
        "status": "success",
        "startTime": {
           "unixTimestamp": 1604264327,
           "utcTime": "2020-11-01T20:58:47",
           "localTime": "2020-11-01T15:58:47"
        },
        "endTime": {
           "unixTimestamp": 1604264397,
           "utcTime": "2020-11-01T20:59:57",
           "localTime": "2020-11-01T15:59:57"
        },
        "form": {
          "signature": {
            "type": "image/png",
            "url": "https://optimoroute-vixldutrtzrnkmcpgateah.s3-accelerate.amazonaws.com/1fA-LEwk/yV8921_C5DA/0JCKDRJDSah-4N/fb5f0f06a08243f4aba05430664ddc19.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600&X-Amz-Credential=AKIAI6CIXSXBBNSDQZYN%2F20201101%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Date=20201101T185647Z&X-Amz-Signature=6281e5e133e517beb3b041224b87d473122f1626ab371bf1a523dff0ddad642b"
          },
          "barcode": [
            {
              "barcode": "123456",
              "scanInfo": {
                "status": "success",
                "scanned": "123456"
              }
            },
            {
              "barcode": "345678",
              "scanInfo": {
                "images": [
                  {
                    "type": "image/jpeg",
                    "url": "https://..."
                  }
                ],
                "status": "unscannable"
              }
            }
          ],
          "barcode_collections": [
            {
              "barcode": null,
              "scanInfo": {
                "type": "code-128",
                "status": "added",
                "scanned": "000123"
              }
            }
          ]
        }
      }
    },
    {
      "success": true,
      "orderNo": "ORD55",
      "data": {
        "status": "scheduled"
      }
    },
    {
      "success": false,
      "orderNo": "XXXYZ",
      "message": "Die Bestellung mit dem entsprechenden orderNo wurde nicht gefunden.",
      "code": "ERR_ORD_NOT_FOUND"
    },
    {
      "success": true,
      "id": "84e5e94d341dc637ff77b56ea96cb8e3",
      "data": {
        "status": "success",
        "startTime": {
          "unixTimestamp": 1661438862,
          "utcTime": "2022-08-25T14:47:42",
          "localTime": "2022-08-25T16:47:42"
        },
        "endTime": {
          "unixTimestamp": 1661438878,
          "utcTime": "2022-08-25T14:47:58",
          "localTime": "2022-08-25T16:47:58"
        },
        "tracking_url": "https://order.is/kzrmzcja"
      }
    }
  ],
  "success": true
}
Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn Abschlussdetails von mindestens einer Bestellung abgerufen wurden, false, wenn keine Bestellungen abgerufen wurden
orders
optional
Liste von Abschlussantwortobjekten
[]
Eine Liste von Objekten, die Abschlussdetails der Bestellungen enthalten, eines für jede angeforderte Bestellung.

Abschlussantwortobjekt

Eigenschaft Typ / Standard Beschreibung
orderNo
optional
string
-
Der Bezeichner der Bestellung. Nur vorhanden, wenn orderNo in der Anfrage verwendet wurde.
id
optional
string
-
Der von OptimoRoute vergebene eindeutige Bezeichner der Bestellung. Nur vorhanden, wenn id in der Anfrage verwendet wurde.
success
verpflichtend
boolean
-
true, wenn die Operation erfolgreich war, false, wenn ein Fehler auftrat.
code
optional
string
-
Ein Fehler- oder Warncode (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
string
-
Eine Fehlerbeschreibung oder eine Warnbeschreibung (nicht gesetzt, wenn die Operation erfolgreich war).
data
optional
Objekt
{}
Objekt, das den Bestellabschlussstatus und Metadaten enthält. Siehe Felder der Abschlussdetails für mögliche Schlüssel.

Felder der Abschlussdetails

Das zurückgegebene Abschlussdetails-Objekt enthält je nach dem Fortschritt der Bestellung, wie der Liefernachweis konfiguriert ist, und was ausgefüllt wurde, die unten beschriebenen Felder. Das zurückgegebene Abschlussdetails-Objekt kann auch zusätzliche Felder enthalten, die hier noch nicht beschrieben sind.

Eigenschaft Typ / Standard Beschreibung
status
verpflichtend
string
-
Bestellstatus, siehe mögliche Werte: Bestellstatus-Werte
startTime
optional
Zeitobjekt
-
Zeit, zu der der Bestellvorgang gestartet wurde.
Nur vorhanden für Bestellungen mit dem Status servicing, success oder failed.
endTime
optional
Zeitobjekt
-
Zeit, zu der der Bestellvorgang abgeschlossen wurde (mit dem Status success oder failed).
Nur vorhanden für Bestellungen mit dem Status success oder failed.
form
optional
Formulardatenobjekt Enthält Werte, die in der mobilen App beim Abschluss der Bestellung ausgefüllt wurden.
Nur vorhanden, wenn Liefernachweis konfiguriert ist.
tracking_url
optional
string Ein Link zur Realtime Order Tracking-Seite der Bestellung. Nur vorhanden, wenn der Bestellung eine Tracking-Nummer zugewiesen wurde. Die Tracking-Nummer wird beim Versenden der Pläne an den Fahrer oder beim Versenden von Kundenbenachrichtigungen zugewiesen. Voraussetzung ist, dass die Auftragsverfolgung aktiviert ist.

Bestellstatus-Werte

Wert Beschreibung
unscheduled Bestellung wurde nicht geplant
scheduled Bestellung wurde noch nicht gestartet
on_route Fahrer ist auf dem Weg zum Bestellort
servicing Bestellung wird derzeit ausgeführt
success Bestellung wurde erfolgreich abgeschlossen
failed Fahrer konnte die Bestellung nicht abschließen
rejected Bestellung wurde vom Fahrer abgelehnt
cancelled Bestellung wurde vom Kunden storniert

Zeitobjekt

Eigenschaft Typ Beschreibung
unixTimestamp
verpflichtend
integer Anzahl der vergangenen Sekunden seit 00:00 UTC am 1. Januar 1970.
utcTime
verpflichtend
ISO 8601 Datum (string) Das UTC-Datum und die Uhrzeit
localTime
verpflichtend
ISO 8601 Datum (string) Die lokale Uhrzeit am Ort der Bestellung.

Die Felder unixTimestamp, utcTime und localTime beziehen sich alle auf denselben Moment, sodass Sie das für Sie bequemste verwenden können.

Formulardatenobjekt

Alle Felder in den Formulardaten sind optional, und das Objekt kann zusätzliche Felder enthalten, die hier nicht aufgeführt sind.

Eigenschaft Typ Beschreibung
note
optional
string Der Text der Notiz, die beim Abschluss der Bestellung enthalten ist.
Nur vorhanden, wenn als Teil des Liefernachweises konfiguriert und eine Notiz ausgefüllt wurde.
signature
optional
Bildanhangsobjekt Das Objekt beschreibt die angehängte Signaturbilddatei
Nur vorhanden, wenn als Teil des Liefernachweises konfiguriert und eine Signatur ausgefüllt wurde.
images
optional
Liste von Bildanhangsobjekten Das Objekt listet die angehängten Bilder auf.
Nur vorhanden, wenn als Teil des Liefernachweises konfiguriert und Bilder aufgenommen wurden.
barcode
optional
Liste von Barcode-Scan-Objekten Das Objekt beschreibt die Barcode-Abschlussdetails
Nur vorhanden, wenn ein einer Bestellung vorab angefügter Barcode gescannt wurde.
barcode_collections
optional
Liste von Barcode-Scan-Objekten Das Objekt beschreibt die Barcodes, die mit der Bestellung gesammelt wurden.
Nur vorhanden, wenn als Teil des Fahrer-App-Workflows konfiguriert und ein nicht geplanter Barcode während einer Sammlung zusammen mit einer Bestellung gescannt wurde.

Bildanhangsobjekt

Eigenschaft Typ Beschreibung
type
verpflichtend
string Der MIME-Typ des angehängten Bildes, typischerweise image/png oder image/jpeg
url
verpflichtend
string Die URL, unter der die Bilddatei heruntergeladen werden kann. Die URL enthält temporäre Authentifizierungstoken und ist mindestens 5 Tage lang gültig, aber nicht unbegrenzt.

Barcode-Scan-Objekt

Eigenschaft Typ Beschreibung
barcode string Der Barcode, der der Bestellung angefügt ist. Kann leer sein, wenn der Barcode statt des Scanens des vorab angefügten Barcodes hinzugefügt wird (z. B. Artikelsammlung während einer Lieferung)
scanInfo Barcode-Info-Objekt Objekt, das den Status des Barcode-Scans und zusätzliche Informationen beschreibt

Barcode-Info-Objekt

Eigenschaft Typ Beschreibung
status
verpflichtend
Barcode-Status Beschreibt den Status eines Barcode-Scans
scanned
optional
string Barcode, der tatsächlich gescannt wurde. Kann sich je nach Status vom erwarteten Barcode unterscheiden.
images
optional
Liste von Bildanhangsobjekten Bilder, die den Barcode-Scan ersetzen, wenn der Barcode selbst nicht scannbar ist. Kann mit dem Status unscannable vorhanden sein
type
optional
string Der Typ des gescannten Barcodes, wenn er zum Zeitpunkt des Scanens abgeleitet werden konnte.
Unterstützungstypen umfassen: code-128, code-39, code-93, codabar, ean-13, ean-8, itf, upc-e, upc-a, qr, pdf-417, aztec, data-matrix

Barcode-Status

Statuscode Beschreibung
success Der korrekte Barcode wurde gescannt, der Wert stimmt mit dem der Bestellung überein
unscannable Der Barcode war nicht scannbar. Kann je nach Konfiguration Bilder enthalten
added Ein ungeplanter Barcode wurde gescannt und sein Barcode wurde hinzugefügt
replaced Der Barcode wurde zum Zeitpunkt der Lieferung ersetzt. Die Eigenschaft scanned zeigt den neuen Wert
missing Der Artikel war bei der Lieferung nicht verfügbar

Fehler- und Warncodes

Falls success false ist, werden data nicht gesendet und das Feld code enthält einen der folgenden Fehlercodes pro Bestellung:

Fehlercode Beschreibung
ERR_ORD_NOT_FOUND Die Bestellung mit dem entsprechenden orderNo wurde nicht gefunden
ERR_MULTIPLE_ORD_FOUND Es gibt mehrere Bestellungen, die dem orderNo entsprechen

Update-Auftragsabschluss

Aktualisieren Sie die Abschlussdetails für eine oder mehrere Bestellungen.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/update_completion_details

reqbody.json ist eine lokale Datei, die die zu postenden JSON-Daten enthält. Stellen Sie sicher, dass Sie AUTH_KEY mit Ihrem API-Schlüssel ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/update_completion_details?key=AUTH_KEY'

Parameter

Beispiel für den POST-Anfragekörper:

{
  "updates": [
    {
      "orderNo": "ORD001",
      "data": {
        "status": "failed",
        "startTime": {
           "unixTimestamp": 1604264327,
        },
        "endTime": {
           "unixTimestamp": 1604264397,
        },
      }
    },
    {
      "orderNo": "ORD99",
      "data": {
        "status": "success",
         "startTime": {
          "utcTime": "2020-11-01T21:44:15",
        },
        "endTime": {
          "utcTime": "2020-11-01T21:48:25",
        },
      }
    },
    {
      "orderNo": "ORD55",
      "data": {
        "status": "scheduled"
      }
    },
    {
      "orderNo": "ORD56",
      "data": {
        "status": "servicing",
        "startTime": {
           "unixTimestamp": 1692186190,
        },
      }
    },
    {
      "orderNo": "XXXYZ",
      {
        "data": {
          "status": "cancelled"
        }
      }
    },
    {
      "id": "84e5e94d341dc637ff77b56ea96cb8e3",
      {
          "data": {
            "status": "on_route"
          }
      }
    }
  ],
}

Eigenschaft Typ / Standard Beschreibung
updates
verpflichtend
Liste von Abschlussdetails-Aktualisierungsobjekten
[]
Eine Liste von Auftragsabschlussdetails, die aktualisiert werden sollen. Es können maximal 500 Abschlussdetails-Objekte angegeben werden.

Abschlussdetails-Aktualisierungsobjekt

Eigenschaft Typ / Standard Beschreibung
orderNo
optional
Zeichenkette
-
Der Bezeichner der Bestellung. Erforderlich, wenn id nicht angegeben ist.
id
optional
Zeichenkette
-
Die eindeutige Kennung der Bestellung, die von OptimoRoute vergeben wird. Erforderlich, wenn orderNo nicht angegeben wurde.
data
optional
Objekt
{}
Objekt, das den Auftragsabschlussstatus und Metadaten enthält. Siehe Felder für Abschlussdetails-Aktualisierung für mögliche Schlüssel.

Felder für Abschlussdetails-Aktualisierung

Eigenschaft Typ / Standard Beschreibung
status
verpflichtend
Zeichenkette
-
Auftragsstatus, siehe mögliche Werte: [Bestellstatus-Werte

](#abschluss-von-bestellungen-abrufen-bestellstatus-werte) startTime
optional | Zeit-Aktualisierungsobjekt
- | Zeit, zu der die Bestellung begonnen wurde.
Nur vorhanden für Aufträge mit Status servicing, success oder failed. endTime
optional | Zeit-Aktualisierungsobjekt
- | Zeit, zu der der Auftrag abgeschlossen wurde (gekennzeichnet durch den Status success oder failed).
Nur vorhanden für Aufträge mit Status success oder failed.

Zeit-Aktualisierungsobjekt

Eigenschaft Typ Beschreibung
unixTimestamp
optional
Ganzzahl Anzahl an Sekunden seit 00:00 UTC am 1. Januar 1970.
utcTime
optional
ISO 8601 Datum (Zeichenkette) UTC-Datum und -Uhrzeit. Wird ignoriert, wenn unixTimestamp angegeben ist.
localTime
optional
ISO 8601 Datum (Zeichenkette) Die lokale Zeit am Standort der Bestellung. Wird ignoriert, wenn unixTimestamp oder utcTime angegeben ist.

Mindestens eines von unixTimestamp, utcTime, localTime sollte angegeben werden.

Antwort

Antwort:

{
  "orders": [
    {
      "success": true,
      "orderNo": "ORD001",
      "data": {
        "status": "failed",
        "startTime": {
          "unixTimestamp": 1604264327,
          "utcTime": "2020-11-01T20:58:47",
          "localTime": "2020-11-01T15:58:47"
        },
        "endTime": {
          "unixTimestamp": 1604264397,
          "utcTime": "2020-11-01T20:59:57",
          "localTime": "2020-11-01T15:59:57"
        },
      }
    },
    {
      "success": true,
      "orderNo": "ORD99",
      "data": {
        "status": "success",
        "startTime": {
          "unixTimestamp": 1604267055,
          "utcTime": "2020-11-01T21:44:15",
          "localTime": "2020-11-01T16:44:15"
        },
        "endTime": {
          "unixTimestamp": 1604267305,
          "utcTime": "2020-11-01T21:48:25",
          "localTime": "2020-11-01T16:48:25"
        },
      }
    },
    {
      "success": true,
      "orderNo": "ORD55",
      "data": {
        "status": "scheduled"
      }
    },
    {
      "success": true,
      "orderNo": "ORD56",
      "data": {
        "status": "servicing",
        "startTime": {
          "unixTimestamp": 1692186190,
          "utcTime": "2023-08-16T11:43:10",
          "localTime": "2023-08-16T06:43:10"
        },
      }
    },
    {
      "success": false,
      "orderNo": "XXXYZ",
      "message": "The order with the matching orderNo was not found.",
      "code": "ERR_ORD_NOT_FOUND"
    },
    {
      "success": true,
      "id": "84e5e94d341dc637ff77b56ea96cb8e3",
      "data": {
        "status": "on_route",
      }
    }
  ],
  "success": true
}
Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
true, wenn Abschlussdetails von mindestens einer Bestellung aktualisiert wurden, false, wenn keine Abschlussdetails aktualisiert wurden.
updates
optional
Liste von Abschlussantwortobjekten
[]
Eine Liste von Objekten, die die Auftragsabschlussdetails enthalten, eines für jede angeforderte Aktualisierung. Abschlussantwortobjekt

Aktualisieren der Fahrerpositionen (Massenaktualisierung)

Aktualisiert die Positionen mehrerer Fahrer zu bestimmten Zeitpunkten.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/update_drivers_positions

reqbody.json ist eine lokale Datei, die die zu postenden JSON-Daten enthält. Achten Sie darauf, AUTH_KEY durch Ihren API-Schlüssel zu ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/update_drivers_positions?key=AUTH_KEY'

Parameter

Beispiel der Anforderungskörper:

{
  "updates": [
    {
      "driver": {
        "externalId": "001"
      },
      "positions": [
        {
          "timestamp": 1692186190,
          "latitude": 45.805945,
          "longitude": 16.237825,
          "speed": 0,
          "accuracy": 10.1
        },
        {
          "timestamp": 1692186194,
          "latitude": 45.805945,
          "longitude": 16.237825,
          "speed": 0,
          "accuracy": 10.1
        }
      ]
    },
    {
      "driver": {
        "serial": "S002"
      },
      "positions": [
        {
          "timestamp": 1692186190,
          "latitude": 45.805945,
          "longitude": 16.237825,
          "speed": 20.3,
          "accuracy": 10.1,
          "heading": 34.2
        },
        {
          "timestamp": 1692186194,
          "latitude": 45.805923,
          "longitude": 16.237844,
          "speed": 22.1,
          "accuracy": 12.4,
          "heading": 34.2
        }
      ]
    },
    {
      "driver": {
        "externalId": "S003"
      },
      "positions": [
        {
          "timestamp": 1692186190,
          "latitude": 45.805945,
          "longitude": 16.237825
        }
      ]
    },
    {
      "driver": {
        "serial": "S004"
      },
      "positions": [
        {
          "timestamp": 1692186190,
          "latitude": 45.805945,
          "longitude": 16.237825
        }
      ]
    },
    {
      "driver": {
        "serial": "S004"
      },
      "positions": [
        {
          "timestamp": 1692186190,
          "latitude": 45.805945,
          "longitude": 16.237825
        }
      ]
    }
  ]
}
Eigenschaft Typ / Standard Beschreibung
updates
verpflichtend
Liste von Fahrerpositionsobjekten
-
Liste von Objekten, die jeweils Positionen für einen Fahrer spezifizieren. Es kann höchstens 1 Objekt für einen einzigen Fahrer angegeben werden.

Fahrerpositionsobjekt

Eigenschaft Typ / Standard Beschreibung
driver
verpflichtend
Objekt
-
Ein Objekt mit den String-Eigenschaften serial oder externalId, das den Fahrer eindeutig identifiziert. Beispiel: {"serial": "102"} oder {"externalId": "444"}.
positions
verpflichtend
Liste von Position-Objekten
-
Liste von Positionen über die Zeit. Es können maximal 100 Positionen für einen einzelnen Fahrer angegeben werden.

Positionsobjekt

Eigenschaft Typ / Standard Beschreibung
timestamp
verpflichtend
Ganzzahl Die Zeit, zu der das Ereignis eingetreten ist.
Anzahl der Sekunden, die seit 00:00 UTC am 1. Januar 1970 vergangen sind.
latitude
verpflichtend
Dezimal
-
Positionsbreite in Grad.
longitude
verpflichtend
Dezimal
-
Positionslänge in Grad.
accuracy
optional
Dezimal
-
Radius der Unsicherheit für die Position in Metern.
speed
optional
Dezimal
-
Geschwindigkeit in Metern pro Sekunde.
heading
optional
Dezimal
-
Fahrtrichtung in Grad, wobei 0 Norden, 90 Osten, 180 Süden, ... bedeutet.

Antwort

Beispiel einer Antwort:

{
  "updates": [
     {
      "success": true,
      "driver": {
        "externalId": "001"
      },
    },
    {
      "success": false,
      "driver": {
        "serial": "S002"
      },
      "code": "ERR_MULTIPLE_DRV",
      "message": "Es wurden mehrere Fahrer mit übereinstimmender externer ID oder Seriennummer gefunden.",
    },
    {
      "success": false,
      "driver": {
        "externalId": "S003"
      },
      "code": "ERR_DRIVER_NOT_FOUND",
      "message": "Es konnte kein Fahrer mit der übereinstimmenden ID gefunden werden",
    },
    {
      "success": false,
      "driver": {
        "serial": "S004"
      },
      "code": "ERR_MULTIPLE_DRV_POS",
      "message": "Mehrere Fahrerpositionsobjekte für einen einzelnen Fahrer",
    }, {
      "success": false,
      "driver": {
        "serial": "S004"
      },
      "code": "ERR_MULTIPLE_DRV_POS",
      "message": "Mehrere Fahrerpositionsobjekte für einen einzelnen Fahrer",
    }
  ],
  "success": true
}
Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
Boolean
-
true, wenn mindestens eine Operation erfolgreich war, false, wenn alle fehlschlugen
updates
Liste von Fahrerantwortobjekten
-
Jedes Fahrerantwortobjekt in der Liste entspricht dem jeweiligen Fahrerpositionsobjekt in der Anfrage.

Fahrerantwortobjekt

Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
Boolean
-
true, wenn die Operation erfolgreich war, false, wenn ein Fehler aufgetreten ist.
driver
optional
Objekt
-
Identifikation des jeweiligen Fahrers als Objekt mit den String-Eigenschaften serial oder externalId.
code
optional
String
-
Ein fehlerbezogener Code (nicht gesetzt, wenn die Operation erfolgreich war).
message
optional
String
-
Eine Fehlerbeschreibung oder eine Warnung (nicht gesetzt, wenn die Operation erfolgreich war).

Fehler- und Warncodes

Die folgenden Fehlercodes sind für die Methode Update Drivers Positions anwendbar:

Fehlercode Beschreibung
ERR_DRIVER_NOT_FOUND der Fahrer mit der angegebenen externalId oder serial wurde nicht gefunden
ERR_MULTIPLE_DRV mehrere Fahrer mit angegebener externalId oder serial wurden gefunden
ERR_MULTIPLE_DRV_POS mehrere Fahrerpositionsobjekte für einen einzelnen Fahrer angegeben

Bestellungen suchen

Ruft eine oder mehrere Bestellungen aus dem System ab.

HTTP-Anfrage

POST https://api.optimoroute.com/v1/search_orders

reqbody.json ist eine lokale Datei, die die zu veröffentlichenden JSON-Daten enthält. Stellen Sie sicher, dass Sie AUTH_KEY mit Ihrem API-Schlüssel ersetzen.

curl -d '@reqbody.json' 'https://api.optimoroute.com/v1/search_orders?key=AUTH_KEY'

Parameter

Beispiele für Anfragetext:

{
  "dateRange": {
    "from": "2022-01-01",
    "to": "2022-01-03",
  },
  "includeOrderData": true,
  "orderStatus": ["failed", "rejected"]
}
{
  "orders": [
    {
      "orderNo": "10203"
    },
    {
      "orderNo": "10204"
    }
  ]
}
{
  "orders": [
    {
      "id": "72b85bf77fe53ebdc689c42ddaacad73"
    },
    {
      "id": "5a9247a50481860d44573f7d7f8799d5"
    }
  ],
  "includeScheduleInformation": true
}
Eigenschaft Typ / Standard Beschreibung
orders Liste von Bestellobjekten
-
Liste der abzurufenden Bestellobjekte. Jedes Bestellobjekt kann entweder enthalten:
  • orderNo: der vom Benutzer festgelegte Bezeichner einer Bestellung
  • id: der eindeutige Bezeichner der Bestellung, zugewiesen von OptimoRoute
Höchstzahl von 500 Bestellungen können angegeben werden.
dateRange Daterange-Objekt Ein Objekt mit Feldern from und to, beispielsweise:
{"from": "2022-01-01", "to": "2022-01-03"}. Der Bereich kann höchstens 35 Tage, d.h. 5 Wochen umfassen.
orderStatus
optional
Liste von Zeichenfolgen
-
Liste der Bestellstatus-Zeichenfolgen, um die abgerufenen Bestellungen optional nach Status zu filtern.
Siehe mögliche Werte: Bestellstatus-Werte.
includeOrderData
optional
boolean
false
Setzen Sie dies auf true, wenn Sie die Bestelldaten für die gefundenen Bestellungen abrufen müssen.
includeScheduleInformation
optional
boolean
false
Setzen Sie dies auf true, wenn Sie die Bestellplanungsinformationen abrufen müssen.
after_tag
optional
Zeichenfolge
-
Geben Sie das after_tag an, um nur die nächste Seite der Ergebnisse von einem vorherigen Aufruf dieses Endpunkts abzurufen.
In diesem Fall müssen alle Parameter mit denselben Werten wie beim vorherigen Aufruf wiederholt werden, und das after_tag muss den im vorherigen Aufruf zurückgegebenen Wert enthalten.

Mindestens eine der Eigenschaften orders oder dateRange muss in der Anfrage angegeben werden.

Antwort

Antwortbeispiel mit includeOrderData

{
  "success": true,
  "orders": [
    {
      "id": "cd013f61ad8155802ad4321f2b411f4f",
      "data": {
        "orderNo": "10205",
        "date": "2022-01-03",
        "type": "T",
        "priority": "M",
        "duration": 75,
        "notes": "",
        "email": "",
        "phone": "",
        "load1": 0,
        "load2": 0,
        "load3": 0,
        "load4": 0,
        "customField1": "Revision 5",
        "customField2": "184.5",
        "customField3": "",
        "customField4": "",
        "customField5": "",
        "id": "cd013f61ad8155802ad4321f2b411f4f",
        "assignedTo": null,
        "location": {
          "locationNo": "T1275",
          "locationName": "T1275",
          "address": "Moneta, VA 24121, United States",
          "latitude": 37.2636426,
          "longitude": -79.6105659,
          "notes": "",
          "valid": true,
          "checkInTime": 0
        },
        "skills": ["VA"],
        "vehicleFeatures": [],
        "timeWindows": [],
        "notificationPreference": "dont_notify",
        "allowedWeekdays": ["mon", "tue", "wed", "thu"],
        "allowedDates": {}
      }
    }
  ]
}

Antwortbeispiel mit includeScheduleInformation; das Vorhandensein von after_tag nach nur 2 Ergebnissen ist zur Veranschaulichung übertrieben.

{
  "success": true,
  "orders": [
    {
      "id": "72b85bf77fe53ebdc689c42ddaacad73",
      "scheduleInformation": {
        "driverExternalId": "",
        "driverSerial": "JQP",
        "driverName": "John Q P",
        "vehicleRegistration": null,
        "vehicleLabel": null,
        "stopNumber": 3,
        "scheduledAt": "10:03",
        "scheduledAtDt": "2022-01-02 10:03:44",
        "arrivalTimeDt": "2022-01-02 10:03:44",
        "travelTime": 2033,
        "distance": 32254
      }
    },
    {
      "id": "5a9247a50481860d44573f7d7f8799d5",
      "scheduleInformation": null
    },
  ],
  "after_tag": "gAAAAABjGMzYTPcM2QlRwp69tNXXU7asLhGUXJ0SfZZfieAbi37z73cmyfhaoSHWiT8sJX2HnvLjvDTrK3l9TySz0vfWEkuzx6OYOkS4Qc37smFa2Q0t7WE="
}
Eigenschaft Typ / Standard Beschreibung
success
verpflichtend
boolean
-
Dies wird false sein, wenn ein Fehler aufgetreten ist und keine Bestellungen abgerufen wurden.
orders
verpflichtend
Liste von Antwortobjekten für Bestellungen
-
Jedes Objekt in der Liste repräsentiert eine Ergebnisbestellung, die im System gefunden wurde. Weitere Informationen finden Sie in der Order Response Object-Sektion.
Höchstens 500 Bestellungen werden in einem Aufruf zurückgegeben. Verwenden Sie after_tag, um die restlichen Seiten abzurufen.
after_tag
optional
Zeichenfolge
-
Nur vorhanden, wenn es weitere Ergebnisseiten zum Abrufen gibt. Um die nächste Seite der Ergebnisse abzurufen, wiederholen Sie den Aufruf dieses Endpunkts mit dem Parameter after_tag und allen anderen Parametern mit denselben Werten.

Bestellantwortobjekt

Eigenschaft Typ / Standard Beschreibung
id
verpflichtend
Zeichenfolge
-
Der eindeutige Bezeichner der Bestellung, zugewiesen von OptimoRoute.
data
optional
Bestellobjekt
-
Die abgerufenen Bestelldaten; nur vorhanden, wenn includeOrderData auf true gesetzt wurde.
scheduleInformation
optional
Planungsinfo-Objekt
-
Die Planungsinformationen der Bestellung; nur vorhanden, wenn includeScheduleInformation auf true gesetzt wurde. Dies wird null sein, wenn die Bestellung nicht eingeplant ist.