Richemont.Booster2.PublicApi

<back to all web services

GetCustomerPaginated

Requires Authentication
The following routes are available for this service:
GET/customer/{brand}/slimGet customers listGet slim list of customers paginated and sorted
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Richemont.Booster2.PublicApi.CRM.ServiceModel
Imports Richemont.Booster2.PublicApi.Common.ServiceModel

Namespace Global

    Namespace Richemont.Booster2.PublicApi.Common.ServiceModel

        Public Partial Class ProductCategory
            '''<Summary>
            '''Brand Category ID
            '''</Summary>
            <ApiMember(Description:="Brand Category ID")>
            Public Overridable Property brandCategoryId As String

            '''<Summary>
            '''Grand Category ID
            '''</Summary>
            <ApiMember(Description:="Grand Category ID", IsRequired:=true)>
            Public Overridable Property grandCategoryId As String

            '''<Summary>
            '''Master Category ID
            '''</Summary>
            <ApiMember(Description:="Master Category ID")>
            Public Overridable Property masterCategoryId As String

            '''<Summary>
            '''Category ID
            '''</Summary>
            <ApiMember(Description:="Category ID")>
            Public Overridable Property categoryId As String

            '''<Summary>
            '''Sub Category ID
            '''</Summary>
            <ApiMember(Description:="Sub Category ID")>
            Public Overridable Property subCategoryId As String
        End Class
    End Namespace

    Namespace Richemont.Booster2.PublicApi.CRM.ServiceModel

        Public Partial Class GetCustomerHobby
            '''<Summary>
            '''Hobby description
            '''</Summary>
            <ApiMember(Description:="Hobby description")>
            Public Overridable Property hobby As String

            '''<Summary>
            '''SAP Hobby ID, e.g. 'ART'
            '''</Summary>
            <ApiMember(Description:="SAP Hobby ID, e.g. 'ART'")>
            Public Overridable Property sapHobbyId As String
        End Class

        Public Partial Class GetCustomerInterest
            '''<Summary>
            '''Interest description
            '''</Summary>
            <ApiMember(Description:="Interest description", IsRequired:=true)>
            Public Overridable Property interest As String

            '''<Summary>
            '''SAP Interest ID, e.g. 'CA-1'
            '''</Summary>
            <ApiMember(Description:="SAP Interest ID, e.g. 'CA-1'", IsRequired:=true)>
            Public Overridable Property sapInterestId As String
        End Class

        Public Partial Class GetCustomerPaginated
            Inherits SearchCustomer
            Implements IPagedRequest
            '''<Summary>
            '''Index of the result set returned
            '''</Summary>
            <ApiMember(Description:="Index of the result set returned")>
            Public Overridable Property page As Integer

            '''<Summary>
            '''Size of the result set returned
            '''</Summary>
            <ApiMember(Description:="Size of the result set returned")>
            Public Overridable Property items As Integer

            '''<Summary>
            '''Omit precise record count - save on performance
            '''</Summary>
            <ApiMember(Description:="Omit precise record count - save on performance")>
            Public Overridable Property noCount As Boolean

            '''<Summary>
            '''Values can be 'NameDESC', 'NameASC', 'RegASC', 'RegDESC'
            '''</Summary>
            <ApiMember(Description:="Values can be 'NameDESC', 'NameASC', 'RegASC', 'RegDESC'")>
            Public Overridable Property sortBy As String
        End Class

        Public Partial Class GetCustomerPaginatedElement
            '''<Summary>
            '''Booster Customer Id
            '''</Summary>
            <ApiMember(Description:="Booster Customer Id", IsRequired:=true)>
            Public Overridable Property boosterCustomerId As Integer

            '''<Summary>
            '''First name
            '''</Summary>
            <ApiMember(Description:="First name", IsRequired:=true)>
            Public Overridable Property firstName As String

            '''<Summary>
            '''Middle name
            '''</Summary>
            <ApiMember(Description:="Middle name", IsRequired:=true)>
            Public Overridable Property middleName As String

            '''<Summary>
            '''Last name
            '''</Summary>
            <ApiMember(Description:="Last name", IsRequired:=true)>
            Public Overridable Property lastName As String

            '''<Summary>
            '''First name Not Latin
            '''</Summary>
            <ApiMember(Description:="First name Not Latin", IsRequired:=true)>
            Public Overridable Property firstNameNotLatin As String

            '''<Summary>
            '''Last name Not Latin
            '''</Summary>
            <ApiMember(Description:="Last name Not Latin", IsRequired:=true)>
            Public Overridable Property lastNameNotLatin As String

            '''<Summary>
            '''Customer phone
            '''</Summary>
            <ApiMember(Description:="Customer phone", IsRequired:=true)>
            Public Overridable Property phone As String

            '''<Summary>
            '''Phone Country Prefix
            '''</Summary>
            <ApiMember(Description:="Phone Country Prefix", IsRequired:=true)>
            Public Overridable Property countryPrefix As String

            '''<Summary>
            '''Customer email
            '''</Summary>
            <ApiMember(Description:="Customer email", IsRequired:=true)>
            Public Overridable Property email As String

            '''<Summary>
            '''Data Sharing Consent
            '''</Summary>
            <ApiMember(Description:="Data Sharing Consent", IsRequired:=true)>
            Public Overridable Property dataSharingConsent As Nullable(Of Boolean)

            '''<Summary>
            '''Sellout Transaction Count
            '''</Summary>
            <ApiMember(Description:="Sellout Transaction Count", IsRequired:=true)>
            Public Overridable Property selloutTransactionCount As Integer

            '''<Summary>
            '''Elevate Customer ID
            '''</Summary>
            <ApiMember(Description:="Elevate Customer ID")>
            Public Overridable Property elevateCustomerId As String

            '''<Summary>
            '''Elevate Consent Status
            '''</Summary>
            <ApiMember(Description:="Elevate Consent Status")>
            Public Overridable Property elevateConsentStatus As String

            '''<Summary>
            '''Customer Country Id
            '''</Summary>
            <ApiMember(Description:="Customer Country Id")>
            Public Overridable Property countryId As String

            '''<Summary>
            '''Registration date
            '''</Summary>
            <ApiMember(Description:="Registration date")>
            Public Overridable Property registrationDate As Nullable(Of Date)

            '''<Summary>
            '''Sap Crm Error Message
            '''</Summary>
            <ApiMember(Description:="Sap Crm Error Message")>
            Public Overridable Property sapCrmErrorMessage As String
        End Class

        Public Partial Class GetCustomerPaginatedResponse
            '''<Summary>
            '''Total Pages
            '''</Summary>
            <ApiMember(Description:="Total Pages", IsRequired:=true)>
            Public Overridable Property totalPages As Integer

            '''<Summary>
            '''Total Results
            '''</Summary>
            <ApiMember(Description:="Total Results", IsRequired:=true)>
            Public Overridable Property totalResults As Integer

            '''<Summary>
            '''Index of the result set returned
            '''</Summary>
            <ApiMember(Description:="Index of the result set returned", IsRequired:=true)>
            Public Overridable Property page As Integer

            '''<Summary>
            '''Size of the result set returned
            '''</Summary>
            <ApiMember(Description:="Size of the result set returned", IsRequired:=true)>
            Public Overridable Property items As Integer

            '''<Summary>
            '''List of customers
            '''</Summary>
            <ApiMember(Description:="List of customers", IsRequired:=true)>
            Public Overridable Property elements As IEnumerable(Of GetCustomerPaginatedElement)
        End Class

        Public Partial Class GetCustomerProductCollection
            '''<Summary>
            '''Product Collection description
            '''</Summary>
            <ApiMember(Description:="Product Collection description", IsRequired:=true)>
            Public Overridable Property productCollection As String

            '''<Summary>
            '''SAP ProductCollection ID, e.g. 'CA-1'
            '''</Summary>
            <ApiMember(Description:="SAP ProductCollection ID, e.g. 'CA-1'", IsRequired:=true)>
            Public Overridable Property sapProductCollectionId As String
        End Class

        Public Partial Class SearchCustomer
            Public Sub New()
                posCodes = New List(Of String)
                locationCountryIds = New List(Of String)
                birthdateMonths = New List(Of Integer)
                interests = New List(Of GetCustomerInterest)
                hobbies = New List(Of GetCustomerHobby)
                productCollections = New List(Of GetCustomerProductCollection)
                customerStatus = New List(Of String)
                boosterCustomerIds = New List(Of Integer)
                productCategories = New List(Of ProductCategory)
                saleRepresentativeEmails = New List(Of String)
            End Sub

            '''<Summary>
            '''Brand
            '''</Summary>
            <ApiMember(Description:="Brand", IsRequired:=true)>
            Public Overridable Property brand As String

            '''<Summary>
            '''POS Legacy
            '''</Summary>
            <ApiMember(Description:="POS Legacy", IsRequired:=true)>
            Public Overridable Property posCodes As List(Of String)

            '''<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'")>
            Public Overridable Property searchKey As String

            '''<Summary>
            '''Search by phone number - exact match
            '''</Summary>
            <ApiMember(Description:="Search by phone number - exact match")>
            Public Overridable Property phoneNumber As String

            '''<Summary>
            '''Search by email address - exact match
            '''</Summary>
            <ApiMember(Description:="Search by email address - exact match")>
            Public Overridable Property email As String

            '''<Summary>
            '''Values can be 'it', 'en' etc.
            '''</Summary>
            <ApiMember(Description:="Values can be 'it', 'en' etc.")>
            Public Overridable Property locationCountryIds As List(Of String)

            '''<Summary>
            '''Client Spending From e.g. '100'
            '''</Summary>
            <ApiMember(Description:="Client Spending From e.g. '100'")>
            Public Overridable Property clientSpendingFrom As Nullable(Of Double)

            '''<Summary>
            '''Client Spending To e.g. '50000'
            '''</Summary>
            <ApiMember(Description:="Client Spending To e.g. '50000'")>
            Public Overridable Property clientSpendingTo As Nullable(Of Double)

            '''<Summary>
            '''Customer Creation Date From e.g. '2022-01-01'
            '''</Summary>
            <ApiMember(Description:="Customer Creation Date From e.g. '2022-01-01'")>
            Public Overridable Property creationDateFrom As Nullable(Of Date)

            '''<Summary>
            '''Customer Creation Date To e.g. '2023-11-01'
            '''</Summary>
            <ApiMember(Description:="Customer Creation Date To e.g. '2023-11-01'")>
            Public Overridable Property creationDateTo As Nullable(Of Date)

            '''<Summary>
            '''Transaction Date From e.g. '2022-01-01'
            '''</Summary>
            <ApiMember(Description:="Transaction Date From e.g. '2022-01-01'")>
            Public Overridable Property transactionDateFrom As Nullable(Of Date)

            '''<Summary>
            '''Transaction Date To e.g. '2023-11-01'
            '''</Summary>
            <ApiMember(Description:="Transaction Date To e.g. '2023-11-01'")>
            Public Overridable Property transactionDateTo As Nullable(Of Date)

            '''<Summary>
            '''Values can be 'true' or 'false'
            '''</Summary>
            <ApiMember(Description:="Values can be 'true' or 'false'")>
            Public Overridable Property canBeContactedByMaison As Nullable(Of Boolean)

            '''<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'")>
            Public Overridable Property birthdateMonths As List(Of Integer)

            '''<Summary>
            '''Customer interest filter
            '''</Summary>
            <ApiMember(Description:="Customer interest filter")>
            Public Overridable Property interests As List(Of GetCustomerInterest)

            '''<Summary>
            '''Customer hobby filter
            '''</Summary>
            <ApiMember(Description:="Customer hobby filter")>
            Public Overridable Property hobbies As List(Of GetCustomerHobby)

            '''<Summary>
            '''Customer product collection filter
            '''</Summary>
            <ApiMember(Description:="Customer product collection filter")>
            Public Overridable Property productCollections As List(Of GetCustomerProductCollection)

            '''<Summary>
            '''Customer Status e.g. 'Prospect', 'Client'
            '''</Summary>
            <ApiMember(Description:="Customer Status e.g. 'Prospect', 'Client'")>
            Public Overridable Property customerStatus As List(Of String)

            '''<Summary>
            '''List of BoosterCustomerIds, e.g. 1234567,1231231,12323423
            '''</Summary>
            <ApiMember(Description:="List of BoosterCustomerIds, e.g. 1234567,1231231,12323423")>
            Public Overridable Property boosterCustomerIds As List(Of Integer)

            '''<Summary>
            '''Values can be 'true' or 'false'
            '''</Summary>
            <ApiMember(Description:="Values can be 'true' or 'false'")>
            Public Overridable Property hasSapCrmError As Nullable(Of Boolean)

            '''<Summary>
            '''Product Categories
            '''</Summary>
            <ApiMember(Description:="Product Categories")>
            Public Overridable Property productCategories As List(Of ProductCategory)

            '''<Summary>
            '''Sale Reprentative Emails
            '''</Summary>
            <ApiMember(Description:="Sale Reprentative Emails")>
            Public Overridable Property saleRepresentativeEmails As List(Of String)
        End Class
    End Namespace
End Namespace

VB.NET GetCustomerPaginated 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.

GET /customer/{brand}/slim HTTP/1.1 
Host: dev-api-booster.richemont.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"totalPages":0,"totalResults":0,"page":0,"items":0}