How to change order status
You can update the order's status with ease. Whether marking an order as "Pending," "In progress," or another relevant status.
Invalid Status Update Cases
-
Same Status Update:
The order is already in the specified status, so no update is needed. -
Immutable Status:
Orders in statuses like "Declined" or "Auction" cannot be updated. -
Conflict with Assigned Driver:
An order cannot be marked as "Open" if a driver is already assigned.
- NodeJS
const fetch = require("node-fetch")
fetch("https://backend.impargo.eu/", {
method: "POST",
headers: {
"authorization": token,
"content-type": "application/json",
},
body: JSON.stringify([
{
"operationName": "ChangeOrderStatus",
"variables": {
"order": order_id,
"status": order_status
},
"query": `mutation ChangeOrderStatus($order: ObjectId!, $status: EnumOrderStatus!) {
changeOrderStatus(order: $order, status: $status) {
...OrderData
__typename
}
}
fragment OrderFirstLastStopData on Order {
firstStop {
location {
country
city
zipcode
coordinates {
lat
lon
__typename
}
__typename
}
date {
from
to
__typename
}
time {
from
to
__typename
}
__typename
}
lastStop {
location {
country
city
zipcode
coordinates {
lat
lon
__typename
}
__typename
}
date {
from
to
__typename
}
time {
from
to
__typename
}
__typename
}
__typename
}
fragment RoutingOptionsData on RoutingOptions {
routingMode
considerTraffic
departureDate
maxHeight
maxAxle
shippedHazardousGoods
tunnelCategory
excludeCountries
__typename
}
fragment FileDetailsData on FileDetails {
name
url
__typename
}
fragment DriverLocationData on DriverLocation {
timestamp
lat
lon
heading
speed
battery
__typename
}
fragment EventData on Event {
_id
timestamp
eventType
eventDetails {
... on OrderDetails {
sourceId
companyId
user {
_id
company
firstname
lastname
email
__typename
}
fusedOrders {
_id
reference
__typename
}
__typename
}
... on OrderDocumentDetails {
sourceId
orderFileType
stopRef
driverId
fileDetails {
...FileDetailsData
__typename
}
files {
orderFileType
stopRef
fileDetails {
name
url
__typename
}
__typename
}
companyId
user {
_id
company
firstname
lastname
email
__typename
}
__typename
}
... on OrderStatusDetails {
sourceId
orderStatus
driverId
companyId
user {
_id
company
firstname
lastname
email
__typename
}
location {
...DriverLocationData
__typename
}
orderInvoiceUrl
__typename
}
... on OrderChangeRequestDetails {
sourceId
companyId
changeRequestId
changeRequestComment
user {
_id
company
firstname
lastname
email
__typename
}
__typename
}
... on OrderChangeRequestStatusDetails {
sourceId
companyId
changeRequestId
changeRequestStatus
changeRequestDeclineComment
user {
_id
company
firstname
lastname
email
__typename
}
__typename
}
... on StopStatusDetails {
sourceId
orderId
stopStatus
driverId
companyId
statusUpdateComment
user {
_id
company
firstname
lastname
email
__typename
}
stopFiles: files {
orderFileType
stopRef
fileDetails {
name
url
__typename
}
__typename
}
location {
...DriverLocationData
__typename
}
__typename
}
... on OrderConfirmationDetails {
sourceId
companyId
user {
_id
company
firstname
lastname
email
__typename
}
toEmails
ccEmails
__typename
}
... on OrderFusedDetails {
sourceId
companyId
resultingOrder {
_id
reference
__typename
}
user {
_id
company
firstname
lastname
email
__typename
}
__typename
}
__typename
}
__typename
}
fragment AddressesCategoryData on AddressesCategory {
_id
name
color
icon
isDefault
__typename
}
fragment AddressData on Address {
_id
companyName
label
country
zipcode
city
street
contactPerson
phoneNumber
comment
email
coordinates {
lat
lon
__typename
}
category {
...AddressesCategoryData
__typename
}
isOneTimeAddress
__typename
}
fragment ViapointData on Viapoint {
coordinates {
lat
lon
snapRadiusMeters
__typename
}
__typename
}
fragment LegViapointsData on LegViapoints {
viapoints {
...ViapointData
__typename
}
__typename
}
fragment FileData on File {
_id
url
name
size
contentType
type
company
stop {
_id
__typename
}
__typename
}
fragment LoadingUnitData on OrderLoadingUnits {
pickupStopIndex
dropStopIndex
unloadingReference
type
reference
length
width
height
weight
quantity
stackable
loadingMeters
icon
name
template {
_id
__typename
}
__typename
}
fragment ContactPersonData on ContactInfo {
firstname
lastname
company
skype
telephone
email
__typename
}
fragment DriverDeviceSettingsData on DriverDeviceSettings {
activityRecognition
locationProviderStatus
locationProviderEnabled
isIgnoringBatteryOptimization
isPowerSaveMode
powerManagerNeeded
powerManagerLastSeenAt
appVersion
androidVersion
device
isPowerSaveMode
updatedAt
__typename
}
fragment DriverData on Driver {
_id
displayName
telephone
company
firebaseUid
webfleetDriverId
trackingEnabled
deviceSettings {
...DriverDeviceSettingsData
__typename
}
status
activated
__typename
}
fragment ChangeRequestData on ChangeRequest {
_id
status
update {
load {
type
price
length
weight
value
bodyType
equipmentExchange
__typename
}
route {
stops {
location {
coordinates {
lat
lon
__typename
}
country
zipcode
city
__typename
}
operationType
comment
address {
...AddressData
__typename
}
date {
from
to
__typename
}
time {
from
to
__typename
}
waitingTimeMinutes
__typename
}
legViapoints {
...LegViapointsData
__typename
}
loaded
distance
time
__typename
}
reference
comment
files {
url
name
size
type
company
contentType
stop
__typename
}
loadingUnits {
pickupStopIndex
dropStopIndex
type
reference
unloadingReference
length
width
height
weight
quantity
stackable
__typename
}
additionalDetails {
value
label
customFieldId
visibility
__typename
}
__typename
}
snapshot {
route {
stops {
_id
status
operationType
waitingTimeMinutes
comment
location {
country
coordinates {
lat
lon
__typename
}
zipcode
city
__typename
}
date {
from
to
__typename
}
time {
from
to
__typename
}
address {
...AddressData
__typename
}
__typename
}
legViapoints {
...LegViapointsData
__typename
}
loaded
distance
time
__typename
}
load {
length
type
weight
bodyType
value
price
equipmentExchange
__typename
}
reference
comment
files {
...FileData
__typename
}
loadingUnits {
...LoadingUnitData
__typename
}
additionalDetails {
value
label
customFieldId
visibility
__typename
}
__typename
}
requestingCompany
requestingUserDetails {
firstname
lastname
email
company
__typename
}
requestComment
declineComment
createdAt
__typename
}
fragment OrderData on Order {
_id
isFused
...OrderFirstLastStopData
route {
routeDetails {
_id
legs {
calculatedRoute {
time
__typename
}
routingOptions {
...RoutingOptionsData
__typename
}
__typename
}
__typename
}
stopsCount
stops {
_id
status
operationType
waitingTimeMinutes
comment
referenceStops
events {
sourceId
items {
...EventData
__typename
}
__typename
}
location {
country
coordinates {
lat
lon
__typename
}
zipcode
city
__typename
}
date {
from
to
__typename
}
time {
from
to
__typename
}
additionalTimeWindows {
from
to
__typename
}
address {
...AddressData
__typename
}
isTrackingEmailSent
__typename
}
legViapoints {
...LegViapointsData
__typename
}
loaded
distance
time
departureDate
__typename
}
load {
length
type
weight
bodyType
value
price
equipmentExchange
__typename
}
reference
comment
status
files {
...FileData
__typename
}
loadingUnits {
...LoadingUnitData
__typename
}
contactPerson {
...ContactPersonData
__typename
}
events {
sourceId
items {
...EventData
__typename
}
__typename
}
offerComment
createdAt
updatedAt
assignment {
driver {
...DriverData
__typename
}
__typename
}
changeRequests {
...ChangeRequestData
__typename
}
additionalDetails {
value
label
customFieldId
visibility
__typename
}
__typename
}`
}
])
})
.then(response => response.json())
.then(data => {
console.log("Output:", data);
})
.catch(error => {
console.error("Error:", error);
});
- Response
[
{
"data": {
"changeOrderStatus": {
"_id": "65c7f6ba6985bde742fdd3ce",
"isFused": null,
"firstStop": {
"location": {
"country": "de",
"city": "Berlin",
"streetAndHouseNumber": "Alexanderplatz 1",
"zipcode": "10178",
"coordinates": {
"lat": 52.52292,
"lon": 13.41442,
"__typename": "Coordinates"
},
"__typename": "Location"
},
"date": {
"from": "2024-02-09T11:32:48.068Z",
"to": "2024-02-09T11:32:48.068Z",
"__typename": "FromToDate"
},
"time": {
"from": "08:00",
"to": "17:00",
"__typename": "FromToTime"
},
"__typename": "MainStopInfo"
},
"lastStop": {
"location": {
"country": "fr",
"city": "Paris",
"streetAndHouseNumber": "Rue de Rivoli 34",
"zipcode": "10178",
"coordinates": {
"lat": 48.85717,
"lon": 2.3414,
"__typename": "Coordinates"
},
"__typename": "Location"
},
"date": {
"from": "2024-02-09T11:32:48.068Z",
"to": "2024-02-09T11:32:48.068Z",
"__typename": "FromToDate"
},
"time": {
"from": "08:00",
"to": "17:00",
"__typename": "FromToTime"
},
"__typename": "MainStopInfo"
},
"__typename": "Order",
"route": {
"routeDetails": {
"_id": "65c7f6bac3c846c3e2922961",
"legs": [
{
"calculatedRoute": {
"time": 49114,
"__typename": "LegRoute"
},
"routingOptions": {
"routingMode": null,
"considerTraffic": false,
"departureDate": null,
"maxHeight": null,
"maxAxle": null,
"shippedHazardousGoods": [],
"tunnelCategory": null,
"excludeCountries": [],
"__typename": "RoutingOptions"
},
"__typename": "Leg"
}
],
"__typename": "RouteDetails"
},
"stopsCount": 2,
"stops": [
{
"_id": "65c7f6ba6985bde742fdd3c3",
"status": "PENDING",
"operationType": null,
"waitingTimeMinutes": null,
"comment": null,
"referenceStops": [],
"events": {
"sourceId": "65c7f6ba6985bde742fdd3c3",
"items": [],
"__typename": "Events"
},
"location": {
"country": "de",
"coordinates": {
"lat": 52.52292,
"lon": 13.41442,
"__typename": "Coordinates"
},
"zipcode": "10178",
"city": "Berlin",
"streetAndHouseNumber": "Alexanderplatz 56",
"__typename": "Location"
},
"date": {
"from": "2024-02-09T11:32:48.068Z",
"to": "2024-02-09T11:32:48.068Z",
"__typename": "FromToDate"
},
"time": {
"from": "08:00",
"to": "17:00",
"__typename": "FromToTime"
},
"additionalTimeWindows": [],
"address": null,
"isTrackingEmailSent": false,
"__typename": "Stop"
}
],
"legViapoints": [],
"loaded": [
null
],
"distance": 1064.776,
"time": 13.642777777777777,
"departureDate": null,
"__typename": "Route"
},
"load": {
"length": null,
"type": null,
"weight": 24,
"bodyType": "ANY",
"value": null,
"price": null,
"equipmentExchange": false,
"__typename": "Load"
},
"reference": "0902 / DE 10178 - FR 10178",
"comment": null,
"status": "ASSIGNED",
"files": [],
"loadingUnits": [],
"contactPerson": {
"firstname": "Joe",
"lastname": "Duo",
"company": "Trading Co.",
"skype": "",
"telephone": "012845323",
"email": "cfkeuiiv@sharklasers.com",
"__typename": "ContactInfo"
},
"events": {
"sourceId": "65c7f6ba6985bde742fdd3ce",
"items": [
{
"_id": "65c7f6bab275f3b2e8e12c19",
"timestamp": "2024-02-10T22:20:42.114Z",
"eventType": "ORDER_CREATED",
"eventDetails": {
"sourceId": "65c7f6ba6985bde742fdd3ce",
"companyId": "602cea807c960264eeb20a98",
"user": {
"_id": "602cea807c9602436cb20a97",
"company": "Trading Co.",
"firstname": "Joe",
"lastname": "Duo",
"email": "cfkeuiiv@sharklasers.com",
"__typename": "ContactInfo"
},
"fusedOrders": null,
"__typename": "OrderDetails"
},
"__typename": "Event"
}
],
"__typename": "Events"
},
"offerComment": null,
"createdAt": "2024-02-10T22:20:42.088Z",
"updatedAt": "2024-02-10T22:26:08.126Z",
"assignment": {
"driver": null,
"__typename": "OrderAssignment"
},
"changeRequests": [],
"additionalDetails": []
}
}
}
]