POST | /v1/backorder | Create Back Order (Online Showroom) |
---|
"use strict";
/** @typedef {number} */
export var Source;
(function (Source) {
Source[Source["OnlineShowroom"] = 1] = "OnlineShowroom"
Source[Source["OneAdmin"] = 2] = "OneAdmin"
})(Source || (Source = {}));
export class Address {
/** @param {{Property?:string,Street?:string,Town?:string,County?:string,Locality?:string,Postcode?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Property;
/** @type {string} */
Street;
/** @type {string} */
Town;
/** @type {string} */
County;
/** @type {string} */
Locality;
/** @type {string} */
Postcode;
}
/** @typedef {number} */
export var CustomerMode;
(function (CustomerMode) {
CustomerMode[CustomerMode["Private"] = 1] = "Private"
CustomerMode[CustomerMode["Business"] = 2] = "Business"
CustomerMode[CustomerMode["Motability"] = 3] = "Motability"
})(CustomerMode || (CustomerMode = {}));
export class SalesforceCustomer {
/** @param {{CustomerId?:string,IsCiam?:boolean,CompanyName?:string,Title?:string,Firstname?:string,Surname?:string,EmailAddress?:string,Telephone?:string,Address?:Address,Mode?:CustomerMode}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
CustomerId;
/** @type {boolean} */
IsCiam;
/** @type {string} */
CompanyName;
/** @type {string} */
Title;
/** @type {string} */
Firstname;
/** @type {string} */
Surname;
/** @type {string} */
EmailAddress;
/** @type {string} */
Telephone;
/** @type {Address} */
Address;
/** @type {CustomerMode} */
Mode;
}
export class Preferences {
/** @param {{OptinEmail?:boolean,OptinPost?:boolean,OptinSMS?:boolean,OptinTelephone?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {boolean} */
OptinEmail;
/** @type {boolean} */
OptinPost;
/** @type {boolean} */
OptinSMS;
/** @type {boolean} */
OptinTelephone;
}
export class Customer extends SalesforceCustomer {
/** @param {{ProfileId?:string,Preferences?:Preferences,CustomerId?:string,IsCiam?:boolean,CompanyName?:string,Title?:string,Firstname?:string,Surname?:string,EmailAddress?:string,Telephone?:string,Address?:Address,Mode?:CustomerMode}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {?string} */
ProfileId;
/** @type {?Preferences} */
Preferences;
}
export class JsonVersion {
/** @param {{Version?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Version;
}
export class CriteriaModel {
/** @param {{Description?:string,Id?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Description;
/** @type {number} */
Id;
}
export class CriteriaDifference {
/** @param {{Model?:boolean,Transmission?:boolean,Fuel?:boolean,Upholstery?:boolean,Equipment?:boolean,Line?:boolean,BodyStyle?:boolean,ColourGroup?:boolean,Packages?:boolean,Engine?:boolean,AdditionalInformation?:boolean,UrlReferrer?:boolean,PreferredDeliveryDate?:boolean,IsSmart?:boolean,IsSpecialised?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {boolean} */
Model;
/** @type {boolean} */
Transmission;
/** @type {boolean} */
Fuel;
/** @type {boolean} */
Upholstery;
/** @type {boolean} */
Equipment;
/** @type {boolean} */
Line;
/** @type {boolean} */
BodyStyle;
/** @type {boolean} */
ColourGroup;
/** @type {boolean} */
Packages;
/** @type {boolean} */
Engine;
/** @type {boolean} */
AdditionalInformation;
/** @type {boolean} */
UrlReferrer;
/** @type {boolean} */
PreferredDeliveryDate;
/** @type {boolean} */
IsSmart;
/** @type {boolean} */
IsSpecialised;
}
export class CriteriaBase extends JsonVersion {
/** @param {{Transmission?:string[],Fuel?:string[],Upholstery?:string[],Equipment?:string[],Line?:string[],BodyStyle?:string[],ColourGroup?:string[],Packages?:string[],Model?:CriteriaModel[],UrlReferrer?:string,PreferredDeliveryDate?:string,IsNewModel?:boolean,IsSmart?:boolean,IsSpecialised?:boolean,CriteriaDifference?:CriteriaDifference,Version?:number}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {string[]} */
Transmission = [];
/** @type {string[]} */
Fuel = [];
/** @type {string[]} */
Upholstery = [];
/** @type {string[]} */
Equipment = [];
/** @type {string[]} */
Line = [];
/** @type {string[]} */
BodyStyle = [];
/** @type {string[]} */
ColourGroup = [];
/** @type {string[]} */
Packages = [];
/** @type {CriteriaModel[]} */
Model = [];
/** @type {string} */
UrlReferrer;
/** @type {string} */
PreferredDeliveryDate;
/** @type {boolean} */
IsNewModel;
/** @type {boolean} */
IsSmart;
/** @type {boolean} */
IsSpecialised;
/** @type {CriteriaDifference} */
CriteriaDifference;
}
export class Criteria extends CriteriaBase {
/** @param {{Engine?:string[],Transmission?:string[],Fuel?:string[],Upholstery?:string[],Equipment?:string[],Line?:string[],BodyStyle?:string[],ColourGroup?:string[],Packages?:string[],Model?:CriteriaModel[],UrlReferrer?:string,PreferredDeliveryDate?:string,IsNewModel?:boolean,IsSmart?:boolean,IsSpecialised?:boolean,CriteriaDifference?:CriteriaDifference,Version?:number}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {string[]} */
Engine = [];
}
export class V2EngineCriteria {
/** @param {{Badge?:string,Brand?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Badge;
/** @type {string} */
Brand;
}
export class V2Criteria extends CriteriaBase {
/** @param {{Engine?:V2EngineCriteria[],Transmission?:string[],Fuel?:string[],Upholstery?:string[],Equipment?:string[],Line?:string[],BodyStyle?:string[],ColourGroup?:string[],Packages?:string[],Model?:CriteriaModel[],UrlReferrer?:string,PreferredDeliveryDate?:string,IsNewModel?:boolean,IsSmart?:boolean,IsSpecialised?:boolean,CriteriaDifference?:CriteriaDifference,Version?:number}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {V2EngineCriteria[]} */
Engine = [];
}
export class OutrightPurchase {
/** @param {{IsOutrightPurchase?:boolean,Reference?:string,DiscountRate?:number,Bm7NST?:string,IsBackOrder?:boolean,IsCOPConverter?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {boolean} */
IsOutrightPurchase;
/** @type {string} */
Reference;
/** @type {number} */
DiscountRate;
/** @type {string} */
Bm7NST;
/** @type {boolean} */
IsBackOrder;
/** @type {boolean} */
IsCOPConverter;
}
export class CreateBackOrderBase {
/** @param {{GssnId?:string,AdditionalInformation?:string,ConfigCode?:string,Source?:Source,TagUrl?:string,Customer?:Customer,CustomerCriteria?:Criteria,AgentCriteria?:V2Criteria,OutrightPurchase?:OutrightPurchase,GasId?:string,Motability?:boolean,MotabilityPricingId?:number,AssistanceProviderId?:number,AssistanceDetail?:string,ConfiguratorCode?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
GssnId;
/** @type {string} */
AdditionalInformation;
/** @type {string} */
ConfigCode;
/** @type {Source} */
Source;
/** @type {string} */
TagUrl;
/** @type {Customer} */
Customer;
/** @type {Criteria} */
CustomerCriteria;
/** @type {V2Criteria} */
AgentCriteria;
/** @type {?OutrightPurchase} */
OutrightPurchase;
/** @type {string} */
GasId;
/** @type {boolean} */
Motability;
/** @type {?number} */
MotabilityPricingId;
/** @type {?number} */
AssistanceProviderId;
/** @type {?string} */
AssistanceDetail;
/** @type {?string} */
ConfiguratorCode;
}
export class CreateBackOrderResponse {
/** @param {{Guid?:string,Reference?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Guid;
/** @type {string} */
Reference;
}
export class CreateBackOrderRequest extends CreateBackOrderBase {
/** @param {{GssnId?:string,AdditionalInformation?:string,ConfigCode?:string,Source?:Source,TagUrl?:string,Customer?:Customer,CustomerCriteria?:Criteria,AgentCriteria?:V2Criteria,OutrightPurchase?:OutrightPurchase,GasId?:string,Motability?:boolean,MotabilityPricingId?:number,AssistanceProviderId?:number,AssistanceDetail?:string,ConfiguratorCode?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
}
JavaScript CreateBackOrderRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=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 }