Skip to main content

How to change order status

GraphQL mutation

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

  1. Same Status Update:
    The order is already in the specified status, so no update is needed.

  2. Immutable Status:
    Orders in statuses like "Declined" or "Auction" cannot be updated.

  3. Conflict with Assigned Driver:
    An order cannot be marked as "Open" if a driver is already assigned.


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);
});


[
{
"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": []
}
}
}
]