PUT | /customer/{boosterCustomerId} | Update customer | Update CRM customer |
---|
namespace Richemont.Booster2.PublicApi.CRM.ServiceModel
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type Email() =
///<summary>
///Email
///</summary>
[<ApiMember(Description="Email", IsRequired=true)>]
member val email:String = null with get,set
///<summary>
///Main email
///</summary>
[<ApiMember(Description="Main email", IsRequired=true)>]
member val isMainEmail:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type Phone() =
///<summary>
///Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456
///</summary>
[<ApiMember(Description="Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456", IsRequired=true)>]
member val phone:String = null with get,set
///<summary>
///Prefix Country Id e.g. it, fr, az
///</summary>
[<ApiMember(Description="Prefix Country Id e.g. it, fr, az", IsRequired=true)>]
member val countryPrefix:String = null with get,set
///<summary>
///Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address'
///</summary>
[<ApiMember(Description="Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address'")>]
member val phoneType:String = null with get,set
///<summary>
///Main Phone
///</summary>
[<ApiMember(Description="Main Phone", IsRequired=true)>]
member val isMainPhone:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type Address() =
///<summary>
///Address type e.g. Home, Office, Shipping
///</summary>
[<ApiMember(Description="Address type e.g. Home, Office, Shipping", IsRequired=true)>]
member val addressType:String = null with get,set
///<summary>
///Country Id e.g. it, cn, az, gb, de
///</summary>
[<ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true)>]
member val countryId:String = null with get,set
///<summary>
///House Number
///</summary>
[<ApiMember(Description="House Number")>]
member val houseNumber:String = null with get,set
///<summary>
///Region/State
///</summary>
[<ApiMember(Description="Region/State")>]
member val stateId:String = null with get,set
///<summary>
///City Name
///</summary>
[<ApiMember(Description="City Name")>]
member val city:String = null with get,set
///<summary>
///Postal Code
///</summary>
[<ApiMember(Description="Postal Code")>]
member val zipCode:String = null with get,set
///<summary>
///Street Name and Number
///</summary>
[<ApiMember(Description="Street Name and Number")>]
member val street:String = null with get,set
///<summary>
///Street 2
///</summary>
[<ApiMember(Description="Street 2")>]
member val street2:String = null with get,set
///<summary>
///Street 3
///</summary>
[<ApiMember(Description="Street 3")>]
member val street3:String = null with get,set
///<summary>
///Street 4
///</summary>
[<ApiMember(Description="Street 4")>]
member val street4:String = null with get,set
///<summary>
///Street 5
///</summary>
[<ApiMember(Description="Street 5")>]
member val street5:String = null with get,set
///<summary>
///Main Address
///</summary>
[<ApiMember(Description="Main Address", IsRequired=true)>]
member val isMainAddress:Boolean = new Boolean() with get,set
///<summary>
///Post Office Box
///</summary>
[<ApiMember(Description="Post Office Box")>]
member val poBox:String = null with get,set
///<summary>
///Additional Information
///</summary>
[<ApiMember(Description="Additional Information")>]
member val additionalInformation:String = null with get,set
[<AllowNullLiteral>]
type Event() =
///<summary>
///Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other'
///</summary>
[<ApiMember(Description="Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other'", IsRequired=true)>]
member val eventType:String = null with get,set
///<summary>
///Event date e.g. '2021-01-20'
///</summary>
[<ApiMember(Description="Event date e.g. '2021-01-20'", IsRequired=true)>]
member val eventDate:DateTime = new DateTime() with get,set
///<summary>
///Event notes
///</summary>
[<ApiMember(Description="Event notes")>]
member val eventNotes:String = null with get,set
///<summary>
///Event other name
///</summary>
[<ApiMember(Description="Event other name")>]
member val eventOtherName:String = null with get,set
[<AllowNullLiteral>]
type Interest() =
///<summary>
///Interest description
///</summary>
[<ApiMember(Description="Interest description", IsRequired=true)>]
member val interest:String = null with get,set
///<summary>
///SAP Interest ID, e.g. 'CA-1'
///</summary>
[<ApiMember(Description="SAP Interest ID, e.g. 'CA-1'", IsRequired=true)>]
member val sapInterestId:String = null with get,set
///<summary>
///Interest description translation
///</summary>
[<ApiMember(Description="Interest description translation")>]
member val translation:String = null with get,set
[<AllowNullLiteral>]
type Hobby() =
///<summary>
///Hobby description
///</summary>
[<ApiMember(Description="Hobby description", IsRequired=true)>]
member val hobby:String = null with get,set
///<summary>
///SAP Hobby ID, e.g. 'ART'
///</summary>
[<ApiMember(Description="SAP Hobby ID, e.g. 'ART'", IsRequired=true)>]
member val sapHobbyId:String = null with get,set
///<summary>
///Hobby description translation
///</summary>
[<ApiMember(Description="Hobby description translation")>]
member val translation:String = null with get,set
[<AllowNullLiteral>]
type ProductCollection() =
///<summary>
///Product Collection description
///</summary>
[<ApiMember(Description="Product Collection description", IsRequired=true)>]
member val productCollection:String = null with get,set
///<summary>
///SAP ProductCollection ID, e.g. 'CA-1'
///</summary>
[<ApiMember(Description="SAP ProductCollection ID, e.g. 'CA-1'", IsRequired=true)>]
member val sapProductCollectionId:String = null with get,set
///<summary>
///Product Collection description translation
///</summary>
[<ApiMember(Description="Product Collection description translation", IsRequired=true)>]
member val translation:String = null with get,set
[<AllowNullLiteral>]
type Customer() =
///<summary>
///Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'PRIVATE'
///</summary>
[<ApiMember(Description="Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'PRIVATE'")>]
member val title:String = null with get,set
///<summary>
///First Name
///</summary>
[<ApiMember(Description="First Name")>]
member val firstName:String = null with get,set
///<summary>
///Last Name - Mandatory only when customer type is 'PRIVATE'
///</summary>
[<ApiMember(Description="Last Name - Mandatory only when customer type is 'PRIVATE'")>]
member val lastName:String = null with get,set
///<summary>
///First Name Not Latin
///</summary>
[<ApiMember(Description="First Name Not Latin")>]
member val firstNameNotLatin:String = null with get,set
///<summary>
///Last Name Not Latin
///</summary>
[<ApiMember(Description="Last Name Not Latin")>]
member val lastNameNotLatin:String = null with get,set
///<summary>
///Middle Name
///</summary>
[<ApiMember(Description="Middle Name")>]
member val middleName:String = null with get,set
///<summary>
///Name Suffix
///</summary>
[<ApiMember(Description="Name Suffix")>]
member val nameSuffix:String = null with get,set
///<summary>
///Can be Contacted by Maison e.g. true or false
///</summary>
[<ApiMember(Description="Can be Contacted by Maison e.g. true or false", IsRequired=true)>]
member val canBeContactedByMaison:Boolean = new Boolean() with get,set
///<summary>
///Customer Type e.g. 'PRIVATE' or 'COMPANY'
///</summary>
[<ApiMember(Description="Customer Type e.g. 'PRIVATE' or 'COMPANY'", IsRequired=true)>]
member val clientType:String = null with get,set
///<summary>
///Company Name - Mandatory only when customer type is 'COMPANY'
///</summary>
[<ApiMember(Description="Company Name - Mandatory only when customer type is 'COMPANY'")>]
member val companyName:String = null with get,set
///<summary>
///Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'PRIVATE'
///</summary>
[<ApiMember(Description="Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'PRIVATE'")>]
member val languageId:String = null with get,set
///<summary>
///Gender e.g. M, F - Mandatory only when customer type is 'PRIVATE'
///</summary>
[<ApiMember(Description="Gender e.g. M, F - Mandatory only when customer type is 'PRIVATE'")>]
member val gender:String = null with get,set
///<summary>
///Country Id e.g. it, cn, az, gb, de
///</summary>
[<ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true)>]
member val countryId:String = null with get,set
///<summary>
///Birth Date e.g. '2020-12-30'
///</summary>
[<ApiMember(Description="Birth Date e.g. '2020-12-30'")>]
member val birthDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
///<summary>
///Customer reference
///</summary>
[<ApiMember(Description="Customer reference")>]
member val customerReference:String = null with get,set
///<summary>
///POS Code e.g. ES100:102048
///</summary>
[<ApiMember(Description="POS Code e.g. ES100:102048", IsRequired=true)>]
member val posCode:String = null with get,set
///<summary>
///Brand e.g. CAR, MTB
///</summary>
[<ApiMember(Description="Brand e.g. CAR, MTB", IsRequired=true)>]
member val brand:String = null with get,set
///<summary>
///Wedding Date, e.g. '2020-01-18'
///</summary>
[<ApiMember(Description="Wedding Date, e.g. '2020-01-18'")>]
member val weddingDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
///<summary>
///Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey'
///</summary>
[<ApiMember(Description="Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey'")>]
member val preferredContactMethod:String = null with get,set
///<summary>
///Provide 'true' if you want to be contacted by email. Leave empty or 'false' if you do not.
///</summary>
[<ApiMember(Description="Provide 'true' if you want to be contacted by email. Leave empty or 'false' if you do not.")>]
member val contactByEmailFlag:Boolean = new Boolean() with get,set
///<summary>
///Provide 'true' if you want to be contacted by mail. Leave empty or 'false' if you do not.
///</summary>
[<ApiMember(Description="Provide 'true' if you want to be contacted by mail. Leave empty or 'false' if you do not.")>]
member val contactByMailFlag:Boolean = new Boolean() with get,set
///<summary>
///Provide 'true' if you want to be contacted by phone. Leave empty or 'false' if you do not.
///</summary>
[<ApiMember(Description="Provide 'true' if you want to be contacted by phone. Leave empty or 'false' if you do not.")>]
member val contactByPhoneFlag:Boolean = new Boolean() with get,set
///<summary>
///Provide 'true' if you want to be contacted by SMS. Leave empty or 'false' if you do not.
///</summary>
[<ApiMember(Description="Provide 'true' if you want to be contacted by SMS. Leave empty or 'false' if you do not.")>]
member val contactBySMSFlag:Boolean = new Boolean() with get,set
///<summary>
///Provide 'true' if you want to be contacted by social media. Leave empty or 'false' if you do not.
///</summary>
[<ApiMember(Description="Provide 'true' if you want to be contacted by social media. Leave empty or 'false' if you do not.")>]
member val contactBySocialMediaFlag:Boolean = new Boolean() with get,set
///<summary>
///Sale Representative Email e.g. rauf.aliyev@richemont.com
///</summary>
[<ApiMember(Description="Sale Representative Email e.g. rauf.aliyev@richemont.com")>]
member val saleRepresentativeEmail:String = null with get,set
///<summary>
///Consent for allowing Cross Border Data Transfer
///</summary>
[<ApiMember(Description="Consent for allowing Cross Border Data Transfer")>]
member val allowStoreDataAbroad:Nullable<Boolean> = new Nullable<Boolean>() with get,set
///<summary>
///Consent for allowing Cross Border Data Transfer For TimeVallée
///</summary>
[<ApiMember(Description="Consent for allowing Cross Border Data Transfer For TimeVallée")>]
member val tvAllowStoreDataAbroad:Nullable<Boolean> = new Nullable<Boolean>() with get,set
///<summary>
///Customer emails
///</summary>
[<ApiMember(Description="Customer emails")>]
member val emails:ResizeArray<Email> = new ResizeArray<Email>() with get,set
///<summary>
///Customer phones
///</summary>
[<ApiMember(Description="Customer phones")>]
member val phones:ResizeArray<Phone> = new ResizeArray<Phone>() with get,set
///<summary>
///Customer addresses
///</summary>
[<ApiMember(Description="Customer addresses")>]
member val addresses:ResizeArray<Address> = new ResizeArray<Address>() with get,set
///<summary>
///Customer events
///</summary>
[<ApiMember(Description="Customer events")>]
member val events:ResizeArray<Event> = new ResizeArray<Event>() with get,set
///<summary>
///Customer interests
///</summary>
[<ApiMember(Description="Customer interests")>]
member val interests:ResizeArray<Interest> = new ResizeArray<Interest>() with get,set
///<summary>
///Customer hobbies
///</summary>
[<ApiMember(Description="Customer hobbies")>]
member val hobbies:ResizeArray<Hobby> = new ResizeArray<Hobby>() with get,set
///<summary>
///Customer product collections
///</summary>
[<ApiMember(Description="Customer product collections")>]
member val productCollections:ResizeArray<ProductCollection> = new ResizeArray<ProductCollection>() with get,set
///<summary>
///Provide 'true' if you allow data sharing consent. Leave empty or 'false' if you do not.
///</summary>
[<ApiMember(Description="Provide 'true' if you allow data sharing consent. Leave empty or 'false' if you do not.")>]
member val dataSharingConsent:Nullable<Boolean> = new Nullable<Boolean>() with get,set
///<summary>
///Notes
///</summary>
[<ApiMember(Description="Notes")>]
member val notes:String = null with get,set
///<summary>
///Reference Sale Representative Email
///</summary>
[<ApiMember(Description="Reference Sale Representative Email")>]
member val referenceSaleRepresentativeEmail:String = null with get,set
///<summary>
///Registration Date
///</summary>
[<ApiMember(Description="Registration Date")>]
member val registrationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
[<AllowNullLiteral>]
type UpdateCustomer() =
inherit Customer()
///<summary>
///Booster customer Id
///</summary>
[<ApiMember(Description="Booster customer Id")>]
member val boosterCustomerId:Int32 = new Int32() with get,set
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
PUT /customer/{boosterCustomerId} HTTP/1.1
Host: dev-api-booster.richemont.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<UpdateCustomer xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Richemont.Booster2.PublicApi.CRM.ServiceModel">
<addresses>
<Address>
<additionalInformation>String</additionalInformation>
<addressType>String</addressType>
<city>String</city>
<countryId>String</countryId>
<houseNumber>String</houseNumber>
<isMainAddress>false</isMainAddress>
<poBox>String</poBox>
<stateId>String</stateId>
<street>String</street>
<street2>String</street2>
<street3>String</street3>
<street4>String</street4>
<street5>String</street5>
<zipCode>String</zipCode>
</Address>
</addresses>
<allowStoreDataAbroad>false</allowStoreDataAbroad>
<birthDate>0001-01-01T00:00:00</birthDate>
<brand>String</brand>
<canBeContactedByMaison>false</canBeContactedByMaison>
<clientType>String</clientType>
<companyName>String</companyName>
<contactByEmailFlag>false</contactByEmailFlag>
<contactByMailFlag>false</contactByMailFlag>
<contactByPhoneFlag>false</contactByPhoneFlag>
<contactBySMSFlag>false</contactBySMSFlag>
<contactBySocialMediaFlag>false</contactBySocialMediaFlag>
<countryId>String</countryId>
<customerReference>String</customerReference>
<dataSharingConsent>false</dataSharingConsent>
<emails>
<Email>
<email>String</email>
<isMainEmail>false</isMainEmail>
</Email>
</emails>
<events>
<Event>
<eventDate>0001-01-01T00:00:00</eventDate>
<eventNotes>String</eventNotes>
<eventOtherName>String</eventOtherName>
<eventType>String</eventType>
</Event>
</events>
<firstName>String</firstName>
<firstNameNotLatin>String</firstNameNotLatin>
<gender>String</gender>
<hobbies>
<Hobby>
<hobby>String</hobby>
<sapHobbyId>String</sapHobbyId>
<translation>String</translation>
</Hobby>
</hobbies>
<interests>
<Interest>
<interest>String</interest>
<sapInterestId>String</sapInterestId>
<translation>String</translation>
</Interest>
</interests>
<languageId>String</languageId>
<lastName>String</lastName>
<lastNameNotLatin>String</lastNameNotLatin>
<middleName>String</middleName>
<nameSuffix>String</nameSuffix>
<notes>String</notes>
<phones>
<Phone>
<countryPrefix>String</countryPrefix>
<isMainPhone>false</isMainPhone>
<phone>String</phone>
<phoneType>String</phoneType>
</Phone>
</phones>
<posCode>String</posCode>
<preferredContactMethod>String</preferredContactMethod>
<productCollections>
<ProductCollection>
<productCollection>String</productCollection>
<sapProductCollectionId>String</sapProductCollectionId>
<translation>String</translation>
</ProductCollection>
</productCollections>
<referenceSaleRepresentativeEmail>String</referenceSaleRepresentativeEmail>
<registrationDate>0001-01-01T00:00:00</registrationDate>
<saleRepresentativeEmail>String</saleRepresentativeEmail>
<title>String</title>
<tvAllowStoreDataAbroad>false</tvAllowStoreDataAbroad>
<weddingDate>0001-01-01T00:00:00</weddingDate>
<boosterCustomerId>0</boosterCustomerId>
</UpdateCustomer>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <z:anyType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" />