| POST | /v1/CarConfiguratorStock | Validate and save a car configurator code for a vehicle search | This endpoint calls Agency API to validate and save a car configurator code. The code is validated and saved in the database and returns a response from a third party CCS which provides car configuration details. These get saved to open search and used to perform a vehicle search |
|---|
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Mercedes.Agency.Orchestration.API.ServiceModel.BackOrders.CarConfigurator
Imports Mercedes.Agency.API.Shared.POCO.CarConfigurator
Imports Mercedes.OS.Vehicle.Shared.POCO
Imports Mercedes.Agency.API.Shared.POCO
Imports Mercedes.Agency.API.Shared.Enums
Imports Mercedes.OS.Vehicle.Shared.POCO.Filters.v2
Namespace Global
Namespace Mercedes.Agency.API.Shared.POCO
Public Partial Class Price
Public Overridable Property Id As String
Public Overridable Property Description As String
Public Overridable Property Net As Decimal
Public Overridable Property VAT As Decimal
Public Overridable Property Gross As Decimal
Public Overridable Property Product As OfferPriceProductType
End Class
Public Partial Class RetailerOpeningTime
Public Overridable Property Day As String
Public Overridable Property OpenFrom As String
Public Overridable Property OpenTo As String
Public Overridable Property Special As String
End Class
Public Partial Class VehicleAttribute
Public Overridable Property Description As String
Public Overridable Property Value As String
End Class
End Namespace
Namespace Mercedes.Agency.API.Shared.POCO.CarConfigurator
Public Partial Class CarConfiguratorResponse
Public Overridable Property Name As String
Public Overridable Property KeyInformation As KeyInformation
Public Overridable Property OrderingOptions As OrderingOptions
Public Overridable Property ResponseStatus As ResponseStatus
Public Overridable Property ConfiguratorCode As String
End Class
Public Partial Class KeyInformation
Public Overridable Property BM7NST As String
Public Overridable Property ConfigurationDate As String
Public Overridable Property ModelYear As String
Public Overridable Property HalfYear As String
End Class
Public Partial Class OrderingOptions
Public Overridable Property Interior As List(Of String)
Public Overridable Property Exterior As List(Of String)
Public Overridable Property Options As List(Of String)
Public Overridable Property WheelOptions As List(Of EquipmentCache) = New List(Of EquipmentCache)
Public Overridable Property TrimOptions As List(Of EquipmentCache) = New List(Of EquipmentCache)
Public Overridable Property OptionCodes As List(Of EquipmentCache) = New List(Of EquipmentCache)
End Class
End Namespace
Namespace Mercedes.Agency.Orchestration.API.ServiceModel.BackOrders.CarConfigurator
Public Partial Class CarConfiguratorStockMatches
Public Overridable Property SellableMatches As List(Of CarConfiguratorStockMatch) = New List(Of CarConfiguratorStockMatch)
Public Overridable Property NonSellableMatches As List(Of CarConfiguratorStockMatch) = New List(Of CarConfiguratorStockMatch)
End Class
Public Partial Class CarConfiguratorStockRequest
Implements IPost
'''<Summary>
'''The configurator code to search on
'''</Summary>
<ApiMember(Description:="The configurator code to search on", IsRequired:=true)>
Public Overridable Property ConfiguratorCode As String
'''<Summary>
'''Whether to return sellable vehicles
'''</Summary>
<ApiMember(Description:="Whether to return sellable vehicles")>
Public Overridable Property IsSellable As Boolean?
'''<Summary>
'''Whether to only get exact matches
'''</Summary>
<ApiMember(Description:="Whether to only get exact matches")>
Public Overridable Property ExactMatch As Boolean
'''<Summary>
'''Whether to restrict vehicles response to a GSSN
'''</Summary>
<ApiMember(Description:="Whether to restrict vehicles response to a GSSN")>
Public Overridable Property GSSN As String
End Class
Public Partial Class CarConfiguratorStockResponse
Public Overridable Property TotalVehicles As Integer
Public Overridable Property CarConfiguratorResponse As CarConfiguratorResponse
Public Overridable Property ExactMatches As CarConfiguratorStockMatches
Public Overridable Property CloseMatches As CarConfiguratorStockMatches
End Class
End Namespace
Namespace Mercedes.OS.Vehicle.Shared.POCO
Public Partial Class BackOrderVehicleDetails
Implements IVehiclePrices
Implements IVehiclePriceCollection
Implements IImageUrl
Implements IVehicleDetails
Public Overridable Property Vin As String
Public Overridable Property CommissionNumber As String
Public Overridable Property Description As String
Public Overridable Property ShortDescription As String
Public Overridable Property ModelId As Integer
Public Overridable Property Model As String
Public Overridable Property FullModelYearCode As String
Public Overridable Property BrandId As Integer? Implements IImageUrl.BrandId
Public Overridable Property Brand As BackOrderVehicleDetailsBrand
Public Overridable Property RetailerId As Integer
Public Overridable Property ImageUrl As String Implements IImageUrl.ImageUrl
Public Overridable Property Colour As String
Public Overridable Property ColourCode As String
Public Overridable Property FuelType As String
Public Overridable Property FuelTypeId As Integer
Public Overridable Property Transmission As String
Public Overridable Property TransmissionType As String
Public Overridable Property Engine As Engine
Public Overridable Property EngineBadge As String
Public Overridable Property Package As String
Public Overridable Property Line As String
Public Overridable Property Upholstery As String
Public Overridable Property UpholsteryCode As String
Public Overridable Property UsageCode As String
Public Overridable Property Account As String
Public Overridable Property AccountType As String
Public Overridable Property NST As String
Public Overridable Property Baumuster As String
Public Overridable Property ElectricRange As Decimal?
Public Overridable Property ElectricConsumption As Decimal?
Public Overridable Property ActualPrice As Decimal?
Public Overridable Property OTRPrice As Decimal
Public Overridable Property RetailPriceExVat As Decimal
Public Overridable Property P11D As Decimal
Public Overridable Property VehicleType As String Implements IImageUrl.VehicleType
Public Overridable Property UpholsteryDescription As String
Public Overridable Property UpholsteryType As String
Public Overridable Property BodyStyle As String
Public Overridable Property BodyStyleStyleCode As String
Public Overridable Property BodyStyleStyleCodeElectric As String
Public Overridable Property BodyStyleStyleCodeHybrid As String
Public Overridable Property AvailablePackages As List(Of String)
Public Overridable Property Mapped_Line As Integer?
Public Overridable Property Secured As Boolean
Public Overridable Property Bm7NST As String
Public Overridable Property IsAvailableOnline As Boolean
Public Overridable Property IsSpecialistCar As Boolean
Public Overridable Property IsSellable As Boolean
Public Overridable Property UnderOffer As Boolean
Public Overridable Property VehicleAuditDetails As List(Of VehicleAuditDetails)
Public Overridable Property Retailer As Retailer
Public Overridable Property Media As Media
Public Overridable Property Emission As Decimal?
Public Overridable Property ColourGroup As String
Public Overridable Property VehicleClass As String
Public Overridable Property ProductRange As String
Public Overridable Property IsHOBackOrderAccountVehicle As Boolean
Public Overridable Property IsAllocatedToBackOrder As Boolean
Public Overridable Property InBackOrderAccount As Boolean
Public Overridable Property DeliveryCharge As Decimal Implements IVehiclePrices.DeliveryCharge
Public Overridable Property DeliveryChargeNet As Decimal? Implements IVehiclePrices.DeliveryChargeNet
Public Overridable Property DeliveryChargeVAT As Decimal? Implements IVehiclePrices.DeliveryChargeVAT
Public Overridable Property Plates As Decimal Implements IVehiclePrices.Plates
Public Overridable Property PlatesNet As Decimal? Implements IVehiclePrices.PlatesNet
Public Overridable Property PlatesVAT As Decimal? Implements IVehiclePrices.PlatesVAT
Public Overridable Property FuelCharge As Decimal Implements IVehiclePrices.FuelCharge
Public Overridable Property FuelChargeNet As Decimal? Implements IVehiclePrices.FuelChargeNet
Public Overridable Property FuelChargeVAT As Decimal? Implements IVehiclePrices.FuelChargeVAT
Public Overridable Property RetailPrice_ExVAT As Decimal Implements IVehiclePrices.RetailPrice_ExVAT
Public Overridable Property RetailPrice_IncVAT As Decimal Implements IVehiclePrices.RetailPrice_IncVAT
Public Overridable Property VED_Year1 As Decimal Implements IVehiclePrices.VED_Year1
Public Overridable Property VED_Year2 As Decimal Implements IVehiclePrices.VED_Year2
Public Overridable Property FirstRegFee As Decimal Implements IVehiclePrices.FirstRegFee
Public Overridable Property OTR_Value As Decimal Implements IVehiclePrices.OTR_Value
Public Overridable Property OTR As Decimal
Public Overridable Property Prices As List(Of Price) Implements IVehiclePriceCollection.Prices
Public Overridable Property ProductionDate As String
Public Overridable Property PortArrivalDate As Date?
Public Overridable Property Location As String
Public Overridable Property IsDisplayStock As Boolean
Public Overridable Property DisplayRetailerId As Integer?
Public Overridable Property DisplayRetailer As String
Public Overridable Property DisplayRetailerGssnId As String
Public Overridable Property DisplayRetailerMarketAreaId As Integer?
Public Overridable Property IsSmartDisplayRetailer As Boolean?
Public Overridable Property ColourDescription As String
Public Overridable Property Creation As Date?
Public Overridable Property Modified As Date?
Public Overridable Property VATQualifyingNumber As Integer?
Public Overridable Property VATQualifying As Boolean
Public Overridable Property CurrentRetailerOfferPrice As Decimal
Public Overridable Property GssnId As String
Public Overridable Property NoImage As Boolean
Public Overridable Property RegistrationNumber As String
Public Overridable Property RegistrationDate As Date?
Public Overridable Property Mileage As Integer?
Public Overridable Property TradeInDate As Date?
Public Overridable Property VID As String
Public Overridable Property EmissionCombined As String
Public Overridable Property EmissionDirective As String
Public Overridable Property NormalisedEmissionDirective As String
Public Overridable Property HasMildHybridEquipmentCode As Boolean
Public Overridable Property Acceleration As Decimal?
Public Overridable Property ChassisNumber As String Implements IVehicleDetails.ChassisNumber
Public Overridable Property NumberOfDoors As String Implements IVehicleDetails.NumberOfDoors
Public Overridable Property NumberOfSeats As String Implements IVehicleDetails.NumberOfSeats
Public Overridable Property SpecialInfo As Boolean Implements IVehicleDetails.SpecialInfo
Public Overridable Property EligibleForIntegratedServiceCare As Boolean Implements IVehicleDetails.EligibleForIntegratedServiceCare
Public Overridable Property ConsumptionCombined As Consumption Implements IVehicleDetails.ConsumptionCombined
Public Overridable Property ConsumptionExtraUrban As Consumption Implements IVehicleDetails.ConsumptionExtraUrban
Public Overridable Property ConsumptionUrban As Consumption Implements IVehicleDetails.ConsumptionUrban
Public Overridable Property WltpFuelConsumptionCombined As Consumption Implements IVehicleDetails.WltpFuelConsumptionCombined
Public Overridable Property WltpFuelConsumptionExtraHigh As Consumption Implements IVehicleDetails.WltpFuelConsumptionExtraHigh
Public Overridable Property WltpFuelConsumptionHigh As Consumption Implements IVehicleDetails.WltpFuelConsumptionHigh
Public Overridable Property WltpFuelConsumptionLow As Consumption Implements IVehicleDetails.WltpFuelConsumptionLow
Public Overridable Property WltpFuelConsumptionMedium As Consumption Implements IVehicleDetails.WltpFuelConsumptionMedium
Public Overridable Property EnergyEfficiencyClass As EmissionClass Implements IVehicleDetails.EnergyEfficiencyClass
Public Overridable Property Equipment As List(Of Equipmentv2) Implements IVehicleDetails.Equipment
Public Overridable Property EquipmentAdditional As List(Of Equipment) Implements IVehicleDetails.EquipmentAdditional
Public Overridable Property EquipmentCategories As List(Of EquipmentCategoryv2) Implements IVehicleDetails.EquipmentCategories
Public Overridable Property VehicleData As List(Of VehicleAttribute) Implements IVehicleDetails.VehicleData
Public Overridable Property IntegratedServiceCareOptions As List(Of IntegratedServiceCareOptions) Implements IVehicleDetails.IntegratedServiceCareOptions
Public Overridable Property IspVehicleCustomerDescriptions As List(Of String) Implements IVehicleDetails.IspVehicleCustomerDescriptions
Public Overridable Property MarketingCode As String
Public Overridable Property EligibleForMaTransfer As Boolean
Public Overridable Property ConfirmedProductionDate As String
Public Overridable Property ForecastedArrivalDate As String
End Class
Public Partial Class BackOrderVehicleDetailsBrand
Public Overridable Property Description As String
End Class
Public Partial Class BackOrderVehicleDetailsWithPackages
Inherits BackOrderVehicleDetails
Implements IPackages
Public Overridable Property Packages As ICollection(Of Package) Implements IPackages.Packages
Public Overridable Property PackageNames As String
End Class
Public Partial Class CarConfiguratorStockMatch
Public Overridable Property Vehicle As CarConfiguratorVehicle
Public Overridable Property IsSellable As Boolean
Public Overridable Property VehicleWheels As String
Public Overridable Property VehicleTrim As String
Public Overridable Property VehicleAdditionalOptionCodes As List(Of String) = New List(Of String)
Public Overridable Property FullModelYearDifferences As List(Of String) = New List(Of String)
Public Overridable Property PaintDifferences As List(Of String) = New List(Of String)
Public Overridable Property UpholsteryDifferences As List(Of String) = New List(Of String)
Public Overridable Property WheelDifferences As List(Of String) = New List(Of String)
Public Overridable Property TrimDifferences As List(Of String) = New List(Of String)
Public Overridable Property EquipmentDifferences As List(Of String) = New List(Of String)
Public Overridable Property Differences As List(Of String) = New List(Of String)
Public Overridable Property ExactMatch As Boolean
End Class
Public Partial Class CarConfiguratorVehicle
Inherits BackOrderVehicleDetailsWithPackages
Public Overridable Property ModelYearCode As String
Public Overridable Property HalfModelYearCode As String
Public Overridable Property ActiveOffers As List(Of Integer) = New List(Of Integer)
Public Overridable Property EligibleForMotability As Boolean
Public Overridable Property NearestPort As Boolean?
End Class
Public Partial Class Consumption
Public Overridable Property Id As Integer
Public Overridable Property Lkm As Decimal
Public Overridable Property Mpg As Decimal
End Class
Public Partial Class EmissionClass
Public Overridable Property Colour As String
Public Overridable Property Rating As String
End Class
Public Partial Class Engine
Public Overridable Property Id As Integer
Public Overridable Property Badge As String
Public Overridable Property CubicCapacity As Integer
Public Overridable Property Cyclinders As Integer
Public Overridable Property HorsePower As String
Public Overridable Property Kw As String
Public Overridable Property Selected As Boolean
End Class
Public Partial Class Equipment
Public Overridable Property Id As Integer?
Public Overridable Property Code As String
Public Overridable Property Description As String
End Class
Public Partial Class EquipmentCache
Public Overridable Property Code As String
Public Overridable Property Description As String
Public Overridable Property StandardFlag As String
Public Overridable Property Price As Decimal
Public Overridable Property Category As String
Public Overridable Property Importance As String
End Class
Public Partial Class EquipmentCategoryv2
Public Overridable Property Order As Integer
Public Overridable Property Code As String
Public Overridable Property Description As String
Public Overridable Property Equipment As List(Of Equipmentv2)
End Class
Public Partial Class Equipmentv2
Inherits Equipment
Public Overridable Property Importance As Integer
Public Overridable Property IsAdditional As Boolean
End Class
Public Partial Class IntegratedServiceCareOptions
Public Overridable Property OptionCode As String
Public Overridable Property BM7NST As String
Public Overridable Property FullModelYear As String
Public Overridable Property IntegratedProductType As String
Public Overridable Property CustomerDescription As String
Public Overridable Property OneAgentProductType As String
End Class
Public Partial Class Media
Public Overridable Property ImageCount As Integer
Public Overridable Property MainImageUrl As String
Public Overridable Property MainImageUrlMobile As String
Public Overridable Property NoImage As Boolean
Public Overridable Property ThreeSixtyDegreeImageUrls As String()
Public Overridable Property ThreeSixtyDegreeMobileImageUrls As String()
Public Overridable Property VehicleImageUrls As String()
Public Overridable Property VehicleMobileImageUrls As String()
End Class
Public Partial Class Retailer
Public Overridable Property Id As Integer
Public Overridable Property GssnId As String
Public Overridable Property Description As String
Public Overridable Property Street As String
Public Overridable Property City As String
Public Overridable Property District As String
Public Overridable Property Postcode As String
Public Overridable Property GoogleMapPostcode As String
Public Overridable Property Phone As String
Public Overridable Property Fax As String
Public Overridable Property Email As String
Public Overridable Property Website As String
Public Overridable Property Latitude As Double
Public Overridable Property Longitude As Double
Public Overridable Property RetailerGroup_Id As Integer?
Public Overridable Property RetailerGroupId As String
Public Overridable Property RetailerGroupName As String
Public Overridable Property Distance As Double
Public Overridable Property PaymentServiceGuid As String
Public Overridable Property IsOnline As Boolean?
Public Overridable Property IsNewCarRetailer As Boolean?
Public Overridable Property IsUsedCarRetailer As Boolean?
Public Overridable Property IsCentralRetailer As Boolean
Public Overridable Property ChatEnabled As Boolean
Public Overridable Property TradeInEnabled As Boolean
Public Overridable Property DisplayPhoneNumberNew As String
Public Overridable Property DisplayPhoneNumberUsed As String
Public Overridable Property Services As RetailerServices
Public Overridable Property smart As Boolean
Public Overridable Property smartDescription As String
Public Overridable Property smartWebsite As String
Public Overridable Property smartEmail As String
Public Overridable Property smartPhone As String
Public Overridable Property AdditionalInformation As String
Public Overridable Property LegacyId As String
Public Overridable Property DriveTime As Decimal
Public Overridable Property Agent As Boolean
Public Overridable Property Port As Integer?
Public Overridable Property PortName As String
Public Overridable Property MarketAreaId As Integer?
Public Overridable Property MarketAreaName As String
Public Overridable Property MaintenanceDate As String
Public Overridable Property MaintenanceSource As String
Public Overridable Property STPAccountNumbers As String
Public Overridable Property CampaignExcluded As Boolean?
Public Overridable Property DigitalLoungeParentGssnId As String
Public Overridable Property SendLeadsToDigitalLoungeParent As Boolean
Public Overridable Property IsExcludedFromImport As Boolean
Public Overridable Property OpeningTimes As RetailerOpeningTimes
End Class
Public Partial Class RetailerOpeningTimes
Public Overridable Property [New] As List(Of RetailerOpeningTime) = New List(Of RetailerOpeningTime)
Public Overridable Property Used As List(Of RetailerOpeningTime) = New List(Of RetailerOpeningTime)
End Class
Public Partial Class RetailerService
Public Overridable Property Id As Integer
Public Overridable Property Description As String
Public Overridable Property Priority As Boolean
End Class
Public Partial Class RetailerServices
Public Overridable Property [New] As List(Of RetailerService)
Public Overridable Property Used As List(Of RetailerService)
End Class
Public Partial Class VehicleAuditDetails
Public Overridable Property UserId As String
Public Overridable Property Status As Boolean
Public Overridable Property Notes As String
Public Overridable Property CreationDate As String
End Class
End Namespace
Namespace Mercedes.OS.Vehicle.Shared.POCO.Filters.v2
Public Partial Class Package
Public Overridable Property Id As Integer
Public Overridable Property Description As String
End Class
End Namespace
End Namespace
VB.NET CarConfiguratorStockRequest 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.
POST /v1/CarConfiguratorStock HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ConfiguratorCode: String,
IsSellable: False,
ExactMatch: False,
GSSN: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
TotalVehicles: 4,
CarConfiguratorResponse:
{
Name: String,
KeyInformation:
{
BM7NST: String,
ConfigurationDate: String,
ModelYear: String,
HalfYear: String
},
OrderingOptions:
{
Interior:
[
String
],
Exterior:
[
String
],
Options:
[
String
],
WheelOptions:
[
{
Code: String,
Description: String,
StandardFlag: String,
Price: 0,
Category: String,
Importance: String
}
],
TrimOptions:
[
{
Code: String,
Description: String,
StandardFlag: String,
Price: 0,
Category: String,
Importance: String
}
],
OptionCodes:
[
{
Code: String,
Description: String,
StandardFlag: String,
Price: 0,
Category: String,
Importance: String
}
]
},
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
ConfiguratorCode: String
},
ExactMatches:
{
SellableMatches:
[
{
}
],
NonSellableMatches:
[
{
}
]
},
CloseMatches:
{
SellableMatches:
[
{
}
],
NonSellableMatches:
[
{
}
]
}
}