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 TypeClass: string;
    public IsPrivateVan: boolean;

    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 EquipmentOptionCodes: 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 RegionId?: number;
    public RegionName: string;

    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 MappedLine: 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 CesarIdShipToParty: 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 VehicleKeyEquipment: EquipmentCache[] = [];
    public VehicleAdditionalOptionCodes: EquipmentCache[] = [];
    public FullModelYearDifferences: string[] = [];
    public PaintDifferences: string[] = [];
    public UpholsteryDifferences: string[] = [];
    public WheelDifferences: string[] = [];
    public TrimDifferences: string[] = [];
    public EquipmentDifferences: string[] = [];
    public KeyEquipmentDifferences: string[] = [];
    public Differences: string[] = [];
    public ExactMatch: boolean;
    public OnCarNotConfig: string[] = [];

    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 .other suffix or ?format=other

HTTP + OTHER

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

{"ConfiguratorCode":"String","IsSellable":false,"ExactMatch":false,"GSSN":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"TotalVehicles":4,"CarConfiguratorResponse":{"Name":"String","KeyInformation":{"BM7NST":"String","ConfigurationDate":"String","ModelYear":"String","HalfYear":"String","TypeClass":"String","IsPrivateVan":false},"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"}],"EquipmentOptionCodes":[{"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":[{}]}}