Swift 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"

Swift Example


func chilkatTest() {
    let rest = CkoRest()
    var success: Bool

    //  URL: https://mws.amazonaws.com/FulfillmentInboundShipment/2010-10-01
    var bTls: Bool = true
    var port: Int = 443
    var bAutoReconnect: Bool = true
    success = rest.Connect("mws.amazonaws.com", port: port, tls: bTls, autoReconnect: bAutoReconnect)
    if success != true {
        print("ConnectFailReason: \(rest.ConnectFailReason.intValue)")
        print("\(rest.LastErrorText)")
        return
    }

    rest.AddQueryParam("AWSAccessKeyId", value: "AWS_ACCESS_KEY_ID")
    rest.AddQueryParam("Action", value: "ListInboundShipments")
    rest.AddQueryParam("MWSAuthToken", value: "MWS_AUTH_TOKEN")
    rest.AddQueryParam("SignatureVersion", value: "2")
    rest.AddQueryParam("Version", value: "2010-10-01")
    rest.AddQueryParam("SignatureMethod", value: "HmacSHA256")
    rest.AddQueryParam("ShipmentStatusList.member.1", value: "WORKING")
    rest.AddQueryParam("SellerId", value: "MWS_SELLER_ID")
    rest.AddQueryParam("LastUpdatedAfter", value: "2015-10-02T12:00:54Z")
    rest.AddQueryParam("LastUpdatedBefore", value: "2015-11-02T12:00:54Z")
    rest.AddQueryParam("ShipmentStatusList.member.2", value: "CLOSED")
    rest.AddQueryParam("ShipmentIdList.member.1", value: "FBA44JV8R")
    rest.AddQueryParam("ShipmentIdList.member.2", value: "FBA4X8YLS")
    rest.AddQueryParam("ShipmentIdList.member.3", value: "FBA4X9FML")

    rest.Host = "mws.amazonaws.com"
    //  The AddMwsSignature method adds the Timestamp and Signature query params.
    rest.AddMwsSignature("POST", uriPath: "/FulfillmentInboundShipment/2010-10-01", domain: "mws.amazonaws.com", mwsSecretKey: "MWS_SECRET_KEY")

    var strResponseBody: String? = rest.FullRequestFormUrlEncoded("POST", uriPath: "/FulfillmentInboundShipment/2010-10-01")
    if rest.LastMethodSuccess != true {
        print("\(rest.LastErrorText)")
        return
    }

    let xmlResponse = CkoXml()
    xmlResponse.LoadXml(strResponseBody)

    var ListInboundShipmentsResponse_xmlns: String?
    var i: Int
    var count_i: Int
    var tagPath: String?
    var PostalCode: String?
    var Name: String?
    var CountryCode: String?
    var StateOrProvinceCode: String?
    var AddressLine1: String?
    var City: String?
    var ShipmentId: String?
    var ShipmentName: String?
    var ShipmentStatus: String?
    var LabelPrepType: String?
    var DestinationFulfillmentCenterId: String?
    var BoxContentsSource: String?
    var TotalUnits: Int
    var CurrencyCode: String?
    var Value: String?

    ListInboundShipmentsResponse_xmlns = xmlResponse.GetAttrValue("xmlns")
    i = 0
    count_i = xmlResponse.NumChildrenHavingTag("ListInboundShipmentsResult|ShipmentData|member").intValue
    while i < count_i {
        xmlResponse.I = i
        PostalCode = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|PostalCode")
        Name = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|Name")
        CountryCode = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|CountryCode")
        StateOrProvinceCode = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|StateOrProvinceCode")
        AddressLine1 = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|AddressLine1")
        City = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipFromAddress|City")
        ShipmentId = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipmentId")
        ShipmentName = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipmentName")
        ShipmentStatus = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|ShipmentStatus")
        LabelPrepType = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|LabelPrepType")
        DestinationFulfillmentCenterId = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|DestinationFulfillmentCenterId")
        BoxContentsSource = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|BoxContentsSource")
        TotalUnits = xmlResponse.GetChildIntValue("ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|TotalUnits").intValue
        CurrencyCode = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|FeePerUnit|CurrencyCode")
        Value = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|FeePerUnit|Value")
        CurrencyCode = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|TotalFee|CurrencyCode")
        Value = xmlResponse.GetChildContent("ListInboundShipmentsResult|ShipmentData|member[i]|EstimatedBoxContentsFee|TotalFee|Value")
        i = i + 1
    }


}

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>