Mercedes.Agency.Orchestration.API

<back to all web services

CarConfiguratorStockRequest

CarConfigurator
Requires Authentication
The following routes are available for this service:
POST/v1/CarConfiguratorStockValidate and save a car configurator code for a vehicle searchThis 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
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Mercedes.Agency.Orchestration.API.ServiceModel.BackOrders.CarConfigurator;
using Mercedes.Agency.API.Shared.POCO.CarConfigurator;
using Mercedes.OS.Vehicle.Shared.POCO;
using Mercedes.Agency.API.Shared.POCO;
using Mercedes.Agency.API.Shared.Enums;
using Mercedes.OS.Vehicle.Shared.POCO.Filters.v2;

namespace Mercedes.Agency.API.Shared.POCO
{
    public partial class Price
    {
        public virtual string Id { get; set; }
        public virtual string Description { get; set; }
        public virtual decimal Net { get; set; }
        public virtual decimal VAT { get; set; }
        public virtual decimal Gross { get; set; }
        public virtual OfferPriceProductType Product { get; set; }
    }

    public partial class RetailerOpeningTime
    {
        public virtual string Day { get; set; }
        public virtual string OpenFrom { get; set; }
        public virtual string OpenTo { get; set; }
        public virtual string Special { get; set; }
    }

    public partial class VehicleAttribute
    {
        public virtual string Description { get; set; }
        public virtual string Value { get; set; }
    }

}

namespace Mercedes.Agency.API.Shared.POCO.CarConfigurator
{
    public partial class CarConfiguratorResponse
    {
        public virtual string Name { get; set; }
        public virtual KeyInformation KeyInformation { get; set; }
        public virtual OrderingOptions OrderingOptions { get; set; }
        public virtual ResponseStatus ResponseStatus { get; set; }
        public virtual string ConfiguratorCode { get; set; }
    }

    public partial class KeyInformation
    {
        public virtual string BM7NST { get; set; }
        public virtual string ConfigurationDate { get; set; }
        public virtual string ModelYear { get; set; }
        public virtual string HalfYear { get; set; }
    }

    public partial class OrderingOptions
    {
        public virtual List<string> Interior { get; set; }
        public virtual List<string> Exterior { get; set; }
        public virtual List<string> Options { get; set; }
        public virtual List<EquipmentCache> WheelOptions { get; set; } = [];
        public virtual List<EquipmentCache> TrimOptions { get; set; } = [];
        public virtual List<EquipmentCache> OptionCodes { get; set; } = [];
    }

}

namespace Mercedes.Agency.Orchestration.API.ServiceModel.BackOrders.CarConfigurator
{
    public partial class CarConfiguratorStockMatches
    {
        public virtual List<CarConfiguratorStockMatch> SellableMatches { get; set; } = [];
        public virtual List<CarConfiguratorStockMatch> NonSellableMatches { get; set; } = [];
    }

    public partial class CarConfiguratorStockRequest
        : IPost
    {
        ///<summary>
        ///The configurator code to search on
        ///</summary>
        [ApiMember(Description="The configurator code to search on", IsRequired=true)]
        public virtual string ConfiguratorCode { get; set; }

        ///<summary>
        ///Whether to return sellable vehicles
        ///</summary>
        [ApiMember(Description="Whether to return sellable vehicles")]
        public virtual bool? IsSellable { get; set; }

        ///<summary>
        ///Whether to only get exact matches
        ///</summary>
        [ApiMember(Description="Whether to only get exact matches")]
        public virtual bool ExactMatch { get; set; }

        ///<summary>
        ///Whether to restrict vehicles response to a GSSN
        ///</summary>
        [ApiMember(Description="Whether to restrict vehicles response to a GSSN")]
        public virtual string GSSN { get; set; }
    }

    public partial class CarConfiguratorStockResponse
    {
        public virtual int TotalVehicles { get; set; }
        public virtual CarConfiguratorResponse CarConfiguratorResponse { get; set; }
        public virtual CarConfiguratorStockMatches ExactMatches { get; set; }
        public virtual CarConfiguratorStockMatches CloseMatches { get; set; }
    }

}

