| GET | /customer/{brand}/slim | Get customers list | Get 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 .csv suffix or ?format=csv
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/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"totalPages":0,"totalResults":0,"page":0,"items":0}