PureBasic MWS Inbound: Get Transport Content

Back to Index

Returns current transportation information about an inbound shipment.

Documentation: http://docs.developer.amazonservices.com/en_US/fba_inbound/FBAInbound_GetTransportContent.html

CURL Command

curl -X POST https://mws.amazonaws.com/FulfillmentInboundShipment/2010-10-01 \
  -d "AWSAccessKeyId=AWS_ACCESS_KEY_ID" \
  -d "Action=GetTransportContent" \
  -d "MWSAuthToken=MWS_AUTH_TOKEN" \
  -d "SellerId=MWS_SELLER_ID" \
  -d "SignatureVersion=2" \
  -d "Timestamp=CURRENT_DATE_TIME" \
  -d "Version=2010-10-01" \
  -d "SignatureMethod=HmacSHA256" \
  -d "ShipmentId=FBAQ6QBP"

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.amazonaws.com/FulfillmentInboundShipment/2010-10-01
    bTls.i = 1
    port.i = 443
    bAutoReconnect.i = 1
    success = CkRest::ckConnect(rest,"mws.amazonaws.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","GetTransportContent")
    CkRest::ckAddQueryParam(rest,"MWSAuthToken","MWS_AUTH_TOKEN")
    CkRest::ckAddQueryParam(rest,"SellerId","MWS_SELLER_ID")
    CkRest::ckAddQueryParam(rest,"SignatureVersion","2")
    CkRest::ckAddQueryParam(rest,"Version","2010-10-01")
    CkRest::ckAddQueryParam(rest,"SignatureMethod","HmacSHA256")
    CkRest::ckAddQueryParam(rest,"ShipmentId","FBAQ6QBP")

    CkRest::setCkHost(rest, "mws.amazonaws.com")
    ;  The AddMwsSignature method adds the Timestamp and Signature query params.
    CkRest::ckAddMwsSignature(rest,"POST","/FulfillmentInboundShipment/2010-10-01","mws.amazonaws.com","MWS_SECRET_KEY")

    strResponseBody.s = CkRest::ckFullRequestFormUrlEncoded(rest,"POST","/FulfillmentInboundShipment/2010-10-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)

    GetTransportContentResponse_xmlns.s
    tagPath.s
    TrackingId.s
    CarrierName.s
    PackageStatus.s
    TransportStatus.s
    ShipmentType.s
    ShipmentId.s
    SellerId.s
    IsPartnered.s
    RequestId.s

    GetTransportContentResponse_xmlns = CkXml::ckGetAttrValue(xmlResponse,"xmlns")
    TrackingId = CkXml::ckGetChildContent(xmlResponse,"GetTransportContentResult|TransportContent|TransportDetails|NonPartneredSmallParcelData|PackageList|member|TrackingId")
    CarrierName = CkXml::ckGetChildContent(xmlResponse,"GetTransportContentResult|TransportContent|TransportDetails|NonPartneredSmallParcelData|PackageList|member|CarrierName")
    PackageStatus = CkXml::ckGetChildContent(xmlResponse,"GetTransportContentResult|TransportContent|TransportDetails|NonPartneredSmallParcelData|PackageList|member|PackageStatus")
    TransportStatus = CkXml::ckGetChildContent(xmlResponse,"GetTransportContentResult|TransportContent|TransportResult|TransportStatus")
    ShipmentType = CkXml::ckGetChildContent(xmlResponse,"GetTransportContentResult|TransportContent|TransportHeader|ShipmentType")
    ShipmentId = CkXml::ckGetChildContent(xmlResponse,"GetTransportContentResult|TransportContent|TransportHeader|ShipmentId")
    SellerId = CkXml::ckGetChildContent(xmlResponse,"GetTransportContentResult|TransportContent|TransportHeader|SellerId")
    IsPartnered = CkXml::ckGetChildContent(xmlResponse,"GetTransportContentResult|TransportContent|TransportHeader|IsPartnered")
    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" ?>
<GetTransportContentResponse xmlns="http://mws.amazonaws.com/FulfillmentInboundShipment/2010-10-01/">
    <GetTransportContentResult>
        <TransportContent>
            <TransportDetails>
                <NonPartneredSmallParcelData>
                    <PackageList>
                        <member>
                            <TrackingId>1Z6Y68W00342402864</TrackingId>
                            <CarrierName>UNITED PARCEL SERVICE INC</CarrierName>
                            <PackageStatus>SHIPPED</PackageStatus>
                        </member>
                    </PackageList>
                </NonPartneredSmallParcelData>
            </TransportDetails>
            <TransportResult>
                <TransportStatus>WORKING</TransportStatus>
            </TransportResult>
            <TransportHeader>
                <ShipmentType>SP</ShipmentType>
                <ShipmentId>FBAQ6QBP</ShipmentId>
                <SellerId>A135KKEKWF1J56</SellerId>
                <IsPartnered>false</IsPartnered>
            </TransportHeader>
        </TransportContent>
    </GetTransportContentResult>
    <ResponseMetadata>
        <RequestId>89a965c3-1af7-41e3-9152-44cf0affd34b</RequestId>
    </ResponseMetadata>
</GetTransportContentResponse>