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 .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/backorder HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: application/json
Content-Type: application/json
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: application/json
Content-Length: length

{"Guid":"String","Reference":"String"}