Richemont.Booster2.PublicApi

<back to all web services

ExportCustomer

Requires Authentication
The following routes are available for this service:
POST/customer/{brand}/exportExport Customer Data
namespace Richemont.Booster2.PublicApi.Common.ServiceModel

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type ExportCustomerResponse() = 
        ///<summary>
        ///Unique Identifier of the Export Request created
        ///</summary>
        [<ApiMember(Description="Unique Identifier of the Export Request created", IsRequired=true)>]
        member val asyncTaskId:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type GetCustomerInterest() = 
        ///<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

    [<AllowNullLiteral>]
    type GetCustomerHobby() = 
        ///<summary>
        ///Hobby description
        ///</summary>
        [<ApiMember(Description="Hobby description")>]
        member val hobby:String = null with get,set

        ///<summary>
        ///SAP Hobby ID, e.g. 'ART'
        ///</summary>
        [<ApiMember(Description="SAP Hobby ID, e.g. 'ART'")>]
        member val sapHobbyId:String = null with get,set

    [<AllowNullLiteral>]
    type GetCustomerProductCollection() = 
        ///<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

    [<AllowNullLiteral>]
    type ProductCategory() = 
        ///<summary>
        ///Brand Category ID
        ///</summary>
        [<ApiMember(Description="Brand Category ID")>]
        member val brandCategoryId:String = null with get,set

        ///<summary>
        ///Grand Category ID
        ///</summary>
        [<ApiMember(Description="Grand Category ID", IsRequired=true)>]
        member val grandCategoryId:String = null with get,set

        ///<summary>
        ///Master Category ID
        ///</summary>
        [<ApiMember(Description="Master Category ID")>]
        member val masterCategoryId:String = null with get,set

        ///<summary>
        ///Category ID
        ///</summary>
        [<ApiMember(Description="Category ID")>]
        member val categoryId:String = null with get,set

        ///<summary>
        ///Sub Category ID
        ///</summary>
        [<ApiMember(Description="Sub Category ID")>]
        member val subCategoryId:String = null with get,set

    [<AllowNullLiteral>]
    type SearchCustomer() = 
        ///<summary>
        ///Brand
        ///</summary>
        [<ApiMember(Description="Brand", IsRequired=true)>]
        member val brand:String = null with get,set

        ///<summary>
        ///POS Legacy
        ///</summary>
        [<ApiMember(Description="POS Legacy", IsRequired=true)>]
        member val posCodes:ResizeArray<String> = new ResizeArray<String>() with get,set

        ///<summary>
        ///Search key could be: 'Name', 'Email', 'Phone' without prefix, 'BoosterCustomerId' OR 'SapCRMId'
        ///</summary>
        [<ApiMember(Description="Search key could be: 'Name', 'Email', 'Phone' without prefix, 'BoosterCustomerId' OR 'SapCRMId'")>]
        member val searchKey:String = null with get,set

        ///<summary>
        ///Search by phone number - exact match
        ///</summary>
        [<ApiMember(Description="Search by phone number - exact match")>]
        member val phoneNumber:String = null with get,set

        ///<summary>
        ///Search by email address - exact match
        ///</summary>
        [<ApiMember(Description="Search by email address - exact match")>]
        member val email:String = null with get,set

        ///<summary>
        ///Values can be 'it', 'en' etc.
        ///</summary>
        [<ApiMember(Description="Values can be 'it', 'en' etc.")>]
        member val locationCountryIds:ResizeArray<String> = new ResizeArray<String>() with get,set

        ///<summary>
        ///Client Spending From e.g. '100'
        ///</summary>
        [<ApiMember(Description="Client Spending From e.g. '100'")>]
        member val clientSpendingFrom:Nullable<Double> = new Nullable<Double>() with get,set

        ///<summary>
        ///Client Spending To e.g. '50000'
        ///</summary>
        [<ApiMember(Description="Client Spending To e.g. '50000'")>]
        member val clientSpendingTo:Nullable<Double> = new Nullable<Double>() with get,set

        ///<summary>
        ///Customer Creation Date From e.g. '2022-01-01'
        ///</summary>
        [<ApiMember(Description="Customer Creation Date From e.g. '2022-01-01'")>]
        member val creationDateFrom:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Customer Creation Date To e.g. '2023-11-01'
        ///</summary>
        [<ApiMember(Description="Customer Creation Date To e.g. '2023-11-01'")>]
        member val creationDateTo:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Transaction Date From e.g. '2022-01-01'
        ///</summary>
        [<ApiMember(Description="Transaction Date From e.g. '2022-01-01'")>]
        member val transactionDateFrom:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Transaction Date To e.g. '2023-11-01'
        ///</summary>
        [<ApiMember(Description="Transaction Date To e.g. '2023-11-01'")>]
        member val transactionDateTo:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Values can be 'true' or 'false'
        ///</summary>
        [<ApiMember(Description="Values can be 'true' or 'false'")>]
        member val canBeContactedByMaison:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///Values can be 1 for 'January', 2 for 'February', 3 for 'March', 4 for 'April', 5 for 'May', 6 for 'June', 7 for 'July', 8 for 'August', 9 for 'September', 10 for 'October', 11 for 'November', 12 for 'December'
        ///</summary>
        [<ApiMember(Description="Values can be 1 for 'January', 2 for 'February', 3 for 'March', 4 for 'April', 5 for 'May', 6 for 'June', 7 for 'July', 8 for 'August', 9 for 'September', 10 for 'October', 11 for 'November', 12 for 'December'")>]
        member val birthdateMonths:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        ///<summary>
        ///Customer interest filter
        ///</summary>
        [<ApiMember(Description="Customer interest filter")>]
        member val interests:ResizeArray<GetCustomerInterest> = new ResizeArray<GetCustomerInterest>() with get,set

        ///<summary>
        ///Customer hobby filter
        ///</summary>
        [<ApiMember(Description="Customer hobby filter")>]
        member val hobbies:ResizeArray<GetCustomerHobby> = new ResizeArray<GetCustomerHobby>() with get,set

        ///<summary>
        ///Customer product collection filter
        ///</summary>
        [<ApiMember(Description="Customer product collection filter")>]
        member val productCollections:ResizeArray<GetCustomerProductCollection> = new ResizeArray<GetCustomerProductCollection>() with get,set

        ///<summary>
        ///Customer Status e.g. 'Prospect', 'Client'
        ///</summary>
        [<ApiMember(Description="Customer Status e.g. 'Prospect', 'Client'")>]
        member val customerStatus:ResizeArray<String> = new ResizeArray<String>() with get,set

        ///<summary>
        ///List of BoosterCustomerIds, e.g. 1234567,1231231,12323423
        ///</summary>
        [<ApiMember(Description="List of BoosterCustomerIds, e.g. 1234567,1231231,12323423")>]
        member val boosterCustomerIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        ///<summary>
        ///Values can be 'true' or 'false'
        ///</summary>
        [<ApiMember(Description="Values can be 'true' or 'false'")>]
        member val hasSapCrmError:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///Product Categories
        ///</summary>
        [<ApiMember(Description="Product Categories")>]
        member val productCategories:ResizeArray<ProductCategory> = new ResizeArray<ProductCategory>() with get,set

        ///<summary>
        ///Sale Reprentative Emails
        ///</summary>
        [<ApiMember(Description="Sale Reprentative Emails")>]
        member val saleRepresentativeEmails:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type ExportCustomer() = 
        inherit SearchCustomer()
        ///<summary>
        ///Export Request ID of the API Consumers
        ///</summary>
        [<ApiMember(Description="Export Request ID of the API Consumers", IsRequired=true)>]
        member val downloadRequestId:String = null with get,set

F# ExportCustomer DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /customer/{brand}/export HTTP/1.1 
Host: dev-api-booster.richemont.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"downloadRequestId":"String","brand":"String","posCodes":["String"],"searchKey":"String","phoneNumber":"String","email":"String","locationCountryIds":["String"],"clientSpendingFrom":0,"clientSpendingTo":0,"creationDateFrom":"\/Date(-62135596800000-0000)\/","creationDateTo":"\/Date(-62135596800000-0000)\/","transactionDateFrom":"\/Date(-62135596800000-0000)\/","transactionDateTo":"\/Date(-62135596800000-0000)\/","canBeContactedByMaison":false,"birthdateMonths":[0],"interests":[{"interest":"String","sapInterestId":"String"}],"hobbies":[{"hobby":"String","sapHobbyId":"String"}],"productCollections":[{"productCollection":"String","sapProductCollectionId":"String"}],"customerStatus":["String"],"boosterCustomerIds":[0],"hasSapCrmError":false,"productCategories":[{"brandCategoryId":"String","grandCategoryId":"String","masterCategoryId":"String","categoryId":"String","subCategoryId":"String"}],"saleRepresentativeEmails":["String"]}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"asyncTaskId":"00000000000000000000000000000000"}