-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathISettings.cs
More file actions
340 lines (283 loc) · 13.7 KB
/
ISettings.cs
File metadata and controls
340 lines (283 loc) · 13.7 KB
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
using Dynamicweb.Extensibility.AddIns;
using Dynamicweb.Extensibility.Editors;
namespace Dynamicweb.Ecommerce.DynamicwebLiveIntegration.Configuration
{
/// <summary>
/// Interface to define settings for the Live Integration.
/// </summary>
public interface ISettings
{
/// <summary>
/// Instance Label
/// </summary>
string InstanceLabel { get; set; }
/// <summary>
/// Instance Id
/// </summary>
string InstanceId { get; set; }
/// <summary>
/// Settings file
/// </summary>
string SettingsFile { get; set; }
/// <summary>
/// Gets or sets a value that determines if live integration is enabled.
/// </summary>
/// <value>Returns <c>true</c> if live integration is enabled; otherwise, <c>false</c>.</value>
bool IsLiveIntegrationEnabled { get; set; }
/// <summary>
/// Gets or sets a value that determines if custom order fields are appended to the outgoing XML request.
/// </summary>
/// <value>Returns <c>true</c> if order fields should be added to the request; otherwise, <c>false</c>.</value>
bool AddOrderFieldsToRequest { get; set; }
/// <summary>
/// Gets or sets a value that determines if custom order line fields are appended to the outgoing XML request.
/// </summary>
/// <value>Returns <c>true</c> if order line fields should be added to the request; otherwise, <c>false</c>.</value>
bool AddOrderLineFieldsToRequest { get; set; }
/// <summary>
/// Gets or sets a value that determines if parts information (BOM) is appended to the outgoing XML request.
/// </summary>
/// <value>Returns <c>true</c> if parts order lines should e added to the request; otherwise, <c>false</c>.</value>
bool AddOrderLinePartsToRequest { get; set; }
/// <summary>
/// Gets or sets a value that determines if custom product fields are appended to the outgoing XML request.
/// </summary>
/// <value>Returns <c>true</c> if custom product fields should be added to the request; otherwise, <c>false</c>.</value>
bool AddProductFieldsToRequest { get; set; }
/// <summary>
/// Gets or sets the customer name used in integration scenarios with anonymous users.
/// </summary>
/// <value>Returns the anonymous user key.</value>
string AnonymousUserKey { get; set; }
/// <summary>
/// Gets or sets the type of communication used for the cart. Valid options are defined in <see cref="Constants.CartCommunicationType" />.
/// </summary>
/// <value>Returns the type of the cart communication.</value>
string CartCommunicationType { get; set; }
/// <summary>
/// Gets or sets the ERP connection timeout in seconds.
/// </summary>
/// <value>Returns the connection timeout.</value>
int ConnectionTimeout { get; set; }
/// <summary>
/// Gets or sets a value that determines if (live) cart communication is enabled for anonymous users.
/// </summary>
/// <value>Returns <c>true</c> if cart communication is enabled for anonymous users; otherwise, <c>false</c>.</value>
bool EnableCartCommunicationForAnonymousUsers { get; set; }
/// <summary>
/// Gets or sets a value that determines if live prices are retrieved from the ERP.
/// </summary>
/// <value>Returns <c>true</c> if live prices should be retrieved from the ERP; otherwise, <c>false</c>.</value>
bool EnableLivePrices { get; set; }
/// <summary>
/// Gets or sets a value that determines if product info should be lazy loaded.
/// </summary>
/// <value>Returns <c>true</c> if lazy loading for products is enabled; otherwise, <c>false</c>.</value>
bool LazyLoadProductInfo { get; set; }
/// <summary>
/// Gets or sets a value that determines if live product information should be retrieved for anonymous users.
/// </summary>
/// <value>Returns <c>true</c> if live product information is enabled for anonymous users; otherwise, <c>false</c>.</value>
bool LiveProductInfoForAnonymousUsers { get; set; }
/// <summary>
/// Gets or sets a value that determines if calls to the ERP for live product info should be retried in case of a failure.
/// </summary>
bool MakeRetryForLiveProductInformation { get; set; }
/// <summary>
/// Gets or sets a value that determines if the product request should contain all product variants or only the product being requested.
/// </summary>
bool GetProductInformationForAllVariants { get; set; }
/// <summary>
/// Gets or sets a value that determines if connection errors should be logged.
/// </summary>
bool LogConnectionErrors { get; set; }
/// <summary>
/// Gets or sets a value that determines if debug info should be logged.
/// </summary>
bool LogDebugInfo { get; set; }
/// <summary>
/// Gets or sets a value that determines if general info should be logged.
/// </summary>
bool LogGeneralErrors { get; set; }
/// <summary>
/// Gets or sets a value that determines the maximum file size for the log before roll-over or clipping is applied.
/// </summary>
/// <value>The maximum size of the log.</value>
int LogMaxSize { get; set; }
/// <summary>
/// Gets or sets a value that determines if response errors should be logged.
/// </summary>
bool LogResponseErrors { get; set; }
/// <summary>
/// Gets or sets the recipient's email address for notification emails.
/// </summary>
/// <value>The notification email.</value>
string NotificationEmail { get; set; }
/// <summary>
/// Gets or sets the recipient's user groups for notification emails.
/// </summary>
/// <value>The notification email.</value>
string RecipientGroups { get; set; }
/// <summary>
/// Gets or sets the sender's email address for notification emails.
/// </summary>
/// <value>The notification email sender email.</value>
string NotificationEmailSenderEmail { get; set; }
/// <summary>
/// Gets or sets the sender's name for notification emails.
/// </summary>
/// <value>The name of the notification email sender.</value>
string NotificationEmailSenderName { get; set; }
/// <summary>
/// Gets or sets the subject of the notification email.
/// </summary>
/// <value>The notification email subject.</value>
string NotificationEmailSubject { get; set; }
/// <summary>
/// Gets or sets the frequency at which notifications should be sent.
/// </summary>
/// <value>The notification sending frequency.</value>
string NotificationSendingFrequency { get; set; }
/// <summary>
/// Gets or sets the template used for the notification email.
/// </summary>
/// <value>The notification template.</value>
string NotificationTemplate { get; set; }
/// <summary>
/// Gets or sets the cache level for order information.
/// </summary>
/// <value>The order cache level.</value>
string OrderCacheLevel { get; set; }
/// <summary>
/// Gets or sets the order state that is applied after order export failed.
/// </summary>
/// <value>The order state after export failed.</value>
string OrderStateAfterExportFailed { get; set; }
/// <summary>
/// Gets or sets the order state that is applied after order export succeeded.
/// </summary>
/// <value>The order state after export succeeded.</value>
string OrderStateAfterExportSucceeded { get; set; }
/// <summary>
/// Gets or sets a value that determines whether to skip sending ledger entries to the ERP.
/// </summary>
bool SkipLedgerOrder { get; set; }
/// <summary>
/// Gets or sets the cache level for products.
/// </summary>
/// <value>The product cache level.</value>
string ProductCacheLevel { get; set; }
/// <summary>
/// Gets or sets a value that determines if orders can be queued to be exported later.
/// </summary>
/// <value>Returns <c>true</c> if orders can be queued for later export; otherwise, <c>false</c>.</value>
bool QueueOrdersToExport { get; set; }
/// <summary>
/// Gets or sets a value that determines if a copy of the original order xml should be saved.
/// </summary>
/// <value><c>true</c> if [save copy of order XML]; otherwise, <c>false</c>.</value>
bool SaveCopyOfOrderXml { get; set; }
/// <summary>
/// Gets or sets the security key used to communicate with the ERP service.
/// </summary>
/// <value>The security key.</value>
string SecurityKey { get; set; }
/// <summary>
/// Gets or sets the ID of the shop used in this integration.
/// </summary>
/// <value>The shop identifier.</value>
string ShopId { get; set; }
/// <summary>
/// Gets or sets the ID of the website used in this integration.
/// </summary>
/// <value>The website identifier.</value>
int AreaId { get; set; }
/// <summary>
/// Gets or sets the text for product discounts.
/// </summary>
/// <value>The text for product discounts.</value>
string ProductDiscountText { get; set; }
/// <summary>
/// Gets or sets the text for order discount order line.
/// </summary>
/// <value>The text for order discount order line.</value>
string OrderDiscountText { get; set; }
/// <summary>
/// Gets or sets if ERP controls discount calculations
/// </summary>
/// <value><c>true</c> if [ERP controls discount calculations]; otherwise, <c>false</c>.</value>
bool ErpControlsDiscount { get; set; }
/// <summary>
/// Gets or sets the key for shipping item type.
/// </summary>
/// <value>The key for shipping item type.</value>
string ErpShippingItemType { get; set; }
/// <summary>
/// Gets or sets the key for shipping item.
/// </summary>
/// <value>The key for shipping item.</value>
string ErpShippingItemKey { get; set; }
/// <summary>
/// Gets or sets if ERP controls shipping calculations
/// </summary>
/// <value><c>true</c> if [ERP controls shipping calculations]; otherwise, <c>false</c>.</value>
bool ErpControlsShipping { get; set; }
/// <summary>
/// Gets or sets if the orderline should be set to fixed when unitprice is set by the orderhandler
/// </summary>
bool SetOrderlineFixed { get; set; }
/// <summary>
/// Gets or sets the url for the Web Service.
/// </summary>
/// <value>The web service URI.</value>
string WebServiceURI { get; set; }
/// <summary>
/// Gets or sets the ids for the Endpoint.
/// </summary>
/// <value>The Endpoint ids.</value>
string Endpoint { get; set; }
/// <summary>
/// Gets or sets a value that determines whether to use the product number in price calculations.
/// </summary>
/// <value><c>true</c> if [calculate price using product number]; otherwise, <c>false</c>.</value>
bool CalculatePriceUsingProductNumber { get; set; }
/// <summary>
/// Gets or sets the number format culture.
/// </summary>
/// <value>The number format culture.</value>
string NumberFormatCulture { get; set; }
/// <summary>
/// Gets or sets a value that indicates whether to keep log files or to truncate a single log file.
/// </summary>
bool KeepLogFiles { get; set; }
/// <summary>
/// Global tag for connection availability
/// </summary>
/// <value>The name of the web service connection status global tag.</value>
string WebServiceConnectionStatusGlobalTagName { get; set; }
/// <summary>
/// Gets or sets the value for the ping interval.
/// </summary>
/// <value>The interval between pings (seconds).</value>
int AutoPingInterval { get; set; }
/// <summary>
/// Gets or sets if use unit prices
/// </summary>
/// <value><c>true</c> if [use unit prices]; otherwise, <c>false</c>.</value>
bool UseUnitPrices { get; set; }
/// <summary>
/// Gets or sets a value that determines whether to use the product number in order calculations.
/// </summary>
/// <value><c>true</c> if [calculate order using product number]; otherwise, <c>false</c>.</value>
bool CalculateOrderUsingProductNumber { get; set; }
/// <summary>
/// Gets or sets a value that determines the max number of products on each live request.
/// </summary>
int MaxProductsPerRequest { get; set; }
/// <summary>
/// When enabled anonymous users will receive discounts calculated by DynamicWeb instead of retrieving them from the ERP via Live Integration
/// </summary>
/// <value><c>true</c> if [disable ERP discounts calculation for anonymous users]; otherwise, <c>false</c>.</value>
public bool DisableErpDiscountsForAnonymousUsers { get; set; }
}
}