| POST | /customer/{brand}/export | Export Customer Data |
|---|
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 ExportCustomer
Inherits SearchCustomer
'''<Summary>
'''Export Request ID of the API Consumers
'''</Summary>
<ApiMember(Description:="Export Request ID of the API Consumers", IsRequired:=true)>
Public Overridable Property downloadRequestId As String
End Class
Public Partial Class ExportCustomerResponse
'''<Summary>
'''Unique Identifier of the Export Request created
'''</Summary>
<ApiMember(Description:="Unique Identifier of the Export Request created", IsRequired:=true)>
Public Overridable Property asyncTaskId As Guid
End Class
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 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
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
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/jsv
Content-Type: text/jsv
Content-Length: length
{
downloadRequestId: String,
brand: String,
posCodes:
[
String
],
searchKey: String,
phoneNumber: String,
email: String,
locationCountryIds:
[
String
],
clientSpendingFrom: 0,
clientSpendingTo: 0,
creationDateFrom: 0001-01-01,
creationDateTo: 0001-01-01,
transactionDateFrom: 0001-01-01,
transactionDateTo: 0001-01-01,
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/jsv
Content-Length: length
{
asyncTaskId: 00000000000000000000000000000000
}