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

export class KeyInformation
{
    public BM7NST?: string;
    public ConfigurationDate?: string;
    public ModelYear?: string;
    public HalfYear?: string;

    public constructor(init?: Partial<KeyInformation>) { (Object as any).assign(this, init); }
}

export class EquipmentCache
{
    public Code: string;
    public Description: string;
    public StandardFlag: string;
    public Price: number;
    public Category: string;
    public Importance: string;

    public constructor(init?: Partial<EquipmentCache>) { (Object as any).assign(this, init); }
}

export class OrderingOptions
{
    public Interior?: string[];
    public Exterior?: string[];
    public Options?: string[];
    public WheelOptions: EquipmentCache[] = [];
    public TrimOptions: EquipmentCache[] = [];
    public OptionCodes: EquipmentCache[] = [];

    public constructor(init?: Partial<OrderingOptions>) { (Object as any).assign(this, init); }
}

export class CarConfiguratorResponse
{
    public Name?: string;
    public KeyInformation?: KeyInformation;
    public OrderingOptions?: OrderingOptions;
    public ResponseStatus: ResponseStatus;
    public ConfiguratorCode?: string;

    public constructor(init?: Partial<CarConfiguratorResponse>) { (Object as any).assign(this, init); }
}

export class BackOrderVehicleDetailsBrand
{
    public Description?: string;

    public constructor(init?: Partial<BackOrderVehicleDetailsBrand>) { (Object as any).assign(this, init); }
}

export class Engine
{
    public Id: number;
    public Badge?: string;
    public CubicCapacity: number;
    public Cyclinders: number;
    public HorsePower?: string;
    public Kw?: string;
    public Selected: boolean;

    public constructor(init?: Partial<Engine>) { (Object as any).assign(this, init); }
}

export class VehicleAuditDetails
{
    public UserId?: string;
    public Status: boolean;
    public Notes?: string;
    public CreationDate?: string;

    public constructor(init?: Partial<VehicleAuditDetails>) { (Object as any).assign(this, init); }
}

export class RetailerService
{
    public Id: number;
    public Description?: string;
    public Priority: boolean;

    public constructor(init?: Partial<RetailerService>) { (Object as any).assign(this, init); }
}

export class RetailerServices
{
    public New?: RetailerService[];
    public Used?: RetailerService[];

    public constructor(init?: Partial<RetailerServices>) { (Object as any).assign(this, init); }
}

export class RetailerOpeningTime
{
    public Day: string;
    public OpenFrom: string;
    public OpenTo: string;
    public Special: string;

    public constructor(init?: Partial<RetailerOpeningTime>) { (Object as any).assign(this, init); }
}

export class RetailerOpeningTimes
{
    public New: RetailerOpeningTime[] = [];
    public Used: RetailerOpeningTime[] = [];

    public constructor(init?: Partial<RetailerOpeningTimes>) { (Object as any).assign(this, init); }
}

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

    public constructor(init?: Partial<Retailer>) { (Object as any).assign(this, init); }
}

export class Media
{
    public ImageCount: number;
    public MainImageUrl?: string;
    public MainImageUrlMobile?: string;
    public NoImage: boolean;
    public ThreeSixtyDegreeImageUrls?: string[];
    public ThreeSixtyDegreeMobileImageUrls?: string[];
    public VehicleImageUrls?: string[];
    public VehicleMobileImageUrls?: string[];

    public constructor(init?: Partial<Media>) { (Object as any).assign(this, init); }
}

export enum OfferPriceProductType
{
    LIST_PRICE = 'LIST_PRICE',
    NUMBER_PLATE_FEE = 'NUMBER_PLATE_FEE',
    DELIVERY_CHARGE = 'DELIVERY_CHARGE',
    FUEL_CHARGE = 'FUEL_CHARGE',
    MANUFACTURER_OFFER = 'MANUFACTURER_OFFER',
    PERSONALISED_MONEYOFFER = 'PERSONALISED_MONEYOFFER',
    PERSONALISED_NONMONEYOFFER = 'PERSONALISED_NONMONEYOFFER',
    PERSONALISED_NONMONEYOFFER_NEG = 'PERSONALISED_NONMONEYOFFER_NEG',
    SERVICE = 'SERVICE',
    SERVICE_NEG = 'SERVICE_NEG',
    GOVERNMENT_GRANT = 'GOVERNMENT_GRANT',
    OUTRIGHT_PURCHASE_DISCOUNT = 'OUTRIGHT_PURCHASE_DISCOUNT',
    VIP_OFFER = 'VIP_OFFER',
    WALLBOX_OFFER = 'WALLBOX_OFFER',
    WALLBOX_OFFER_NEG = 'WALLBOX_OFFER_NEG',
    ROAD_FUND_LICENCE = 'ROAD_FUND_LICENCE',
    FIRST_REGISTRATION_FEE = 'FIRST_REGISTRATION_FEE',
    NOT_FOUND = 'NOT_FOUND',
    ACCESSORY_OFFER = 'ACCESSORY_OFFER',
    ACCESSORY_OFFER_NEG = 'ACCESSORY_OFFER_NEG',
    MOTABILITY_DISCOUNT = 'MOTABILITY_DISCOUNT',
}

