POST | /v1/oneAdmin/order | Creates an order for a selected vehicle via the Agency API | This endpoint is called from the OneAdmin portal to create a vehicle order. It builds the order request object for the Agency API before calling it to create the order. The information it retrieves and builds for the Agency API request include 1.) The customer. 2.) The vehicle. 3.) Ourright purchase. 4.) Motability. 5.) Offers applicable to the vehicle Validation is performed on the input data which includes checking for mandatory items: 1.} Customer details 2.) Vehicle Vin 3.) Agent 4.) GSSN Outlet Id 5.) Source 6.) Order Type 7.) Customer Location Id 8.) Estimated Handover Date |
---|
namespace Mercedes.Agency.API.Shared.Enums
open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type CreateOrderResponse() =
member val Guid:String = null with get,set
member val Reference:String = null with get,set
member val ResponseStatus:ResponseStatus = null with get,set
member val BackOrderReference:String = null with get,set
type Source =
| OnlineShowroom = 1
| OneAdmin = 2
[<AllowNullLiteral>]
type Address() =
member val Property:String = null with get,set
member val Street:String = null with get,set
member val Town:String = null with get,set
member val County:String = null with get,set
member val Locality:String = null with get,set
member val Postcode:String = null with get,set
type CustomerMode =
| Private = 1
| Business = 2
| Motability = 3
[<AllowNullLiteral>]
type SalesforceCustomer() =
member val CustomerId:String = null with get,set
member val IsCiam:Boolean = new Boolean() with get,set
member val CompanyName:String = null with get,set
member val Title:String = null with get,set
member val Firstname:String = null with get,set
member val Surname:String = null with get,set
member val EmailAddress:String = null with get,set
member val Telephone:String = null with get,set
member val Address:Address = null with get,set
member val Mode:CustomerMode = new CustomerMode() with get,set
[<AllowNullLiteral>]
type Preferences() =
member val OptinEmail:Boolean = new Boolean() with get,set
member val OptinPost:Boolean = new Boolean() with get,set
member val OptinSMS:Boolean = new Boolean() with get,set
member val OptinTelephone:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type Customer() =
inherit SalesforceCustomer()
member val ProfileId:Nullable<Guid> = new Nullable<Guid>() with get,set
member val Preferences:Preferences = null with get,set
[<AllowNullLiteral>]
type Vehicle() =
member val Vin:String = null with get,set
[<AllowNullLiteral>]
type Option() =
member val IsDefault:Boolean = new Boolean() with get,set
member val Value:Int32 = new Int32() with get,set
[<AllowNullLiteral>]
type Term() =
member val Options:ResizeArray<Option> = null with get,set
[<AllowNullLiteral>]
type Deposit() =
member val Default:String = null with get,set
[<AllowNullLiteral>]
type Mileage() =
member val Options:ResizeArray<Option> = null with get,set
[<AllowNullLiteral>]
type AdvanceRentals() =
member val Options:ResizeArray<Option> = null with get,set
type VehicleType =
| UNASSIGNED = 0
| NEW = 1
| USED = 2
[<AllowNullLiteral>]
type FinanceCriteria() =
member val Key:String = null with get,set
member val Name:String = null with get,set
member val Type:String = null with get,set
member val IsDefault:Boolean = new Boolean() with get,set
member val Term:Term = null with get,set
member val Deposit:Deposit = null with get,set
member val Mileage:Mileage = null with get,set
member val AdvanceRentals:AdvanceRentals = null with get,set
member val IsPersonalised:Boolean = new Boolean() with get,set
member val RegularPayment:String = null with get,set
member val PartExchange:String = null with get,set
member val Settlement:String = null with get,set
member val CustomerType:String = null with get,set
member val VehicleType:VehicleType = new VehicleType() with get,set
[<AllowNullLiteral>]
type OutrightPurchase() =
member val IsOutrightPurchase:Boolean = new Boolean() with get,set
member val Reference:String = null with get,set
member val DiscountRate:Decimal = new Decimal() with get,set
member val Bm7NST:String = null with get,set
member val IsBackOrder:Boolean = new Boolean() with get,set
member val IsCOPConverter:Boolean = new Boolean() with get,set
type MotabilityType =
| PIP = 1
| WPMS = 2
| UNASSIGNED = 3
[<AllowNullLiteral>]
type CreateOrderBase() =
member val Source:Source = new Source() with get,set
member val GssnId:String = null with get,set
member val AdditionalInformation:String = null with get,set
member val Cash:Boolean = new Boolean() with get,set
member val Finance:Boolean = new Boolean() with get,set
member val Customer:Customer = null with get,set
member val Vehicle:Vehicle = null with get,set
member val FinanceCriteria:FinanceCriteria = null with get,set
member val BackOrderGuid:Nullable<Guid> = new Nullable<Guid>() with get,set
member val TagUrl:String = null with get,set
member val OutrightPurchase:OutrightPurchase = null with get,set
member val Motability:Boolean = new Boolean() with get,set
member val MotabilityPricingId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val FinanceApplicationReference:String = null with get,set
member val Specialist:Boolean = new Boolean() with get,set
member val GasId:String = null with get,set
member val PersonalisedItemOfferIds:Int32[] = null with get,set
member val SuggestedVin:String = null with get,set
member val NonOptimumReason:String = null with get,set
member val MotabilityType:MotabilityType = new MotabilityType() with get,set
member val EstimatedHandoverDate:String = null with get,set
[<AllowNullLiteral>]
type CreateOneAdminOrderRequest() =
inherit CreateOrderBase()
interface IGet
member val CustomerLocationId:Nullable<Int32> = new Nullable<Int32>() with get,set
F# CreateOneAdminOrderRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/oneAdmin/order HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"CustomerLocationId":0,"Source":"OnlineShowroom","GssnId":"String","AdditionalInformation":"String","Cash":false,"Finance":false,"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"},"Vehicle":{"Vin":"String"},"FinanceCriteria":{"Key":"String","Name":"String","Type":"String","IsDefault":false,"Term":{"Options":[{"IsDefault":false,"Value":0}]},"Deposit":{"Default":"String"},"Mileage":{"Options":[{"IsDefault":false,"Value":0}]},"AdvanceRentals":{"Options":[{"IsDefault":false,"Value":0}]},"IsPersonalised":false,"RegularPayment":"String","PartExchange":"String","Settlement":"String","CustomerType":"String","VehicleType":"UNASSIGNED"},"BackOrderGuid":"00000000000000000000000000000000","TagUrl":"String","OutrightPurchase":{"IsOutrightPurchase":false,"Reference":"String","DiscountRate":0,"Bm7NST":"String","IsBackOrder":false,"IsCOPConverter":false},"Motability":false,"MotabilityPricingId":0,"FinanceApplicationReference":"String","Specialist":false,"GasId":"String","PersonalisedItemOfferIds":[0],"SuggestedVin":"String","NonOptimumReason":"String","MotabilityType":"PIP","EstimatedHandoverDate":"String"}
HTTP/1.1 200 OK Content-Type: text/jsonl Content-Length: length {"Guid":"String","Reference":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"BackOrderReference":"String"}