Xojo Plugin
Xojo Plugin
Amazon SP-API Get Orders
See more Amazon SP-API Examples
Demonstrates Amazon SP-API Sellers API -- get orders. Returns orders created or updated during the time frame indicated by the specified parameters.Chilkat Xojo Plugin Downloads
Dim success As Boolean
success = False
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// IMPORTANT:
// You'll need to make changes to use values specific to your own region and account.
//
// Here is a list of values you'll need to change or provide:
//
// 1) The access key. Change AWS_ACCESS_KEY to your actual access key.
// 2) The secret key. Change AWS_SECRET_KEY to your actual access key.
// 3) Your region. Change "ew-west-1" to your region.
// 4) The domain to which you connect. Change sandbox.sellingpartnerapi-eu.amazon.com to non-sandbox by removing the "sandbox."
// and change the "-eu" part of the domain to your region. See https://developer-docs.amazon.com/sp-api/docs/sp-api-endpoints
// 5) Use the restricted data token (RDT) obtained from your code that previously obtained the RDT.
// If you saved the RDT to a file, update the relative file path "qa_data/tokens/sp_api_rdt_token.json" to your actual file path.
// 6) Update your Marketplace ID(s), such as ATVPDKIKX0DER
// 7) If using the non-sandbox, change the CreatedAfter from "TEST_CASE_200" to an actual date, such as "2022-12-25"
Dim authAws As New Chilkat.AuthAws
authAws.AccessKey = "AWS_ACCESS_KEY"
authAws.SecretKey = "AWS_SECRET_KEY"
authAws.ServiceName = "execute-api"
// Use the region that is correct for your needs.
authAws.Region = "eu-west-1"
Dim rest As New Chilkat.Rest
Dim bTls As Boolean
bTls = True
Dim port As Int32
port = 443
Dim bAutoReconnect As Boolean
bAutoReconnect = True
// Make sure to use the correct domain.
// This example is using the sandbox
success = rest.Connect("sandbox.sellingpartnerapi-eu.amazon.com",port,bTls,bAutoReconnect)
If (success = False) Then
System.DebugLog(rest.LastErrorText)
Return
End If
success = rest.SetAuthAws(authAws)
// Here's the example to get the RDT access token: Get SP-API Restricted Data Token
// Load the previously obtained RDT access token.
// See Fetch SP-API RDT Access Token
Dim jsonToken As New Chilkat.JsonObject
success = jsonToken.LoadFile("qa_data/tokens/sp_api_rdt_token.json")
If (success = False) Then
System.DebugLog("Failed to load RDT access token.")
Return
End If
// Add the x-amz-access-token request header.
Dim rdt_token As String
rdt_token = jsonToken.StringOf("restrictedDataToken")
success = rest.ClearAllHeaders()
success = rest.AddHeader("x-amz-access-token",rdt_token)
// Indicate the marketplace IDs. Use the marketplace ID for your needs. See https://developer-docs.amazon.com/sp-api/docs/marketplace-ids
success = rest.ClearAllQueryParams()
// When using the sandbox, use these params literally and exactly has shown here:
success = rest.AddQueryParam("MarketplaceIds","ATVPDKIKX0DER")
success = rest.AddQueryParam("CreatedAfter","TEST_CASE_200")
Dim sbResponse As New Chilkat.StringBuilder
Dim uri As String
uri = "/orders/v0/orders"
success = rest.FullRequestNoBodySb("GET",uri,sbResponse)
If (success = False) Then
System.DebugLog(rest.LastErrorText)
Return
End If
// Examine the response status.
Dim statusCode As Int32
statusCode = rest.ResponseStatusCode
If (statusCode <> 200) Then
System.DebugLog("Response status text: " + rest.ResponseStatusText)
System.DebugLog("Response body: ")
System.DebugLog(sbResponse.GetAsString())
System.DebugLog("Failed.")
Return
End If
System.DebugLog(sbResponse.GetAsString())
// If successful, gets a JSON response such as the following:
// {
// "payload": {
// "CreatedBefore": "1.569521782042E9",
// "Orders": [
// {
// "AmazonOrderId": "902-1845936-5435065",
// "PurchaseDate": "1970-01-19T03:58:30Z",
// "LastUpdateDate": "1970-01-19T03:58:32Z",
// "OrderStatus": "Unshipped",
// "FulfillmentChannel": "MFN",
// "SalesChannel": "Amazon.com",
// "ShipServiceLevel": "Std US D2D Dom",
// "OrderTotal": {
// "CurrencyCode": "USD",
// "Amount": "11.01"
// },
// "NumberOfItemsShipped": 0,
// "NumberOfItemsUnshipped": 1,
// "PaymentMethod": "Other",
// "PaymentMethodDetails": [
// "Standard"
// ],
// "IsReplacementOrder": false,
// "MarketplaceId": "ATVPDKIKX0DER",
// "ShipmentServiceLevelCategory": "Standard",
// "OrderType": "StandardOrder",
// "EarliestShipDate": "1970-01-19T03:59:27Z",
// "LatestShipDate": "1970-01-19T04:05:13Z",
// "EarliestDeliveryDate": "1970-01-19T04:06:39Z",
// "LatestDeliveryDate": "1970-01-19T04:15:17Z",
// "IsBusinessOrder": false,
// "IsPrime": false,
// "IsGlobalExpressEnabled": false,
// "IsPremiumOrder": false,
// "IsSoldByAB": false,
// "IsIBA": false,
// "DefaultShipFromLocationAddress": {
// "Name": "MFNIntegrationTestMerchant",
// "AddressLine1": "2201 WESTLAKE AVE",
// "City": "SEATTLE",
// "StateOrRegion": "WA",
// "PostalCode": "98121-2778",
// "CountryCode": "US",
// "Phone": "+1 480-386-0930 ext. 73824",
// "AddressType": "Commercial"
// },
// "FulfillmentInstruction": {
// "FulfillmentSupplySourceId": "sampleSupplySourceId"
// },
// "IsISPU": false,
// "IsAccessPointOrder": false,
// "AutomatedShippingSettings": {
// "HasAutomatedShippingSettings": false
// },
// "EasyShipShipmentStatus": "PendingPickUp",
// "ElectronicInvoiceStatus": "NotRequired"
// },
// {
// "AmazonOrderId": "902-8745147-1934268",
// "PurchaseDate": "1970-01-19T03:58:30Z",
// "LastUpdateDate": "1970-01-19T03:58:32Z",
// "OrderStatus": "Unshipped",
// "FulfillmentChannel": "MFN",
// "SalesChannel": "Amazon.com",
// "ShipServiceLevel": "Std US D2D Dom",
// "OrderTotal": {
// "CurrencyCode": "USD",
// "Amount": "11.01"
// },
// "NumberOfItemsShipped": 0,
// "NumberOfItemsUnshipped": 1,
// "PaymentMethod": "Other",
// "PaymentMethodDetails": [
// "Standard"
// ],
// "IsReplacementOrder": false,
// "MarketplaceId": "ATVPDKIKX0DER",
// "ShipmentServiceLevelCategory": "Standard",
// "OrderType": "StandardOrder",
// "EarliestShipDate": "1970-01-19T03:59:27Z",
// "LatestShipDate": "1970-01-19T04:05:13Z",
// "EarliestDeliveryDate": "1970-01-19T04:06:39Z",
// "LatestDeliveryDate": "1970-01-19T04:15:17Z",
// "IsBusinessOrder": false,
// "IsPrime": false,
// "IsAccessPointOrder": false,
// "IsGlobalExpressEnabled": false,
// "IsPremiumOrder": false,
// "IsSoldByAB": false,
// "IsIBA": false,
// "EasyShipShipmentStatus": "PendingPickUp",
// "ElectronicInvoiceStatus": "NotRequired"
// }
// ]
// }
// }
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
Dim json As New Chilkat.JsonObject
success = json.LoadSb(sbResponse)
Dim AmazonOrderId As String
Dim PurchaseDate As String
Dim LastUpdateDate As String
Dim OrderStatus As String
Dim FulfillmentChannel As String
Dim SalesChannel As String
Dim ShipServiceLevel As String
Dim CurrencyCode As String
Dim Amount As String
Dim NumberOfItemsShipped As Int32
Dim NumberOfItemsUnshipped As Int32
Dim PaymentMethod As String
Dim IsReplacementOrder As Boolean
Dim MarketplaceId As String
Dim ShipmentServiceLevelCategory As String
Dim OrderType As String
Dim EarliestShipDate As String
Dim LatestShipDate As String
Dim EarliestDeliveryDate As String
Dim LatestDeliveryDate As String
Dim IsBusinessOrder As Boolean
Dim IsPrime As Boolean
Dim IsGlobalExpressEnabled As Boolean
Dim IsPremiumOrder As Boolean
Dim IsSoldByAB As Boolean
Dim IsIBA As Boolean
Dim Name As String
Dim AddressLine1 As String
Dim City As String
Dim StateOrRegion As String
Dim PostalCode As String
Dim CountryCode As String
Dim Phone As String
Dim AddressType As String
Dim FulfillmentSupplySourceId As String
Dim IsISPU As Boolean
Dim IsAccessPointOrder As Boolean
Dim HasAutomatedShippingSettings As Boolean
Dim EasyShipShipmentStatus As String
Dim ElectronicInvoiceStatus As String
Dim j As Int32
Dim count_j As Int32
Dim strVal As String
Dim CreatedBefore As String
CreatedBefore = json.StringOf("payload.CreatedBefore")
Dim i As Int32
i = 0
Dim count_i As Int32
count_i = json.SizeOfArray("payload.Orders")
While i < count_i
json.I = i
AmazonOrderId = json.StringOf("payload.Orders[i].AmazonOrderId")
PurchaseDate = json.StringOf("payload.Orders[i].PurchaseDate")
LastUpdateDate = json.StringOf("payload.Orders[i].LastUpdateDate")
OrderStatus = json.StringOf("payload.Orders[i].OrderStatus")
FulfillmentChannel = json.StringOf("payload.Orders[i].FulfillmentChannel")
SalesChannel = json.StringOf("payload.Orders[i].SalesChannel")
ShipServiceLevel = json.StringOf("payload.Orders[i].ShipServiceLevel")
CurrencyCode = json.StringOf("payload.Orders[i].OrderTotal.CurrencyCode")
Amount = json.StringOf("payload.Orders[i].OrderTotal.Amount")
NumberOfItemsShipped = json.IntOf("payload.Orders[i].NumberOfItemsShipped")
NumberOfItemsUnshipped = json.IntOf("payload.Orders[i].NumberOfItemsUnshipped")
PaymentMethod = json.StringOf("payload.Orders[i].PaymentMethod")
IsReplacementOrder = json.BoolOf("payload.Orders[i].IsReplacementOrder")
MarketplaceId = json.StringOf("payload.Orders[i].MarketplaceId")
ShipmentServiceLevelCategory = json.StringOf("payload.Orders[i].ShipmentServiceLevelCategory")
OrderType = json.StringOf("payload.Orders[i].OrderType")
EarliestShipDate = json.StringOf("payload.Orders[i].EarliestShipDate")
LatestShipDate = json.StringOf("payload.Orders[i].LatestShipDate")
EarliestDeliveryDate = json.StringOf("payload.Orders[i].EarliestDeliveryDate")
LatestDeliveryDate = json.StringOf("payload.Orders[i].LatestDeliveryDate")
IsBusinessOrder = json.BoolOf("payload.Orders[i].IsBusinessOrder")
IsPrime = json.BoolOf("payload.Orders[i].IsPrime")
IsGlobalExpressEnabled = json.BoolOf("payload.Orders[i].IsGlobalExpressEnabled")
IsPremiumOrder = json.BoolOf("payload.Orders[i].IsPremiumOrder")
IsSoldByAB = json.BoolOf("payload.Orders[i].IsSoldByAB")
IsIBA = json.BoolOf("payload.Orders[i].IsIBA")
Name = json.StringOf("payload.Orders[i].DefaultShipFromLocationAddress.Name")
AddressLine1 = json.StringOf("payload.Orders[i].DefaultShipFromLocationAddress.AddressLine1")
City = json.StringOf("payload.Orders[i].DefaultShipFromLocationAddress.City")
StateOrRegion = json.StringOf("payload.Orders[i].DefaultShipFromLocationAddress.StateOrRegion")
PostalCode = json.StringOf("payload.Orders[i].DefaultShipFromLocationAddress.PostalCode")
CountryCode = json.StringOf("payload.Orders[i].DefaultShipFromLocationAddress.CountryCode")
Phone = json.StringOf("payload.Orders[i].DefaultShipFromLocationAddress.Phone")
AddressType = json.StringOf("payload.Orders[i].DefaultShipFromLocationAddress.AddressType")
FulfillmentSupplySourceId = json.StringOf("payload.Orders[i].FulfillmentInstruction.FulfillmentSupplySourceId")
IsISPU = json.BoolOf("payload.Orders[i].IsISPU")
IsAccessPointOrder = json.BoolOf("payload.Orders[i].IsAccessPointOrder")
HasAutomatedShippingSettings = json.BoolOf("payload.Orders[i].AutomatedShippingSettings.HasAutomatedShippingSettings")
EasyShipShipmentStatus = json.StringOf("payload.Orders[i].EasyShipShipmentStatus")
ElectronicInvoiceStatus = json.StringOf("payload.Orders[i].ElectronicInvoiceStatus")
j = 0
count_j = json.SizeOfArray("payload.Orders[i].PaymentMethodDetails")
While j < count_j
json.J = j
strVal = json.StringOf("payload.Orders[i].PaymentMethodDetails[j]")
j = j + 1
Wend
i = i + 1
Wend
System.DebugLog("Success!")