-
Notifications
You must be signed in to change notification settings - Fork 109
/
cmf.yaml
152 lines (120 loc) · 5.86 KB
/
cmf.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
services:
_defaults:
autowire: true
autoconfigure: true
public: false
# ---------------------------------------------------------
# CMF Services
# ---------------------------------------------------------
# example customer save handler config
CustomerManagementFrameworkBundle\CustomerSaveHandler\NormalizeZip:
tags: [cmf.customer_save_handler]
# example segment builder config
CustomerManagementFrameworkBundle\SegmentBuilder\StateSegmentBuilder:
tags: [cmf.segment_builder]
CustomerManagementFrameworkBundle\SegmentBuilder\GenderSegmentBuilder:
tags: [cmf.segment_builder]
App\CustomerManagementFramework\SegmentBuilder\ProductInterestSegmentBuilder:
tags: [cmf.segment_builder]
# overwrite activity store to mysql
CustomerManagementFrameworkBundle\ActivityStore\ActivityStoreInterface:
class: CustomerManagementFrameworkBundle\ActivityStore\MySQL
pimcore:
models:
class_overrides:
Pimcore\Model\DataObject\Customer: App\Model\Customer
pimcore_customer_management_framework:
# Configuration of customer save manager
customer_save_manager:
# If enabled the automatic object naming scheme will be applied on each customer save. See: customer_provider -> namingScheme option
enableAutomaticObjectNamingScheme: true
# Configuration of customer provider
customer_provider:
# parent folder for active customers
parentPath: '/Customer Management/customers'
# parent folder for customers which are unpublished and inactive
archiveDir: '/Customer Management/customers/_archive'
# If a naming scheme is configured customer objects will be automatically renamend and moved to the configured folder structure as soon as the naming scheme gets applied.
namingScheme: '{countryCode}/{zip}/{firstname}-{lastname}'
# Parent folder for customers which are created via the "new customer" button in the customer list view
newCustomersTempDir: '/Customer Management/customers/_temp'
# Configuration of segment manager
segment_manager:
segmentFolder:
# parent folder of manual segments + segment groups
manual: '/Customer Management/segments/manual'
# parent folder of calculated segments + segment groups
calculated: '/Customer Management/segments/calculated'
# Configuration of customer save manager
customer_save_validator:
# If enabled an exception will be thrown when saving a customer object if duplicate customers exist.
checkForDuplicates: true
requiredFields:
# Provide valid field combinations. The customer object then is valid as soon as at least one of these field combinations is filled up.
- [email]
- [firstname, lastname]
# Configuration of customer duplicates services
customer_duplicates_services:
# Field or field combinations for hard duplicate check
duplicateCheckFields:
- [email]
- [firstname, lastname, zip, street]
duplicates_view:
enabled: true # the feature will be visible in the backend only if it is enabled
# Visible fields in the customer duplicates view.
# Each single group/array is one separate column in the view table.
listFields:
- [id]
- [email]
- [firstname, lastname]
- [street]
- [zip, city]
- [countryCode]
# Index used for a global search of customer duplicates.
# Matching field combinations can be configured here.
# See "Customer Duplicates Service" docs chapter for more details.
duplicates_index:
enableDuplicatesIndex: true
duplicateCheckFields:
- lastname:
soundex: true
metaphone: true
similarity: \CustomerManagementFrameworkBundle\DataSimilarityMatcher\SimilarText
firstname:
soundex: true
metaphone: true
similarity: \CustomerManagementFrameworkBundle\DataSimilarityMatcher\SimilarText
zip:
similarity: \CustomerManagementFrameworkBundle\DataSimilarityMatcher\Zip
city:
soundex: true
metaphone: true
similarity: \CustomerManagementFrameworkBundle\DataSimilarityMatcher\SimilarText
street:
soundex: true
metaphone: true
similarity: \CustomerManagementFrameworkBundle\DataSimilarityMatcher\SimilarText
- email:
metaphone: true
similarity: \CustomerManagementFrameworkBundle\DataSimilarityMatcher\SimilarText
similarityThreshold: 90
dataTransformers:
street: \CustomerManagementFrameworkBundle\DataTransformer\DuplicateIndex\Street
firstname: \CustomerManagementFrameworkBundle\DataTransformer\DuplicateIndex\Simplify
city: \CustomerManagementFrameworkBundle\DataTransformer\DuplicateIndex\Simplify
lastname: \CustomerManagementFrameworkBundle\DataTransformer\DuplicateIndex\Simplify
# Configuration of EncryptionService
encryption:
# echo \Defuse\Crypto\Key::createNewRandomKey()->saveToAsciiSafeString();
# keep it secret
secret: '%app_encryption_secret%'
# Configuration for segment assignment
segment_assignment_classes:
types:
document:
page: true
object:
object:
News: true
Category: true
folder: true