namespace Mercedes.OS.Vehicle.Shared.POCO
{
    public partial class BackOrderVehicleDetails
        : IVehiclePrices, IVehiclePriceCollection, IImageUrl, IVehicleDetails
    {
        public virtual string Vin { get; set; }
        public virtual string CommissionNumber { get; set; }
        public virtual string Description { get; set; }
        public virtual string ShortDescription { get; set; }
        public virtual int ModelId { get; set; }
        public virtual string Model { get; set; }
        public virtual string FullModelYearCode { get; set; }
        public virtual int? BrandId { get; set; }
        public virtual BackOrderVehicleDetailsBrand Brand { get; set; }
        public virtual int RetailerId { get; set; }
        public virtual string ImageUrl { get; set; }
        public virtual string Colour { get; set; }
        public virtual string ColourCode { get; set; }
        public virtual string FuelType { get; set; }
        public virtual int FuelTypeId { get; set; }
        public virtual string Transmission { get; set; }
        public virtual string TransmissionType { get; set; }
        public virtual Engine Engine { get; set; }
        public virtual string EngineBadge { get; set; }
        public virtual string Package { get; set; }
        public virtual string Line { get; set; }
        public virtual string Upholstery { get; set; }
        public virtual string UpholsteryCode { get; set; }
        public virtual string UsageCode { get; set; }
        public virtual string Account { get; set; }
        public virtual string AccountType { get; set; }
        public virtual string NST { get; set; }
        public virtual string Baumuster { get; set; }
        public virtual decimal? ElectricRange { get; set; }
        public virtual decimal? ElectricConsumption { get; set; }
        public virtual decimal? ActualPrice { get; set; }
        public virtual decimal OTRPrice { get; set; }
        public virtual decimal RetailPriceExVat { get; set; }
        public virtual decimal P11D { get; set; }
        public virtual string VehicleType { get; set; }
        public virtual string UpholsteryDescription { get; set; }
        public virtual string UpholsteryType { get; set; }
        public virtual string BodyStyle { get; set; }
        public virtual string BodyStyleStyleCode { get; set; }
        public virtual string BodyStyleStyleCodeElectric { get; set; }
        public virtual string BodyStyleStyleCodeHybrid { get; set; }
        public virtual List<string> AvailablePackages { get; set; }
        public virtual int? Mapped_Line { get; set; }
        public virtual bool Secured { get; set; }
        public virtual string Bm7NST { get; set; }
        public virtual bool IsAvailableOnline { get; set; }
        public virtual bool IsSpecialistCar { get; set; }
        public virtual bool IsSellable { get; set; }
        public virtual bool UnderOffer { get; set; }
        public virtual List<VehicleAuditDetails> VehicleAuditDetails { get; set; }
        public virtual Retailer Retailer { get; set; }
        public virtual Media Media { get; set; }
        public virtual decimal? Emission { get; set; }
        public virtual string ColourGroup { get; set; }
        public virtual string VehicleClass { get; set; }
        public virtual string ProductRange { get; set; }
        public virtual bool IsHOBackOrderAccountVehicle { get; set; }
        public virtual bool IsAllocatedToBackOrder { get; set; }
        public virtual bool InBackOrderAccount { get; set; }
        public virtual decimal DeliveryCharge { get; set; }
        public virtual decimal? DeliveryChargeNet { get; set; }
        public virtual decimal? DeliveryChargeVAT { get; set; }
        public virtual decimal Plates { get; set; }
        public virtual decimal? PlatesNet { get; set; }
        public virtual decimal? PlatesVAT { get; set; }
        public virtual decimal FuelCharge { get; set; }
        public virtual decimal? FuelChargeNet { get; set; }
        public virtual decimal? FuelChargeVAT { get; set; }
        public virtual decimal RetailPrice_ExVAT { get; set; }
        public virtual decimal RetailPrice_IncVAT { get; set; }
        public virtual decimal VED_Year1 { get; set; }
        public virtual decimal VED_Year2 { get; set; }
        public virtual decimal FirstRegFee { get; set; }
        public virtual decimal OTR_Value { get; set; }
        public virtual decimal OTR { get; set; }
        public virtual List<Price> Prices { get; set; }
        public virtual string ProductionDate { get; set; }
        public virtual DateTime? PortArrivalDate { get; set; }
        public virtual string Location { get; set; }
        public virtual bool IsDisplayStock { get; set; }
        public virtual int? DisplayRetailerId { get; set; }
        public virtual string DisplayRetailer { get; set; }
        public virtual string DisplayRetailerGssnId { get; set; }
        public virtual int? DisplayRetailerMarketAreaId { get; set; }
        public virtual bool? IsSmartDisplayRetailer { get; set; }
        public virtual string ColourDescription { get; set; }
        public virtual DateTime? Creation { get; set; }
        public virtual DateTime? Modified { get; set; }
        public virtual int? VATQualifyingNumber { get; set; }
        public virtual bool VATQualifying { get; set; }
        public virtual decimal CurrentRetailerOfferPrice { get; set; }
        public virtual string GssnId { get; set; }
        public virtual bool NoImage { get; set; }
        public virtual string RegistrationNumber { get; set; }
        public virtual DateTime? RegistrationDate { get; set; }
        public virtual int? Mileage { get; set; }
        public virtual DateTime? TradeInDate { get; set; }
        public virtual string VID { get; set; }
        public virtual string EmissionCombined { get; set; }
        public virtual string EmissionDirective { get; set; }
        public virtual string NormalisedEmissionDirective { get; set; }
        public virtual bool HasMildHybridEquipmentCode { get; set; }
        public virtual decimal? Acceleration { get; set; }
        public virtual string ChassisNumber { get; set; }
        public virtual string NumberOfDoors { get; set; }
        public virtual string NumberOfSeats { get; set; }
        public virtual bool SpecialInfo { get; set; }
        public virtual bool EligibleForIntegratedServiceCare { get; set; }
        public virtual Consumption ConsumptionCombined { get; set; }
        public virtual Consumption ConsumptionExtraUrban { get; set; }
        public virtual Consumption ConsumptionUrban { get; set; }
        public virtual Consumption WltpFuelConsumptionCombined { get; set; }
        public virtual Consumption WltpFuelConsumptionExtraHigh { get; set; }
        public virtual Consumption WltpFuelConsumptionHigh { get; set; }
        public virtual Consumption WltpFuelConsumptionLow { get; set; }
        public virtual Consumption WltpFuelConsumptionMedium { get; set; }
        public virtual EmissionClass EnergyEfficiencyClass { get; set; }
        public virtual List<Equipmentv2> Equipment { get; set; }
        public virtual List<Equipment> EquipmentAdditional { get; set; }
        public virtual List<EquipmentCategoryv2> EquipmentCategories { get; set; }
        public virtual List<VehicleAttribute> VehicleData { get; set; }
        public virtual List<IntegratedServiceCareOptions> IntegratedServiceCareOptions { get; set; }
        public virtual List<string> IspVehicleCustomerDescriptions { get; set; }
        public virtual string MarketingCode { get; set; }
        public virtual bool EligibleForMaTransfer { get; set; }
        public virtual string ConfirmedProductionDate { get; set; }
        public virtual string ForecastedArrivalDate { get; set; }
    }

