2Service Services API

<back to all web services

GetShipments

The following routes are available for this service:
GET/dealers/shipmentsRetrieves shipments.
import Foundation
import ServiceStack

public class GetShipments : AuthenticatedRequest
{
    /**
    * Start of date range to retrieve shipments for.
    */
    // @ApiMember(Description="Start of date range to retrieve shipments for.", IsRequired=true)
    public var dateFrom:Date

    /**
    * End of date range to retrieve shipments for.
    */
    // @ApiMember(Description="End of date range to retrieve shipments for.")
    public var dateTo:Date?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case dateFrom
        case dateTo
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        dateFrom = try container.decodeIfPresent(Date.self, forKey: .dateFrom)
        dateTo = try container.decodeIfPresent(Date.self, forKey: .dateTo)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if dateFrom != nil { try container.encode(dateFrom, forKey: .dateFrom) }
        if dateTo != nil { try container.encode(dateTo, forKey: .dateTo) }
    }
}

public class AuthenticatedRequest : Codable
{
    /**
    * Session token received from successful authentication.
    */
    // @ApiMember(Description="Session token received from successful authentication.", IsRequired=true, ParameterType="query")
    public var sessionToken:String

    required public init(){}
}

public class ShipmentsResponse : OperationResult_1<[ShipmentResult]>
{
    required public init(){ super.init() }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
    }
}

public class OperationResult_1<T : Codable> : OperationResult
{
    /**
    * Result value
    */
    // @ApiMember(Description="Result value", ParameterType="model")
    public var result:PartResults

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case result
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        result = try container.decodeIfPresent(PartResults.self, forKey: .result)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if result != nil { try container.encode(result, forKey: .result) }
    }
}

public class OperationResult : Codable
{
    /**
    * Specifies if the operation was successful.
    */
    // @ApiMember(Description="Specifies if the operation was successful.", ParameterType="model")
    public var isSuccessful:Bool

    /**
    * States error message in case of unsuccessful operation.
    */
    // @ApiMember(Description="States error message in case of unsuccessful operation.", ParameterType="model")
    public var errorMessage:String

    required public init(){}
}

public class PartResults : Codable
{
    /**
    * Total number of parts available.
    */
    // @ApiMember(Description="Total number of parts available.")
    public var totalNumberOfParts:Int

    /**
    * Indication if there are more parts to retrieve.
    */
    // @ApiMember(Description="Indication if there are more parts to retrieve.")
    public var hasMoreRecords:Bool

    /**
    * Part records.
    */
    // @ApiMember(Description="Part records.")
    public var parts:[PartInfoResult]

    required public init(){}
}

public class PartInfoResult : Codable
{
    /**
    * Unique ID for the part.
    */
    // @ApiMember(Description="Unique ID for the part.")
    public var id:Int

    /**
    * Part number.
    */
    // @ApiMember(Description="Part number.")
    public var partNumber:String

    /**
    * Description of the part.
    */
    // @ApiMember(Description="Description of the part.")
    public var Description:String

    /**
    * Part manufacturer.
    */
    // @ApiMember(Description="Part manufacturer.")
    public var manufacturer:String

    /**
    * Determines if the part can be ordered.
    */
    // @ApiMember(Description="Determines if the part can be ordered.")
    public var canBeOrdered:Bool

    /**
    * Textual representation of the status of the part.
    */
    // @ApiMember(Description="Textual representation of the status of the part.")
    public var statusText:String

    /**
    * Available stock to order.
    */
    // @ApiMember(Description="Available stock to order.")
    public var availableStockQuantity:Int

    /**
    * Average days needed for delivery.
    */
    // @ApiMember(Description="Average days needed for delivery.")
    public var averageDeliveryInDays:Int?

    /**
    * Price of a single unit, excluding VAT.
    */
    // @ApiMember(Description="Price of a single unit, excluding VAT.")
    public var unitPrice:Double?

    /**
    * EAN number.
    */
    // @ApiMember(Description="EAN number.")
    public var eanNumber:String

    /**
    * Images
    */
    // @ApiMember(Description="Images")
    public var images:[PartInfoResultImage]

    /**
    * Secondary article numbers
    */
    // @ApiMember(Description="Secondary article numbers")
    public var secondaryArticleNumbers:[String]

    /**
    * Replacement article numbers
    */
    // @ApiMember(Description="Replacement article numbers")
    public var replacementArticleNumbers:[String]

    /**
    * Stock quantities
    */
    // @ApiMember(Description="Stock quantities")
    public var stockQuantities:[PartStockQuantity]

    required public init(){}
}

public class PartInfoResultImage : Codable
{
    /**
    * Image number
    */
    // @ApiMember(Description="Image number")
    public var imageNumber:Int

    /**
    * Image URL
    */
    // @ApiMember(Description="Image URL")
    public var imageUrl:String

    required public init(){}
}

public class PartStockQuantity : Codable
{
    /**
    * Location ID
    */
    // @ApiMember(Description="Location ID")
    public var locationId:Int

    /**
    * Location code
    */
    // @ApiMember(Description="Location code")
    public var locationCode:String

    /**
    * Stock quantity in location
    */
    // @ApiMember(Description="Stock quantity in location")
    public var stockQuantity:Int

    required public init(){}
}


Swift GetShipments DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /dealers/shipments HTTP/1.1 
Host: services.acct.2service.nl 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Result":[{"ShipmentId":0,"HasBeenDispatched":false,"DispatchDate":"0001-01-01T00:00:00.0000000","Articles":[{"OrderNumber":"String","ArticleNumber":"String","Quantity":0,"CustomReference":"String"}],"Packages":[{"ShipmentMethod":"String","TrackingNumber":"String","TrackingUrl":"String"}]}],"IsSuccessful":false,"ErrorMessage":"String"}