export class Price
{
    public Id: string;
    public Description: string;
    public Net: number;
    public VAT: number;
    public Gross: number;
    public Product: OfferPriceProductType;

    public constructor(init?: Partial<Price>) { (Object as any).assign(this, init); }
}

export class Consumption
{
    public Id: number;
    public Lkm: number;
    public Mpg: number;

    public constructor(init?: Partial<Consumption>) { (Object as any).assign(this, init); }
}

export class EmissionClass
{
    public Colour?: string;
    public Rating?: string;

    public constructor(init?: Partial<EmissionClass>) { (Object as any).assign(this, init); }
}

export class Equipment
{
    public Id?: number;
    public Code?: string;
    public Description?: string;

    public constructor(init?: Partial<Equipment>) { (Object as any).assign(this, init); }
}

export class Equipmentv2 extends Equipment
{
    public Importance: number;
    public IsAdditional: boolean;

    public constructor(init?: Partial<Equipmentv2>) { super(init); (Object as any).assign(this, init); }
}

export class EquipmentCategoryv2
{
    public Order: number;
    public Code?: string;
    public Description?: string;
    public Equipment?: Equipmentv2[];

    public constructor(init?: Partial<EquipmentCategoryv2>) { (Object as any).assign(this, init); }
}

export class VehicleAttribute
{
    public Description?: string;
    public Value?: string;

    public constructor(init?: Partial<VehicleAttribute>) { (Object as any).assign(this, init); }
}

export class IntegratedServiceCareOptions
{
    public OptionCode?: string;
    public BM7NST?: string;
    public FullModelYear?: string;
    public IntegratedProductType?: string;
    public CustomerDescription?: string;
    public OneAgentProductType?: string;

    public constructor(init?: Partial<IntegratedServiceCareOptions>) { (Object as any).assign(this, init); }
}

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

    public constructor(init?: Partial<BackOrderVehicleDetails>) { (Object as any).assign(this, init); }
}

export class Package
{
    public Id: number;
    public Description?: string;

    public constructor(init?: Partial<Package>) { (Object as any).assign(this, init); }
}

export class BackOrderVehicleDetailsWithPackages extends BackOrderVehicleDetails implements IPackages
{
    public Packages: Package[];
    public PackageNames: string;

    public constructor(init?: Partial<BackOrderVehicleDetailsWithPackages>) { super(init); (Object as any).assign(this, init); }
}

export class CarConfiguratorVehicle extends BackOrderVehicleDetailsWithPackages
{
    public ModelYearCode?: string;
    public HalfModelYearCode?: string;
    public ActiveOffers: number[] = [];
    public EligibleForMotability: boolean;
    public NearestPort?: boolean;

    public constructor(init?: Partial<CarConfiguratorVehicle>) { super(init); (Object as any).assign(this, init); }
}

export class CarConfiguratorStockMatch
{
    public Vehicle: CarConfiguratorVehicle;
    public IsSellable: boolean;
    public VehicleWheels?: string;
    public VehicleTrim?: string;
    public VehicleAdditionalOptionCodes: string[] = [];
    public FullModelYearDifferences: string[] = [];
    public PaintDifferences: string[] = [];
    public UpholsteryDifferences: string[] = [];
    public WheelDifferences: string[] = [];
    public TrimDifferences: string[] = [];
    public EquipmentDifferences: string[] = [];
    public Differences: string[] = [];
    public ExactMatch: boolean;

    public constructor(init?: Partial<CarConfiguratorStockMatch>) { (Object as any).assign(this, init); }
}

export class CarConfiguratorStockMatches
{
    public SellableMatches: CarConfiguratorStockMatch[] = [];
    public NonSellableMatches: CarConfiguratorStockMatch[] = [];

    public constructor(init?: Partial<CarConfiguratorStockMatches>) { (Object as any).assign(this, init); }
}

export class CarConfiguratorStockResponse
{
    public TotalVehicles: number;
    public CarConfiguratorResponse: CarConfiguratorResponse;
    public ExactMatches: CarConfiguratorStockMatches;
    public CloseMatches: CarConfiguratorStockMatches;

    public constructor(init?: Partial<CarConfiguratorStockResponse>) { (Object as any).assign(this, init); }
}

export class CarConfiguratorStockRequest implements IPost
{
    /** @description The configurator code to search on */
    // @ApiMember(Description="The configurator code to search on", IsRequired=true)
    public ConfiguratorCode: string;

    /** @description Whether to return sellable vehicles */
    // @ApiMember(Description="Whether to return sellable vehicles")
    public IsSellable?: boolean;

    /** @description Whether to only get exact matches */
    // @ApiMember(Description="Whether to only get exact matches")
    public ExactMatch: boolean;

    /** @description Whether to restrict vehicles response to a GSSN */
    // @ApiMember(Description="Whether to restrict vehicles response to a GSSN")
    public GSSN?: string;

    public constructor(init?: Partial<CarConfiguratorStockRequest>) { (Object as any).assign(this, init); }
}

TypeScript CarConfiguratorStockRequest DTOs

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

HTTP + CSV

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/csv
Content-Type: text/csv
Content-Length: length

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