Mercedes.Agency.Orchestration.API

<back to all web services

CreateOneAdminBackOrderRequest

BackOrder
Requires Authentication
The following routes are available for this service:
POST/v1/oneAdmin/backorderCreates a back order with vehicle criteriaCreate Back Order (called from One Admin) It calls the v1/backorder in the Agency API, where the order is created The details of the back order are sent to OneAgent Validation checks are performed on the input request.
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;
using Mercedes.Agency.Orchestration.API.Clients.AgencyApi.Requests;
using Mercedes.Agency.API.Shared.Enums;
using Mercedes.Agency.API.Shared.POCO;
using Mercedes.Agency.Orchestration.API.Clients.AgencyApi.Responses;

namespace Mercedes.Agency.API.Shared.POCO
{
    public partial class Address
    {
        public virtual string Property { get; set; }
        public virtual string Street { get; set; }
        public virtual string Town { get; set; }
        public virtual string County { get; set; }
        public virtual string Locality { get; set; }
        public virtual string Postcode { get; set; }
    }

    public partial class Criteria
        : CriteriaBase
    {
        public virtual string[] Engine { get; set; } = [];
    }

    public partial class CriteriaBase
        : JsonVersion
    {
        public virtual string[] Transmission { get; set; } = [];
        public virtual string[] Fuel { get; set; } = [];
        public virtual string[] Upholstery { get; set; } = [];
        public virtual string[] Equipment { get; set; } = [];
        public virtual string[] Line { get; set; } = [];
        public virtual string[] BodyStyle { get; set; } = [];
        public virtual string[] ColourGroup { get; set; } = [];
        public virtual string[] Packages { get; set; } = [];
        public virtual List<CriteriaModel> Model { get; set; } = [];
        public virtual string UrlReferrer { get; set; }
        public virtual string PreferredDeliveryDate { get; set; }
        [ApiMember(ExcludeInSchema=true)]
        public virtual bool IsNewModel { get; set; }

        [ApiMember(ExcludeInSchema=true)]
        public virtual bool IsSmart { get; set; }

        [ApiMember(ExcludeInSchema=true)]
        public virtual bool IsSpecialised { get; set; }

        [ApiMember(ExcludeInSchema=true)]
        public virtual CriteriaDifference CriteriaDifference { get; set; }
    }

    public partial class CriteriaDifference
    {
        public virtual bool Model { get; set; }
        public virtual bool Transmission { get; set; }
        public virtual bool Fuel { get; set; }
        public virtual bool Upholstery { get; set; }
        public virtual bool Equipment { get; set; }
        public virtual bool Line { get; set; }
        public virtual bool BodyStyle { get; set; }
        public virtual bool ColourGroup { get; set; }
        public virtual bool Packages { get; set; }
        public virtual bool Engine { get; set; }
        public virtual bool AdditionalInformation { get; set; }
        public virtual bool UrlReferrer { get; set; }
        public virtual bool PreferredDeliveryDate { get; set; }
        public virtual bool IsSmart { get; set; }
        public virtual bool IsSpecialised { get; set; }
    }

