POST, GET | /api/SearchInventory |
---|
import java.math.*
import java.util.*
import net.servicestack.client.*
/**
* SearchInventoryRequires active-e Inventory Service
*/
@DataContract
open class SearchInventoryRequest : BaseSecureRequest()
{
/**
* If sent, only items from the passed location will be returned
*/
@DataMember
@ApiMember(DataType="integer", Description="If sent, only items from the passed location will be returned", Format="int32", Name="LocFk")
var LocFk:Int? = null
/**
* For Internal Use Only
*/
@DataMember
@ApiMember(DataType="integer", Description="For Internal Use Only", Format="int32", Name="MfgFk")
var MfgFk:Int? = null
/**
* For Internal Use Only
*/
@DataMember
@ApiMember(DataType="integer", Description="For Internal Use Only", Format="int32", Name="CatFk")
var CatFk:Int? = null
/**
* For Internal Use Only
*/
@DataMember
@ApiMember(DataType="integer", Description="For Internal Use Only", Format="int32", Name="SubFk")
var SubFk:Int? = null
/**
* For Internal Use Only
*/
@DataMember
@ApiMember(DataType="integer", Description="For Internal Use Only", Format="int32", Name="SelFk")
var SelFk:Int? = null
/**
* If sent, only items from the passed category# will be returned
*/
@DataMember
@ApiMember(DataType="integer", Description="If sent, only items from the passed category# will be returned", Format="int32", Name="Cat")
var Cat:Int? = null
/**
* If sent, only items from the passed subcategory# will be returned. Must be used in conjunction with the Cat parameter.
*/
@DataMember
@ApiMember(DataType="integer", Description="If sent, only items from the passed subcategory# will be returned. Must be used in conjunction with the Cat parameter.", Format="int32", Name="Sub")
var Sub:Int? = null
/**
* If sent, only items with the passed selection code will be returned
*/
@DataMember
@ApiMember(Description="If sent, only items with the passed selection code will be returned", Name="SelectionCode")
var SelectionCode:String? = null
/**
* If sent, only items with the passed mfg code will be returned
*/
@DataMember
@ApiMember(Description="If sent, only items with the passed mfg code will be returned", Name="Mfg")
var Mfg:String? = null
/**
* Serialized Items will be included in the search results
*/
@DataMember
@ApiMember(DataType="boolean", Description="Serialized Items will be included in the search results", Name="IncludeSerials")
var IncludeSerials:Boolean? = null
/**
* Media Items will be included in the search results
*/
@DataMember
@ApiMember(DataType="boolean", Description="Media Items will be included in the search results", Name="IncludeMedia")
var IncludeMedia:Boolean? = null
/**
* Non-Serialized, Non-Media Items will be included in the search results
*/
@DataMember
@ApiMember(DataType="boolean", Description="Non-Serialized, Non-Media Items will be included in the search results", Name="IncludeAccessories")
var IncludeAccessories:Boolean? = null
/**
* Package Deal Items will be included in the search results
*/
@DataMember
@ApiMember(DataType="boolean", Description="Package Deal Items will be included in the search results", Name="IncludePackages")
var IncludePackages:Boolean? = null
/**
* The string to be searched for
*/
@DataMember
@ApiMember(Description="The string to be searched for", Name="SearchStr")
var SearchStr:String? = null
/**
* If set, only items with the exact model contained in the search string will be returned
*/
@DataMember
@ApiMember(DataType="boolean", Description="If set, only items with the exact model contained in the search string will be returned", Name="ExactModel")
var ExactModel:Boolean? = null
/**
* The Starting Offse
*/
@DataMember
@ApiMember(DataType="integer", Description="The Starting Offse", Format="int64", Name="StartOffset")
var StartOffset:Long? = null
/**
* The # of records to be returned
*/
@DataMember
@ApiMember(DataType="integer", Description="The # of records to be returned", Format="int64", Name="RecordCount")
var RecordCount:Long? = null
/**
* If set, Icon Image Urls will be included in the result, if available
*/
@DataMember
@ApiMember(DataType="boolean", Description="If set, Icon Image Urls will be included in the result, if available", Name="IncludeIconImage")
var IncludeIconImage:Boolean? = null
/**
* If sent, only items from the passed category IDs will be returned
*/
@DataMember
@ApiMember(Description="If sent, only items from the passed category IDs will be returned", Name="CatIdList")
var CatIdList:ArrayList<Long> = ArrayList<Long>()
/**
* If sent, only items from the passed subcategory IDs will be returned
*/
@DataMember
@ApiMember(Description="If sent, only items from the passed subcategory IDs will be returned", Name="SubIdList")
var SubIdList:ArrayList<Long> = ArrayList<Long>()
/**
* If sent, only items from the passed mfg IDs will be returned
*/
@DataMember
@ApiMember(Description="If sent, only items from the passed mfg IDs will be returned", Name="MfgIdList")
var MfgIdList:ArrayList<Long> = ArrayList<Long>()
/**
* If sent, only items from the passed selection code IDs will be returned
*/
@DataMember
@ApiMember(Description="If sent, only items from the passed selection code IDs will be returned", Name="SelIdList")
var SelIdList:ArrayList<Long> = ArrayList<Long>()
/**
* Deleted Items will be included in the search results
*/
@DataMember
@ApiMember(DataType="boolean", Description="Deleted Items will be included in the search results", Name="IncludeDeleted")
var IncludeDeleted:Boolean? = null
/**
* If sent, only inventory changed on or after this date/time will be included
*/
@DataMember
@ApiMember(DataType="string", Description="If sent, only inventory changed on or after this date/time will be included", Format="date", Name="ChangedDate", ParameterType="query")
var ChangedDate:Date? = null
/**
* Package Deal Line Items will be included
*/
@DataMember
@ApiMember(DataType="boolean", Description="Package Deal Line Items will be included", Name="IncludePackageLineItems")
var IncludePackageLineItems:Boolean? = null
/**
* If set, the InventoryDetails object for each item will also be returned. This is much slower.
*/
@DataMember
@ApiMember(DataType="boolean", Description="If set, the InventoryDetails object for each item will also be returned. This is much slower.", Name="IncludeDetails")
var IncludeDetails:Boolean? = null
/**
* If sent, only items with an Available Quantity greater then or equal to the sent value will be returned. Use of this parameter requires that the LocFk parameter also be sent.
*/
@DataMember
@ApiMember(DataType="integer", Description="If sent, only items with an Available Quantity greater then or equal to the sent value will be returned. Use of this parameter requires that the LocFk parameter also be sent.", Format="int32", Name="MinimumAvailableQuantity")
var MinimumAvailableQuantity:Int? = null
}
@DataContract
open class BaseSecureRequest : BaseRequest()
{
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
var Token:String? = null
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header")
var DeviceId:String? = null
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")
var AppId:String? = null
}
@DataContract
open class BaseRequest
{
/**
* This is your AIM API Key provided by Tri-Tech
*/
@DataMember
@ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header")
var ApiKey:String? = null
@DataMember
@ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")
var OAuthToken:String? = null
}
@DataContract
open class SearchInventoryResponse : BaseResponse()
{
@DataMember
var StartOffset:Long? = null
@DataMember
var RecordCount:Long? = null
@DataMember
var RemainingRecords:Long? = null
@DataMember
var TotalRecords:Long? = null
@DataMember
@ApiMember(Name="Records", ParameterType="body")
var Records:ArrayList<SearchInventoryApiResult> = ArrayList<SearchInventoryApiResult>()
}
@DataContract
open class BaseResponse
{
/**
*
*/
@DataMember
@ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
var Status:BaseResponseResult? = null
}
@DataContract
open class BaseResponseResult
{
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
var StatusCode:String? = null
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
var Login:String? = null
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
var ErrorCode:String? = null
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
var ErrorDisplayText:String? = null
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
var ErrorMessage:String? = null
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
var DomainName:String? = null
/**
*
*/
@DataMember
@ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
var IpAddress:String? = null
}
@DataContract
open class SearchInventoryApiResult : SearchInventoryResultSet()
{
@DataMember
var Detail:InventoryDetail? = null
@DataMember
var IconImage:ImageInfo? = null
@DataMember
var CustomerPrice:BigDecimal? = null
}
@DataContract
open class SearchInventoryResultSet : BindableObject(), IAIMInventoryRecord
{
@DataMember
var Pk:Long? = null
@DataMember
var Description:String? = null
@DataMember
var InventoryType:String? = null
@DataMember
var Manufacturer:String? = null
@DataMember
var Model:String? = null
@DataMember
var Category:BigDecimal? = null
@DataMember
var CategoryDescription:String? = null
@DataMember
var SubCategory:BigDecimal? = null
@DataMember
var SubCategoryDescription:String? = null
@DataMember
var SelectionCode:String? = null
@DataMember
var SelectionCodeDescription:String? = null
@DataMember
var Sku:String? = null
@DataMember
var Mpn:String? = null
@DataMember
var Discontinued:Boolean? = null
@DataMember
var Attribute1:String? = null
@DataMember
var Attribute2:String? = null
@DataMember
var Attribute3:String? = null
@DataMember
var Attribute4:String? = null
@DataMember
var Attribute5:String? = null
@DataMember
var Attribute6:String? = null
@DataMember
var Attribute7:String? = null
@DataMember
var Attribute8:String? = null
@DataMember
var Attribute9:String? = null
@DataMember
var Attribute10:String? = null
@DataMember
var Attribute11:String? = null
@DataMember
var Attribute12:String? = null
@DataMember
var Attribute13:String? = null
@DataMember
var Attribute14:String? = null
@DataMember
var Attribute15:String? = null
@DataMember
var Attribute16:String? = null
@DataMember
var Attribute17:String? = null
@DataMember
var Attribute18:String? = null
@DataMember
var Attribute19:String? = null
@DataMember
var Attribute20:String? = null
@DataMember
var ComputerQuantity:BigDecimal? = null
@DataMember
var OurPrice:BigDecimal? = null
@DataMember
var RetailPrice:BigDecimal? = null
@DataMember
var ActiveePrice:BigDecimal? = null
@DataMember
var PriceA:BigDecimal? = null
@DataMember
var PriceB:BigDecimal? = null
@DataMember
var PriceC:BigDecimal? = null
@DataMember
var MinPrice:BigDecimal? = null
@DataMember
var AvailableQuantity:BigDecimal? = null
@DataMember
var IsMedia:Boolean? = null
@DataMember
var IsPackage:Boolean? = null
@DataMember
var HasImage:Boolean? = null
@DataMember
var SearchTerm:String? = null
@DataMember
var Keywords:String? = null
@DataMember
var KeywordsOrigin:String? = null
@DataMember
var Deleted:Boolean? = null
@DataMember
var TimeStamp:Date? = null
}
@DataContract
open class BindableObject
{
}
@DataContract
open class InventoryDetail
{
@DataMember
var SadPk:Long? = null
@DataMember
var InvType:String? = null
@DataMember
var Model:String? = null
@DataMember
var Description:String? = null
@DataMember
var Mfg:String? = null
@DataMember
var Category:Int? = null
@DataMember
var CategoryDescription:String? = null
@DataMember
var SubCategory:Int? = null
@DataMember
var SubCategoryDescription:String? = null
@DataMember
var SelectionCode:String? = null
@DataMember
var SelectionCodeDescription:String? = null
@DataMember
var SellSerialsOnline:Boolean? = null
@DataMember
var Notes:String? = null
@DataMember
var Images:ArrayList<ImageInfo> = ArrayList<ImageInfo>()
@DataMember
var HasImages:Boolean? = null
@DataMember
var VariantDetails:ArrayList<InventoryDetailByVariant> = ArrayList<InventoryDetailByVariant>()
@DataMember
var AddOns:ArrayList<AddOnDetail> = ArrayList<AddOnDetail>()
@DataMember
var ActiveEInfo:ActiveEInfo? = null
@DataMember
var Weight:BigDecimal? = null
@DataMember
var Unit:String? = null
}
@DataContract
open class ImageInfo
{
@DataMember
var Url:String? = null
@DataMember
var ImageStream:String? = null
@DataMember
var ImageSize:String? = null
@DataMember
var ErrorMessage:String? = null
@DataMember
var UriPk:Long? = null
}
@DataContract
open class InventoryDetailByVariant
{
@DataMember
var SkuPk:Long? = null
@DataMember
var Sku:String? = null
@DataMember
var VendorCost:BigDecimal? = null
@DataMember
var VendorName:String? = null
@DataMember
var Attributes:ArrayList<InventoryDetailAttribute> = ArrayList<InventoryDetailAttribute>()
@DataMember
var LocationDetails:ArrayList<InventoryDetailByLocation> = ArrayList<InventoryDetailByLocation>()
@DataMember
var Images:ArrayList<ImageInfo> = ArrayList<ImageInfo>()
@DataMember
var HasImages:Boolean? = null
@DataMember
var Barcodes:ArrayList<String> = ArrayList<String>()
}
@DataContract
open class InventoryDetailAttribute
{
@DataMember
var Name:String? = null
@DataMember
var Value:String? = null
@DataMember
var Priority:Int? = null
/**
* 1 is 'Don't Send to Web', 2 is 'Guided Navigation'
*/
@DataMember
@ApiMember(DataType="int", Description="1 is 'Don't Send to Web', 2 is 'Guided Navigation'", Name="WebType", ParameterType="query")
var WebType:Int? = null
}
@DataContract
open class InventoryDetailByLocation
{
@DataMember
var SaqPk:Long? = null
@DataMember
var LocationInfo:LocationInfo? = null
@DataMember
var Serials:ArrayList<InventoryDetailBySerial> = ArrayList<InventoryDetailBySerial>()
@DataMember
var Substitutes:ArrayList<InventoryDetailSubstitute> = ArrayList<InventoryDetailSubstitute>()
@DataMember
var Retail:BigDecimal? = null
@DataMember
var OurPrice:BigDecimal? = null
@DataMember
var SalePrice:BigDecimal? = null
@DataMember
var SaleInfo:String? = null
@DataMember
var PriceA:BigDecimal? = null
@DataMember
var PriceB:BigDecimal? = null
@DataMember
var PriceC:BigDecimal? = null
@DataMember
var MinPrice:BigDecimal? = null
@DataMember
var ActiveEPrice:BigDecimal? = null
@DataMember
var CustomerPrice:BigDecimal? = null
@DataMember
var AllowPriceChange:Boolean? = null
@DataMember
var Qty:BigDecimal? = null
@DataMember
var QtyAvail:BigDecimal? = null
@DataMember
var ActiveeHoldbackQty:BigDecimal? = null
@DataMember
var ReorderMin:Int? = null
@DataMember
var ReorderMax:Int? = null
@DataMember
var AverageCost:BigDecimal? = null
@DataMember
var WeightedCost:BigDecimal? = null
@DataMember
var Locator:String? = null
@DataMember
var SelectionCode:String? = null
@DataMember
var SelectionCodeDescription:String? = null
@DataMember
var Spiff:BigDecimal? = null
@DataMember
var CurrentSpotCheckQty:BigDecimal? = null
@DataMember
var QtyOut:BigDecimal? = null
@DataMember
var QtyOnOrder:BigDecimal? = null
@DataMember
var AvailableForSTR:BigDecimal? = null
}
@DataContract
open class LocationInfo
{
@DataMember
var Id:Long? = null
@DataMember
var Desc:String? = null
@DataMember
var ShortDesc:String? = null
@DataMember
var Region:String? = null
@DataMember
var Latitude:BigDecimal? = null
@DataMember
var Longitude:BigDecimal? = null
@DataMember
var InStorePickup:String? = null
@DataMember
var Active:Boolean? = null
@DataMember
var CashSaleAcct:Int? = null
}
@DataContract
open class InventoryDetailBySerial
{
@DataMember
var SasPk:Long? = null
@DataMember
var Serial:String? = null
@DataMember
var Retail:BigDecimal? = null
@DataMember
var OurPrice:BigDecimal? = null
@DataMember
var SalePrice:BigDecimal? = null
@DataMember
var Status:String? = null
@DataMember
var SaleInfo:String? = null
@DataMember
var PriceA:BigDecimal? = null
@DataMember
var PriceB:BigDecimal? = null
@DataMember
var PriceC:BigDecimal? = null
@DataMember
var MinPrice:BigDecimal? = null
@DataMember
var ActiveEPrice:BigDecimal? = null
@DataMember
var AllowPriceChange:Boolean? = null
@DataMember
var Cost:BigDecimal? = null
@DataMember
var WeightedCost:BigDecimal? = null
@DataMember
var Notes:String? = null
@DataMember
var Attributes:ArrayList<InventoryDetailAttribute> = ArrayList<InventoryDetailAttribute>()
@DataMember
var Images:ArrayList<ImageInfo> = ArrayList<ImageInfo>()
@DataMember
var HasImages:Boolean? = null
@DataMember
var IsActiveeHoldback:Boolean? = null
@DataMember
var CustomerAcct:Int? = null
@DataMember
var AvailableForSTR:Boolean? = null
}
@DataContract
open class InventoryDetailSubstitute
{
@DataMember
var Model:String? = null
@DataMember
var Sku:String? = null
@DataMember
var Mfg:String? = null
@DataMember
var Description:String? = null
@DataMember
var Price:BigDecimal? = null
@DataMember
var AvailableQty:BigDecimal? = null
}
@DataContract
open class AddOnDetail
{
@DataMember
var SadPk:Long? = null
@DataMember
var SkuPk:Long? = null
@DataMember
var CatPk:Long? = null
@DataMember
var SubPk:Long? = null
@DataMember
var Item:String? = null
@DataMember
var Description:String? = null
@DataMember
var Price:BigDecimal? = null
}
@DataContract
open class ActiveEInfo
{
@DataMember
var Dimension:String? = null
@DataMember
var WebDescription:String? = null
@DataMember
var Summary:String? = null
@DataMember
var SETitle:String? = null
@DataMember
var SEDescription:String? = null
@DataMember
var SEKeywords:String? = null
@DataMember
var SEAltText:String? = null
@DataMember
var SEHtmlFreeText:String? = null
@DataMember
var Unpublished:Boolean? = null
@DataMember
var FreeShipping:Boolean? = null
@DataMember
var IsFeatured:Boolean? = null
@DataMember
var WebCategoryIds:ArrayList<Long> = ArrayList<Long>()
}
Kotlin SearchInventoryRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /api/SearchInventory HTTP/1.1
Host: active-ewebservice.biz
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"LocFk":0,"MfgFk":0,"CatFk":0,"SubFk":0,"SelFk":0,"Cat":0,"Sub":0,"SelectionCode":"String","Mfg":"String","IncludeSerials":false,"IncludeMedia":false,"IncludeAccessories":false,"IncludePackages":false,"SearchStr":"String","ExactModel":false,"StartOffset":0,"RecordCount":0,"IncludeIconImage":false,"CatIdList":[0],"SubIdList":[0],"MfgIdList":[0],"SelIdList":[0],"IncludeDeleted":false,"ChangedDate":"0001-01-01T00:00:00.0000000","IncludePackageLineItems":false,"IncludeDetails":false,"MinimumAvailableQuantity":0,"Token":"String","DeviceId":"String","AppId":"String","ApiKey":"String","OAuthToken":"String"}
HTTP/1.1 200 OK Content-Type: text/jsonl Content-Length: length {"StartOffset":0,"RecordCount":0,"RemainingRecords":0,"TotalRecords":0,"Records":[{"Detail":{"SadPk":0,"InvType":"String","Model":"String","Description":"String","Mfg":"String","Category":0,"CategoryDescription":"String","SubCategory":0,"SubCategoryDescription":"String","SelectionCode":"String","SelectionCodeDescription":"String","SellSerialsOnline":false,"Notes":"String","Images":[{"Url":"String","ImageStream":"String","ImageSize":"String","ErrorMessage":"String","UriPk":0}],"HasImages":true,"VariantDetails":[{}],"AddOns":[{}],"ActiveEInfo":{"Dimension":"String","WebDescription":"String","Summary":"String","SETitle":"String","SEDescription":"String","SEKeywords":"String","SEAltText":"String","SEHtmlFreeText":"String","Unpublished":false,"FreeShipping":false,"IsFeatured":false,"WebCategoryIds":[0]},"Weight":0,"Unit":"String"},"IconImage":{"Url":"String","ImageStream":"String","ImageSize":"String","ErrorMessage":"String","UriPk":0},"CustomerPrice":0,"Pk":0,"Description":"String","InventoryType":"String","Manufacturer":"String","Model":"String","Category":0,"CategoryDescription":"String","SubCategory":0,"SubCategoryDescription":"String","SelectionCode":"String","SelectionCodeDescription":"String","Sku":"String","Mpn":"String","Discontinued":false,"Attribute1":"String","Attribute2":"String","Attribute3":"String","Attribute4":"String","Attribute5":"String","Attribute6":"String","Attribute7":"String","Attribute8":"String","Attribute9":"String","Attribute10":"String","Attribute11":"String","Attribute12":"String","Attribute13":"String","Attribute14":"String","Attribute15":"String","Attribute16":"String","Attribute17":"String","Attribute18":"String","Attribute19":"String","Attribute20":"String","ComputerQuantity":0,"OurPrice":0,"RetailPrice":0,"ActiveePrice":0,"PriceA":0,"PriceB":0,"PriceC":0,"MinPrice":0,"AvailableQuantity":0,"IsMedia":false,"IsPackage":false,"HasImage":false,"SearchTerm":"String","Keywords":"String","KeywordsOrigin":"String","Deleted":false,"PackageLineItems":[{"Model":"String","Cat":0,"Sub":0,"Description":"String","Quantity":0,"Amount":0,"Discount":0,"ItemType":"String"}]}],"Status":{"StatusCode":"String","Login":"String","ErrorCode":"String","ErrorDisplayText":"String","ErrorMessage":"String","DomainName":"String","IpAddress":"String"}}