Get Order
Returns an order in response to a request with the given order ID.
Overview
Use an order ID to retrieve the details of an order. This request returns multiple representations of an order’s state via the "states" and "status" fields. The "status" field is currently deprecated and it is recommended that you use the “states” field going forward.
This request requires an access token with "orders/carts-read" scope. If an Order is found, a 200 OK response will be returned with the Order in the response body. If no Order can be found with the given orderId, a 404 Not Found response will be returned.
URI
GET: https://rest.bronto.com/orders/{orderId}?deliveryId={deliveryId}&messageId={messageId}&contactId={contactId}
Parameters
Parameter | Type | Description |
---|---|---|
orderId |
Required String | The unique identifier for an order. |
deliveryId |
Optional String | The unique identifier for a single delivery of a message associated with the order. You can use readDeliveries to return deliveryId as part of the deliveryObject. |
messageId |
Optional String | The unique identifier for a single message associated with the order. You can use readMessages to return messageId as part of the messageObject. |
contactId |
Optional String | The unique identifier for a contact associated with the order. You can use readContacts or readContactsWithLatestUnsubscribeDate to return contactId as part of the contactObject. |
Response Body
A response containing the order with the given ID.
{
emailAddress:validly formatted email address
contactId:string
orderDate:ISO-8601 datetime
status:PENDING | PROCESSED
hasTracking:boolean
trackingCookieName:string
trackingCookieValue:string
deliveryId:string
customerOrderId:string
discountAmount:number
grandTotal:number
lineItems:[
{
name:string
other:string
sku:string
category:string
imageUrl:string
productUrl:string
quantity:number
salePrice:number
totalPrice:number
unitPrice:number
description:string
position:number
}
]
originIp:IPv4 or IPv6 address
messageId:string
originUserAgent:string
shippingAmount:number
shippingDate:ISO-8601 datetime
shippingDetails:string
shippingTrackingUrl:string
subtotal:number
taxAmount:number
cartId:UUID
createdDate:ISO-8601 datetime
updatedDate:ISO-8601 datetime
currency:ISO-4217 currency code
states: {
processed:boolean
shipped:boolean
}
orderId:UUID
}
Java Code Example
import java.util.Map; import java.util.UUID; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.core.Form; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; public class GetOrderExample { // Host private static final String BRONTO_HOST = "http://rest.bronto.com"; private static final String BRONTO_AUTH_PATH = "https://auth.bronto.com/oauth2/token"; // Paths private static final String GET_ORDER_PATH = "orders/{orderId}"; private static final String ORDER_ID = "orderId"; // OAuth Request property names private static final String GRANT_TYPE = "grant_type"; private static final String CLIENT_ID = "client_id"; private static final String CLIENT_SECRET = "client_secret"; // OAuth Request property values private static final String CLIENT_CREDENTIALS = "client_credentials"; private static final String EXAMPLE_CLIENT_ID = "XXXXXXXXXXXXXXXXXXXXXXX"; private static final String EXAMPLE_CLIENT_SECRET = "XXXXXXXXXXXXXXXXXXXXXXX"; private static final String ACCESS_TOKEN = "access_token"; private static final String REASON_HEADER = "X-Reason"; // Id of the Order we are getting private static final String EXAMPLE_ORDER_ID = "0ad24370-96de-4922-9a53-954530fcbb64"; public static void main(String[] args) { Client client = ClientBuilder.newClient(); // To be able to access Orders Rest API, you need an access token. // First, we build the request data needed to gain an access token Form requestData = new Form(); requestData.param(GRANT_TYPE, CLIENT_CREDENTIALS); requestData.param(CLIENT_ID, EXAMPLE_CLIENT_ID); requestData.param(CLIENT_SECRET, EXAMPLE_CLIENT_SECRET); // Then build and send the request Response oauthResponse = client.target(BRONTO_AUTH_PATH) .request(MediaType.APPLICATION_JSON) .accept(MediaType.TEXT_PLAIN_TYPE) .post(Entity.form(requestData)); if (oauthResponse.getStatus() != Response.Status.OK.getStatusCode()) { throw new RuntimeException("Unable to get access token."); } // Retrieve the access token from the response Map<String, Object> responseData = oauthResponse.readEntity(Map.class); UUID accessToken = UUID.fromString((String) responseData.get(ACCESS_TOKEN)); // Now to get the Order Response orderResponse = client.target(BRONTO_HOST) .path(GET_ORDER_PATH) .resolveTemplate(ORDER_ID, EXAMPLE_ORDER_ID) .request(MediaType.APPLICATION_JSON) .header("Authorization", "Bearer " + accessToken.toString()) .get(); if (orderResponse.getStatus() == Response.Status.NOT_FOUND.getStatusCode()) { throw new RuntimeException("No Order found with orderId=" + EXAMPLE_ORDER_ID); } else if (orderResponse.getStatus() != Response.Status.OK.getStatusCode()) { String reason = orderResponse.getHeaderString(REASON_HEADER); throw new RuntimeException("Unable to get Order. Reason=" + reason); } // Retrieve the Order from the response Map<String, Object> order = orderResponse.readEntity(Map.class); System.out.println(order); } }
cURL Example
# Run the following cURL command after replacing YOUR_ID and YOUR_SECRET with the values from your REST Integration. curl -X POST -d "grant_type=client_credentials&client_id=YOUR_ID&client_secret=YOUR_SECRET" https://auth.bronto.com/oauth2/token # Replace YOUR_ACCESS_TOKEN with your returned token and replace YOUR_ORDER_ID with a real order ID. curl -i -X GET -H "Content-type: application/json" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Cache-Control: no-cache" https://rest.bronto.com/orders/YOUR_ORDER_ID