Mercedes.Agency.Orchestration.API

<back to all web services

CreateBackOrderRequest

BackOrder
Requires Authentication
The following routes are available for this service:
POST/v1/backorderCreate Back Order (Online Showroom)

export enum Source
{
    OnlineShowroom = 1,
    OneAdmin = 2,
}

export class Address
{
    public Property: string;
    public Street: string;
    public Town: string;
    public County: string;
    public Locality: string;
    public Postcode: string;

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

export enum CustomerMode
{
    Private = 1,
    Business = 2,
    Motability = 3,
}

export class SalesforceCustomer implements ICustomer
{
    public CustomerId: string;
    public IsCiam: boolean;
    public CompanyName: string;
    public Title: string;
    public Firstname: string;
    public Surname: string;
    public EmailAddress: string;
    public Telephone: string;
    public Address: Address;
    public Mode: CustomerMode;

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

export class Preferences
{
    public OptinEmail: boolean;
    public OptinPost: boolean;
    public OptinSMS: boolean;
    public OptinTelephone: boolean;

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

export class Customer extends SalesforceCustomer
{
    public ProfileId?: string;
    public Preferences?: Preferences;

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

export class JsonVersion implements IJsonVersion
{
    public Version: number;

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

export class CriteriaModel
{
    public Description: string;
    public Id: number;

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

export class CriteriaDifference
{
    public Model: boolean;
    public Transmission: boolean;
    public Fuel: boolean;
    public Upholstery: boolean;
    public Equipment: boolean;
    public Line: boolean;
    public BodyStyle: boolean;
    public ColourGroup: boolean;
    public Packages: boolean;
    public Engine: boolean;
    public AdditionalInformation: boolean;
    public UrlReferrer: boolean;
    public PreferredDeliveryDate: boolean;
    public IsSmart: boolean;
    public IsSpecialised: boolean;

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

export class CriteriaBase extends JsonVersion
{
    public Transmission: string[] = [];
    public Fuel: string[] = [];
    public Upholstery: string[] = [];
    public Equipment: string[] = [];
    public Line: string[] = [];
    public BodyStyle: string[] = [];
    public ColourGroup: string[] = [];
    public Packages: string[] = [];
    public Model: CriteriaModel[] = [];
    public UrlReferrer: string;
    public PreferredDeliveryDate: string;
    // @ApiMember(ExcludeInSchema=true)
    public IsNewModel: boolean;

    // @ApiMember(ExcludeInSchema=true)
    public IsSmart: boolean;

    // @ApiMember(ExcludeInSchema=true)
    public IsSpecialised: boolean;

    // @ApiMember(ExcludeInSchema=true)
    public CriteriaDifference: CriteriaDifference;

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

export class Criteria extends CriteriaBase
{
    public Engine: string[] = [];

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

export class V2EngineCriteria
{
    public Badge: string;
    public Brand: string;

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

export class V2Criteria extends CriteriaBase
{
    public Engine: V2EngineCriteria[] = [];

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

export class OutrightPurchase
{
    public IsOutrightPurchase: boolean;
    public Reference: string;
    public DiscountRate: number;
    public Bm7NST: string;
    public IsBackOrder: boolean;
    public IsCOPConverter: boolean;

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

export class CreateBackOrderBase
{
    public GssnId: string;
    public AdditionalInformation: string;
    public ConfigCode: string;
    public Source: Source;
    public TagUrl: string;
    public Customer: Customer;
    public CustomerCriteria: Criteria;
    public AgentCriteria: V2Criteria;
    public OutrightPurchase?: OutrightPurchase;
    public GasId: string;
    public Motability: boolean;
    public MotabilityPricingId?: number;
    public AssistanceProviderId?: number;
    public AssistanceDetail?: string;
    public ConfiguratorCode?: string;

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

export class CreateBackOrderResponse
{
    public Guid: string;
    public Reference: string;

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

export class CreateBackOrderRequest extends CreateBackOrderBase implements IPost
{

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

TypeScript CreateBackOrderRequest 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/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
}