    public partial class BackOrderVehicleDetailsBrand
    {
        public virtual string Description { get; set; }
    }

    public partial class BackOrderVehicleDetailsWithPackages
        : BackOrderVehicleDetails, IPackages
    {
        public virtual ICollection<Package> Packages { get; set; }
        public virtual string PackageNames { get; set; }
    }

    public partial class CarConfiguratorStockMatch
    {
        public virtual CarConfiguratorVehicle Vehicle { get; set; }
        public virtual bool IsSellable { get; set; }
        public virtual string VehicleWheels { get; set; }
        public virtual string VehicleTrim { get; set; }
        public virtual List<string> VehicleAdditionalOptionCodes { get; set; } = [];
        public virtual List<string> FullModelYearDifferences { get; set; } = [];
        public virtual List<string> PaintDifferences { get; set; } = [];
        public virtual List<string> UpholsteryDifferences { get; set; } = [];
        public virtual List<string> WheelDifferences { get; set; } = [];
        public virtual List<string> TrimDifferences { get; set; } = [];
        public virtual List<string> EquipmentDifferences { get; set; } = [];
        public virtual List<string> Differences { get; set; } = [];
        public virtual bool ExactMatch { get; set; }
    }

    public partial class CarConfiguratorVehicle
        : BackOrderVehicleDetailsWithPackages
    {
        public virtual string ModelYearCode { get; set; }
        public virtual string HalfModelYearCode { get; set; }
        public virtual List<int> ActiveOffers { get; set; } = [];
        public virtual bool EligibleForMotability { get; set; }
        public virtual bool? NearestPort { get; set; }
    }

    public partial class Consumption
    {
        public virtual int Id { get; set; }
        public virtual decimal Lkm { get; set; }
        public virtual decimal Mpg { get; set; }
    }

    public partial class EmissionClass
    {
        public virtual string Colour { get; set; }
        public virtual string Rating { get; set; }
    }

    public partial class Engine
    {
        public virtual int Id { get; set; }
        public virtual string Badge { get; set; }
        public virtual int CubicCapacity { get; set; }
        public virtual int Cyclinders { get; set; }
        public virtual string HorsePower { get; set; }
        public virtual string Kw { get; set; }
        public virtual bool Selected { get; set; }
    }

    public partial class Equipment
    {
        public virtual int? Id { get; set; }
        public virtual string Code { get; set; }
        public virtual string Description { get; set; }
    }

    public partial class EquipmentCache
    {
        public virtual string Code { get; set; }
        public virtual string Description { get; set; }
        public virtual string StandardFlag { get; set; }
        public virtual decimal Price { get; set; }
        public virtual string Category { get; set; }
        public virtual string Importance { get; set; }
    }

    public partial class EquipmentCategoryv2
    {
        public virtual int Order { get; set; }
        public virtual string Code { get; set; }
        public virtual string Description { get; set; }
        public virtual List<Equipmentv2> Equipment { get; set; }
    }

