@deliverart/sdk-js-sales-mode 2.1.50 → 2.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +421 -0
- package/package.json +4 -4
package/README.md
ADDED
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
# @deliverart/sdk-js-sales-mode
|
|
2
|
+
|
|
3
|
+
Sales mode management package for the DeliverArt JavaScript SDK.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @deliverart/sdk-js-sales-mode @deliverart/sdk-js-core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Exported Types
|
|
12
|
+
|
|
13
|
+
### Core Types
|
|
14
|
+
- `SalesMode` - Sales mode configuration
|
|
15
|
+
- `SalesModeDetails` - Extended sales mode with settings
|
|
16
|
+
|
|
17
|
+
### Sales Mode Types
|
|
18
|
+
Sales modes represent different ways customers can order:
|
|
19
|
+
- Delivery
|
|
20
|
+
- Takeaway
|
|
21
|
+
- Dine-in
|
|
22
|
+
- Reservation
|
|
23
|
+
|
|
24
|
+
### IRI Types
|
|
25
|
+
- `SalesModeIri` - Sales mode IRI (`/sales_modes/:id`)
|
|
26
|
+
|
|
27
|
+
## Available Requests
|
|
28
|
+
|
|
29
|
+
### CreateSalesMode
|
|
30
|
+
```typescript
|
|
31
|
+
import { CreateSalesMode } from '@deliverart/sdk-js-sales-mode';
|
|
32
|
+
|
|
33
|
+
const salesMode = await sdk.call(new CreateSalesMode({
|
|
34
|
+
name: 'Delivery',
|
|
35
|
+
pointOfSale: '/point_of_sales/123',
|
|
36
|
+
type: 'DELIVERY',
|
|
37
|
+
enabled: true,
|
|
38
|
+
settings: {
|
|
39
|
+
minOrderAmount: 1000, // 10 EUR in cents
|
|
40
|
+
deliveryRadius: 5000, // 5km in meters
|
|
41
|
+
estimatedDeliveryTime: 30 // minutes
|
|
42
|
+
}
|
|
43
|
+
}));
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Input Parameters:**
|
|
47
|
+
- `name: string` (required) - Sales mode name
|
|
48
|
+
- `pointOfSale: string` (required) - Point of sale IRI
|
|
49
|
+
- `type: string` (required) - Sales mode type
|
|
50
|
+
- `enabled: boolean` (required) - Enable/disable sales mode
|
|
51
|
+
- `settings?: object` (optional) - Mode-specific settings
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### GetSalesModes
|
|
56
|
+
```typescript
|
|
57
|
+
import { GetSalesModes } from '@deliverart/sdk-js-sales-mode';
|
|
58
|
+
|
|
59
|
+
const salesModes = await sdk.call(new GetSalesModes({
|
|
60
|
+
query: {
|
|
61
|
+
pointOfSale: '/point_of_sales/123',
|
|
62
|
+
enabled: true
|
|
63
|
+
}
|
|
64
|
+
}));
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Query Parameters:**
|
|
68
|
+
- `pointOfSale?: string` - Filter by point of sale
|
|
69
|
+
- `type?: string` - Filter by type
|
|
70
|
+
- `enabled?: boolean` - Filter by enabled status
|
|
71
|
+
- `page?: number` - Page number
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### GetSalesModeDetails
|
|
76
|
+
```typescript
|
|
77
|
+
import { GetSalesModeDetails } from '@deliverart/sdk-js-sales-mode';
|
|
78
|
+
|
|
79
|
+
const salesMode = await sdk.call(new GetSalesModeDetails('mode-123'));
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### UpdateSalesMode
|
|
85
|
+
```typescript
|
|
86
|
+
import { UpdateSalesMode } from '@deliverart/sdk-js-sales-mode';
|
|
87
|
+
|
|
88
|
+
const updated = await sdk.call(new UpdateSalesMode('mode-123', {
|
|
89
|
+
enabled: false,
|
|
90
|
+
settings: {
|
|
91
|
+
minOrderAmount: 1500
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### DeleteSalesMode
|
|
99
|
+
```typescript
|
|
100
|
+
import { DeleteSalesMode } from '@deliverart/sdk-js-sales-mode';
|
|
101
|
+
|
|
102
|
+
await sdk.call(new DeleteSalesMode('mode-123'));
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Complete Usage Example
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import { sdk } from './lib/sdk';
|
|
111
|
+
import {
|
|
112
|
+
CreateSalesMode,
|
|
113
|
+
GetSalesModes,
|
|
114
|
+
UpdateSalesMode
|
|
115
|
+
} from '@deliverart/sdk-js-sales-mode';
|
|
116
|
+
|
|
117
|
+
async function salesModeSetup() {
|
|
118
|
+
const posId = '/point_of_sales/123';
|
|
119
|
+
|
|
120
|
+
// Create delivery mode
|
|
121
|
+
const delivery = await sdk.call(new CreateSalesMode({
|
|
122
|
+
name: 'Delivery',
|
|
123
|
+
pointOfSale: posId,
|
|
124
|
+
type: 'DELIVERY',
|
|
125
|
+
enabled: true,
|
|
126
|
+
settings: {
|
|
127
|
+
minOrderAmount: 1000,
|
|
128
|
+
deliveryRadius: 5000,
|
|
129
|
+
estimatedDeliveryTime: 30,
|
|
130
|
+
deliveryFee: 300
|
|
131
|
+
}
|
|
132
|
+
}));
|
|
133
|
+
|
|
134
|
+
// Create takeaway mode
|
|
135
|
+
const takeaway = await sdk.call(new CreateSalesMode({
|
|
136
|
+
name: 'Takeaway',
|
|
137
|
+
pointOfSale: posId,
|
|
138
|
+
type: 'TAKEAWAY',
|
|
139
|
+
enabled: true,
|
|
140
|
+
settings: {
|
|
141
|
+
minOrderAmount: 500,
|
|
142
|
+
estimatedPreparationTime: 15
|
|
143
|
+
}
|
|
144
|
+
}));
|
|
145
|
+
|
|
146
|
+
// Get all active modes
|
|
147
|
+
const activeModes = await sdk.call(new GetSalesModes({
|
|
148
|
+
query: {
|
|
149
|
+
pointOfSale: posId,
|
|
150
|
+
enabled: true
|
|
151
|
+
}
|
|
152
|
+
}));
|
|
153
|
+
|
|
154
|
+
console.log(`Active sales modes: ${activeModes.data.length}`);
|
|
155
|
+
|
|
156
|
+
// Temporarily disable delivery
|
|
157
|
+
await sdk.call(new UpdateSalesMode(delivery.id, {
|
|
158
|
+
enabled: false
|
|
159
|
+
}));
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## License
|
|
164
|
+
|
|
165
|
+
MIT
|
|
166
|
+
# @deliverart/sdk-js-point-of-sale
|
|
167
|
+
|
|
168
|
+
Point of sale management package for the DeliverArt JavaScript SDK.
|
|
169
|
+
|
|
170
|
+
## Installation
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
npm install @deliverart/sdk-js-point-of-sale @deliverart/sdk-js-core
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Exported Types
|
|
177
|
+
|
|
178
|
+
### Core Types
|
|
179
|
+
- `PointOfSale` - Point of sale information
|
|
180
|
+
- `PointOfSaleDetails` - Extended POS with opening hours and settings
|
|
181
|
+
- `PointOfSaleUser` - User assigned to point of sale
|
|
182
|
+
- `OpeningTime` - Opening hours configuration
|
|
183
|
+
- `PointOfSaleTimeOverride` - Special hours (holidays, events)
|
|
184
|
+
|
|
185
|
+
### IRI Types
|
|
186
|
+
- `PointOfSaleIri` - Point of sale IRI (`/point_of_sales/:id`)
|
|
187
|
+
- `PointOfSaleUserIri` - POS user IRI (`/point_of_sale_users/:id`)
|
|
188
|
+
- `PointOfSaleTimeOverrideIri` - Time override IRI (`/point_of_sale_time_overrides/:id`)
|
|
189
|
+
|
|
190
|
+
## Available Requests
|
|
191
|
+
|
|
192
|
+
### Point of Sale Management
|
|
193
|
+
|
|
194
|
+
#### CreatePointOfSale
|
|
195
|
+
```typescript
|
|
196
|
+
import { CreatePointOfSale } from '@deliverart/sdk-js-point-of-sale';
|
|
197
|
+
|
|
198
|
+
const pos = await sdk.call(new CreatePointOfSale({
|
|
199
|
+
name: 'Main Restaurant',
|
|
200
|
+
company: '/companies/123',
|
|
201
|
+
address: {
|
|
202
|
+
street: 'Via Restaurant 1',
|
|
203
|
+
city: 'Milano',
|
|
204
|
+
postalCode: '20100',
|
|
205
|
+
country: 'IT',
|
|
206
|
+
location: {
|
|
207
|
+
latitude: 45.464664,
|
|
208
|
+
longitude: 9.188540
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
phoneNumber: '+39021234567',
|
|
212
|
+
email: 'info@restaurant.com',
|
|
213
|
+
openingTimes: [
|
|
214
|
+
{
|
|
215
|
+
dayOfWeek: 1, // Monday
|
|
216
|
+
openTime: '11:00',
|
|
217
|
+
closeTime: '23:00'
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
dayOfWeek: 2, // Tuesday
|
|
221
|
+
openTime: '11:00',
|
|
222
|
+
closeTime: '23:00'
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
enabled: true
|
|
226
|
+
}));
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Input Parameters:**
|
|
230
|
+
- `name: string` (required) - Point of sale name
|
|
231
|
+
- `company: string` (required) - Company IRI
|
|
232
|
+
- `address: Address` (required) - Location address
|
|
233
|
+
- `phoneNumber: string` (required) - Contact phone
|
|
234
|
+
- `email: string` (required) - Contact email
|
|
235
|
+
- `openingTimes: OpeningTime[]` (optional) - Weekly opening hours
|
|
236
|
+
- `enabled: boolean` (optional) - Enable/disable POS
|
|
237
|
+
- `settings?: object` (optional) - Additional settings
|
|
238
|
+
|
|
239
|
+
#### GetPointOfSales
|
|
240
|
+
```typescript
|
|
241
|
+
import { GetPointOfSales } from '@deliverart/sdk-js-point-of-sale';
|
|
242
|
+
|
|
243
|
+
const pointOfSales = await sdk.call(new GetPointOfSales({
|
|
244
|
+
query: {
|
|
245
|
+
company: '/companies/123',
|
|
246
|
+
enabled: true,
|
|
247
|
+
'address.city': 'Milano',
|
|
248
|
+
page: 1
|
|
249
|
+
}
|
|
250
|
+
}));
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Query Parameters:**
|
|
254
|
+
- `company?: string` - Filter by company
|
|
255
|
+
- `enabled?: boolean` - Filter by enabled status
|
|
256
|
+
- `address.city?: string` - Filter by city
|
|
257
|
+
- `address.postalCode?: string` - Filter by postal code
|
|
258
|
+
- `page?: number` - Page number
|
|
259
|
+
|
|
260
|
+
#### GetPointOfSaleDetails
|
|
261
|
+
```typescript
|
|
262
|
+
import { GetPointOfSaleDetails } from '@deliverart/sdk-js-point-of-sale';
|
|
263
|
+
|
|
264
|
+
const pos = await sdk.call(new GetPointOfSaleDetails('pos-123'));
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
#### UpdatePointOfSale
|
|
268
|
+
```typescript
|
|
269
|
+
import { UpdatePointOfSale } from '@deliverart/sdk-js-point-of-sale';
|
|
270
|
+
|
|
271
|
+
const updated = await sdk.call(new UpdatePointOfSale('pos-123', {
|
|
272
|
+
name: 'Updated Restaurant Name',
|
|
273
|
+
enabled: false
|
|
274
|
+
}));
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
#### DeletePointOfSale
|
|
278
|
+
```typescript
|
|
279
|
+
import { DeletePointOfSale } from '@deliverart/sdk-js-point-of-sale';
|
|
280
|
+
|
|
281
|
+
await sdk.call(new DeletePointOfSale('pos-123'));
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
### Point of Sale Users
|
|
287
|
+
|
|
288
|
+
#### CreatePointOfSaleUser
|
|
289
|
+
```typescript
|
|
290
|
+
import { CreatePointOfSaleUser } from '@deliverart/sdk-js-point-of-sale';
|
|
291
|
+
|
|
292
|
+
const posUser = await sdk.call(new CreatePointOfSaleUser({
|
|
293
|
+
pointOfSale: '/point_of_sales/123',
|
|
294
|
+
user: '/users/456',
|
|
295
|
+
role: 'MANAGER'
|
|
296
|
+
}));
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Input Parameters:**
|
|
300
|
+
- `pointOfSale: string` (required) - Point of sale IRI
|
|
301
|
+
- `user: string` (required) - User IRI
|
|
302
|
+
- `role: string` (required) - Role (e.g., 'MANAGER', 'STAFF', 'DRIVER')
|
|
303
|
+
|
|
304
|
+
#### GetPointOfSaleUsers
|
|
305
|
+
```typescript
|
|
306
|
+
import { GetPointOfSaleUsers } from '@deliverart/sdk-js-point-of-sale';
|
|
307
|
+
|
|
308
|
+
const users = await sdk.call(new GetPointOfSaleUsers({
|
|
309
|
+
query: {
|
|
310
|
+
pointOfSale: '/point_of_sales/123',
|
|
311
|
+
role: 'MANAGER'
|
|
312
|
+
}
|
|
313
|
+
}));
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
### Time Overrides (Special Hours)
|
|
319
|
+
|
|
320
|
+
#### CreatePointOfSaleTimeOverride
|
|
321
|
+
```typescript
|
|
322
|
+
import { CreatePointOfSaleTimeOverride } from '@deliverart/sdk-js-point-of-sale';
|
|
323
|
+
|
|
324
|
+
const override = await sdk.call(new CreatePointOfSaleTimeOverride({
|
|
325
|
+
pointOfSale: '/point_of_sales/123',
|
|
326
|
+
date: '2024-12-25', // Christmas
|
|
327
|
+
openTime: null, // Closed
|
|
328
|
+
closeTime: null,
|
|
329
|
+
reason: 'Christmas Day - Closed'
|
|
330
|
+
}));
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**Input Parameters:**
|
|
334
|
+
- `pointOfSale: string` (required) - Point of sale IRI
|
|
335
|
+
- `date: string` (required) - Date (YYYY-MM-DD)
|
|
336
|
+
- `openTime: string | null` (required) - Opening time or null if closed
|
|
337
|
+
- `closeTime: string | null` (required) - Closing time or null if closed
|
|
338
|
+
- `reason?: string` (optional) - Override reason
|
|
339
|
+
|
|
340
|
+
#### GetPointOfSaleTimeOverrides
|
|
341
|
+
```typescript
|
|
342
|
+
import { GetPointOfSaleTimeOverrides } from '@deliverart/sdk-js-point-of-sale';
|
|
343
|
+
|
|
344
|
+
const overrides = await sdk.call(new GetPointOfSaleTimeOverrides({
|
|
345
|
+
query: {
|
|
346
|
+
pointOfSale: '/point_of_sales/123',
|
|
347
|
+
'date[after]': '2024-12-01',
|
|
348
|
+
'date[before]': '2024-12-31'
|
|
349
|
+
}
|
|
350
|
+
}));
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## Complete Usage Example
|
|
356
|
+
|
|
357
|
+
```typescript
|
|
358
|
+
import { sdk } from './lib/sdk';
|
|
359
|
+
import {
|
|
360
|
+
CreatePointOfSale,
|
|
361
|
+
CreatePointOfSaleUser,
|
|
362
|
+
CreatePointOfSaleTimeOverride,
|
|
363
|
+
UpdatePointOfSale
|
|
364
|
+
} from '@deliverart/sdk-js-point-of-sale';
|
|
365
|
+
|
|
366
|
+
async function setupPointOfSale() {
|
|
367
|
+
// Create point of sale
|
|
368
|
+
const pos = await sdk.call(new CreatePointOfSale({
|
|
369
|
+
name: 'Pizzeria da Mario',
|
|
370
|
+
company: '/companies/123',
|
|
371
|
+
address: {
|
|
372
|
+
street: 'Via Napoli 10',
|
|
373
|
+
city: 'Milano',
|
|
374
|
+
postalCode: '20100',
|
|
375
|
+
country: 'IT',
|
|
376
|
+
location: {
|
|
377
|
+
latitude: 45.464664,
|
|
378
|
+
longitude: 9.188540
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
phoneNumber: '+39021234567',
|
|
382
|
+
email: 'info@damario.com',
|
|
383
|
+
openingTimes: [
|
|
384
|
+
{ dayOfWeek: 1, openTime: '11:00', closeTime: '23:00' },
|
|
385
|
+
{ dayOfWeek: 2, openTime: '11:00', closeTime: '23:00' },
|
|
386
|
+
{ dayOfWeek: 3, openTime: '11:00', closeTime: '23:00' },
|
|
387
|
+
{ dayOfWeek: 4, openTime: '11:00', closeTime: '23:00' },
|
|
388
|
+
{ dayOfWeek: 5, openTime: '11:00', closeTime: '23:30' },
|
|
389
|
+
{ dayOfWeek: 6, openTime: '11:00', closeTime: '23:30' },
|
|
390
|
+
{ dayOfWeek: 0, openTime: '12:00', closeTime: '22:00' }
|
|
391
|
+
],
|
|
392
|
+
enabled: true
|
|
393
|
+
}));
|
|
394
|
+
|
|
395
|
+
// Assign manager
|
|
396
|
+
await sdk.call(new CreatePointOfSaleUser({
|
|
397
|
+
pointOfSale: `/point_of_sales/${pos.id}`,
|
|
398
|
+
user: '/users/456',
|
|
399
|
+
role: 'MANAGER'
|
|
400
|
+
}));
|
|
401
|
+
|
|
402
|
+
// Add holiday closure
|
|
403
|
+
await sdk.call(new CreatePointOfSaleTimeOverride({
|
|
404
|
+
pointOfSale: `/point_of_sales/${pos.id}`,
|
|
405
|
+
date: '2024-12-25',
|
|
406
|
+
openTime: null,
|
|
407
|
+
closeTime: null,
|
|
408
|
+
reason: 'Christmas Day'
|
|
409
|
+
}));
|
|
410
|
+
|
|
411
|
+
// Temporarily disable
|
|
412
|
+
await sdk.call(new UpdatePointOfSale(pos.id, {
|
|
413
|
+
enabled: false
|
|
414
|
+
}));
|
|
415
|
+
}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
## License
|
|
419
|
+
|
|
420
|
+
MIT
|
|
421
|
+
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deliverart/sdk-js-sales-mode",
|
|
3
3
|
"description": "Deliverart JavaScript SDK for Sales Modes Management",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.51",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"dist"
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@deliverart/sdk-js-core": "2.1.
|
|
22
|
-
"@deliverart/sdk-js-global-types": "2.1.
|
|
23
|
-
"@deliverart/sdk-js-point-of-sale": "2.1.
|
|
21
|
+
"@deliverart/sdk-js-core": "2.1.51",
|
|
22
|
+
"@deliverart/sdk-js-global-types": "2.1.51",
|
|
23
|
+
"@deliverart/sdk-js-point-of-sale": "2.1.51"
|
|
24
24
|
},
|
|
25
25
|
"publishConfig": {
|
|
26
26
|
"access": "public"
|