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:
- Die gesamte Anfrage kann fehlschlagen (z.B. ein ernsthafter Validierungs- oder Programmierfehler). Die Antwort wird einen Fehlercode enthalten.
- Die Operation schlug bei einigen Bestellungen fehl, war aber bei anderen erfolgreich. Die Antwort wird eine Liste enthalten, in der einige Objekte einen Fehlercode haben.
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 – NiedrigM – MittelH – HochC – KritischHochpriorisierte 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 sendenStandard 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:
|
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 TypEinzelauswahl
, wobeiapple
ein Optionsschlüssel ist,quantity
ist vom TypZahl
mit 0 Dezimalstellen,purity
ist vom TypZahl
mit 2 Dezimalstellen undinstructions
ist vom TypText
):
{
"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:
locationNo
Die Standortnummer eines bereits im System vorhandenen Standorts. Ein vorhandener Standort wird verwendet.
HINWEIS: Dieaddress
,latitude
+longitude
undlocationName
sollten NICHT angegeben werden, da das System ansonsten versuchen wird, den Standort erneut zu geokodieren oder einen mit einer definierten GPS-Position zu erstellen.latitude
+longitude
+locationName
(mit optionalemaddress
undlocationNo
)
Der Standort wird durch Breitengrad und Längengrad definiert.
Der Standortname wird auf den Wert deslocationName
-Felds gesetzt.
Die Standortadresse wird aufaddress
gesetzt, wennaddress
angegeben ist, andernfalls bleibt sie leer.
Die Standortnummer wird auflocationNo
gesetzt, wennlocationNo
angegeben ist, andernfalls bleibt sie leer.address
(mit optionalemlocationName
undlocationNo
)
Das System wird versuchen, bestehende Standorte mit der angegebenenaddress
(undlocationName
, wenn einer angegeben ist) zu finden. Wenn kein vorhandener Standort gefunden wird, wird die Standortadresse basierend auf der angegebenen Adresse geokodiert.
Der Standortname wird auf den Wert deslocationName
-Felds gesetzt, wennlocationName
angegeben ist, andernfalls wird er auf den Wert des Adressfeldes gesetzt.
Die Standortnummer wird auflocationNo
gesetzt, wennlocationNo
angegeben ist, andernfalls bleibt sie leer.
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:
- wenn
id
angegeben ist, wird der bestehende Auftrag mit den bereitgestellten Werten aktualisiert;- Eigenschaften, die nicht in der Anfrage bereitgestellt werden, behalten ihre bestehenden Werte
- wenn
id
nicht angegeben ist undorderNo
nicht angegeben ist oder kein Auftrag gefunden wird, wird ein neuer Auftrag erstellt;- Eigenschaften
date
undlocation
sind verpflichtend - Eigenschaften
duration
undtype
verwenden die Standardwerte, die in OptimoRoute konfiguriert wurden - andere Eigenschaften können weggelassen werden; in diesem Fall werden die Standardwerte aus dem Auftragsobjekt verwendet
- Eigenschaften
- wenn
id
nicht angegeben ist und ein bestehender Auftrag mit übereinstimmendemorderNo
gefunden wird, wird der bestehende Auftrag mit den bereitgestellten Werten aktualisiert;- Eigenschaften, die nicht in der Anfrage bereitgestellt werden, behalten ihre bestehenden Werte
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:
|
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 |
booleanfalse |
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:
|
deleteMultiple optional |
booleanfalse |
Wenn false , wird ein Fehler zurückgegeben, wenn mehrere Bestellungen durch ein Bestellobjekt übereinstimmen. Wenn true , werden alle Treffer gelöscht. |
forceDelete optional |
booleanfalse |
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 |
booleanfalse |
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 |
booleanfalse |
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 |
integer0 |
Routenlast #1. |
load2 verpflichtend |
integer0 |
Routenlast #2. |
load3 verpflichtend |
integer0 |
Routenlast #3. |
load4 verpflichtend |
integer0 |
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 |
ZeichenketteOFF |
Einstellungen zur Routen-Ausgewogenheit. Erlaubte Werte:OFF – Keine AusgewogenheitON – Balance der RoutenON_FORCE – Balance der Routen und Nutzung aller FahrerKeine 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 |
ZeichenketteWT |
Falls die Routen-Ausgewogenheit eingeschaltet ist, definiert dies die Kriterien für die Ausgewogenheit der Routen. Erlaubte Werte: WT – ArbeitszeitNUM – Anzahl der Aufträge pro Fahrer |
balancingFactor optional |
Dezimalzahl0.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 |
ZeichenketteEMPTY |
Planung von bestehenden Routen aus starten oder von neu beginnen. Erlaubte Werte: EMPTY – Bestehende Routen ignorieren und von neu startenCURRENT – Planung mit den bestehenden Routen beginnen |
lockType optional |
ZeichenketteNONE |
Anwendbar, wenn startWith auf CURRENT gesetzt ist.Erlaubte Werte: NONE – Alle Änderungen an den bestehenden Routen erlaubenROUTES - Geplante Routen unverändert lassen und neue Aufträge zu ungenutzten hinzufügenRESOURCES - Fahrer/Fahrzeuge für geplante Aufträge behalten und neue Aufträge einfügen |
depotTrips optional |
Booleanfalse |
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 |
Ganzzahl0 |
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 |
Booleanfalse |
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:
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 |
Booleantrue |
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 - NeuR - LäuftC - Vom Benutzer abgebrochenF - BeendetE - 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:
- Fahrer aktivieren/deaktivieren
- Fahrer Arbeitszeit ab
- Fahrer Arbeitszeit bis
- Zugewiesenes Fahrzeug
- Fahrzeugladekapazität #1
- Fahrzeugladekapazität #2
- Fahrzeugladekapazität #3
- Fahrzeugladekapazität #4
- Fahrerstartort
- Fahrerendort
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:
- Fahrer aktivieren/deaktivieren
- Arbeitszeit des Fahrers von
- Arbeitszeit des Fahrers bis
- Startort des Fahrers
- Zielort des Fahrers
- Zugewiesenes Fahrzeug
- Fahrzeugladekapazität #1
- Fahrzeugladekapazität #2
- Fahrzeugladekapazität #3
- Fahrzeugladekapazität #4
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 Dienstoff_duty – der Fahrer ging aus dem Dienststart_service - der Fahrer begann den Dienstsuccess – die angegebene Bestellung wurde erfolgreich abgeschlossenfailed – der Fahrer konnte die Bestellung nicht abschließenrejected – der Fahrer lehnte die Bestellung abstart_route – der Fahrer begann die Routeend_route – der Fahrer beendete die Routestart_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:
|
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:
|
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 |
booleanfalse |
Setzen Sie dies auf true , wenn Sie die Bestelldaten für die gefundenen Bestellungen abrufen müssen. |
includeScheduleInformation optional |
booleanfalse |
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 vonafter_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. |