PureBasic MWS Orders: Get Order

Back to Index

Returns orders based on the AmazonOrderId values that you specify.

Documentation: http://docs.developer.amazonservices.com/en_US/orders-2013-09-01/Orders_GetOrder.html

CURL Command

curl -X POST https://mws.amazonservices.com/Orders/2013-09-01 \
  -d "AWSAccessKeyId=AWS_ACCESS_KEY_ID" \
  -d "Action=GetOrder" \
  -d "AmazonOrderId.Id.1=902-3159896-1390916" \
  -d "AmazonOrderId.Id.2=902-3159896-1390917" \
  -d "MWSAuthToken=MWS_AUTH_TOKEN" \
  -d "SellerId=MWS_SELLER_ID" \
  -d "Signature=MWS_SIGNATURE" \
  -d "SignatureVersion=2" \
  -d "SignatureMethod=HmacSHA256" \
  -d "LastUpdatedAfter=2017-02-01T18:12:21" \
  -d "Timestamp=CURRENT_DATE_TIME" \
  -d "Version=2013-09-01"

PureBasic Example

IncludeFile "CkXml.pb"
IncludeFile "CkRest.pb"

Procedure ChilkatExample()

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success.i

    ;  URL: https://mws.amazonservices.com/Orders/2013-09-01
    bTls.i = 1
    port.i = 443
    bAutoReconnect.i = 1
    success = CkRest::ckConnect(rest,"mws.amazonservices.com",port,bTls,bAutoReconnect)
    If success <> 1
        Debug "ConnectFailReason: " + Str(CkRest::ckConnectFailReason(rest))
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    CkRest::ckAddQueryParam(rest,"AWSAccessKeyId","AWS_ACCESS_KEY_ID")
    CkRest::ckAddQueryParam(rest,"Action","GetOrder")
    CkRest::ckAddQueryParam(rest,"AmazonOrderId.Id.1","902-3159896-1390916")
    CkRest::ckAddQueryParam(rest,"AmazonOrderId.Id.2","902-3159896-1390917")
    CkRest::ckAddQueryParam(rest,"MWSAuthToken","MWS_AUTH_TOKEN")
    CkRest::ckAddQueryParam(rest,"SellerId","MWS_SELLER_ID")
    CkRest::ckAddQueryParam(rest,"SignatureVersion","2")
    CkRest::ckAddQueryParam(rest,"SignatureMethod","HmacSHA256")
    CkRest::ckAddQueryParam(rest,"LastUpdatedAfter","2017-02-01T18:12:21")
    CkRest::ckAddQueryParam(rest,"Version","2013-09-01")

    CkRest::setCkHost(rest, "mws.amazonservices.com")
    ;  The AddMwsSignature method adds the Timestamp and Signature query params.
    CkRest::ckAddMwsSignature(rest,"POST","/Orders/2013-09-01","mws.amazonservices.com","MWS_SECRET_KEY")

    strResponseBody.s = CkRest::ckFullRequestFormUrlEncoded(rest,"POST","/Orders/2013-09-01")
    If CkRest::ckLastMethodSuccess(rest) <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    xmlResponse.i = CkXml::ckCreate()
    If xmlResponse.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkXml::ckLoadXml(xmlResponse,strResponseBody)

    GetOrderResponse_xmlns.s
    i.i
    count_i.i
    tagPath.s
    AmazonOrderId.s
    PurchaseDate.s
    LastUpdateDate.s
    OrderStatus.s
    FulfillmentChannel.s
    NumberOfItemsShipped.i
    NumberOfItemsUnshipped.i
    PaymentMethod.s
    j.i
    count_j.i
    PaymentMethodDetail.s
    MarketplaceId.s
    ShipmentServiceLevelCategory.s
    OrderType.s
    EarliestShipDate.s
    LatestShipDate.s
    IsBusinessOrder.s
    IsPrime.s
    IsPremiumOrder.s
    RequestId.s

    GetOrderResponse_xmlns = CkXml::ckGetAttrValue(xmlResponse,"xmlns")
    i = 0
    count_i = CkXml::ckNumChildrenHavingTag(xmlResponse,"GetOrderResult|Orders|Order")
    While i < count_i
        CkXml::setCkI(xmlResponse, i)
        AmazonOrderId = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|AmazonOrderId")
        PurchaseDate = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|PurchaseDate")
        LastUpdateDate = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|LastUpdateDate")
        OrderStatus = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|OrderStatus")
        FulfillmentChannel = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|FulfillmentChannel")
        NumberOfItemsShipped = CkXml::ckGetChildIntValue(xmlResponse,"GetOrderResult|Orders|Order[i]|NumberOfItemsShipped")
        NumberOfItemsUnshipped = CkXml::ckGetChildIntValue(xmlResponse,"GetOrderResult|Orders|Order[i]|NumberOfItemsUnshipped")
        PaymentMethod = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|PaymentMethod")
        j = 0
        count_j = CkXml::ckNumChildrenHavingTag(xmlResponse,"GetOrderResult|Orders|Order[i]|PaymentMethodDetails|PaymentMethodDetail")
        While j < count_j
            CkXml::setCkJ(xmlResponse, j)
            PaymentMethodDetail = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|PaymentMethodDetails|PaymentMethodDetail[j]")
            j = j + 1
        Wend
        MarketplaceId = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|MarketplaceId")
        ShipmentServiceLevelCategory = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|ShipmentServiceLevelCategory")
        OrderType = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|OrderType")
        EarliestShipDate = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|EarliestShipDate")
        LatestShipDate = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|LatestShipDate")
        IsBusinessOrder = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|IsBusinessOrder")
        IsPrime = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|IsPrime")
        IsPremiumOrder = CkXml::ckGetChildContent(xmlResponse,"GetOrderResult|Orders|Order[i]|IsPremiumOrder")
        i = i + 1
    Wend
    RequestId = CkXml::ckGetChildContent(xmlResponse,"ResponseMetadata|RequestId")


    CkRest::ckDispose(rest)
    CkXml::ckDispose(xmlResponse)


    ProcedureReturn
