ADMIN_CONSOLE_MANIFEST
Changed on:
24 Oct 2023
Setting Area | UI component |
---|---|
Supported context levels: | ACCOUNT |
Overview
This setting manages the Fluent Admin Console. The setting contains all the labels required to display and customize the Admin Console. To support languages other than English users can enter the labels directly into the configuration of their preferred language. Alternatively, they can create a language key and add the translation in more than one language setting files.
Values
Data Type | Values |
---|---|
JSON | Please talk to your Fluent Consultant for more details. |
Configuration example
1PUT {{fluentApiHost}}/api/v4.1/settings/account/{{fluentAccountId}}/ADMIN_CONSOLE_MANIFEST
2
3{
4 "setting": {
5 "key": "ADMIN_CONSOLE_MANIFEST",
6 "value":
7 {
8 "homePath": "orders",
9 "flags": {
10 "ORDER_MUTATION_ON_ORDER_SCREEN": false
11 },
12 "activityTemplates": [
13 {
14 "trigger": {
15 "type": "ORCHESTRATION_AUDIT",
16 "name": "Change State"
17 },
18 "priority": 100,
19 "template": "{{humanify context.entityType}} (ID: {{context.entityId}}) moved to {{attributes.toStatus}} status"
20 },
21 {
22 "trigger": {
23 "type": "ORCHESTRATION",
24 "name": "SendInitiateFullCancel"
25 },
26 "priority": 60,
27 "template": "Full cancellation initiated for {{humanify context.entityType}} {{context.entityRef}}"
28 }
29 ],
30 "modules": [
31 {
32 "menu": "i18n:fc.om.nav",
33 "menuLabel": "i18n:fc.om.nav",
34 "icon": "shopping_cart",
35 "permissions": [
36 "ORDER_VIEW",
37 "CUSTOMER_VIEW",
38 "RETURNORDER_VIEW"
39 ],
40 "routes": [
41 {
42 "path": "orders",
43 "component": "shared.components.material.DynamicPage",
44 "menuLabel": "i18n:fc.om.orders.index.nav",
45 "menuIcon": "library_books",
46 "permissions": [
47 "ORDER_VIEW"
48 ],
49 "params": {
50 "graphql": {
51 "query": " query($ref: [String], $status: [String], $type:[String!]) { orders(ref: $ref, status:$status, type:$type){ edges{ node{ ...Listing } } } }"
52 },
53 "title": "i18n:fc.om.orders.index.title",
54 "primaryButtons": [
55 {
56 "label": "i18n:fc.om.orders.index.userAction.newBlankOrder",
57 "mutation": "createOrder"
58 }
59 ],
60 "layouts": [
61 {
62 "component": "shared.components.material.DynamicFilter",
63 "params": {
64 "label": "i18n:fc.om.orders.index.filter.placeholder",
65 "fields": [
66 {
67 "field": "ref",
68 "label": "i18n:fc.om.orders.index.filter.field.orderRef.label"
69 },
70 {
71 "field": "status",
72 "label": "i18n:fc.om.orders.index.filter.field.orderStatus.label"
73 },
74 {
75 "field": "type",
76 "label": "i18n:fc.om.orders.index.filter.field.type.label"
77 }
78 ]
79 }
80 },
81 {
82 "component": "shared.components.material.DynamicList",
83 "params": {
84 "graphql": {
85 "fragment": "fragment Listing on Order{ id ref retailer{id tradingName} type status retailer{id} workflowRef workflowVersion totalPrice totalTaxPrice createdOn customer{id firstName lastName } attributes{ name type value } } "
86 },
87 "defaultPageSize": 20,
88 "dataSource": "orders",
89 "attributes": [
90 {
91 "label": "i18n:fc.om.orders.index.list.column.orderRef.heading",
92 "template": "{{node.ref}}",
93 "link_template": "#/orders/{{node.id}}"
94 },
95 {
96 "label": "with Ref",
97 "template": "{{node.ref}}",
98 "link_template": "#/orders/{{node.id}}/{{node.ref}}"
99 },
100 {
101 "label": "Created Date:",
102 "template": "{{formatDate node.createdOn day='numeric' month='numeric' year='numeric' hour='numeric' minute='numeric'}}"
103 },
104 {
105 "label": "i18n:fc.om.orders.index.list.column.customer.heading",
106 "template": "{{node.customer.firstName}} {{node.customer.lastName}}"
107 },
108 {
109 "label": "i18n:fc.om.orders.index.list.column.status.heading",
110 "template": "{{node.status}}"
111 },
112 {
113 "label": "i18n:fc.om.orders.index.list.column.orderType.heading",
114 "template": "{{i18n 'fc.om.order.type.'node.type _fallback=node.type}}"
115 },
116 {
117 "label": "i18n:fc.om.orders.index.list.column.orderValue.heading",
118 "template": "{{node.totalPrice}}"
119 },
120 {
121 "label": "i18n:fc.om.orders.index.list.column.retailerName.heading",
122 "template": "{{node.retailer.tradingName}}"
123 }
124 ]
125 }
126 }
127 ]
128 }
129 },
130 {
131 "path": "orderslast5days",
132 "component": "shared.components.material.DynamicPage",
133 "menuLabel": "Order in Last 5 days",
134 "menuIcon": "library_books",
135 "permissions": [
136 "ORDER_VIEW"
137 ],
138 "params": {
139 "graphql": {
140 "query": " query($ref: [String], $status: [String], $type:[String!],$fromDate: DateTime) { orders(ref: $ref, status:$status, type:$type, createdOn:{ from:$fromDate } ){ edges{ node{ ...Listing } } } }",
141 "variables": {
142 "fromDate": "{{dateStringFormatter (dateAdd day=-5) 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'}}"
143 }
144 },
145 "title": "Order created in last 5 days",
146 "primaryButtons": [
147 {
148 "label": "i18n:fc.om.orders.index.userAction.newBlankOrder",
149 "mutation": "createOrder"
150 },
151 {
152 "label": "i18n:fc.om.orders.index.userAction.newBlankOrder",
153 "mutation": "createOrder"
154 }
155 ],
156 "layouts": [
157 {
158 "component": "shared.components.material.DynamicFilter",
159 "params": {
160 "label": "i18n:fc.om.orders.index.filter.placeholder",
161 "fields": [
162 {
163 "field": "ref",
164 "label": "i18n:fc.om.orders.index.filter.field.orderRef.label"
165 },
166 {
167 "field": "status",
168 "label": "i18n:fc.om.orders.index.filter.field.orderStatus.label"
169 },
170 {
171 "field": "type",
172 "label": "i18n:fc.om.orders.index.filter.field.type.label"
173 }
174 ]
175 }
176 },
177 {
178 "component": "shared.components.material.DynamicList",
179 "params": {
180 "graphql": {
181 "fragment": "fragment Listing on Order{ id ref retailer{id tradingName} type status retailer{id} workflowRef workflowVersion totalPrice totalTaxPrice createdOn customer{id firstName lastName }} "
182 },
183 "defaultPageSize": 20,
184 "dataSource": "orders",
185 "attributes": [
186 {
187 "label": "i18n:fc.om.orders.index.list.column.orderRef.heading",
188 "template": "{{node.ref}}",
189 "link_template": "#/orders/{{node.id}}"
190 },
191 {
192 "label": "Created Date: {{formatDate node.createdOn day='numeric' month='numeric' year='numeric' hour='numeric' minute='numeric'}}",
193 "template": "{{formatDate node.createdOn day='numeric' month='numeric' year='numeric' hour='numeric' minute='numeric'}}"
194 },
195 {
196 "label": "Created Date: {{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'}}",
197 "template": "{{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'}}"
198 },
199 {
200 "label": "Created Date: {{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' false}}",
201 "template": "{{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' false}}"
202 },
203 {
204 "label": "Created Date: {{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' true}}",
205 "template": "{{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' true}}"
206 },
207 {
208 "label": "Created On: {{node.createdOn}}",
209 "template": "{{node.createdOn}}"
210 },
211 {
212 "label": "Created Date (wrong): {{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' utc=true}}",
213 "template": "{{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' utc=true}}"
214 },
215 {
216 "label": "Created Date (wrong): {{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' 'true'}}",
217 "template": "{{dateStringFormatter node.createdOn 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' 'true'}}"
218 },
219 {
220 "label": "i18n:fc.om.orders.index.list.column.customer.heading",
221 "template": "{{node.customer.firstName}} {{node.customer.lastName}}"
222 },
223 {
224 "label": "i18n:fc.om.orders.index.list.column.status.heading",
225 "template": "{{node.status}}"
226 },
227 {
228 "label": "i18n:fc.om.orders.index.list.column.orderType.heading",
229 "template": "{{i18n 'fc.om.order.type.'node.type _fallback=node.type}}"
230 },
231 {
232 "label": "i18n:fc.om.orders.index.list.column.orderValue.heading",
233 "template": "{{node.totalPrice}}"
234 },
235 {
236 "label": "i18n:fc.om.orders.index.list.column.retailerName.heading",
237 "template": "{{node.retailer.tradingName}}"
238 }
239 ]
240 }
241 }
242 ]
243 }
244 },
245 {
246 "path": "orders/:id/:ord_ref",
247 "component": "shared.components.material.DynamicPage",
248 "menuIcon": "shopping_cart",
249 "permissions": [
250 "ORDER_VIEW"
251 ],
252 "params": {
253 "title": "{{orderById.ref}} - {{orderById.status}}",
254 "showUserActions": true,
255 "backButtons": [
256 {
257 "path": "orders",
258 "menuLabel": "i18n:fc.om.orders.detail.breadcrumb.backToOrders"
259 },
260 {
261 "path": "{{params.ref}}",
262 "menuLabel": "i18n:fc.om.orders.detail.breadcrumb.backToOrders"
263 },
264 {
265 "path": "customers/{{orderById.customer.id}}",
266 "menuLabel": "i18n:fc.om.orders.detail.breadcrumb.viewCustomer"
267 }
268 ],
269 "graphql": {
270 "query": "query ($id: ID!) { orderById(id: $id) { id ref status type createdOn retailer{id tradingName} ...Customer ...Items ...fulfilments ...fulfilmentChoice ...financialTransactions ...attributes } comments(entityId: [$id], entityType: \"ORDER\"){ edges {node {id text entityId entityType, text, createdOn, updatedOn }}} } ",
271 "variables": {
272 "id": "{{params.id}}"
273 }
274 },
275 "primaryButtons": [
276 {
277 "label": "Edit Order",
278 "mutation": "updateOrder",
279 "arguments": {
280 "id": "{{id}}"
281 },
282 "dropdownSource": {
283 "status": {
284 "source": "settings",
285 "name": "ORDER_STATUS.OPTIONS"
286 },
287 "items.status": {
288 "source": "settings",
289 "name": "ITEM_STATUS.OPTIONS"
290 }
291 }
292 }
293 ],
294 "secondaryButtons": [
295 {
296 "label": "i18n:fc.om.orders.detail.userAction.addFulfilment",
297 "mutation": "createFulfilment"
298 },
299 {
300 "label": "i18n:fc.om.orders.detail.userAction.addComment",
301 "mutation": "createComment",
302 "defaultValues": {
303 "entityId": "{{orderById.id}}",
304 "entityType": "ORDER"
305 }
306 }
307 ],
308 "layouts": [
309 {
310 "component": "shared.components.material.MaterialTabsSet",
311 "params": {
312 "layouts": [
313 {
314 "component": "shared.components.material.SubLayoutContent",
315 "label": "i18n:fc.om.orders.detail.tab.details.label",
316 "params": {
317 "layouts": [
318 {
319 "component": "shared.components.material.DynamicCard",
320 "params": {
321 "title": "i18n:fc.om.orders.detail.card.summary.title",
322 "half": true,
323 "dataSource": "orderById",
324 "attributes": [
325 {
326 "label": "i18n:fc.om.orders.detail.card.summary.attribute.orderType.label",
327 "template": "{{type}}"
328 },
329 {
330 "label": "i18n:fc.om.orders.detail.card.summary.attribute.orderStatus.label",
331 "template": "{{status}}"
332 },
333 {
334 "label": "i18n:fc.om.orders.detail.card.summary.attribute.creationDate.label",
335 "template": "{{formatDate createdOn day='numeric' month='numeric' year='numeric'}}"
336 },
337 {
338 "label": "i18n:fc.om.orders.detail.card.summary.attribute.returns.label",
339 "template": "Search for Returns",
340 "link_template": "#/returns?ref[]={{ref}}-"
341 }
342 ]
343 }
344 },
345 {
346 "component": "shared.components.material.DynamicCard",
347 "params": {
348 "title": "i18n:fc.om.orders.detail.card.retailerInfo.title",
349 "half": true,
350 "dataSource": "orderById",
351 "attributes": [
352 {
353 "label": "i18n:fc.om.orders.detail.card.retailerInfo.attribute.retailerID.label",
354 "template": "{{retailer.id}}"
355 },
356 {
357 "label": "i18n:fc.om.orders.detail.card.retailerInfo.attribute.retailer.label",
358 "template": "{{retailer.tradingName}}"
359 }
360 ]
361 }
362 },
363 {
364 "component": "shared.components.material.DynamicCard",
365 "params": {
366 "graphql": {
367 "fragment": "fragment Customer on Order{ customer { id firstName lastName primaryEmail primaryPhone } } "
368 },
369 "title": "i18n:fc.om.orders.detail.card.customer.title",
370 "half": true,
371 "dataSource": "orderById.customer",
372 "attributes": [
373 {
374 "label": "i18n:fc.om.orders.detail.card.customer.attribute.customerName.label",
375 "template": "{{firstName}} {{lastName}}",
376 "link_template": "#/customers/{{id}}"
377 },
378 {
379 "label": "i18n:fc.om.orders.detail.card.customer.attribute.phoneNo..label",
380 "template": "{{primaryPhone}}"
381 },
382 {
383 "label": "i18n:fc.om.orders.detail.card.customer.attribute.email.label",
384 "template": "{{primaryEmail}}"
385 }
386 ]
387 }
388 },
389 {
390 "component": "shared.components.material.DynamicCard",
391 "params": {
392 "graphql": {
393 "fragment": "fragment fulfilmentChoice on Order{ fulfilmentChoice { id pickupLocationRef deliveryAddress {id name street city state postcode country} deliveryInstruction deliveryType fulfilmentPrice fulfilmentTaxPrice} } "
394 },
395 "title": "i18n:fc.om.orders.detail.card.deliveryInfo.title",
396 "half": true,
397 "dataSource": "orderById.fulfilmentChoice",
398 "attributes": [
399 {
400 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.pickupLocationRef.label",
401 "template": "{{pickupLocationRef}}"
402 },
403 {
404 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.customerName.label",
405 "template": "{{deliveryAddress.name}}"
406 },
407 {
408 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.street.label",
409 "template": "{{deliveryAddress.street}}"
410 },
411 {
412 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.city.label",
413 "template": "{{deliveryAddress.city}}"
414 },
415 {
416 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.state.label",
417 "template": "{{deliveryAddress.state}}"
418 },
419 {
420 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.postcode.label",
421 "template": "{{deliveryAddress.postcode}}"
422 },
423 {
424 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.country.label",
425 "template": "{{deliveryAddress.country}}"
426 },
427 {
428 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.deliveryType.label",
429 "template": "{{deliveryType}}"
430 },
431 {
432 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.deliveryInstructions.label",
433 "template": "{{deliveryInstruction}}"
434 },
435 {
436 "label": "fulfilmentPrice",
437 "template": "{{fulfilmentPrice}}"
438 },
439 {
440 "label": "fulfilmentTaxPrice",
441 "template": "{{fulfilmentTaxPrice}}"
442 }
443 ]
444 }
445 },
446 {
447 "component": "shared.components.material.DynamicList",
448 "params": {
449 "title": "i18n:fc.om.orders.detail.list.orderItems.title",
450 "graphql": {
451 "fragment": "fragment Items on Order{ items{ edges { node { id ref price quantity product {name} } } } } "
452 },
453 "defaultPageSize": 10,
454 "dataSource": "orderById.items",
455 "attributes": [
456 {
457 "label": "i18n:fc.om.orders.detail.list.orderItems.column.ref.heading",
458 "template": "{{node.ref}}",
459 "link_template": "#/orderitems/{{node.id}}"
460 },
461 {
462 "label": "with ref",
463 "template": "{{node.ref}}",
464 "link_template": "#/orderitems/{{node.id}}/{{node.ref}}"
465 },
466 {
467 "label": "i18n:fc.om.orders.detail.list.orderItems.column.productName.heading",
468 "template": "{{node.product.name}}"
469 },
470 {
471 "label": "i18n:fc.om.orders.detail.list.orderItems.column.quantity.heading",
472 "template": "{{node.quantity}}"
473 },
474 {
475 "label": "i18n:fc.om.orders.detail.list.orderItems.column.price.heading",
476 "template": "{{node.price}}"
477 }
478 ]
479 }
480 }
481 ]
482 }
483 },
484 {
485 "component": "shared.components.material.SubLayoutContent",
486 "label": "i18n:fc.om.orders.detail.tab.fulfilments.label",
487 "params": {
488 "layouts": [
489 {
490 "component": "shared.components.material.DynamicList",
491 "params": {
492 "graphql": {
493 "fragment": "fragment fulfilments on Order{ fulfilments { edges { node { id deliveryType status eta fromAddress { ref } toAddress { ref } }} } } "
494 },
495 "title": "i18n:fc.om.orders.detail.list.fulfilments.title",
496 "dataSource": "orderById.fulfilments",
497 "attributes": [
498 {
499 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.id.heading",
500 "template": "{{node.id}}",
501 "link_template": "#/fulfilment/{{node.id}}"
502 },
503 {
504 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.status.heading",
505 "template": "{{node.status}}"
506 },
507 {
508 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.deliveryType.heading",
509 "template": "{{node.deliveryType}}"
510 },
511 {
512 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.fulfilmentLocation.heading",
513 "template": "{{node.fromAddress.ref}}"
514 },
515 {
516 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.destination.heading",
517 "template": "{{node.toAddress.ref}}"
518 },
519 {
520 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.eTA.heading",
521 "template": "{{node.eta}}"
522 }
523 ]
524 }
525 }
526 ]
527 }
528 },
529 {
530 "component": "shared.components.material.SubLayoutContent",
531 "label": "i18n:fc.om.orders.detail.tab.transactions.label",
532 "params": {
533 "layouts": [
534 {
535 "component": "shared.components.material.DynamicList",
536 "params": {
537 "graphql": {
538 "fragment": "fragment financialTransactions on Order{ financialTransactions { edges { node {ref createdOn status type cardType paymentMethod total }} } } "
539 },
540 "title": "i18n:fc.om.orders.detail.list.transactions.title",
541 "dataSource": "orderById.financialTransactions",
542 "attributes": [
543 {
544 "label": "i18n:fc.om.orders.detail.list.transactions.column.ref.heading",
545 "template": "{{node.ref}}"
546 },
547 {
548 "label": "i18n:fc.om.orders.detail.list.transactions.column.createdOn.heading",
549 "template": "{{formatDate node.createdOn day='numeric' month='numeric' year='numeric'}}"
550 },
551 {
552 "label": "i18n:fc.om.orders.detail.list.transactions.column.status.heading",
553 "template": "{{node.status}}"
554 },
555 {
556 "label": "i18n:fc.om.orders.detail.list.transactions.column.type.heading",
557 "template": "{{node.type}}"
558 },
559 {
560 "label": "i18n:fc.om.orders.detail.list.transactions.column.cardType.heading",
561 "template": "{{node.cardType}}"
562 },
563 {
564 "label": "i18n:fc.om.orders.detail.list.transactions.column.paymentMethod.heading",
565 "template": "{{node.paymentMethod}}"
566 },
567 {
568 "label": "i18n:fc.om.orders.detail.list.transactions.column.amount.heading",
569 "template": "{{node.total}}"
570 }
571 ]
572 }
573 }
574 ]
575 }
576 },
577 {
578 "component": "shared.components.material.SubLayoutContent",
579 "label": "i18n:fc.om.orders.detail.tab.attributes.label",
580 "params": {
581 "layouts": [
582 {
583 "component": "shared.components.material.DynamicList",
584 "params": {
585 "graphql": {
586 "fragment": "fragment attributes on Order{ attributes { name type value } } "
587 },
588 "title": "i18n:fc.om.orders.detail.list.attributes.title",
589 "dataSource": "orderById.attributes",
590 "attributes": [
591 {
592 "label": "i18n:fc.om.orders.detail.list.attributes.column.name.heading",
593 "template": "{{name}}"
594 },
595 {
596 "label": "i18n:fc.om.orders.detail.list.attributes.column.type.heading",
597 "template": "{{type}}"
598 },
599 {
600 "label": "i18n:fc.om.orders.detail.list.attributes.column.value.heading",
601 "template": "{{value}}"
602 }
603 ]
604 }
605 }
606 ]
607 }
608 },
609 {
610 "component": "shared.components.material.SubLayoutContent",
611 "label": "i18n:fc.om.orders.detail.tab.comments.label",
612 "params": {
613 "layouts": [
614 {
615 "component": "shared.components.material.DynamicList",
616 "params": {
617 "graphql": {
618 "fragment": "fragment financialTransactions on Order{ financialTransactions { edges { node {ref createdOn status type cardType paymentMethod total }} } } "
619 },
620 "title": "i18n:fc.om.orders.detail.list.comments.title",
621 "dataSource": "comments",
622 "attributes": [
623 {
624 "label": "i18n:fc.om.orders.detail.list.comments.column.comment.heading",
625 "template": "{{node.text}}"
626 },
627 {
628 "label": "i18n:fc.om.orders.detail.list.comments.column.createdOn.heading",
629 "template": "{{formatDate node.createdOn day='numeric' month='numeric' year='numeric'}}"
630 },
631 {
632 "label": "i18n:fc.om.orders.detail.list.comments.column.updatedOn.heading",
633 "template": "{{formatDate node.updatedOn day='numeric' month='numeric' year='numeric'}}"
634 }
635 ]
636 }
637 }
638 ]
639 }
640 },
641 {
642 "component": "shared.components.material.SubLayoutContent",
643 "label": "i18n:fc.om.orders.detail.tab.activity.label",
644 "params": {
645 "layouts": [
646 {
647 "component": "shared.components.EntityActivity",
648 "params": {
649 "showChildEntities": true
650 }
651 }
652 ]
653 }
654 }
655 ]
656 }
657 }
658 ]
659 }
660 },
661 {
662 "path": "orders/:id",
663 "component": "shared.components.material.DynamicPage",
664 "menuIcon": "shopping_cart",
665 "permissions": [
666 "ORDER_VIEW"
667 ],
668 "params": {
669 "title": "{{orderById.ref}} - {{orderById.status}}",
670 "showUserActions": true,
671 "backButtons": [
672 {
673 "path": "orders",
674 "menuLabel": "i18n:fc.om.orders.detail.breadcrumb.backToOrders"
675 },
676 {
677 "path": "{{params.ref}}",
678 "menuLabel": "i18n:fc.om.orders.detail.breadcrumb.backToOrders"
679 },
680 {
681 "path": "customers/{{orderById.customer.id}}",
682 "menuLabel": "i18n:fc.om.orders.detail.breadcrumb.viewCustomer"
683 }
684 ],
685 "graphql": {
686 "query": "query ($id: ID!) { orderById(id: $id) { id ref status type createdOn retailer{id tradingName} ...Customer ...Items ...fulfilments ...fulfilmentChoice ...financialTransactions ...attributes } comments(entityId: [$id], entityType: \"ORDER\"){ edges {node {id text entityId entityType, text, createdOn, updatedOn }}} } ",
687 "variables": {
688 "id": "{{params.id}}"
689 }
690 },
691 "primaryButtons": [
692 {
693 "label": "Edit Order",
694 "mutation": "updateOrder",
695 "arguments": {
696 "id": "{{id}}"
697 },
698 "dropdownSource": {
699 "status": {
700 "source": "settings",
701 "name": "ORDER_STATUS.OPTIONS"
702 },
703 "items.status": {
704 "source": "settings",
705 "name": "ITEM_STATUS.OPTIONS"
706 }
707 }
708 }
709 ],
710 "secondaryButtons": [
711 {
712 "label": "i18n:fc.om.orders.detail.userAction.addFulfilment",
713 "mutation": "createFulfilment"
714 },
715 {
716 "label": "i18n:fc.om.orders.detail.userAction.addComment",
717 "mutation": "createComment",
718 "defaultValues": {
719 "entityId": "{{orderById.id}}",
720 "entityType": "ORDER"
721 }
722 }
723 ],
724 "layouts": [
725 {
726 "component": "shared.components.material.MaterialTabsSet",
727 "params": {
728 "layouts": [
729 {
730 "component": "shared.components.material.SubLayoutContent",
731 "label": "i18n:fc.om.orders.detail.tab.details.label",
732 "params": {
733 "layouts": [
734 {
735 "component": "shared.components.material.DynamicCard",
736 "params": {
737 "title": "i18n:fc.om.orders.detail.card.summary.title",
738 "half": true,
739 "dataSource": "orderById",
740 "attributes": [
741 {
742 "label": "i18n:fc.om.orders.detail.card.summary.attribute.orderType.label",
743 "template": "{{type}}"
744 },
745 {
746 "label": "i18n:fc.om.orders.detail.card.summary.attribute.orderStatus.label",
747 "template": "{{status}}"
748 },
749 {
750 "label": "i18n:fc.om.orders.detail.card.summary.attribute.creationDate.label",
751 "template": "{{formatDate createdOn day='numeric' month='numeric' year='numeric'}}"
752 },
753 {
754 "label": "i18n:fc.om.orders.detail.card.summary.attribute.returns.label",
755 "template": "Search for Returns",
756 "link_template": "#/returns?ref[]={{ref}}-"
757 }
758 ]
759 }
760 },
761 {
762 "component": "shared.components.material.DynamicCard",
763 "params": {
764 "title": "i18n:fc.om.orders.detail.card.retailerInfo.title",
765 "half": true,
766 "dataSource": "orderById",
767 "attributes": [
768 {
769 "label": "i18n:fc.om.orders.detail.card.retailerInfo.attribute.retailerID.label",
770 "template": "{{retailer.id}}"
771 },
772 {
773 "label": "i18n:fc.om.orders.detail.card.retailerInfo.attribute.retailer.label",
774 "template": "{{retailer.tradingName}}"
775 }
776 ]
777 }
778 },
779 {
780 "component": "shared.components.material.DynamicCard",
781 "params": {
782 "graphql": {
783 "fragment": "fragment Customer on Order{ customer { id firstName lastName primaryEmail primaryPhone } } "
784 },
785 "title": "i18n:fc.om.orders.detail.card.customer.title",
786 "half": true,
787 "dataSource": "orderById.customer",
788 "attributes": [
789 {
790 "label": "i18n:fc.om.orders.detail.card.customer.attribute.customerName.label",
791 "template": "{{firstName}} {{lastName}}",
792 "link_template": "#/customers/{{id}}"
793 },
794 {
795 "label": "i18n:fc.om.orders.detail.card.customer.attribute.phoneNo..label",
796 "template": "{{primaryPhone}}"
797 },
798 {
799 "label": "i18n:fc.om.orders.detail.card.customer.attribute.email.label",
800 "template": "{{primaryEmail}}"
801 }
802 ]
803 }
804 },
805 {
806 "component": "shared.components.material.DynamicCard",
807 "params": {
808 "graphql": {
809 "fragment": "fragment fulfilmentChoice on Order{ fulfilmentChoice { id pickupLocationRef deliveryAddress {id name street city state postcode country} deliveryInstruction deliveryType fulfilmentPrice fulfilmentTaxPrice} } "
810 },
811 "title": "i18n:fc.om.orders.detail.card.deliveryInfo.title",
812 "half": true,
813 "dataSource": "orderById.fulfilmentChoice",
814 "attributes": [
815 {
816 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.pickupLocationRef.label",
817 "template": "{{pickupLocationRef}}"
818 },
819 {
820 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.customerName.label",
821 "template": "{{deliveryAddress.name}}"
822 },
823 {
824 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.street.label",
825 "template": "{{deliveryAddress.street}}"
826 },
827 {
828 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.city.label",
829 "template": "{{deliveryAddress.city}}"
830 },
831 {
832 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.state.label",
833 "template": "{{deliveryAddress.state}}"
834 },
835 {
836 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.postcode.label",
837 "template": "{{deliveryAddress.postcode}}"
838 },
839 {
840 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.country.label",
841 "template": "{{deliveryAddress.country}}"
842 },
843 {
844 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.deliveryType.label",
845 "template": "{{deliveryType}}"
846 },
847 {
848 "label": "i18n:fc.om.orders.detail.card.deliveryInfo.attribute.deliveryInstructions.label",
849 "template": "{{deliveryInstruction}}"
850 },
851 {
852 "label": "fulfilmentPrice",
853 "template": "{{fulfilmentPrice}}"
854 },
855 {
856 "label": "fulfilmentTaxPrice",
857 "template": "{{3 + 6}}"
858 }
859 ]
860 }
861 },
862 {
863 "component": "shared.components.material.DynamicList",
864 "params": {
865 "title": "i18n:fc.om.orders.detail.list.orderItems.title",
866 "graphql": {
867 "fragment": "fragment Items on Order{ items{ edges { node { id ref price quantity product {name} } } } } "
868 },
869 "defaultPageSize": 10,
870 "dataSource": "orderById.items",
871 "attributes": [
872 {
873 "label": "i18n:fc.om.orders.detail.list.orderItems.column.ref.heading",
874 "template": "{{node.ref}}",
875 "link_template": "#/orderitems/{{node.id}}"
876 },
877 {
878 "label": "i18n:fc.om.orders.detail.list.orderItems.column.productName.heading",
879 "template": "{{node.product.name}}"
880 },
881 {
882 "label": "i18n:fc.om.orders.detail.list.orderItems.column.quantity.heading",
883 "template": "{{node.quantity}}"
884 },
885 {
886 "label": "i18n:fc.om.orders.detail.list.orderItems.column.price.heading",
887 "template": "{{node.price}}"
888 }
889 ]
890 }
891 }
892 ]
893 }
894 },
895 {
896 "component": "shared.components.material.SubLayoutContent",
897 "label": "i18n:fc.om.orders.detail.tab.fulfilments.label",
898 "params": {
899 "layouts": [
900 {
901 "component": "shared.components.material.DynamicList",
902 "params": {
903 "graphql": {
904 "fragment": "fragment fulfilments on Order{ fulfilments { edges { node { id deliveryType status eta fromAddress { ref } toAddress { ref } }} } } "
905 },
906 "title": "i18n:fc.om.orders.detail.list.fulfilments.title",
907 "dataSource": "orderById.fulfilments",
908 "attributes": [
909 {
910 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.id.heading",
911 "template": "{{node.id}}",
912 "link_template": "#/fulfilment/{{node.id}}"
913 },
914 {
915 "label": "with Ord ID",
916 "template": "{{node.id}}",
917 "link_template": "#/order/{{node.id}}/fulfilment/{{node.id}}"
918 },
919 {
920 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.status.heading",
921 "template": "{{node.status}}"
922 },
923 {
924 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.deliveryType.heading",
925 "template": "{{node.deliveryType}}"
926 },
927 {
928 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.fulfilmentLocation.heading",
929 "template": "{{node.fromAddress.ref}}"
930 },
931 {
932 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.destination.heading",
933 "template": "{{node.toAddress.ref}}"
934 },
935 {
936 "label": "i18n:fc.om.orders.detail.list.fulfilments.column.eTA.heading",
937 "template": "{{node.eta}}"
938 }
939 ]
940 }
941 }
942 ]
943 }
944 },
945 {
946 "component": "shared.components.material.SubLayoutContent",
947 "label": "i18n:fc.om.orders.detail.tab.transactions.label",
948 "params": {
949 "layouts": [
950 {
951 "component": "shared.components.material.DynamicList",
952 "params": {
953 "graphql": {
954 "fragment": "fragment financialTransactions on Order{ financialTransactions { edges { node {ref createdOn status type cardType paymentMethod total }} } } "
955 },
956 "title": "i18n:fc.om.orders.detail.list.transactions.title",
957 "dataSource": "orderById.financialTransactions",
958 "attributes": [
959 {
960 "label": "i18n:fc.om.orders.detail.list.transactions.column.ref.heading",
961 "template": "{{node.ref}}"
962 },
963 {
964 "label": "i18n:fc.om.orders.detail.list.transactions.column.createdOn.heading",
965 "template": "{{formatDate node.createdOn day='numeric' month='numeric' year='numeric'}}"
966 },
967 {
968 "label": "i18n:fc.om.orders.detail.list.transactions.column.status.heading",
969 "template": "{{node.status}}"
970 },
971 {
972 "label": "i18n:fc.om.orders.detail.list.transactions.column.type.heading",
973 "template": "{{node.type}}"
974 },
975 {
976 "label": "i18n:fc.om.orders.detail.list.transactions.column.cardType.heading",
977 "template": "{{node.cardType}}"
978 },
979 {
980 "label": "i18n:fc.om.orders.detail.list.transactions.column.paymentMethod.heading",
981 "template": "{{node.paymentMethod}}"
982 },
983 {
984 "label": "i18n:fc.om.orders.detail.list.transactions.column.amount.heading",
985 "template": "{{node.total}}"
986 }
987 ]
988 }
989 }
990 ]
991 }
992 },
993 {
994 "component": "shared.components.material.SubLayoutContent",
995 "label": "i18n:fc.om.orders.detail.tab.attributes.label",
996 "params": {
997 "layouts": [
998 {
999 "component": "shared.components.material.DynamicList",
1000 "params": {
1001 "graphql": {
1002 "fragment": "fragment attributes on Order{ attributes { name type value } } "
1003 },
1004 "title": "i18n:fc.om.orders.detail.list.attributes.title",
1005 "dataSource": "orderById.attributes",
1006 "attributes": [
1007 {
1008 "label": "i18n:fc.om.orders.detail.list.attributes.column.name.heading",
1009 "template": "{{name}}"
1010 },
1011 {
1012 "label": "i18n:fc.om.orders.detail.list.attributes.column.type.heading",
1013 "template": "{{type}}"
1014 },
1015 {
1016 "label": "i18n:fc.om.orders.detail.list.attributes.column.value.heading",
1017 "template": "{{value}}"
1018 }
1019 ]
1020 }
1021 }
1022 ]
1023 }
1024 },
1025 {
1026 "component": "shared.components.material.SubLayoutContent",
1027 "label": "i18n:fc.om.orders.detail.tab.comments.label",
1028 "params": {
1029 "layouts": [
1030 {
1031 "component": "shared.components.material.DynamicList",
1032 "params": {
1033 "graphql": {
1034 "fragment": "fragment financialTransactions on Order{ financialTransactions { edges { node {ref createdOn status type cardType paymentMethod total }} } } "
1035 },
1036 "title": "i18n:fc.om.orders.detail.list.comments.title",
1037 "dataSource": "comments",
1038 "attributes": [
1039 {
1040 "label": "i18n:fc.om.orders.detail.list.comments.column.comment.heading",
1041 "template": "{{node.text}}"
1042 },
1043 {
1044 "label": "i18n:fc.om.orders.detail.list.comments.column.createdOn.heading",
1045 "template": "{{formatDate node.createdOn day='numeric' month='numeric' year='numeric'}}"
1046 },
1047 {
1048 "label": "i18n:fc.om.orders.detail.list.comments.column.updatedOn.heading",
1049 "template": "{{formatDate node.updatedOn day='numeric' month='numeric' year='numeric'}}"
1050 }
1051 ]
1052 }
1053 }
1054 ]
1055 }
1056 },
1057 {
1058 "component": "shared.components.material.SubLayoutContent",
1059 "label": "i18n:fc.om.orders.detail.tab.activity.label",
1060 "params": {
1061 "layouts": [
1062 {
1063 "component": "shared.components.EntityActivity",
1064 "params": {
1065 "showChildEntities": true
1066 }
1067 }
1068 ]
1069 }
1070 }
1071 ]
1072 }
1073 }
1074 ]
1075 }
1076 },
1077 {
1078 "path": "orderitems/:id",
1079 "component": "shared.components.material.DynamicPage",
1080 "permissions": [
1081 "ORDERITEM_VIEW"
1082 ],
1083 "params": {
1084 "title": "i18n:fc.om.orderitems.detail.title",
1085 "showUserActions": true,
1086 "backButtons": [
1087 {
1088 "path": "orders/{{orderItemById.order.id}}",
1089 "menuLabel": "i18n:fc.om.orderitems.detail.breadcrumb.backToOrder"
1090 }
1091 ],
1092 "graphql": {
1093 "query": "query ($id: ID!) { orderItemById(id: $id) { id ref price status quantity createdOn order { id ref } product { name ...vProduct } } } ",
1094 "variables": {
1095 "id": "{{params.id}}"
1096 }
1097 },
1098 "layouts": [
1099 {
1100 "component": "shared.components.material.DynamicCard",
1101 "params": {
1102 "title": "i18n:fc.om.orderitems.detail.card.summary.title",
1103 "half": true,
1104 "dataSource": "orderItemById",
1105 "attributes": [
1106 {
1107 "label": "i18n:fc.om.orderitems.detail.card.summary.attribute.ref.label",
1108 "template": "{{ref}}"
1109 },
1110 {
1111 "label": "i18n:fc.om.orderitems.detail.card.summary.attribute.status.label",
1112 "template": "{{status}}"
1113 },
1114 {
1115 "label": "i18n:fc.om.orderitems.detail.card.summary.attribute.quantity.label",
1116 "template": "{{quantity}}"
1117 },
1118 {
1119 "label": "i18n:fc.om.orderitems.detail.card.summary.attribute.creationDate.label",
1120 "template": "{{formatDate createdOn day='numeric' month='numeric' year='numeric'}}"
1121 }
1122 ],
1123 "graphql": {
1124 "fragment": "fragment vProduct on VariantProduct { ref attributes { name type value } } "
1125 }
1126 }
1127 },
1128 {
1129 "component": "shared.components.material.DynamicCard",
1130 "params": {
1131 "title": "i18n:fc.om.orderitems.detail.card.product.title",
1132 "half": true,
1133 "dataSource": "orderItemById.product",
1134 "attributes": [
1135 {
1136 "label": "i18n:fc.om.orderitems.detail.card.product.attribute.name.label",
1137 "template": "{{name}}"
1138 },
1139 {
1140 "label": "i18n:fc.om.orderitems.detail.card.product.attribute.ref.label",
1141 "template": "{{ref}}"
1142 }
1143 ]
1144 }
1145 },
1146 {
1147 "component": "shared.components.material.DynamicList",
1148 "params": {
1149 "title": "i18n:fc.om.orderitems.detail.list.attributes.title",
1150 "dataSource": "orderItemById.product.attributes",
1151 "attributes": [
1152 {
1153 "label": "i18n:fc.om.orderitems.detail.list.attributes.column.name.heading",
1154 "template": "{{name}}"
1155 },
1156 {
1157 "label": "i18n:fc.om.orderitems.detail.list.attributes.column.type.heading",
1158 "template": "{{type}}"
1159 },
1160 {
1161 "label": "i18n:fc.om.orderitems.detail.list.attributes.column.value.heading",
1162 "template": "{{value}}"
1163 }
1164 ]
1165 }
1166 }
1167 ]
1168 }
1169 },
1170 {
1171 "path": "orderitems/:id/:ord_ref",
1172 "component": "shared.components.material.DynamicPage",
1173 "permissions": [
1174 "ORDERITEM_VIEW"
1175 ],
1176 "params": {
1177 "title": "i18n:fc.om.orderitems.detail.title",
1178 "showUserActions": true,
1179 "backButtons": [
1180 {
1181 "path": "orders/{{orderItemById.order.id}}",
1182 "menuLabel": "i18n:fc.om.orderitems.detail.breadcrumb.backToOrder"
1183 }
1184 ],
1185 "graphql": {
1186 "query": "query ($id: ID!) { orderItemById(id: $id) { id ref price status quantity createdOn order { id ref } product { name ...vProduct } } } ",
1187 "variables": {
1188 "id": "{{params.id}}"
1189 }
1190 },
1191 "layouts": [
1192 {
1193 "component": "shared.components.material.DynamicCard",
1194 "params": {
1195 "title": "i18n:fc.om.orderitems.detail.card.summary.title",
1196 "half": true,
1197 "dataSource": "orderItemById",
1198 "attributes": [
1199 {
1200 "label": "i18n:fc.om.orderitems.detail.card.summary.attribute.ref.label",
1201 "template": "{{ref}}"
1202 },
1203 {
1204 "label": "i18n:fc.om.orderitems.detail.card.summary.attribute.status.label",
1205 "template": "{{status}}"
1206 },
1207 {
1208 "label": "i18n:fc.om.orderitems.detail.card.summary.attribute.quantity.label",
1209 "template": "{{quantity}}"
1210 },
1211 {
1212 "label": "i18n:fc.om.orderitems.detail.card.summary.attribute.creationDate.label",
1213 "template": "{{formatDate createdOn day='numeric' month='numeric' year='numeric'}}"
1214 }
1215 ],
1216 "graphql": {
1217 "fragment": "fragment vProduct on VariantProduct { ref attributes { name type value } } "
1218 }
1219 }
1220 },
1221 {
1222 "component": "shared.components.material.DynamicCard",
1223 "params": {
1224 "title": "i18n:fc.om.orderitems.detail.card.product.title",
1225 "half": true,
1226 "dataSource": "orderItemById.product",
1227 "attributes": [
1228 {
1229 "label": "i18n:fc.om.orderitems.detail.card.product.attribute.name.label",
1230 "template": "{{name}}"
1231 },
1232 {
1233 "label": "i18n:fc.om.orderitems.detail.card.product.attribute.ref.label",
1234 "template": "{{ref}}"
1235 }
1236 ]
1237 }
1238 },
1239 {
1240 "component": "shared.components.material.DynamicList",
1241 "params": {
1242 "title": "i18n:fc.om.orderitems.detail.list.attributes.title",
1243 "dataSource": "orderItemById.product.attributes",
1244 "attributes": [
1245 {
1246 "label": "i18n:fc.om.orderitems.detail.list.attributes.column.name.heading",
1247 "template": "{{name}}"
1248 },
1249 {
1250 "label": "i18n:fc.om.orderitems.detail.list.attributes.column.type.heading",
1251 "template": "{{type}}"
1252 },
1253 {
1254 "label": "i18n:fc.om.orderitems.detail.list.attributes.column.value.heading",
1255 "template": "{{value}}"
1256 }
1257 ]
1258 }
1259 }
1260 ]
1261 }
1262 },
1263 {
1264 "path": "fulfilment/:id",
1265 "component": "shared.components.material.DynamicPage",
1266 "menuIcon": "shopping_cart",
1267 "permissions": [
1268 "FULFILMENT_VIEW"
1269 ],
1270 "params": {
1271 "title": "i18n:fc.om.fulfilment.detail.title",
1272 "showUserActions": true,
1273 "backButtons": [
1274 {
1275 "path": "orders/{{fulfilmentById.order.id}}",
1276 "menuLabel": "i18n:fc.om.fulfilment.detail.breadcrumb.backToOrderPage"
1277 }
1278 ],
1279 "graphql": {
1280 "query": "query ($id: ID!){fulfilmentById(id: $id){id status ref eta createdOn deliveryType order{id} fromLocation{ref} fromAddress { ref companyName name street city state postcode country } toAddress { ref companyName name street city state postcode country } ...article ...fulfilmentItems ...attributes}}",
1281 "variables": {
1282 "id": "{{params.id}}"
1283 }
1284 },
1285 "primaryButtons": [
1286 {
1287 "label": "i18n:fc.om.fulfilment.detail.userAction.edit",
1288 "mutation": "updateFulfilment",
1289 "arguments": {
1290 "id": "{{id}}"
1291 }
1292 }
1293 ],
1294 "secondaryButtons": [
1295 {
1296 "label": "i18n:fc.om.fulfilment.detail.userAction.createArticle",
1297 "mutation": "updateArticle"
1298 }
1299 ],
1300 "layouts": [
1301 {
1302 "component": "shared.components.material.DynamicCard",
1303 "params": {
1304 "title": "i18n:fc.om.fulfilment.detail.card.overview.title",
1305 "dataSource": "fulfilmentById",
1306 "attributes": [
1307 {
1308 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.iD.label",
1309 "template": "{{id}}"
1310 },
1311 {
1312 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.ref.label",
1313 "template": "{{ref}}"
1314 },
1315 {
1316 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.status.label",
1317 "template": "{{status}}"
1318 },
1319 {
1320 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.deliveryType.label",
1321 "template": "{{deliveryType}}"
1322 },
1323 {
1324 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.eTA.label",
1325 "template": "{{eta}} hours"
1326 },
1327 {
1328 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.creationDate.label",
1329 "template": "{{formatDate createdOn day='numeric' month='numeric' year='numeric'}}"
1330 }
1331 ]
1332 }
1333 },
1334 {
1335 "component": "shared.components.material.DynamicCard",
1336 "params": {
1337 "title": "i18n:fc.om.fulfilment.detail.card.fromLocation.title",
1338 "half": true,
1339 "dataSource": "fulfilmentById.fromAddress",
1340 "attributes": [
1341 {
1342 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.from.label",
1343 "template": "{{ref}} {{companyName}}"
1344 },
1345 {
1346 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.name.label",
1347 "template": "{{name}} hellow world"
1348 },
1349 {
1350 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.street.label",
1351 "template": "{{street}}"
1352 },
1353 {
1354 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.city.label",
1355 "template": "{{city}}"
1356 },
1357 {
1358 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.state.label",
1359 "template": "{{state}}"
1360 },
1361 {
1362 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.postcode.label",
1363 "template": "{{postcode}}"
1364 },
1365 {
1366 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.country.label",
1367 "template": "{{country}}"
1368 }
1369 ]
1370 }
1371 },
1372 {
1373 "component": "shared.components.material.DynamicCard",
1374 "params": {
1375 "title": "i18n:fc.om.fulfilment.detail.card.toLocation.title",
1376 "half": true,
1377 "dataSource": "fulfilmentById.toAddress",
1378 "attributes": [
1379 {
1380 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.from.label",
1381 "template": "{{ref}} {{companyName}}"
1382 },
1383 {
1384 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.name.label",
1385 "template": "{{name}}"
1386 },
1387 {
1388 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.street.label",
1389 "template": "{{street}}"
1390 },
1391 {
1392 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.city.label",
1393 "template": "{{city}}"
1394 },
1395 {
1396 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.state.label",
1397 "template": "{{state}}"
1398 },
1399 {
1400 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.postcode.label",
1401 "template": "{{postcode}}"
1402 },
1403 {
1404 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.country.label",
1405 "template": "{{country}}"
1406 }
1407 ]
1408 }
1409 },
1410 {
1411 "component": "shared.components.material.DynamicList",
1412 "params": {
1413 "graphql": {
1414 "fragment": "fragment fulfilmentItems on Fulfilment { items { edges { node { orderItem { ref product { name } } requestedQuantity filledQuantity rejectedQuantity } } } } "
1415 },
1416 "title": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.title",
1417 "dataSource": "fulfilmentById.items",
1418 "attributes": [
1419 {
1420 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.productName.heading",
1421 "template": "{{node.orderItem.product.name}}"
1422 },
1423 {
1424 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.sKURef.heading",
1425 "template": "{{node.orderItem.ref}}"
1426 },
1427 {
1428 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.requestedQuantity.heading",
1429 "template": "{{node.requestedQuantity}}"
1430 },
1431 {
1432 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.filledQuantity.heading",
1433 "template": "{{node.filledQuantity}}"
1434 },
1435 {
1436 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.rejectedQuantity.heading",
1437 "template": "{{node.rejectedQuantity}}"
1438 }
1439 ]
1440 }
1441 },
1442 {
1443 "component": "shared.components.material.DynamicList",
1444 "params": {
1445 "graphql": {
1446 "fragment": "fragment article on Fulfilment { articles { edges { node { id ref status } } } } "
1447 },
1448 "title": "i18n:fc.om.fulfilment.detail.list.articles.title",
1449 "dataSource": "fulfilmentById.articles",
1450 "attributes": [
1451 {
1452 "label": "i18n:fc.om.fulfilment.detail.list.articles.column.articleRef.heading",
1453 "template": "{{node.ref}}",
1454 "link_template": "#/article/{{node.id}}"
1455 },
1456 {
1457 "label": "i18n:fc.om.fulfilment.detail.list.articles.column.status.heading",
1458 "template": "{{node.status}}"
1459 }
1460 ]
1461 }
1462 },
1463 {
1464 "component": "shared.components.material.DynamicList",
1465 "params": {
1466 "graphql": {
1467 "fragment": "fragment attributes on Fulfilment { attributes { name type value } } "
1468 },
1469 "title": "i18n:fc.om.fulfilment.detail.list.attributes.title",
1470 "dataSource": "fulfilmentById.attributes",
1471 "attributes": [
1472 {
1473 "label": "i18n:fc.om.fulfilment.detail.list.attributes.column.name.heading",
1474 "template": "{{name}}"
1475 },
1476 {
1477 "label": "i18n:fc.om.fulfilment.detail.list.attributes.column.type.heading",
1478 "template": "{{type}}"
1479 },
1480 {
1481 "label": "i18n:fc.om.fulfilment.detail.list.attributes.column.value.heading",
1482 "template": "{{value}}"
1483 }
1484 ]
1485 }
1486 }
1487 ]
1488 }
1489 },
1490 {
1491 "path": "order/:ord_id/fulfilment/:id",
1492 "component": "shared.components.material.DynamicPage",
1493 "menuIcon": "shopping_cart",
1494 "permissions": [
1495 "FULFILMENT_VIEW"
1496 ],
1497 "params": {
1498 "title": "i18n:fc.om.fulfilment.detail.title",
1499 "showUserActions": true,
1500 "backButtons": [
1501 {
1502 "path": "orders/{{fulfilmentById.order.id}}",
1503 "menuLabel": "i18n:fc.om.fulfilment.detail.breadcrumb.backToOrderPage"
1504 }
1505 ],
1506 "graphql": {
1507 "query": "query ($id: ID!){fulfilmentById(id: $id){id status ref eta createdOn deliveryType order{id} fromLocation{ref} fromAddress { ref companyName name street city state postcode country } toAddress { ref companyName name street city state postcode country } ...article ...fulfilmentItems ...attributes}}",
1508 "variables": {
1509 "id": "{{params.id}}"
1510 }
1511 },
1512 "primaryButtons": [
1513 {
1514 "label": "i18n:fc.om.fulfilment.detail.userAction.edit",
1515 "mutation": "updateFulfilment",
1516 "arguments": {
1517 "id": "{{id}}"
1518 }
1519 }
1520 ],
1521 "secondaryButtons": [
1522 {
1523 "label": "i18n:fc.om.fulfilment.detail.userAction.createArticle",
1524 "mutation": "updateArticle"
1525 }
1526 ],
1527 "layouts": [
1528 {
1529 "component": "shared.components.material.DynamicCard",
1530 "params": {
1531 "title": "i18n:fc.om.fulfilment.detail.card.overview.title",
1532 "dataSource": "fulfilmentById",
1533 "attributes": [
1534 {
1535 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.iD.label",
1536 "template": "{{id}}"
1537 },
1538 {
1539 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.ref.label",
1540 "template": "{{ref}}"
1541 },
1542 {
1543 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.status.label",
1544 "template": "{{status}}"
1545 },
1546 {
1547 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.deliveryType.label",
1548 "template": "{{deliveryType}}"
1549 },
1550 {
1551 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.eTA.label",
1552 "template": "{{eta}} hours"
1553 },
1554 {
1555 "label": "i18n:fc.om.fulfilment.detail.card.overview.attribute.creationDate.label",
1556 "template": "{{formatDate createdOn day='numeric' month='numeric' year='numeric'}}"
1557 }
1558 ]
1559 }
1560 },
1561 {
1562 "component": "shared.components.material.DynamicCard",
1563 "params": {
1564 "title": "i18n:fc.om.fulfilment.detail.card.fromLocation.title",
1565 "half": true,
1566 "dataSource": "fulfilmentById.fromAddress",
1567 "attributes": [
1568 {
1569 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.from.label",
1570 "template": "{{ref}} {{companyName}}"
1571 },
1572 {
1573 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.name.label",
1574 "template": "{{name}} hellow world"
1575 },
1576 {
1577 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.street.label",
1578 "template": "{{street}}"
1579 },
1580 {
1581 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.city.label",
1582 "template": "{{city}}"
1583 },
1584 {
1585 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.state.label",
1586 "template": "{{state}}"
1587 },
1588 {
1589 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.postcode.label",
1590 "template": "{{postcode}}"
1591 },
1592 {
1593 "label": "i18n:fc.om.fulfilment.detail.card.fromLocation.attribute.country.label",
1594 "template": "{{country}}"
1595 }
1596 ]
1597 }
1598 },
1599 {
1600 "component": "shared.components.material.DynamicCard",
1601 "params": {
1602 "title": "i18n:fc.om.fulfilment.detail.card.toLocation.title",
1603 "half": true,
1604 "dataSource": "fulfilmentById.toAddress",
1605 "attributes": [
1606 {
1607 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.from.label",
1608 "template": "{{ref}} {{companyName}}"
1609 },
1610 {
1611 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.name.label",
1612 "template": "{{name}}"
1613 },
1614 {
1615 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.street.label",
1616 "template": "{{street}}"
1617 },
1618 {
1619 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.city.label",
1620 "template": "{{city}}"
1621 },
1622 {
1623 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.state.label",
1624 "template": "{{state}}"
1625 },
1626 {
1627 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.postcode.label",
1628 "template": "{{postcode}}"
1629 },
1630 {
1631 "label": "i18n:fc.om.fulfilment.detail.card.toLocation.attribute.country.label",
1632 "template": "{{country}}"
1633 }
1634 ]
1635 }
1636 },
1637 {
1638 "component": "shared.components.material.DynamicList",
1639 "params": {
1640 "graphql": {
1641 "fragment": "fragment fulfilmentItems on Fulfilment { items { edges { node { orderItem { ref product { name } } requestedQuantity filledQuantity rejectedQuantity } } } } "
1642 },
1643 "title": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.title",
1644 "dataSource": "fulfilmentById.items",
1645 "attributes": [
1646 {
1647 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.productName.heading",
1648 "template": "{{node.orderItem.product.name}}"
1649 },
1650 {
1651 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.sKURef.heading",
1652 "template": "{{node.orderItem.ref}}"
1653 },
1654 {
1655 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.requestedQuantity.heading",
1656 "template": "{{node.requestedQuantity}}"
1657 },
1658 {
1659 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.filledQuantity.heading",
1660 "template": "{{node.filledQuantity}}"
1661 },
1662 {
1663 "label": "i18n:fc.om.fulfilment.detail.list.fulfilmentItems.column.rejectedQuantity.heading",
1664 "template": "{{node.rejectedQuantity}}"
1665 }
1666 ]
1667 }
1668 },
1669 {
1670 "component": "shared.components.material.DynamicList",
1671 "params": {
1672 "graphql": {
1673 "fragment": "fragment article on Fulfilment { articles { edges { node { id ref status } } } } "
1674 },
1675 "title": "i18n:fc.om.fulfilment.detail.list.articles.title",
1676 "dataSource": "fulfilmentById.articles",
1677 "attributes": [
1678 {
1679 "label": "i18n:fc.om.fulfilment.detail.list.articles.column.articleRef.heading",
1680 "template": "{{node.ref}}",
1681 "link_template": "#/article/{{node.id}}"
1682 },
1683 {
1684 "label": "i18n:fc.om.fulfilment.detail.list.articles.column.status.heading",
1685 "template": "{{node.status}}"
1686 }
1687 ]
1688 }
1689 },
1690 {
1691 "component": "shared.components.material.DynamicList",
1692 "params": {
1693 "graphql": {
1694 "fragment": "fragment attributes on Fulfilment { attributes { name type value } } "
1695 },
1696 "title": "i18n:fc.om.fulfilment.detail.list.attributes.title",
1697 "dataSource": "fulfilmentById.attributes",
1698 "attributes": [
1699 {
1700 "label": "i18n:fc.om.fulfilment.detail.list.attributes.column.name.heading",
1701 "template": "{{name}}"
1702 },
1703 {
1704 "label": "i18n:fc.om.fulfilment.detail.list.attributes.column.type.heading",
1705 "template": "{{type}}"
1706 },
1707 {
1708 "label": "i18n:fc.om.fulfilment.detail.list.attributes.column.value.heading",
1709 "template": "{{value}}"
1710 }
1711 ]
1712 }
1713 }
1714 ]
1715 }
1716 },
1717 {
1718 "path": "article/:id",
1719 "component": "shared.components.material.DynamicPage",
1720 "menuIcon": "next_week",
1721 "permissions": [
1722 "ARTICLE_VIEW"
1723 ],
1724 "params": {
1725 "title": "i18n:fc.om.article.detail.title",
1726 "showUserActions": true,
1727 "graphql": {
1728 "query": "query ($id: ID!) { articleById(id: $id) { id ref status ...items ...fulfilments ...consignmentArticles} } ",
1729 "variables": {
1730 "id": "{{params.id}}"
1731 }
1732 },
1733 "layouts": [
1734 {
1735 "component": "shared.components.material.DynamicCard",
1736 "params": {
1737 "title": "i18n:fc.om.article.detail.card.summary.title",
1738 "half": true,
1739 "dataSource": "articleById",
1740 "attributes": [
1741 {
1742 "label": "i18n:fc.om.article.detail.card.summary.attribute.id.label",
1743 "template": "{{id}}"
1744 },
1745 {
1746 "label": "i18n:fc.om.article.detail.card.summary.attribute.ref.label",
1747 "template": "{{ref}}"
1748 },
1749 {
1750 "label": "i18n:fc.om.article.detail.card.summary.attribute.status.label",
1751 "template": "{{status}}"
1752 }
1753 ]
1754 }
1755 },
1756 {
1757 "component": "shared.components.material.DynamicList",
1758 "params": {
1759 "graphql": {
1760 "fragment": "fragment items on Article{ items{edges{node{ id quantity }}}} "
1761 },
1762 "title": "i18n:fc.om.article.detail.list.articleItems.title",
1763 "dataSource": "articleById.items",
1764 "attributes": [
1765 {
1766 "label": "i18n:fc.om.article.detail.list.articleItems.column.articleItemId.heading",
1767 "template": "{{node.id}}"
1768 },
1769 {
1770 "label": "i18n:fc.om.article.detail.list.articleItems.column.quantity.heading",
1771 "template": "{{node.quantity}}"
1772 }
1773 ]
1774 }
1775 },
1776 {
1777 "component": "shared.components.material.DynamicList",
1778 "params": {
1779 "graphql": {
1780 "fragment": "fragment fulfilments on Article{ fulfilments{ edges { node { ref id status } } } } "
1781 },
1782 "title": "i18n:fc.om.article.detail.list.fulfilments.title",
1783 "defaultPageSize": 10,
1784 "dataSource": "articleById.fulfilments",
1785 "attributes": [
1786 {
1787 "label": "i18n:fc.om.article.detail.list.fulfilments.column.fulfilmentId.heading",
1788 "template": "{{node.id}}",
1789 "link_template": "#/fulfilment/{{node.id}}"
1790 },
1791 {
1792 "label": "i18n:fc.om.article.detail.list.fulfilments.column.ref.heading",
1793 "template": "{{node.ref}}"
1794 },
1795 {
1796 "label": "i18n:fc.om.article.detail.list.fulfilments.column.status.heading",
1797 "template": "{{node.status}}"
1798 },
1799 {
1800 "label": "Packing Slip",
1801 "template": "Download",
1802 "link_template": "apiv4://fulfilment/inpack/{{node.id}}/inpack-{{node.id}}-{date}.pdf"
1803 }
1804 ]
1805 }
1806 },
1807 {
1808 "component": "shared.components.material.DynamicList",
1809 "params": {
1810 "graphql": {
1811 "fragment": "fragment consignmentArticles on Article{ consignmentArticles{ edges { node{ consignment {id ref status labelUrl carrier { name } } article{ ref id status } } } }} "
1812 },
1813 "title": "i18n:fc.om.article.detail.list.consignments.title",
1814 "defaultPageSize": 10,
1815 "dataSource": "articleById.consignmentArticles",
1816 "attributes": [
1817 {
1818 "label": "i18n:fc.om.article.detail.list.consignments.column.consignmentRef.heading",
1819 "template": "{{node.consignment.ref}}"
1820 },
1821 {
1822 "label": "i18n:fc.om.article.detail.list.consignments.column.carrier.heading",
1823 "template": "{{node.consignment.carrier.name}}"
1824 },
1825 {
1826 "label": "i18n:fc.om.article.detail.list.consignments.column.status.heading",
1827 "template": "{{node.consignment.status}}"
1828 },
1829 {
1830 "label": "i18n:fc.om.article.detail.list.consignments.column.label.heading",
1831 "template": "{{node.consignment.labelUrl}}",
1832 "link_template": "https://sandbox.api.fluentretail.com/api/v4/consignment/{{node.consignment.id}}/labelStream"
1833 },
1834 {
1835 "label": "Label",
1836 "template": "Download Label",
1837 "link_template": "apiv4://consignment/{{node.consignment.id}}/labelStream/{{node.consignment.labelUrl}}"
1838 }
1839 ]
1840 }
1841 }
1842 ]
1843 }
1844 },
1845 {
1846 "path": "customers",
1847 "component": "shared.components.material.DynamicPage",
1848 "menuLabel": "i18n:fc.om.customers.index.nav",
1849 "menuIcon": "face",
1850 "permissions": [
1851 "CUSTOMER_VIEW"
1852 ],
1853 "params": {
1854 "graphql": {
1855 "query": " query($ref:[String]) { customers(firstName:$ref){ edges{ node{ ...Listing } } } }"
1856 },
1857 "title": "i18n:fc.om.customers.index.title",
1858 "primaryButtons": [
1859 {
1860 "label": "i18n:fc.om.customers.index.userAction.createCustomer",
1861 "mutation": "createCustomer"
1862 }
1863 ],
1864 "layouts": [
1865 {
1866 "component": "shared.components.material.DynamicFilter",
1867 "params": {
1868 "label": "i18n:fc.om.customers.index.filter.placeholder",
1869 "fields": [
1870 {
1871 "field": "ref",
1872 "label": "i18n:fc.om.customers.index.filter.field..label"
1873 }
1874 ]
1875 }
1876 },
1877 {
1878 "component": "shared.components.material.DynamicList",
1879 "params": {
1880 "graphql": {
1881 "fragment": "fragment Listing on Customer{ id, ref firstName lastName primaryEmail primaryPhone}"
1882 },
1883 "defaultPageSize": 5,
1884 "dataSource": "customers.edges",
1885 "attributes": [
1886 {
1887 "label": "i18n:fc.om.customers.index.list.column.id.heading",
1888 "template": "{{node.id}}",
1889 "link_template": "#/customers/{{node.id}}"
1890 },
1891 {
1892 "label": "i18n:fc.om.customers.index.list.column.name.heading",
1893 "template": "{{node.firstName}} - {{node.lastName}}"
1894 },
1895 {
1896 "label": "i18n:fc.om.customers.index.list.column.email.heading",
1897 "template": "{{node.primaryEmail}}"
1898 },
1899 {
1900 "label": "i18n:fc.om.customers.index.list.column.phone.heading",
1901 "template": "{{node.primaryPhone}}"
1902 }
1903 ]
1904 }
1905 }
1906 ]
1907 }
1908 },
1909 {
1910 "path": "customers/:id",
1911 "component": "shared.components.material.DynamicPage",
1912 "menuIcon": "shopping_cart",
1913 "permissions": [
1914 "CUSTOMER_VIEW"
1915 ],
1916 "params": {
1917 "title": "i18n:fc.om.customers.detail.title",
1918 "backButtons": [
1919 {
1920 "path": "customers",
1921 "menuLabel": "i18n:fc.om.customers.detail.breadcrumb.backToCustomers"
1922 }
1923 ],
1924 "graphql": {
1925 "query": "query ($id: ID!) { customerById(id: $id) {id ref firstName lastName username primaryEmail primaryPhone status retailer {id tradingName} country department createdOn updatedOn} } ",
1926 "variables": {
1927 "id": "{{params.id}}"
1928 }
1929 },
1930 "layouts": [
1931 {
1932 "component": "shared.components.material.DynamicCard",
1933 "params": {
1934 "title": "i18n:fc.om.customers.detail.card.personalInformation.title",
1935 "half": true,
1936 "dataSource": "customerById",
1937 "attributes": [
1938 {
1939 "label": "i18n:fc.om.customers.detail.card.personalInformation.attribute.name.label",
1940 "template": "{{firstName}} {{lastName}}"
1941 },
1942 {
1943 "label": "i18n:fc.om.customers.detail.card.personalInformation.attribute.primaryPhone.label",
1944 "template": "{{primaryPhone}}"
1945 },
1946 {
1947 "label": "i18n:fc.om.customers.detail.card.personalInformation.attribute.primaryEmail.label",
1948 "template": "{{primaryEmail}}"
1949 },
1950 {
1951 "label": "i18n:fc.om.customers.detail.card.personalInformation.attribute.country.label",
1952 "template": "{{country}}"
1953 }
1954 ]
1955 }
1956 },
1957 {
1958 "component": "shared.components.material.DynamicCard",
1959 "params": {
1960 "title": "i18n:fc.om.customers.detail.card.accountDetails.title",
1961 "half": true,
1962 "dataSource": "customerById",
1963 "attributes": [
1964 {
1965 "label": "i18n:fc.om.customers.detail.card.accountDetails.attribute.id.label",
1966 "template": "{{id}}"
1967 },
1968 {
1969 "label": "i18n:fc.om.customers.detail.card.accountDetails.attribute.createdOn.label",
1970 "template": "{{formatDate createdOn day='numeric' month='numeric' year='numeric'}}"
1971 },
1972 {
1973 "label": "i18n:fc.om.customers.detail.card.accountDetails.attribute.updatedOn.label",
1974 "template": "{{formatDate updateddOn day='numeric' month='numeric' year='numeric'}}"
1975 }
1976 ]
1977 }
1978 },
1979 {
1980 "component": "shared.components.material.DynamicCard",
1981 "params": {
1982 "title": "i18n:fc.om.customers.detail.card.retailerInformation.title",
1983 "half": true,
1984 "dataSource": "customerById",
1985 "attributes": [
1986 {
1987 "label": "i18n:fc.om.customers.detail.card.retailerInformation.attribute.department.label",
1988 "template": "{{department}}"
1989 },
1990 {
1991 "label": "i18n:fc.om.customers.detail.card.retailerInformation.attribute.retailer.label",
1992 "template": "{{retailer.tradingName}}"
1993 },
1994 {
1995 "label": "i18n:fc.om.customers.detail.card.retailerInformation.attribute.retailerID.label",
1996 "template": "{{retailer.id}}"
1997 }
1998 ]
1999 }
2000 }
2001 ]
2002 }
2003 }
2004 ]
2005 }
2006 ]
2007}
2008 ,
2009 "type": "JSON",
2010 "level": "ACCOUNT"
2011 }
2012}
2013
2014
Language: json