PureBasic MWS Inbound: List Inbound Shipments

Back to Index

Returns a list of inbound shipments based on criteria that you specify.

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

CURL Command

curl -X POST https://mws.amazonaws.com/FulfillmentInboundShipment/2010-10-01 \
  -d "AWSAccessKeyId=AWS_ACCESS_KEY_ID" \
  -d "Action=ListInboundShipments" \
  -d "MWSAuthToken=MWS_AUTH_TOKEN" \
  -d "SignatureVersion=2" \
  -d "Timestamp=CURRENT_DATE_TIME" \
  -d "Version=2010-10-01" \
  -d "Signature=MWS_SIGNATURE" \
  -d "SignatureMethod=HmacSHA256" \
  -d "ShipmentStatusList.member.1=WORKING" \
  -d "SellerId=MWS_SELLER_ID" \
  -d "LastUpdatedAfter=2015-10-02T12:00:54Z"
  -d "LastUpdatedBefore=2015-11-02T12:00:54Z" \
  -d "ShipmentStatusList.member.2=CLOSED" \
  -d "ShipmentIdList.member.1=FBA44JV8R" \
  -d "ShipmentIdList.member.2=FBA4X8YLS" \
  -d "ShipmentIdList.member.3=FBA4X9FML"

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","ListInboundShipments")
    CkRest::ckAddQueryParam(rest,"MWSAuthToken","MWS_AUTH_TOKEN")
    CkRest::ckAddQueryParam(rest,"SignatureVersion","2")
    CkRest::ckAddQueryParam(rest,"Version","2010-10-01")
    CkRest::ckAddQueryParam(rest,"SignatureMethod","HmacSHA256")
    CkRest::ckAddQueryParam(rest,"ShipmentStatusList.member.1","WORKING")
    CkRest::ckAddQueryParam(rest,"SellerId","MWS_SELLER_ID")
    CkRest::ckAddQueryParam(rest,"LastUpdatedAfter","2015-10-02T12:00:54Z")
    CkRest::ckAddQueryParam(rest,"LastUpdatedBefore","2015-11-02T12:00:54Z")
    CkRest::ckAddQueryParam(rest,"ShipmentStatusList.member.2","CLOSED")
    CkRest::ckAddQueryParam(rest,"ShipmentIdList.member.1","FBA44JV8R")
    CkRest::ckAddQueryParam(rest,"ShipmentIdList.member.2","FBA4X8YLS")
    CkRest::ckAddQueryParam(rest,"ShipmentIdList.member.3","FBA4X9FML")

    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)

    ListInboundShipmentsResponse_xmlns.s
    i.i
    count_i.i
    tagPath.s
    PostalCode.s
    Name.s
    CountryCode.s
    StateOrProvinceCode.s
    AddressLine1.s
    City.s
    ShipmentId.s
    ShipmentName.s
    ShipmentStatus.s
    LabelPrepType.s
    DestinationFulfillmentCenterId.s
    BoxContentsSource.s
    TotalUnits.i
    CurrencyCode.s
    Value.s

    ListInboundShipmentsResponse_xmlns = CkXml::ckGetAttrValue(xmlResponse,"xmlns")
    i = 0
    count_i = CkXml::ckNumChildrenHavingTag(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member")
    While i < count_i
        CkXml::setCkI(xmlResponse, i)
        PostalCode = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|PostalCode")
        Name = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|Name")
        CountryCode = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|CountryCode")
        StateOrProvinceCode = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|StateOrProvinceCode")
        AddressLine1 = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|AddressLine1")
        City = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|City")
        ShipmentId = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipmentId")
        ShipmentName = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipmentName")
        ShipmentStatus = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|ShipmentStatus")
        LabelPrepType = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|LabelPrepType")
        DestinationFulfillmentCenterId = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|DestinationFulfillmentCenterId")
        BoxContentsSource = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|BoxContentsSource")
        TotalUnits = CkXml::ckGetChildIntValue(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|TotalUnits")
        CurrencyCode = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|FeePerUnit|CurrencyCode")
        Value = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|FeePerUnit|Value")
        CurrencyCode = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|TotalFee|CurrencyCode")
        Value = CkXml::ckGetChildContent(xmlResponse,"ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|TotalFee|Value")
        i = i + 1
    Wend


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


    ProcedureReturn
EndProcedure

Sample XML Response Body

<?xml version="1.0" encoding="utf-8" ?>
<ListInboundShipmentsResponse xmlns="http://mws.amazonaws.com/FulfillmentInboundShipment/2010-10-01/">
    <ListInboundShipmentsResult>
        <ShipmentData>
            <member>
                <ShipFromAddress>
                    <PostalCode>V5V 1A1</PostalCode>
                    <Name>jsowprni Devo CA20</Name>
                    <CountryCode>CA</CountryCode>
                    <StateOrProvinceCode>BC</StateOrProvinceCode>
                    <AddressLine1>Address Line 1</AddressLine1>
                    <City>Vancouver</City>
                </ShipFromAddress>
                <ShipmentId>FBAN4QNH</ShipmentId>
                <ShipmentName>FBA (8/27/12 1:55 PM)</ShipmentName>
                <ShipmentStatus>WORKING</ShipmentStatus>
                <LabelPrepType>NO_LABEL</LabelPrepType>
                <DestinationFulfillmentCenterId>YYZ1</DestinationFulfillmentCenterId>
            </member>
            <member>
                <ShipFromAddress>
                    <PostalCode>V5V 1A1</PostalCode>
                    <Name>Janani Arvind FBA QA</Name>
                    <CountryCode>CA</CountryCode>
                    <StateOrProvinceCode>BC</StateOrProvinceCode>
                    <AddressLine1>Address 1</AddressLine1>
                    <City>Vancouver</City>
                </ShipFromAddress>
                <ShipmentId>FBA1123</ShipmentId>
                <ShipmentName>Test MWS CA Shipment 1</ShipmentName>
                <ShipmentStatus>WORKING</ShipmentStatus>
                <LabelPrepType>NO_LABEL</LabelPrepType>
                <DestinationFulfillmentCenterId>RIC2</DestinationFulfillmentCenterId>
                <BoxContentsSource>NONE</BoxContentsSource>
                <EstimatedBoxContentsFee>
                    <TotalUnits>10</TotalUnits>
                    <FeePerUnit>
                        <CurrencyCode>USD</CurrencyCode>
                        <Value>0.10</Value>
                    </FeePerUnit>
                    <TotalFee>
                        <CurrencyCode>USD</CurrencyCode>
                        <Value>10.0</Value>
                    </TotalFee>
                </EstimatedBoxContentsFee>
            </member>
        </ShipmentData>
    </ListInboundShipmentsResult>
</ListInboundShipmentsResponse>