@deliverart/sdk-js-delivery 2.1.50 → 2.1.52
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 +585 -0
- package/package.json +6 -6
package/README.md
ADDED
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
# @deliverart/sdk-js-delivery
|
|
2
|
+
|
|
3
|
+
Delivery management package for the DeliverArt JavaScript SDK.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @deliverart/sdk-js-delivery @deliverart/sdk-js-core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Exported Types
|
|
12
|
+
|
|
13
|
+
### Core Types
|
|
14
|
+
- `Delivery` - Delivery information
|
|
15
|
+
- `DeliveryDetails` - Extended delivery with order and driver
|
|
16
|
+
- `DeliveryPosition` - GPS tracking position
|
|
17
|
+
- `DeliveryFee` - Delivery fee configuration
|
|
18
|
+
- `DeliveryStatus` - Delivery status
|
|
19
|
+
|
|
20
|
+
### Delivery Status Types
|
|
21
|
+
```typescript
|
|
22
|
+
type DeliveryStatus =
|
|
23
|
+
| 'PENDING'
|
|
24
|
+
| 'ASSIGNED'
|
|
25
|
+
| 'PICKING_UP'
|
|
26
|
+
| 'IN_TRANSIT'
|
|
27
|
+
| 'DELIVERED'
|
|
28
|
+
| 'FAILED'
|
|
29
|
+
| 'CANCELLED'
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### IRI Types
|
|
33
|
+
- `DeliveryIri` - Delivery IRI (`/deliveries/:id`)
|
|
34
|
+
- `DeliveryPositionIri` - Position IRI (`/delivery_positions/:id`)
|
|
35
|
+
- `DeliveryFeeIri` - Fee IRI (`/delivery_fees/:id`)
|
|
36
|
+
|
|
37
|
+
## Available Requests
|
|
38
|
+
|
|
39
|
+
### Deliveries
|
|
40
|
+
|
|
41
|
+
#### CreateDelivery
|
|
42
|
+
```typescript
|
|
43
|
+
import { CreateDelivery } from '@deliverart/sdk-js-delivery';
|
|
44
|
+
|
|
45
|
+
const delivery = await sdk.call(new CreateDelivery({
|
|
46
|
+
order: '/orders/123',
|
|
47
|
+
driver: '/users/456',
|
|
48
|
+
pickupAddress: {
|
|
49
|
+
street: 'Via Restaurant 1',
|
|
50
|
+
city: 'Milano',
|
|
51
|
+
postalCode: '20100',
|
|
52
|
+
country: 'IT',
|
|
53
|
+
location: {
|
|
54
|
+
latitude: 45.464664,
|
|
55
|
+
longitude: 9.188540
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
deliveryAddress: {
|
|
59
|
+
street: 'Via Customer 10',
|
|
60
|
+
city: 'Milano',
|
|
61
|
+
postalCode: '20100',
|
|
62
|
+
country: 'IT',
|
|
63
|
+
location: {
|
|
64
|
+
latitude: 45.478664,
|
|
65
|
+
longitude: 9.201540
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
estimatedPickupTime: '2024-12-25T19:00:00+00:00',
|
|
69
|
+
estimatedDeliveryTime: '2024-12-25T19:30:00+00:00'
|
|
70
|
+
}));
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Input Parameters:**
|
|
74
|
+
- `order: string` (required) - Order IRI
|
|
75
|
+
- `driver?: string` (optional) - Driver user IRI
|
|
76
|
+
- `pickupAddress: Address` (required) - Restaurant/pickup address
|
|
77
|
+
- `deliveryAddress: Address` (required) - Customer delivery address
|
|
78
|
+
- `estimatedPickupTime?: string` (optional) - Estimated pickup time (ISO 8601)
|
|
79
|
+
- `estimatedDeliveryTime?: string` (optional) - Estimated delivery time (ISO 8601)
|
|
80
|
+
- `distance?: number` (optional) - Distance in meters
|
|
81
|
+
- `fee?: number` (optional) - Delivery fee in cents
|
|
82
|
+
|
|
83
|
+
#### GetDeliveries
|
|
84
|
+
```typescript
|
|
85
|
+
import { GetDeliveries } from '@deliverart/sdk-js-delivery';
|
|
86
|
+
|
|
87
|
+
const deliveries = await sdk.call(new GetDeliveries({
|
|
88
|
+
query: {
|
|
89
|
+
'status[]': ['IN_TRANSIT', 'ASSIGNED'],
|
|
90
|
+
driver: '/users/456',
|
|
91
|
+
'order[estimatedDeliveryTime]': 'asc',
|
|
92
|
+
page: 1
|
|
93
|
+
}
|
|
94
|
+
}));
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Query Parameters:**
|
|
98
|
+
- `order?: string` - Filter by order
|
|
99
|
+
- `driver?: string` - Filter by driver
|
|
100
|
+
- `status[]?: DeliveryStatus[]` - Filter by statuses
|
|
101
|
+
- `createdAt[before]?: string` - Created before date
|
|
102
|
+
- `createdAt[after]?: string` - Created after date
|
|
103
|
+
- `order[estimatedDeliveryTime]?: 'asc' | 'desc'` - Sort by delivery time
|
|
104
|
+
- `page?: number` - Page number
|
|
105
|
+
|
|
106
|
+
#### GetDeliveryDetails
|
|
107
|
+
```typescript
|
|
108
|
+
import { GetDeliveryDetails } from '@deliverart/sdk-js-delivery';
|
|
109
|
+
|
|
110
|
+
const delivery = await sdk.call(new GetDeliveryDetails('delivery-123'));
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
#### UpdateDelivery
|
|
114
|
+
```typescript
|
|
115
|
+
import { UpdateDelivery } from '@deliverart/sdk-js-delivery';
|
|
116
|
+
|
|
117
|
+
const updated = await sdk.call(new UpdateDelivery('delivery-123', {
|
|
118
|
+
status: 'IN_TRANSIT',
|
|
119
|
+
actualPickupTime: '2024-12-25T19:05:00+00:00'
|
|
120
|
+
}));
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### Delivery Positions (GPS Tracking)
|
|
126
|
+
|
|
127
|
+
#### CreateDeliveryPosition
|
|
128
|
+
```typescript
|
|
129
|
+
import { CreateDeliveryPosition } from '@deliverart/sdk-js-delivery';
|
|
130
|
+
|
|
131
|
+
const position = await sdk.call(new CreateDeliveryPosition({
|
|
132
|
+
delivery: '/deliveries/123',
|
|
133
|
+
latitude: 45.470664,
|
|
134
|
+
longitude: 9.195540,
|
|
135
|
+
accuracy: 10,
|
|
136
|
+
heading: 45,
|
|
137
|
+
speed: 15
|
|
138
|
+
}));
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Input Parameters:**
|
|
142
|
+
- `delivery: string` (required) - Delivery IRI
|
|
143
|
+
- `latitude: number` (required) - GPS latitude
|
|
144
|
+
- `longitude: number` (required) - GPS longitude
|
|
145
|
+
- `accuracy?: number` (optional) - Position accuracy in meters
|
|
146
|
+
- `heading?: number` (optional) - Direction in degrees (0-360)
|
|
147
|
+
- `speed?: number` (optional) - Speed in km/h
|
|
148
|
+
|
|
149
|
+
#### GetDeliveryPositions
|
|
150
|
+
```typescript
|
|
151
|
+
import { GetDeliveryPositions } from '@deliverart/sdk-js-delivery';
|
|
152
|
+
|
|
153
|
+
const positions = await sdk.call(new GetDeliveryPositions({
|
|
154
|
+
query: {
|
|
155
|
+
delivery: '/deliveries/123',
|
|
156
|
+
'order[createdAt]': 'asc'
|
|
157
|
+
}
|
|
158
|
+
}));
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### Delivery Fees
|
|
164
|
+
|
|
165
|
+
#### CreateDeliveryFee
|
|
166
|
+
```typescript
|
|
167
|
+
import { CreateDeliveryFee } from '@deliverart/sdk-js-delivery';
|
|
168
|
+
|
|
169
|
+
const fee = await sdk.call(new CreateDeliveryFee({
|
|
170
|
+
pointOfSale: '/point_of_sales/123',
|
|
171
|
+
minDistance: 0,
|
|
172
|
+
maxDistance: 5000, // 5km in meters
|
|
173
|
+
baseFee: 300, // 3 EUR in cents
|
|
174
|
+
perKmFee: 50 // 0.50 EUR per km
|
|
175
|
+
}));
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
#### GetDeliveryFees
|
|
179
|
+
```typescript
|
|
180
|
+
import { GetDeliveryFees } from '@deliverart/sdk-js-delivery';
|
|
181
|
+
|
|
182
|
+
const fees = await sdk.call(new GetDeliveryFees({
|
|
183
|
+
query: {
|
|
184
|
+
pointOfSale: '/point_of_sales/123'
|
|
185
|
+
}
|
|
186
|
+
}));
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Complete Usage Example
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
import { sdk } from './lib/sdk';
|
|
195
|
+
import {
|
|
196
|
+
CreateDelivery,
|
|
197
|
+
UpdateDelivery,
|
|
198
|
+
CreateDeliveryPosition,
|
|
199
|
+
GetDeliveries
|
|
200
|
+
} from '@deliverart/sdk-js-delivery';
|
|
201
|
+
|
|
202
|
+
async function deliveryWorkflow() {
|
|
203
|
+
// Create delivery
|
|
204
|
+
const delivery = await sdk.call(new CreateDelivery({
|
|
205
|
+
order: '/orders/123',
|
|
206
|
+
driver: '/users/456',
|
|
207
|
+
pickupAddress: {
|
|
208
|
+
street: 'Via Restaurant 1',
|
|
209
|
+
city: 'Milano',
|
|
210
|
+
postalCode: '20100',
|
|
211
|
+
country: 'IT',
|
|
212
|
+
location: { latitude: 45.464664, longitude: 9.188540 }
|
|
213
|
+
},
|
|
214
|
+
deliveryAddress: {
|
|
215
|
+
street: 'Via Customer 10',
|
|
216
|
+
city: 'Milano',
|
|
217
|
+
postalCode: '20100',
|
|
218
|
+
country: 'IT',
|
|
219
|
+
location: { latitude: 45.478664, longitude: 9.201540 }
|
|
220
|
+
}
|
|
221
|
+
}));
|
|
222
|
+
|
|
223
|
+
// Driver picks up order
|
|
224
|
+
await sdk.call(new UpdateDelivery(delivery.id, {
|
|
225
|
+
status: 'PICKING_UP',
|
|
226
|
+
actualPickupTime: new Date().toISOString()
|
|
227
|
+
}));
|
|
228
|
+
|
|
229
|
+
// Driver starts delivery
|
|
230
|
+
await sdk.call(new UpdateDelivery(delivery.id, {
|
|
231
|
+
status: 'IN_TRANSIT'
|
|
232
|
+
}));
|
|
233
|
+
|
|
234
|
+
// Track position
|
|
235
|
+
await sdk.call(new CreateDeliveryPosition({
|
|
236
|
+
delivery: `/deliveries/${delivery.id}`,
|
|
237
|
+
latitude: 45.470664,
|
|
238
|
+
longitude: 9.195540,
|
|
239
|
+
speed: 25,
|
|
240
|
+
heading: 90
|
|
241
|
+
}));
|
|
242
|
+
|
|
243
|
+
// Complete delivery
|
|
244
|
+
await sdk.call(new UpdateDelivery(delivery.id, {
|
|
245
|
+
status: 'DELIVERED',
|
|
246
|
+
actualDeliveryTime: new Date().toISOString()
|
|
247
|
+
}));
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## License
|
|
252
|
+
|
|
253
|
+
MIT
|
|
254
|
+
# @deliverart/sdk-js-menu
|
|
255
|
+
|
|
256
|
+
Menu and menu items management package for the DeliverArt JavaScript SDK.
|
|
257
|
+
|
|
258
|
+
## Installation
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
npm install @deliverart/sdk-js-menu @deliverart/sdk-js-core
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Exported Types
|
|
265
|
+
|
|
266
|
+
### Core Types
|
|
267
|
+
- `MenuItem` - Menu item basic information
|
|
268
|
+
- `MenuItemDetails` - Extended menu item with variants and modifiers
|
|
269
|
+
- `MenuItemCategory` - Menu item category
|
|
270
|
+
- `MenuItemModifier` - Item modifier (e.g., extra cheese, no onions)
|
|
271
|
+
- `MenuItemPriceOverride` - Price variant for menu items
|
|
272
|
+
- `MenuVersion` - Menu version for point of sale
|
|
273
|
+
|
|
274
|
+
### IRI Types
|
|
275
|
+
- `MenuItemIri` - Menu item IRI (`/menu_items/:id`)
|
|
276
|
+
- `MenuItemCategoryIri` - Category IRI (`/menu_item_categories/:id`)
|
|
277
|
+
- `MenuItemModifierIri` - Modifier IRI (`/menu_item_modifiers/:id`)
|
|
278
|
+
- `MenuItemPriceOverrideIri` - Price override IRI (`/menu_item_price_overrides/:id`)
|
|
279
|
+
- `MenuVersionIri` - Menu version IRI (`/menu_versions/:id`)
|
|
280
|
+
|
|
281
|
+
## Available Requests
|
|
282
|
+
|
|
283
|
+
### Menu Items
|
|
284
|
+
|
|
285
|
+
#### CreateMenuItem
|
|
286
|
+
```typescript
|
|
287
|
+
import { CreateMenuItem } from '@deliverart/sdk-js-menu';
|
|
288
|
+
|
|
289
|
+
const item = await sdk.call(new CreateMenuItem({
|
|
290
|
+
name: [
|
|
291
|
+
{ locale: 'it_IT', text: 'Margherita' },
|
|
292
|
+
{ locale: 'en_US', text: 'Margherita' }
|
|
293
|
+
],
|
|
294
|
+
description: [
|
|
295
|
+
{ locale: 'it_IT', text: 'Pizza con pomodoro e mozzarella' },
|
|
296
|
+
{ locale: 'en_US', text: 'Pizza with tomato and mozzarella' }
|
|
297
|
+
],
|
|
298
|
+
type: 'PIZZA',
|
|
299
|
+
category: '/menu_item_categories/123',
|
|
300
|
+
company: '/companies/456',
|
|
301
|
+
price: 850, // In cents
|
|
302
|
+
taxRate: 10,
|
|
303
|
+
available: true
|
|
304
|
+
}));
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
**Input Parameters:**
|
|
308
|
+
- `name: LocaleItem[]` (required) - Localized names
|
|
309
|
+
- `description: LocaleItem[]` (optional) - Localized descriptions
|
|
310
|
+
- `type: string` (required) - Item type (e.g., 'PIZZA', 'PASTA', 'DRINK')
|
|
311
|
+
- `category: string` (required) - Category IRI
|
|
312
|
+
- `company: string` (required) - Company IRI
|
|
313
|
+
- `price: number` (required) - Base price in cents
|
|
314
|
+
- `taxRate: number` (required) - Tax rate percentage
|
|
315
|
+
- `available: boolean` (optional) - Availability status
|
|
316
|
+
- `image?: string` (optional) - Image IRI
|
|
317
|
+
|
|
318
|
+
#### GetMenuItems
|
|
319
|
+
```typescript
|
|
320
|
+
import { GetMenuItems } from '@deliverart/sdk-js-menu';
|
|
321
|
+
|
|
322
|
+
const items = await sdk.call(new GetMenuItems({
|
|
323
|
+
query: {
|
|
324
|
+
company: '/companies/123',
|
|
325
|
+
category: '/menu_item_categories/456',
|
|
326
|
+
available: true,
|
|
327
|
+
'order[name]': 'asc',
|
|
328
|
+
page: 1
|
|
329
|
+
}
|
|
330
|
+
}));
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**Query Parameters:**
|
|
334
|
+
- `company?: string` - Filter by company
|
|
335
|
+
- `category?: string` - Filter by category
|
|
336
|
+
- `type?: string` - Filter by type
|
|
337
|
+
- `available?: boolean` - Filter by availability
|
|
338
|
+
- `order[name]?: 'asc' | 'desc'` - Sort by name
|
|
339
|
+
- `order[price]?: 'asc' | 'desc'` - Sort by price
|
|
340
|
+
- `page?: number` - Page number
|
|
341
|
+
|
|
342
|
+
#### GetMenuItemDetails
|
|
343
|
+
```typescript
|
|
344
|
+
import { GetMenuItemDetails } from '@deliverart/sdk-js-menu';
|
|
345
|
+
|
|
346
|
+
const item = await sdk.call(new GetMenuItemDetails('item-123'));
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
#### UpdateMenuItem
|
|
350
|
+
```typescript
|
|
351
|
+
import { UpdateMenuItem } from '@deliverart/sdk-js-menu';
|
|
352
|
+
|
|
353
|
+
const updated = await sdk.call(new UpdateMenuItem('item-123', {
|
|
354
|
+
price: 900,
|
|
355
|
+
available: false
|
|
356
|
+
}));
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
#### DeleteMenuItem
|
|
360
|
+
```typescript
|
|
361
|
+
import { DeleteMenuItem } from '@deliverart/sdk-js-menu';
|
|
362
|
+
|
|
363
|
+
await sdk.call(new DeleteMenuItem('item-123'));
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
### Menu Item Categories
|
|
369
|
+
|
|
370
|
+
#### CreateMenuItemCategory
|
|
371
|
+
```typescript
|
|
372
|
+
import { CreateMenuItemCategory } from '@deliverart/sdk-js-menu';
|
|
373
|
+
|
|
374
|
+
const category = await sdk.call(new CreateMenuItemCategory({
|
|
375
|
+
name: [
|
|
376
|
+
{ locale: 'it_IT', text: 'Pizze' },
|
|
377
|
+
{ locale: 'en_US', text: 'Pizzas' }
|
|
378
|
+
],
|
|
379
|
+
company: '/companies/123',
|
|
380
|
+
position: 1
|
|
381
|
+
}));
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
#### GetMenuItemCategories
|
|
385
|
+
```typescript
|
|
386
|
+
import { GetMenuItemCategories } from '@deliverart/sdk-js-menu';
|
|
387
|
+
|
|
388
|
+
const categories = await sdk.call(new GetMenuItemCategories({
|
|
389
|
+
query: {
|
|
390
|
+
company: '/companies/123',
|
|
391
|
+
'order[position]': 'asc'
|
|
392
|
+
}
|
|
393
|
+
}));
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
#### UpdateMenuItemCategory
|
|
397
|
+
```typescript
|
|
398
|
+
import { UpdateMenuItemCategory } from '@deliverart/sdk-js-menu';
|
|
399
|
+
|
|
400
|
+
const updated = await sdk.call(new UpdateMenuItemCategory('category-123', {
|
|
401
|
+
position: 2
|
|
402
|
+
}));
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
#### DeleteMenuItemCategory
|
|
406
|
+
```typescript
|
|
407
|
+
import { DeleteMenuItemCategory } from '@deliverart/sdk-js-menu';
|
|
408
|
+
|
|
409
|
+
await sdk.call(new DeleteMenuItemCategory('category-123'));
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
### Menu Item Modifiers
|
|
415
|
+
|
|
416
|
+
#### CreateMenuItemModifier
|
|
417
|
+
```typescript
|
|
418
|
+
import { CreateMenuItemModifier } from '@deliverart/sdk-js-menu';
|
|
419
|
+
|
|
420
|
+
const modifier = await sdk.call(new CreateMenuItemModifier({
|
|
421
|
+
name: [
|
|
422
|
+
{ locale: 'it_IT', text: 'Mozzarella extra' },
|
|
423
|
+
{ locale: 'en_US', text: 'Extra mozzarella' }
|
|
424
|
+
],
|
|
425
|
+
company: '/companies/123',
|
|
426
|
+
price: 150, // In cents
|
|
427
|
+
taxRate: 10,
|
|
428
|
+
available: true
|
|
429
|
+
}));
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
#### GetMenuItemModifiers
|
|
433
|
+
```typescript
|
|
434
|
+
import { GetMenuItemModifiers } from '@deliverart/sdk-js-menu';
|
|
435
|
+
|
|
436
|
+
const modifiers = await sdk.call(new GetMenuItemModifiers({
|
|
437
|
+
query: {
|
|
438
|
+
company: '/companies/123',
|
|
439
|
+
available: true
|
|
440
|
+
}
|
|
441
|
+
}));
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
### Menu Item Price Overrides (Variants)
|
|
447
|
+
|
|
448
|
+
#### CreateMenuItemPriceOverride
|
|
449
|
+
```typescript
|
|
450
|
+
import { CreateMenuItemPriceOverride } from '@deliverart/sdk-js-menu';
|
|
451
|
+
|
|
452
|
+
const variant = await sdk.call(new CreateMenuItemPriceOverride({
|
|
453
|
+
menuItem: '/menu_items/123',
|
|
454
|
+
name: [
|
|
455
|
+
{ locale: 'it_IT', text: 'Grande' },
|
|
456
|
+
{ locale: 'en_US', text: 'Large' }
|
|
457
|
+
],
|
|
458
|
+
price: 1200,
|
|
459
|
+
available: true
|
|
460
|
+
}));
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
#### GetMenuItemPriceOverrides
|
|
464
|
+
```typescript
|
|
465
|
+
import { GetMenuItemPriceOverrides } from '@deliverart/sdk-js-menu';
|
|
466
|
+
|
|
467
|
+
const variants = await sdk.call(new GetMenuItemPriceOverrides({
|
|
468
|
+
query: {
|
|
469
|
+
menuItem: '/menu_items/123'
|
|
470
|
+
}
|
|
471
|
+
}));
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
### Menu Versions
|
|
477
|
+
|
|
478
|
+
Menu versions allow you to assign different menus to different sales modes or points of sale.
|
|
479
|
+
|
|
480
|
+
#### CreateMenuVersion
|
|
481
|
+
```typescript
|
|
482
|
+
import { CreateMenuVersion } from '@deliverart/sdk-js-menu';
|
|
483
|
+
|
|
484
|
+
const version = await sdk.call(new CreateMenuVersion({
|
|
485
|
+
name: 'Delivery Menu',
|
|
486
|
+
pointOfSale: '/point_of_sales/123',
|
|
487
|
+
salesMode: '/sales_modes/456',
|
|
488
|
+
items: [
|
|
489
|
+
'/menu_items/1',
|
|
490
|
+
'/menu_items/2',
|
|
491
|
+
'/menu_items/3'
|
|
492
|
+
]
|
|
493
|
+
}));
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
#### GetMenuVersions
|
|
497
|
+
```typescript
|
|
498
|
+
import { GetMenuVersions } from '@deliverart/sdk-js-menu';
|
|
499
|
+
|
|
500
|
+
const versions = await sdk.call(new GetMenuVersions({
|
|
501
|
+
query: {
|
|
502
|
+
pointOfSale: '/point_of_sales/123'
|
|
503
|
+
}
|
|
504
|
+
}));
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
509
|
+
## Complete Usage Example
|
|
510
|
+
|
|
511
|
+
```typescript
|
|
512
|
+
import { sdk } from './lib/sdk';
|
|
513
|
+
import {
|
|
514
|
+
CreateMenuItemCategory,
|
|
515
|
+
CreateMenuItem,
|
|
516
|
+
CreateMenuItemModifier,
|
|
517
|
+
CreateMenuItemPriceOverride,
|
|
518
|
+
GetMenuItems
|
|
519
|
+
} from '@deliverart/sdk-js-menu';
|
|
520
|
+
|
|
521
|
+
async function setupMenu() {
|
|
522
|
+
// Create category
|
|
523
|
+
const category = await sdk.call(new CreateMenuItemCategory({
|
|
524
|
+
name: [
|
|
525
|
+
{ locale: 'it_IT', text: 'Pizze' },
|
|
526
|
+
{ locale: 'en_US', text: 'Pizzas' }
|
|
527
|
+
],
|
|
528
|
+
company: '/companies/123',
|
|
529
|
+
position: 1
|
|
530
|
+
}));
|
|
531
|
+
|
|
532
|
+
// Create menu item
|
|
533
|
+
const pizza = await sdk.call(new CreateMenuItem({
|
|
534
|
+
name: [
|
|
535
|
+
{ locale: 'it_IT', text: 'Margherita' },
|
|
536
|
+
{ locale: 'en_US', text: 'Margherita' }
|
|
537
|
+
],
|
|
538
|
+
description: [
|
|
539
|
+
{ locale: 'it_IT', text: 'Pomodoro e mozzarella' }
|
|
540
|
+
],
|
|
541
|
+
type: 'PIZZA',
|
|
542
|
+
category: `/menu_item_categories/${category.id}`,
|
|
543
|
+
company: '/companies/123',
|
|
544
|
+
price: 850,
|
|
545
|
+
taxRate: 10,
|
|
546
|
+
available: true
|
|
547
|
+
}));
|
|
548
|
+
|
|
549
|
+
// Create modifier
|
|
550
|
+
const modifier = await sdk.call(new CreateMenuItemModifier({
|
|
551
|
+
name: [
|
|
552
|
+
{ locale: 'it_IT', text: 'Mozzarella extra' }
|
|
553
|
+
],
|
|
554
|
+
company: '/companies/123',
|
|
555
|
+
price: 150,
|
|
556
|
+
taxRate: 10,
|
|
557
|
+
available: true
|
|
558
|
+
}));
|
|
559
|
+
|
|
560
|
+
// Create size variant
|
|
561
|
+
const largeVariant = await sdk.call(new CreateMenuItemPriceOverride({
|
|
562
|
+
menuItem: `/menu_items/${pizza.id}`,
|
|
563
|
+
name: [
|
|
564
|
+
{ locale: 'it_IT', text: 'Grande' }
|
|
565
|
+
],
|
|
566
|
+
price: 1200,
|
|
567
|
+
available: true
|
|
568
|
+
}));
|
|
569
|
+
|
|
570
|
+
// Get all pizzas
|
|
571
|
+
const pizzas = await sdk.call(new GetMenuItems({
|
|
572
|
+
query: {
|
|
573
|
+
category: `/menu_item_categories/${category.id}`,
|
|
574
|
+
available: true
|
|
575
|
+
}
|
|
576
|
+
}));
|
|
577
|
+
|
|
578
|
+
console.log(`Found ${pizzas.pagination.totalItems} pizzas`);
|
|
579
|
+
}
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
## License
|
|
583
|
+
|
|
584
|
+
MIT
|
|
585
|
+
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deliverart/sdk-js-delivery",
|
|
3
3
|
"description": "Deliverart JavaScript SDK for Delivery Management",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.52",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
"dist"
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@deliverart/sdk-js-
|
|
22
|
-
"@deliverart/sdk-js-global-types": "2.1.
|
|
23
|
-
"@deliverart/sdk-js-
|
|
24
|
-
"@deliverart/sdk-js-
|
|
25
|
-
"@deliverart/sdk-js-
|
|
21
|
+
"@deliverart/sdk-js-core": "2.1.52",
|
|
22
|
+
"@deliverart/sdk-js-global-types": "2.1.52",
|
|
23
|
+
"@deliverart/sdk-js-order": "2.1.52",
|
|
24
|
+
"@deliverart/sdk-js-user": "2.1.52",
|
|
25
|
+
"@deliverart/sdk-js-point-of-sale": "2.1.52"
|
|
26
26
|
},
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"access": "public"
|