    public partial class Equipmentv2
        : Equipment
    {
        public virtual int Importance { get; set; }
        public virtual bool IsAdditional { get; set; }
    }

    public partial class IntegratedServiceCareOptions
    {
        public virtual string OptionCode { get; set; }
        public virtual string BM7NST { get; set; }
        public virtual string FullModelYear { get; set; }
        public virtual string IntegratedProductType { get; set; }
        public virtual string CustomerDescription { get; set; }
        public virtual string OneAgentProductType { get; set; }
    }

    public partial class Media
    {
        public virtual int ImageCount { get; set; }
        public virtual string MainImageUrl { get; set; }
        public virtual string MainImageUrlMobile { get; set; }
        public virtual bool NoImage { get; set; }
        public virtual string[] ThreeSixtyDegreeImageUrls { get; set; }
        public virtual string[] ThreeSixtyDegreeMobileImageUrls { get; set; }
        public virtual string[] VehicleImageUrls { get; set; }
        public virtual string[] VehicleMobileImageUrls { get; set; }
    }

    public partial class Retailer
    {
        public virtual int Id { get; set; }
        public virtual string GssnId { get; set; }
        public virtual string Description { get; set; }
        public virtual string Street { get; set; }
        public virtual string City { get; set; }
        public virtual string District { get; set; }
        public virtual string Postcode { get; set; }
        public virtual string GoogleMapPostcode { get; set; }
        public virtual string Phone { get; set; }
        public virtual string Fax { get; set; }
        public virtual string Email { get; set; }
        public virtual string Website { get; set; }
        public virtual double Latitude { get; set; }
        public virtual double Longitude { get; set; }
        public virtual int? RetailerGroup_Id { get; set; }
        public virtual string RetailerGroupId { get; set; }
        public virtual string RetailerGroupName { get; set; }
        public virtual double Distance { get; set; }
        public virtual string PaymentServiceGuid { get; set; }
        public virtual bool? IsOnline { get; set; }
        public virtual bool? IsNewCarRetailer { get; set; }
        public virtual bool? IsUsedCarRetailer { get; set; }
        public virtual bool IsCentralRetailer { get; set; }
        public virtual bool ChatEnabled { get; set; }
        public virtual bool TradeInEnabled { get; set; }
        public virtual string DisplayPhoneNumberNew { get; set; }
        public virtual string DisplayPhoneNumberUsed { get; set; }
        public virtual RetailerServices Services { get; set; }
        public virtual bool smart { get; set; }
        public virtual string smartDescription { get; set; }
        public virtual string smartWebsite { get; set; }
        public virtual string smartEmail { get; set; }
        public virtual string smartPhone { get; set; }
        public virtual string AdditionalInformation { get; set; }
        public virtual string LegacyId { get; set; }
        public virtual decimal DriveTime { get; set; }
        public virtual bool Agent { get; set; }
        public virtual int? Port { get; set; }
        public virtual string PortName { get; set; }
        public virtual int? MarketAreaId { get; set; }
        public virtual string MarketAreaName { get; set; }
        public virtual string MaintenanceDate { get; set; }
        public virtual string MaintenanceSource { get; set; }
        public virtual string STPAccountNumbers { get; set; }
        public virtual bool? CampaignExcluded { get; set; }
        public virtual string DigitalLoungeParentGssnId { get; set; }
        public virtual bool SendLeadsToDigitalLoungeParent { get; set; }
        public virtual bool IsExcludedFromImport { get; set; }
        public virtual RetailerOpeningTimes OpeningTimes { get; set; }
    }

    public partial class RetailerOpeningTimes
    {
        public virtual List<RetailerOpeningTime> New { get; set; } = [];
        public virtual List<RetailerOpeningTime> Used { get; set; } = [];
    }

    public partial class RetailerService
    {
        public virtual int Id { get; set; }
        public virtual string Description { get; set; }
        public virtual bool Priority { get; set; }
    }

    public partial class RetailerServices
    {
        public virtual List<RetailerService> New { get; set; }
        public virtual List<RetailerService> Used { get; set; }
    }

    public partial class VehicleAuditDetails
    {
        public virtual string UserId { get; set; }
        public virtual bool Status { get; set; }
        public virtual string Notes { get; set; }
        public virtual string CreationDate { get; set; }
    }

}

namespace Mercedes.OS.Vehicle.Shared.POCO.Filters.v2
{
    public partial class Package
    {
        public virtual int Id { get; set; }
        public virtual string Description { get; set; }
    }

}

C# CarConfiguratorStockRequest 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.

POST /v1/CarConfiguratorStock HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"ConfiguratorCode":"String","IsSellable":false,"ExactMatch":false,"GSSN":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
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":[{}]}}