From 8bf3c5a533ef779749616a2b0f450d36d6870d10 Mon Sep 17 00:00:00 2001 From: sylwia-werner Date: Wed, 5 Nov 2025 14:42:23 +0100 Subject: [PATCH 1/2] fix: require force set to true for batch inventory deletion --- src/hooks/api/inventory.tsx | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/hooks/api/inventory.tsx b/src/hooks/api/inventory.tsx index 3f2c2fe..029c661 100644 --- a/src/hooks/api/inventory.tsx +++ b/src/hooks/api/inventory.tsx @@ -226,11 +226,18 @@ export const useBatchInventoryItemLocationLevels = ( > ) => { return useMutation({ - mutationFn: (payload) => - sdk.admin.inventoryItem.batchInventoryItemLocationLevels( + mutationFn: (payload) => { + // force: true is required for admin batch endpoint to delete levels with stocked items + const payloadWithForce: HttpTypes.AdminBatchInventoryItemLocationLevels = { + ...payload, + force: payload?.delete?.length ? true : payload.force, + } + + return sdk.admin.inventoryItem.batchInventoryItemLocationLevels( inventoryItemId, - payload - ), + payloadWithForce + ) + }, onSuccess: (data, variables, context) => { queryClient.invalidateQueries({ queryKey: inventoryItemsQueryKeys.lists(), @@ -258,8 +265,15 @@ export const useBatchInventoryItemsLocationLevels = ( > ) => { return useMutation({ - mutationFn: (payload) => - sdk.admin.inventoryItem.batchInventoryItemsLocationLevels(payload), + mutationFn: (payload) => { + // force: true is required for admin batch endpoint to delete levels with stocked items + const payloadWithForce: HttpTypes.AdminBatchInventoryItemsLocationLevels = { + ...payload, + force: payload?.delete?.length ? true : payload.force, + } + + return sdk.admin.inventoryItem.batchInventoryItemsLocationLevels(payloadWithForce) + }, onSuccess: (data, variables, context) => { queryClient.invalidateQueries({ queryKey: inventoryItemsQueryKeys.all, From c166a6bf37ea58c7cc6aff6a8703aee45f279f3f Mon Sep 17 00:00:00 2001 From: sylwia-werner Date: Wed, 12 Nov 2025 10:21:14 +0100 Subject: [PATCH 2/2] refactor: simplify payload logic for batch inventory api call --- src/hooks/api/inventory.tsx | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/hooks/api/inventory.tsx b/src/hooks/api/inventory.tsx index 029c661..f9f0f10 100644 --- a/src/hooks/api/inventory.tsx +++ b/src/hooks/api/inventory.tsx @@ -227,15 +227,13 @@ export const useBatchInventoryItemLocationLevels = ( ) => { return useMutation({ mutationFn: (payload) => { - // force: true is required for admin batch endpoint to delete levels with stocked items - const payloadWithForce: HttpTypes.AdminBatchInventoryItemLocationLevels = { - ...payload, - force: payload?.delete?.length ? true : payload.force, - } - return sdk.admin.inventoryItem.batchInventoryItemLocationLevels( inventoryItemId, - payloadWithForce + { + ...payload, + // force: true is required for admin batch endpoint to delete levels with stocked items + force: !!payload?.delete?.length || payload.force, + } ) }, onSuccess: (data, variables, context) => { @@ -266,13 +264,11 @@ export const useBatchInventoryItemsLocationLevels = ( ) => { return useMutation({ mutationFn: (payload) => { - // force: true is required for admin batch endpoint to delete levels with stocked items - const payloadWithForce: HttpTypes.AdminBatchInventoryItemsLocationLevels = { + return sdk.admin.inventoryItem.batchInventoryItemsLocationLevels({ ...payload, - force: payload?.delete?.length ? true : payload.force, - } - - return sdk.admin.inventoryItem.batchInventoryItemsLocationLevels(payloadWithForce) + // force: true is required for admin batch endpoint to delete levels with stocked items + force: !!payload?.delete?.length || payload.force, + }) }, onSuccess: (data, variables, context) => { queryClient.invalidateQueries({