EndProcedure

Sample XML Response Body

<?xml version="1.0" encoding="utf-8" ?>
<GetOrderResponse xmlns="https://mws.amazonservices.com/
    Orders/2013-09-01">
    <GetOrderResult>
        <Orders>
            <Order>>
                <AmazonOrderId>902-3159896-1390916</AmazonOrderId>
                <PurchaseDate>2017-01-20T19:49:35Z</PurchaseDate>
                <LastUpdateDate>2017-01-20T19:49:35Z</LastUpdateDate>
                <OrderStatus>Pending</OrderStatus>
                <FulfillmentChannel>MFN</FulfillmentChannel>
                <NumberOfItemsShipped>0</NumberOfItemsShipped>
                <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
                <PaymentMethod>Other</PaymentMethod>
                <PaymentMethodDetails>
                    <PaymentMethodDetail>CreditCard</PaymentMethodDetail>
                    <PaymentMethodDetail>GiftCerificate</PaymentMethodDetail>
                </PaymentMethodDetails>
                <MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
                <ShipmentServiceLevelCategory>Standard</ShipmentServiceLevelCategory>
                <OrderType>StandardOrder</OrderType>
                <EarliestShipDate>2017-01-20T19:51:16Z</EarliestShipDate>
                <LatestShipDate>2017-01-25T19:49:35Z</LatestShipDate>
                <IsBusinessOrder>false</IsBusinessOrder>
                <IsPrime>false</IsPrime>
                <IsPremiumOrder>false</IsPremiumOrder>
            </Order>
            <Order>>
                <AmazonOrderId>902-3159896-1390917</AmazonOrderId>
                <PurchaseDate>2017-01-20T19:49:35Z</PurchaseDate>
                <LastUpdateDate>2017-01-20T19:49:35Z</LastUpdateDate>
                <OrderStatus>Pending</OrderStatus>
                <FulfillmentChannel>MFN</FulfillmentChannel>
                <NumberOfItemsShipped>0</NumberOfItemsShipped>
                <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
                <PaymentMethod>Other</PaymentMethod>
                <PaymentMethodDetails>
                    <PaymentMethodDetail>CreditCard</PaymentMethodDetail>
                    <PaymentMethodDetail>GiftCerificate</PaymentMethodDetail>
                </PaymentMethodDetails>
                <MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
                <ShipmentServiceLevelCategory>Standard</ShipmentServiceLevelCategory>
                <OrderType>StandardOrder</OrderType>
                <EarliestShipDate>2017-01-20T19:51:16Z</EarliestShipDate>
                <LatestShipDate>2017-01-25T19:49:35Z</LatestShipDate>
                <IsBusinessOrder>false</IsBusinessOrder>
                <IsPrime>false</IsPrime>
                <IsPremiumOrder>false</IsPremiumOrder>
            </Order>
        </Orders>
    </GetOrderResult>
    <ResponseMetadata>
        <RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId>
    </ResponseMetadata>
</GetOrderResponse>