    public partial class CriteriaModel
    {
        public virtual string Description { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class Customer
        : SalesforceCustomer
    {
        public virtual Guid? ProfileId { get; set; }
        public virtual Preferences Preferences { get; set; }
    }

    public partial class JsonVersion
        : IJsonVersion
    {
        public virtual int Version { get; set; }
    }

    public partial class OutrightPurchase
    {
        public virtual bool IsOutrightPurchase { get; set; }
        public virtual string Reference { get; set; }
        public virtual decimal DiscountRate { get; set; }
        public virtual string Bm7NST { get; set; }
        public virtual bool IsBackOrder { get; set; }
        public virtual bool IsCOPConverter { get; set; }
    }

    public partial class Preferences
    {
        public virtual bool OptinEmail { get; set; }
        public virtual bool OptinPost { get; set; }
        public virtual bool OptinSMS { get; set; }
        public virtual bool OptinTelephone { get; set; }
    }

    public partial class SalesforceCustomer
        : ICustomer
    {
        public virtual string CustomerId { get; set; }
        public virtual bool IsCiam { get; set; }
        public virtual string CompanyName { get; set; }
        public virtual string Title { get; set; }
        public virtual string Firstname { get; set; }
        public virtual string Surname { get; set; }
        public virtual string EmailAddress { get; set; }
        public virtual string Telephone { get; set; }
        public virtual Address Address { get; set; }
        public virtual CustomerMode Mode { get; set; }
    }

    public partial class V2Criteria
        : CriteriaBase
    {
        public virtual List<V2EngineCriteria> Engine { get; set; } = [];
    }

    public partial class V2EngineCriteria
    {
        public virtual string Badge { get; set; }
        public virtual string Brand { get; set; }
    }

}

namespace Mercedes.Agency.Orchestration.API.Clients.AgencyApi.Requests
{
    public partial class CreateBackOrderBase
    {
        public virtual string GssnId { get; set; }
        public virtual string AdditionalInformation { get; set; }
        public virtual string ConfigCode { get; set; }
        public virtual Source Source { get; set; }
        public virtual string TagUrl { get; set; }
        public virtual Customer Customer { get; set; }
        public virtual Criteria CustomerCriteria { get; set; }
        public virtual V2Criteria AgentCriteria { get; set; }
        public virtual OutrightPurchase OutrightPurchase { get; set; }
        public virtual string GasId { get; set; }
        public virtual bool Motability { get; set; }
        public virtual int? MotabilityPricingId { get; set; }
        public virtual int? AssistanceProviderId { get; set; }
        public virtual string AssistanceDetail { get; set; }
        public virtual string ConfiguratorCode { get; set; }
    }

}

namespace Mercedes.Agency.Orchestration.API.Clients.AgencyApi.Responses
{
    public partial class CreateBackOrderResponse
    {
        public virtual string Guid { get; set; }
        public virtual string Reference { get; set; }
    }

}

namespace Mercedes.Agency.Orchestration.API.ServiceModel.BackOrders
{
    public partial class CreateOneAdminBackOrderRequest
        : CreateBackOrderBase, IPost
    {
    }

}

C# CreateOneAdminBackOrderRequest DTOs

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

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/oneAdmin/backorder HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	GssnId: String,
	AdditionalInformation: String,
	ConfigCode: String,
	Source: OnlineShowroom,
	TagUrl: String,
	Customer: 
	{
		ProfileId: 00000000000000000000000000000000,
		Preferences: 
		{
			OptinEmail: False,
			OptinPost: False,
			OptinSMS: False,
			OptinTelephone: False
		},
		CustomerId: String,
		IsCiam: False,
		CompanyName: String,
		Title: String,
		Firstname: String,
		Surname: String,
		EmailAddress: String,
		Telephone: String,
		Address: 
		{
			Property: String,
			Street: String,
			Town: String,
			County: String,
			Locality: String,
			Postcode: String
		},
		Mode: Private
	},
	CustomerCriteria: 
	{
		Engine: 
		[
			String
		],
		Transmission: 
		[
			String
		],
		Fuel: 
		[
			String
		],
		Upholstery: 
		[
			String
		],
		Equipment: 
		[
			String
		],
		Line: 
		[
			String
		],
		BodyStyle: 
		[
			String
		],
		ColourGroup: 
		[
			String
		],
		Packages: 
		[
			String
		],
		Model: 
		[
			{
				Description: String,
				Id: 0
			}
		],
		UrlReferrer: String,
		PreferredDeliveryDate: String,
		IsNewModel: False,
		IsSmart: False,
		IsSpecialised: False,
		CriteriaDifference: 
		{
			Model: False,
			Transmission: False,
			Fuel: False,
			Upholstery: False,
			Equipment: False,
			Line: False,
			BodyStyle: False,
			ColourGroup: False,
			Packages: False,
			Engine: False,
			AdditionalInformation: False,
			UrlReferrer: False,
			PreferredDeliveryDate: False,
			IsSmart: False,
			IsSpecialised: False
		},
		Version: 0
	},
	AgentCriteria: 
	{
		Engine: 
		[
			{
				Badge: String,
				Brand: String
			}
		],
		Transmission: 
		[
			String
		],
		Fuel: 
		[
			String
		],
		Upholstery: 
		[
			String
		],
		Equipment: 
		[
			String
		],
		Line: 
		[
			String
		],
		BodyStyle: 
		[
			String
		],
		ColourGroup: 
		[
			String
		],
		Packages: 
		[
			String
		],
		Model: 
		[
			{
				Description: String,
				Id: 0
			}
		],
		UrlReferrer: String,
		PreferredDeliveryDate: String,
		IsNewModel: False,
		IsSmart: False,
		IsSpecialised: False,
		CriteriaDifference: 
		{
			Model: False,
			Transmission: False,
			Fuel: False,
			Upholstery: False,
			Equipment: False,
			Line: False,
			BodyStyle: False,
			ColourGroup: False,
			Packages: False,
			Engine: False,
			AdditionalInformation: False,
			UrlReferrer: False,
			PreferredDeliveryDate: False,
			IsSmart: False,
			IsSpecialised: False
		},
		Version: 0
	},
	OutrightPurchase: 
	{
		IsOutrightPurchase: False,
		Reference: String,
		DiscountRate: 0,
		Bm7NST: String,
		IsBackOrder: False,
		IsCOPConverter: False
	},
	GasId: String,
	Motability: False,
	MotabilityPricingId: 0,
	AssistanceProviderId: 0,
	AssistanceDetail: String,
	ConfiguratorCode: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Guid: String,
	Reference: String
}