| GET | /api/itemDataNotification/gtin/{Gtin} | Get specific ItemDataNotification by Gtin |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*
/**
* Item Data Notification
*/
@Api(Description="Item Data Notification")
@ApiResponse(Description="ItemDataNotification data", IsDefaultResponse=true, StatusCode=200)
// @ApiResponse(Description="No Content", ResponseType=IReturnVoid::class, StatusCode=204)
// @ApiResponse(Description="Specified argument was out of the range of valid values.", ResponseType=ArgumentOutOfRangeException::class, StatusCode=400)
open class GetItemDataNotificationByGtin
{
/**
* Global Trade Item Number (GTIN)
*/
@ApiMember(Description="Global Trade Item Number (GTIN)", ExcludeInSchema=true, ParameterType="path")
open var gtin:String? = null
}
open class ItemDataNotificationMessage : BaseDocument()
{
open var dataRecipient:TransactionalParty? = null
open var dataSource:TransactionalParty? = null
open var itemDataNotificationIdentification:String? = null
open var itemDataNotificationLineItem:ArrayList<ItemDataNotificationLineItem> = ArrayList<ItemDataNotificationLineItem>()
}
open class BaseDocument
{
open var currencyCode:String? = null
open var creationDateTime:Date? = null
open var documentActionCode:DocumentAction? = null
open var documentStatusCode:DocumentStatus? = null
open var documentStructureVersion:String? = null
open var lastUpdateDateTime:Date? = null
open var revisionNumber:Long? = null
open var avpList:ArrayList<AvpList> = ArrayList<AvpList>()
}
enum class DocumentAction
{
Add,
ChangeByRefresh,
Delete,
Rejected,
}
enum class DocumentStatus
{
AdditionalTransmission,
Copy,
Original,
}
open class AvpList
{
open var code:String? = null
open var value:String? = null
}
open class TransactionalParty : Ecom_PartyIdentificationType()
{
open var contact:ArrayList<Contact> = ArrayList<Contact>()
open var address:Address? = null
open var communicationChannel:ArrayList<AvpList> = ArrayList<AvpList>()
open var financialInstitutionInformation:FinancialInstitutionInformation? = null
open var dutyFeeTaxRegistration:String? = null
open var entityIdentification:String? = null
}
open class Ecom_PartyIdentificationType
{
open var gln:String? = null
open var name:String? = null
open var additionalPartyIdentification:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class Contact
{
open var contactTypeCode:String? = null
open var personName:String? = null
open var departmentName:String? = null
open var jobTitle:String? = null
open var responsibility:String? = null
open var communicationChannel:ArrayList<CommunicationChannel> = ArrayList<CommunicationChannel>()
}
open class CommunicationChannel
{
open var communicationChannelCode:String? = null
open var communicationChannelName:String? = null
open var communicationValue:String? = null
}
open class Address
{
open var streetAddressOne:String? = null
open var streetAddressTwo:String? = null
open var streetAddressThree:String? = null
open var city:String? = null
open var postalCode:String? = null
open var provinceCode:String? = null
open var countryCode:String? = null
}
open class FinancialInstitutionInformation
{
open var financialInstitutionBranchName:String? = null
open var financialInstitutionName:String? = null
open var financialRoutingNumber:FinancialRoutingNumber? = null
open var financialAccount:FinancialAccount? = null
open var swiftCode:String? = null
open var exportersCode:String? = null
}
open class FinancialRoutingNumber
{
open var number:String? = null
open var numberTypeCode:String? = null
}
open class FinancialAccount
{
open var number:String? = null
open var numberTypeCode:String? = null
open var name:String? = null
}
open class ItemDataNotificationLineItem : Ecom_TradeItemIdentification()
{
open var brandName:String? = null
open var gpcCategoryCode:String? = null
open var isTheProductVariantPreferred:Boolean? = null
open var lineItemNumber:Long? = null
open var parentLineItemNumber:Long? = null
open var productVariantIdentifier:IdentifierType? = null
open var quantityOfItemTypes:BigDecimal? = null
open var quantityOfItemUnits:BigDecimal? = null
open var tradeItemDescription:ArrayList<String> = ArrayList<String>()
open var tradeItemUnitDescriptorCode:String? = null
open var itemDataTradingPartnerNeutral:ItemDataTradingPartnerNeutral? = null
open var itemDataTradingPartnerDependent:ArrayList<ItemDataTradingPartnerDependent> = ArrayList<ItemDataTradingPartnerDependent>()
open var lowerLevelTradeItem:ArrayList<LowerLevelTradeItem> = ArrayList<LowerLevelTradeItem>()
open var avpList:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class Ecom_TradeItemIdentification
{
open var additionalTradeItemIdentification:ArrayList<AdditionalTradeItemIdentification> = ArrayList<AdditionalTradeItemIdentification>()
open var gtin:String? = null
}
open class AdditionalTradeItemIdentification
{
open var value:String? = null
open var code:String? = null
}
open class IdentifierType
{
open var value:String? = null
open var identificationSchemeAgencyCodeCodeListVersion:String? = null
open var identificationSchemeAgencyName:String? = null
open var identificationSchemeName:String? = null
}
open class ItemDataTradingPartnerNeutral
{
open var cancelledDateTime:Date? = null
open var discontinuedDateTime:Date? = null
open var effectiveDateTime:Date? = null
open var endAvailabilityDateTime:Date? = null
open var maximumStackingFactor:Int? = null
open var startAvailabilityDateTime:Date? = null
open var tradeItemBaseUnitOfMeasure:String? = null
open var tradeItemClassificationCode:ArrayList<AdditionalTradeItemClassificationCode> = ArrayList<AdditionalTradeItemClassificationCode>()
open var warehouseABCClassificationCode:String? = null
open var itemDataWeightAndDimension:ItemDataWeightAndDimension? = null
open var handlingInstruction:ArrayList<HandlingInstruction> = ArrayList<HandlingInstruction>()
open var dangerousGoodsInformation:ArrayList<DangerousGoodsInformation> = ArrayList<DangerousGoodsInformation>()
open var administrativeUnitOfLogisticServiceBuyer:AdministrativeUnit? = null
open var avpList:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class AdditionalTradeItemClassificationCode
{
open var value:String? = null
open var additionalTradeItemClassificationCodeListCode:String? = null
open var additionalTradeItemClassificationCodeListVersion:String? = null
open var codeDescription:String? = null
}
open class ItemDataWeightAndDimension
{
open var depth:Measurement? = null
open var diameter:Measurement? = null
open var grossWeight:Measurement? = null
open var height:Measurement? = null
open var netWeight:Measurement? = null
open var width:Measurement? = null
}
open class Measurement
{
open var value:BigDecimal? = null
open var codeListVersion:String? = null
open var measurementUnitCode:String? = null
}
open class HandlingInstruction
{
open var handlingInstructionCode:String? = null
open var handlingInstructionText:String? = null
open var printingInstructionCode:ArrayList<String> = ArrayList<String>()
open var storageTemperature:TemperatureRange? = null
open var transportTemperature:TemperatureRange? = null
}
open class TemperatureRange
{
open var maximumTemperature:TemperatureMeasurement? = null
open var minimumTemperature:TemperatureMeasurement? = null
}
open class TemperatureMeasurement
{
open var value:BigDecimal? = null
open var temperatureMeasurementUnitCode:String? = null
}
open class DangerousGoodsInformation
{
open var dangerousGoodsDescription:String? = null
open var dangerousGoodsShippingName:String? = null
open var dangerousGoodsTechnicalName:String? = null
open var dangerousGoodsUNIdentifier:Identifier? = null
open var contact:ArrayList<Contact> = ArrayList<Contact>()
}
@DataContract
open class Identifier
{
@DataMember(Name="authority")
@SerializedName("authority")
open var authority:String? = null
@DataMember(Name="text")
@SerializedName("text")
open var text:String? = null
}
open class AdministrativeUnit
{
open var typeCode:String? = null
open var gln:String? = null
open var internalIdentification:String? = null
}
open class ItemDataTradingPartnerDependent
{
open var countryOfOrigin:String? = null
open var minimumRemainingShelfLifeInbound:TimeMeasurement? = null
open var minimumRemainingShelfLifeOutbound:TimeMeasurement? = null
open var orderQuantityMaximum:Quantity? = null
open var orderQuantityMinimum:Quantity? = null
open var orderQuantityMultiple:Quantity? = null
open var qualityControlCode:String? = null
open var quarantinePeriod:TimeMeasurement? = null
open var tradeItemProductionLeadTime:TimeMeasurement? = null
open var tradeItemShipmentLeadTime:TimeMeasurement? = null
open var tradeItemSpecificUnitOfMeasure:String? = null
open var tradeItemSubstitutionDateTime:Date? = null
open var itemDataLogisticUnitInformation:ArrayList<ItemDataLogisticUnitInformation> = ArrayList<ItemDataLogisticUnitInformation>()
open var itemDataStockRequirements:ArrayList<ItemDataStockRequirements> = ArrayList<ItemDataStockRequirements>()
open var administrativeUnitOfReceiver:ArrayList<AdministrativeUnit> = ArrayList<AdministrativeUnit>()
open var avpList:AvpList? = null
open var originatingParty:ArrayList<TransactionalPartyInRole> = ArrayList<TransactionalPartyInRole>()
open var receiver:TransactionalParty? = null
open var shipper:TransactionalParty? = null
open var substituteItem:Ecom_TradeItemIdentification? = null
}
open class TimeMeasurement
{
open var timeMeasurementUnitCode:String? = null
open var value:BigDecimal? = null
}
open class Quantity
{
open var value:BigDecimal? = null
open var measurementUnitCode:String? = null
open var codeListVersion:String? = null
}
open class ItemDataLogisticUnitInformation
{
open var grossWeight:Measurement? = null
open var maximumStackingFactor:Long? = null
open var netWeight:Measurement? = null
open var numberOfLayers:Long? = null
open var packageLevelCode:String? = null
open var packageTypeCode:String? = null
open var tradeItemQuantity:Quantity? = null
open var tradeItemQuantityPerLayer:Quantity? = null
open var avpList:AvpList? = null
open var dimensionsOfLogisticUnit:ArrayList<Dimension> = ArrayList<Dimension>()
}
open class Dimension
{
open var depth:Measurement? = null
open var height:Measurement? = null
open var width:Measurement? = null
}
open class ItemDataStockRequirements
{
open var requiredStockLevel:Quantity? = null
open var requiredStockLevelValidityDateTime:Date? = null
open var stockRequirementTypeCode:String? = null
}
open class TransactionalPartyInRole
{
open var partyRoleCode:String? = null
open var transactionalParty:TransactionalParty? = null
}
open class LowerLevelTradeItem : Ecom_TradeItemIdentification()
{
open var quantityOfLowerLevelTradeItem:BigDecimal? = null
}
Kotlin GetItemDataNotificationByGtin DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /api/itemDataNotification/gtin/{Gtin} HTTP/1.1
Host: stf-api-uat.data-xchange.co.za
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
dataRecipient:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
dataSource:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
itemDataNotificationIdentification: String,
itemDataNotificationLineItem:
[
{
brandName: String,
gpcCategoryCode: String,
isTheProductVariantPreferred: False,
lineItemNumber: 0,
parentLineItemNumber: 0,
productVariantIdentifier:
{
value: String,
identificationSchemeAgencyCodeCodeListVersion: String,
identificationSchemeAgencyName: String,
identificationSchemeName: String
},
quantityOfItemTypes: 0,
quantityOfItemUnits: 0,
tradeItemDescription:
[
String
],
tradeItemUnitDescriptorCode: String,
itemDataTradingPartnerNeutral:
{
cancelledDateTime: 0001-01-01,
discontinuedDateTime: 0001-01-01,
endAvailabilityDateTime: 0001-01-01,
maximumStackingFactor: 0,
tradeItemBaseUnitOfMeasure: String,
tradeItemClassificationCode:
[
{
value: String,
additionalTradeItemClassificationCodeListCode: String,
additionalTradeItemClassificationCodeListVersion: String,
codeDescription: String
}
],
warehouseABCClassificationCode: String,
itemDataWeightAndDimension:
{
depth:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
diameter:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
grossWeight:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
height:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
netWeight:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
width:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
}
},
handlingInstruction:
[
{
handlingInstructionCode: String,
handlingInstructionText: String,
printingInstructionCode:
[
String
],
storageTemperature:
{
maximumTemperature:
{
value: 0,
temperatureMeasurementUnitCode: String
},
minimumTemperature:
{
value: 0,
temperatureMeasurementUnitCode: String
}
},
transportTemperature:
{
maximumTemperature:
{
value: 0,
temperatureMeasurementUnitCode: String
},
minimumTemperature:
{
value: 0,
temperatureMeasurementUnitCode: String
}
}
}
],
dangerousGoodsInformation:
[
{
dangerousGoodsDescription: String,
dangerousGoodsShippingName: String,
dangerousGoodsTechnicalName: String,
dangerousGoodsUNIdentifier:
{
authority: String,
text: String
},
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
]
}
],
administrativeUnitOfLogisticServiceBuyer:
{
typeCode: String,
gln: String,
internalIdentification: String
},
avpList:
[
{
code: String,
value: String
}
]
},
itemDataTradingPartnerDependent:
[
{
countryOfOrigin: String,
minimumRemainingShelfLifeInbound:
{
timeMeasurementUnitCode: String,
value: 0
},
minimumRemainingShelfLifeOutbound:
{
timeMeasurementUnitCode: String,
value: 0
},
orderQuantityMaximum:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
orderQuantityMinimum:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
orderQuantityMultiple:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
qualityControlCode: String,
quarantinePeriod:
{
timeMeasurementUnitCode: String,
value: 0
},
tradeItemProductionLeadTime:
{
timeMeasurementUnitCode: String,
value: 0
},
tradeItemShipmentLeadTime:
{
timeMeasurementUnitCode: String,
value: 0
},
tradeItemSpecificUnitOfMeasure: String,
tradeItemSubstitutionDateTime: 0001-01-01,
itemDataLogisticUnitInformation:
[
{
grossWeight:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
maximumStackingFactor: 0,
netWeight:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
numberOfLayers: 0,
packageLevelCode: String,
packageTypeCode: String,
tradeItemQuantity:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
tradeItemQuantityPerLayer:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
avpList:
{
code: String,
value: String
},
dimensionsOfLogisticUnit:
[
{
depth:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
height:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
},
width:
{
value: 0,
codeListVersion: String,
measurementUnitCode: String
}
}
]
}
],
itemDataStockRequirements:
[
{
requiredStockLevel:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
requiredStockLevelValidityDateTime: 0001-01-01,
stockRequirementTypeCode: String
}
],
administrativeUnitOfReceiver:
[
{
typeCode: String,
gln: String,
internalIdentification: String
}
],
avpList:
{
code: String,
value: String
},
originatingParty:
[
{
partyRoleCode: String,
transactionalParty:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
}
}
],
receiver:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
shipper:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
substituteItem:
{
additionalTradeItemIdentification:
[
{
value: String,
code: String
}
],
gtin: String
}
}
],
lowerLevelTradeItem:
[
{
quantityOfLowerLevelTradeItem: 0,
additionalTradeItemIdentification:
[
{
value: String,
code: String
}
],
gtin: String
}
],
avpList:
[
{
code: String,
value: String
}
],
additionalTradeItemIdentification:
[
{
value: String,
code: String
}
],
gtin: String
}
],
currencyCode: String,
documentActionCode: ADD,
documentStatusCode: ADDITIONAL_TRANSMISSION,
documentStructureVersion: String,
lastUpdateDateTime: 0001-01-01,
revisionNumber: 0,
avpList:
[
{
code: String,
value: String
}
]
}