From c8056faf4f867a61ccddc50eb7585aeeffcef512 Mon Sep 17 00:00:00 2001 From: Ravi Lodhi Date: Tue, 8 Oct 2024 14:47:28 +0530 Subject: [PATCH 01/16] Improved: Added app base permission (#323). --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index c15fca79..317ddb22 100644 --- a/.env.example +++ b/.env.example @@ -3,7 +3,7 @@ VUE_APP_I18N_FALLBACK_LOCALE=en-US VUE_APP_CACHE_MAX_AGE=3600 VUE_APP_VIEW_SIZE=10 VUE_APP_BASE_URL= -VUE_APP_PERMISSION_ID= +VUE_APP_PERMISSION_ID="FULFILLMENT_APP_VIEW" VUE_APP_ALIAS={} VUE_APP_MAPPING_TYPES={"IMPORD": "IMP_ORD_MAPPING_PREF","EXPORD": "EXP_PKD_ORD_MAP_PREF"} VUE_APP_MAPPING_IMPORD={"orderId": { "label": "Order ID", "value": "" }, "facilityId": { "label": "Facility ID", "value": "" },"trackingCode": { "label": "Tracking Code", "value": "" }} From 1fdbc679a8ea30e0c2f5d3a86c3d766c79cfaf74 Mon Sep 17 00:00:00 2001 From: Ravi Lodhi Date: Tue, 8 Oct 2024 15:20:35 +0530 Subject: [PATCH 02/16] Improved: Added app base permission in authorization rule (#323). --- src/authorization/Rules.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/authorization/Rules.ts b/src/authorization/Rules.ts index 4ba71979..c97b550c 100644 --- a/src/authorization/Rules.ts +++ b/src/authorization/Rules.ts @@ -24,5 +24,6 @@ export default { "APP_PARTIAL_ORDER_REJECTION_CONFIG_UPDATE": "COMMON_ADMIN", "APP_COLLATERAL_REJECTION_CONFIG_UPDATE": "COMMON_ADMIN", "APP_UPDT_FULFILL_FORCE_SCAN_CONFIG": "COMMON_ADMIN", - "APP_ORGANIZATION_HEADER_VIEW": "SFA_ADMIN OR CARRIER_SETUP_VIEW OR FF_ORDER_LOOKUP_VIEW" + "APP_ORGANIZATION_HEADER_VIEW": "SFA_ADMIN OR CARRIER_SETUP_VIEW OR FF_ORDER_LOOKUP_VIEW", + "FULFILLMENT_APP_VIEW": "FULFILLMENT_APP_VIEW" } as any \ No newline at end of file From 4322e18f1365b104b7f5aa24562bab61bf656687 Mon Sep 17 00:00:00 2001 From: Ravi Lodhi Date: Tue, 8 Oct 2024 18:20:06 +0530 Subject: [PATCH 03/16] Fixed: Removed kit badge displayed mistakenly for the kit components (#603). --- src/views/OrderDetail.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/OrderDetail.vue b/src/views/OrderDetail.vue index bad82ac9..189acee0 100644 --- a/src/views/OrderDetail.vue +++ b/src/views/OrderDetail.vue @@ -145,7 +145,6 @@

{{ getProductIdentificationValue(productIdentificationPref.secondaryId, getProduct(productComponent.productIdTo)) }}

{{ getProductIdentificationValue(productIdentificationPref.primaryId, getProduct(productComponent.productIdTo)) ? getProductIdentificationValue(productIdentificationPref.primaryId, getProduct(productComponent.productIdTo)) : productComponent.productIdTo }} - {{ translate("Kit") }}

{{ getFeature(getProduct(productComponent.productIdTo).featureHierarchy, '1/COLOR/')}} {{ getFeature(getProduct(productComponent.productIdTo).featureHierarchy, '1/SIZE/')}}

From e0d56df5fdb7057aabcbd4c08803ffa002c84741 Mon Sep 17 00:00:00 2001 From: amansinghbais Date: Wed, 9 Oct 2024 10:59:21 +0530 Subject: [PATCH 04/16] Improved: disabling save button of generate tracking code modal in case of no shipmentMethod (#805) --- src/components/GenerateTrackingCodeModal.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/GenerateTrackingCodeModal.vue b/src/components/GenerateTrackingCodeModal.vue index f145cb48..456dfe66 100644 --- a/src/components/GenerateTrackingCodeModal.vue +++ b/src/components/GenerateTrackingCodeModal.vue @@ -55,7 +55,7 @@ - + From fa8f86cdc897baa987cfb6a0a0223929a602c383 Mon Sep 17 00:00:00 2001 From: amansinghbais Date: Wed, 9 Oct 2024 11:10:36 +0530 Subject: [PATCH 05/16] Improved: fetching order payment preferences sorted in descending order of created date (#805) --- src/store/modules/orderLookup/actions.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/store/modules/orderLookup/actions.ts b/src/store/modules/orderLookup/actions.ts index 9744d6be..8dfe7dec 100644 --- a/src/store/modules/orderLookup/actions.ts +++ b/src/store/modules/orderLookup/actions.ts @@ -185,6 +185,7 @@ const actions: ActionTree = { statusId: "PAYMENT_CANCELLED", statusId_op: "notEqual" }, + orderBy: "createdDate DESC", viewSize: 50, fieldList: ["paymentMethodTypeId", "maxAmount", "statusId"], entityName: "OrderPaymentPreference" From da2a17621e7113ca6f5e66ffa402366f068aa659 Mon Sep 17 00:00:00 2001 From: amansinghbais Date: Wed, 9 Oct 2024 12:56:42 +0530 Subject: [PATCH 06/16] Improved: show message on login error page on no product store, dismissing and not changing facility on no store for new facility (#807) --- src/services/UserService.ts | 17 ++++++++++++---- src/store/modules/user/actions.ts | 34 ++++++++++++++++++------------- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/src/services/UserService.ts b/src/services/UserService.ts index 8e96b9bd..0fbdb968 100644 --- a/src/services/UserService.ts +++ b/src/services/UserService.ts @@ -85,12 +85,12 @@ const recycleOutstandingOrders = async(payload: any): Promise => { }) } -const getEComStores = async (token: any, facilityId: any): Promise => { +const getEComStores = async (token: any, facility: any): Promise => { try { const params = { "inputFields": { "storeName_op": "not-empty", - facilityId + facilityId: facility.facilityId }, "fieldList": ["productStoreId", "storeName"], "entityName": "ProductStoreFacilityDetail", @@ -110,12 +110,21 @@ const getEComStores = async (token: any, facilityId: any): Promise => { } }); if (hasError(resp)) { - return Promise.reject(resp.data); + // Following promise reject pattern as OMS api, to show error message on the login page. + return Promise.reject({ + code: 'error', + message: `Failed to fetch product stores for ${facility.facilityName} facility.`, + serverResponse: resp.data + }) } else { return Promise.resolve(resp.data.docs); } } catch(error: any) { - return Promise.reject(error) + return Promise.reject({ + code: 'error', + message: 'Something went wrong', + serverResponse: error + }) } } diff --git a/src/store/modules/user/actions.ts b/src/store/modules/user/actions.ts index b0447921..dded57a2 100644 --- a/src/store/modules/user/actions.ts +++ b/src/store/modules/user/actions.ts @@ -72,7 +72,7 @@ const actions: ActionTree = { // TODO Use a separate API for getting facilities, this should handle user like admin accessing the app const currentFacility = userProfile.facilities[0]; - userProfile.stores = await UserService.getEComStores(token, currentFacility.facilityId); + userProfile.stores = await UserService.getEComStores(token, currentFacility); let preferredStore = userProfile.stores[0] @@ -187,22 +187,28 @@ const actions: ActionTree = { // Hence displaying loader to not allowing user to navigate to orders page to avoid wrong results. emitter.emit('presentLoader', {message: 'Updating facility', backdropDismiss: false}) - const userProfile = JSON.parse(JSON.stringify(state.current as any)); - userProfile.stores = await UserService.getEComStores(undefined, payload.facility.facilityId); + try { + const userProfile = JSON.parse(JSON.stringify(state.current as any)); + userProfile.stores = await UserService.getEComStores(undefined, payload.facility); - let preferredStore = userProfile.stores[0]; - const preferredStoreId = await UserService.getPreferredStore(undefined); + let preferredStore = userProfile.stores[0]; + const preferredStoreId = await UserService.getPreferredStore(undefined); - if (preferredStoreId) { - const store = userProfile.stores.find((store: any) => store.productStoreId === preferredStoreId); - store && (preferredStore = store) + if (preferredStoreId) { + const store = userProfile.stores.find((store: any) => store.productStoreId === preferredStoreId); + store && (preferredStore = store) + } + commit(types.USER_INFO_UPDATED, userProfile); + commit(types.USER_CURRENT_FACILITY_UPDATED, payload.facility); + commit(types.USER_CURRENT_ECOM_STORE_UPDATED, preferredStore); + this.dispatch('order/clearOrders') + await dispatch('getDisableShipNowConfig') + await dispatch('getDisableUnpackConfig') + } catch(error: any) { + logger.error(error); + showToast(error?.message ? error.message : translate("Something went wrong")) } - commit(types.USER_INFO_UPDATED, userProfile); - commit(types.USER_CURRENT_FACILITY_UPDATED, payload.facility); - commit(types.USER_CURRENT_ECOM_STORE_UPDATED, preferredStore); - this.dispatch('order/clearOrders') - await dispatch('getDisableShipNowConfig') - await dispatch('getDisableUnpackConfig') + emitter.emit('dismissLoader') }, From 7bfd8469ed57de467e31487b7ede29c51276a662 Mon Sep 17 00:00:00 2001 From: amansinghbais Date: Wed, 9 Oct 2024 16:40:12 +0530 Subject: [PATCH 07/16] Improved: showing latest badge in case of multiple payment preferences (#805) --- src/views/OrderLookupDetail.vue | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/views/OrderLookupDetail.vue b/src/views/OrderLookupDetail.vue index ac09d857..4df9145f 100644 --- a/src/views/OrderLookupDetail.vue +++ b/src/views/OrderLookupDetail.vue @@ -126,14 +126,17 @@ {{ translate("Payment") }}
- +

{{ orderPayment.methodTypeId }}

{{ translate(getPaymentMethodDesc(orderPayment.methodTypeId)) || orderPayment.methodTypeId }} {{ translate(getStatusDesc(orderPayment.paymentStatus)) }}
-

{{ formatCurrency(orderPayment.amount, order.currencyUom) }}

+
+ {{ translate("Latest") }} + {{ formatCurrency(orderPayment.amount, order.currencyUom) }} +
From e1d7687736641bb3362fbe02b2fbef87202d8a9c Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 10 Oct 2024 12:43:19 +0530 Subject: [PATCH 08/16] Improved: Updated the DXP component to v1.15.3 (#324) --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index df9816f7..8a2db522 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@casl/ability": "^6.0.0", "@hotwax/app-version-info": "^1.0.0", "@hotwax/apps-theme": "^1.2.6", - "@hotwax/dxp-components": "^1.15.2", + "@hotwax/dxp-components": "^1.15.3", "@hotwax/oms-api": "^1.14.0", "@ionic/core": "^7.6.0", "@ionic/vue": "^7.6.0", @@ -2798,9 +2798,9 @@ "integrity": "sha512-zpUjGoY7LBlKeiP0V7tonrmoey8HQ5THQmyixQ+IDtrjmEJNBjynW/Ef3gC0FUNNPuVqxWPZdT5CVgaETLGTwg==" }, "node_modules/@hotwax/dxp-components": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@hotwax/dxp-components/-/dxp-components-1.15.2.tgz", - "integrity": "sha512-0jF1xkRIVrDbJwUaaPwWUhp3cVBpdjgAJO/fOQ4XYjzKb8rYXgw0Xm/qHHUnSeAZW5laMnQrm1KtPZp8szu4dQ==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@hotwax/dxp-components/-/dxp-components-1.15.3.tgz", + "integrity": "sha512-D8PXmlDV1TJNlDt0p2mydXBvWJrNWqiRASYPNy0YiiaMaMUALvGD1Ak6w+4mCsFuadiWcbxBtFyBFfAMDWULIQ==", "dependencies": { "@hotwax/oms-api": "^1.8.1", "@ionic/core": "^7.6.0", diff --git a/package.json b/package.json index 9c43ed7e..92b9e9b8 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@casl/ability": "^6.0.0", "@hotwax/app-version-info": "^1.0.0", "@hotwax/apps-theme": "^1.2.6", - "@hotwax/dxp-components": "^1.15.2", + "@hotwax/dxp-components": "^1.15.3", "@hotwax/oms-api": "^1.14.0", "@ionic/core": "^7.6.0", "@ionic/vue": "^7.6.0", From 703533dd4a554b963451d2835090d8d34edc248d Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 10 Oct 2024 18:17:23 +0530 Subject: [PATCH 09/16] Improved: Added support for scanning on selected productIdentifier --- src/components/ScanOrderItemModal.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ScanOrderItemModal.vue b/src/components/ScanOrderItemModal.vue index 2795df22..a3993b09 100644 --- a/src/components/ScanOrderItemModal.vue +++ b/src/components/ScanOrderItemModal.vue @@ -133,8 +133,8 @@ export default defineComponent({ let currentItem = {} as any; const item = this.orderItems.find((orderItem: any) => { - if(orderItem.productSku === payload) currentItem = orderItem - return orderItem.productSku === payload && !orderItem.isChecked; + const itemVal = getProductIdentificationValue(this.productIdentificationPref.primaryId, this.getProduct(orderItem.productId)); + return itemVal === payload; }); if(item) { From 2e641503b7873c562b05f2659ac100ad322313b6 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 10 Oct 2024 18:23:53 +0530 Subject: [PATCH 10/16] Improved: added default scan on product sku --- src/components/ScanOrderItemModal.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ScanOrderItemModal.vue b/src/components/ScanOrderItemModal.vue index a3993b09..4b4f3eba 100644 --- a/src/components/ScanOrderItemModal.vue +++ b/src/components/ScanOrderItemModal.vue @@ -133,8 +133,8 @@ export default defineComponent({ let currentItem = {} as any; const item = this.orderItems.find((orderItem: any) => { - const itemVal = getProductIdentificationValue(this.productIdentificationPref.primaryId, this.getProduct(orderItem.productId)); - return itemVal === payload; + const itemVal = getProductIdentificationValue(this.productIdentificationPref.primaryId, this.getProduct(orderItem.productId)) ? getProductIdentificationValue(this.productIdentificationPref.primaryId, this.getProduct(orderItem.productId)) : orderItem.productSku + return itemVal === payload && !orderItem.isChecked; }); if(item) { From b7c30434cbc39e92ebbdd0415414f00dc3ac8c20 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 10 Oct 2024 18:30:52 +0530 Subject: [PATCH 11/16] Update ScanOrderItemModal.vue --- src/components/ScanOrderItemModal.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/ScanOrderItemModal.vue b/src/components/ScanOrderItemModal.vue index 4b4f3eba..0e1c328a 100644 --- a/src/components/ScanOrderItemModal.vue +++ b/src/components/ScanOrderItemModal.vue @@ -134,6 +134,7 @@ export default defineComponent({ let currentItem = {} as any; const item = this.orderItems.find((orderItem: any) => { const itemVal = getProductIdentificationValue(this.productIdentificationPref.primaryId, this.getProduct(orderItem.productId)) ? getProductIdentificationValue(this.productIdentificationPref.primaryId, this.getProduct(orderItem.productId)) : orderItem.productSku + if(itemVal == payload) currentItem = orderItem; return itemVal === payload && !orderItem.isChecked; }); From f7a28cf102da548e0352a07a2f25253d08da2ef7 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 10 Oct 2024 18:31:37 +0530 Subject: [PATCH 12/16] Update ScanOrderItemModal.vue --- src/components/ScanOrderItemModal.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ScanOrderItemModal.vue b/src/components/ScanOrderItemModal.vue index 0e1c328a..ee4942e5 100644 --- a/src/components/ScanOrderItemModal.vue +++ b/src/components/ScanOrderItemModal.vue @@ -134,7 +134,7 @@ export default defineComponent({ let currentItem = {} as any; const item = this.orderItems.find((orderItem: any) => { const itemVal = getProductIdentificationValue(this.productIdentificationPref.primaryId, this.getProduct(orderItem.productId)) ? getProductIdentificationValue(this.productIdentificationPref.primaryId, this.getProduct(orderItem.productId)) : orderItem.productSku - if(itemVal == payload) currentItem = orderItem; + if(itemVal === payload) currentItem = orderItem; return itemVal === payload && !orderItem.isChecked; }); From 85bf53d6f77d0c1752388ead22f856b6e3866258 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 10 Oct 2024 19:52:43 +0530 Subject: [PATCH 13/16] Improved: Added support of scanning on selected identifier for transfer order --- src/store/modules/transferorder/actions.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/store/modules/transferorder/actions.ts b/src/store/modules/transferorder/actions.ts index a00855e8..02069698 100644 --- a/src/store/modules/transferorder/actions.ts +++ b/src/store/modules/transferorder/actions.ts @@ -7,9 +7,10 @@ import { hasError } from '@/adapter' import * as types from './mutation-types' import { escapeSolrSpecialChars, prepareOrderQuery } from '@/utils/solrHelper' import logger from '@/logger' -import { shopifyImgContext, translate } from '@hotwax/dxp-components' +import { getProductIdentificationValue, useProductIdentificationStore, translate } from '@hotwax/dxp-components' import { showToast } from "@/utils"; import { UtilService } from '@/services/UtilService' +import store from "@/store"; const actions: ActionTree = { @@ -278,7 +279,13 @@ const actions: ActionTree = { async updateOrderProductCount({ commit, state }, payload ) { // When there exists multiple line item for a single product, then may arise discrepancy in scanning // since some items might be completed and some pending. Hence searching is done with status check. - const item = state.current.items.find((item: any) => (item.internalName === payload && item.statusId !== 'ITEM_COMPLETED' && item.statusId !== 'ITEM_REJECTED' && item.statusId !== 'ITEM_CANCELLED')); + const getProduct = store.getters['product/getProduct']; + const productIdentificationStore = useProductIdentificationStore() + + const item = state.current.items.find((orderItem: any) => { + const itemVal = getProductIdentificationValue(productIdentificationStore.getProductIdentificationPref.primaryId, getProduct(orderItem.productId)) ? getProductIdentificationValue(productIdentificationStore.getProductIdentificationPref.primaryId, getProduct(orderItem.productId)) : orderItem.internalName; + return itemVal === payload && orderItem.statusId !== 'ITEM_COMPLETED' && orderItem.statusId !== 'ITEM_REJECTED' && orderItem.statusId !== 'ITEM_CANCELLED'; + }) if(item){ item.pickedQuantity = parseInt(item.pickedQuantity) + 1; commit(types.ORDER_CURRENT_UPDATED, state.current ) From b1170311295179d0433a59bcbaeb8fa67d2f6021 Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 10 Oct 2024 19:57:03 +0530 Subject: [PATCH 14/16] Improved: added variable and improve the snippet --- src/store/modules/transferorder/actions.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/store/modules/transferorder/actions.ts b/src/store/modules/transferorder/actions.ts index 02069698..0e4c8128 100644 --- a/src/store/modules/transferorder/actions.ts +++ b/src/store/modules/transferorder/actions.ts @@ -281,9 +281,10 @@ const actions: ActionTree = { // since some items might be completed and some pending. Hence searching is done with status check. const getProduct = store.getters['product/getProduct']; const productIdentificationStore = useProductIdentificationStore() + let productIdentificationPref = productIdentificationStore.getProductIdentificationPref.primaryId const item = state.current.items.find((orderItem: any) => { - const itemVal = getProductIdentificationValue(productIdentificationStore.getProductIdentificationPref.primaryId, getProduct(orderItem.productId)) ? getProductIdentificationValue(productIdentificationStore.getProductIdentificationPref.primaryId, getProduct(orderItem.productId)) : orderItem.internalName; + const itemVal = getProductIdentificationValue(productIdentificationPref, getProduct(orderItem.productId)) ? getProductIdentificationValue(productIdentificationPref, getProduct(orderItem.productId)) : orderItem.internalName; return itemVal === payload && orderItem.statusId !== 'ITEM_COMPLETED' && orderItem.statusId !== 'ITEM_REJECTED' && orderItem.statusId !== 'ITEM_CANCELLED'; }) if(item){ From dcf9f9188cab985cfe08f0a8f3cc25862f9825ba Mon Sep 17 00:00:00 2001 From: R-Sourabh Date: Thu, 10 Oct 2024 20:03:52 +0530 Subject: [PATCH 15/16] Update actions.ts --- src/store/modules/transferorder/actions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/modules/transferorder/actions.ts b/src/store/modules/transferorder/actions.ts index 0e4c8128..a005fbea 100644 --- a/src/store/modules/transferorder/actions.ts +++ b/src/store/modules/transferorder/actions.ts @@ -281,7 +281,7 @@ const actions: ActionTree = { // since some items might be completed and some pending. Hence searching is done with status check. const getProduct = store.getters['product/getProduct']; const productIdentificationStore = useProductIdentificationStore() - let productIdentificationPref = productIdentificationStore.getProductIdentificationPref.primaryId + const productIdentificationPref = productIdentificationStore.getProductIdentificationPref.primaryId const item = state.current.items.find((orderItem: any) => { const itemVal = getProductIdentificationValue(productIdentificationPref, getProduct(orderItem.productId)) ? getProductIdentificationValue(productIdentificationPref, getProduct(orderItem.productId)) : orderItem.internalName; From 5047527d0b87f0f1794e31fa3bd89cb0738c8a03 Mon Sep 17 00:00:00 2001 From: Ravi Lodhi Date: Mon, 14 Oct 2024 18:59:24 +0530 Subject: [PATCH 16/16] Updated: app version for the minor release v2.10.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a2db522..104b626f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "fulfillment", - "version": "2.9.3", + "version": "2.10.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "fulfillment", - "version": "2.9.3", + "version": "2.10.0", "dependencies": { "@capacitor/android": "^2.4.7", "@capacitor/core": "^2.4.7", diff --git a/package.json b/package.json index 92b9e9b8..eddb4ae3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fulfillment", - "version": "2.9.3", + "version": "2.10.0", "private": true, "description": "An Ionic project", "scripts": {