From 0695ff642b5836e7c28d40118aafe7a769023d5a Mon Sep 17 00:00:00 2001 From: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com> Date: Wed, 29 Mar 2023 08:54:49 +0200 Subject: [PATCH] fix(medusa, admin-ui): List all inventory levels (#3552) * ensure that all levels are listed * add changeset * remove count from config * update changeset version bump --------- Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> --- .changeset/empty-comics-call.md | 5 +++++ .../edit-variant-inventory-modal.tsx | 7 ++++--- .../components/templates/inventory-table/index.tsx | 12 ------------ .../admin/inventory-items/utils/join-levels.ts | 10 ++++++++-- .../stock-locations/utils/join-sales-channels.ts | 9 ++++++--- 5 files changed, 23 insertions(+), 20 deletions(-) create mode 100644 .changeset/empty-comics-call.md diff --git a/.changeset/empty-comics-call.md b/.changeset/empty-comics-call.md new file mode 100644 index 0000000000..ea4b430e7f --- /dev/null +++ b/.changeset/empty-comics-call.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": minor +--- + +fix(medusa): remove limit of the number of levels to list when joining levels diff --git a/packages/admin-ui/ui/src/components/organisms/product-variants-section/edit-variant-inventory-modal.tsx b/packages/admin-ui/ui/src/components/organisms/product-variants-section/edit-variant-inventory-modal.tsx index df1005f62b..7bdb0919ef 100644 --- a/packages/admin-ui/ui/src/components/organisms/product-variants-section/edit-variant-inventory-modal.tsx +++ b/packages/admin-ui/ui/src/components/organisms/product-variants-section/edit-variant-inventory-modal.tsx @@ -38,9 +38,6 @@ const EditVariantInventoryModal = ({ onClose, product, variant }: Props) => { refetch, } = useAdminVariantsInventory(variant.id) - const variantInventoryItem = variantInventory?.inventory[0] - const itemId = variantInventoryItem?.id - const handleClose = () => { onClose() } @@ -50,6 +47,10 @@ const EditVariantInventoryModal = ({ onClose, product, variant }: Props) => { const onSubmit = async (data: EditFlowVariantFormType) => { const locationLevels = data.stock.location_levels || [] const manageInventory = data.stock.manage_inventory + + const variantInventoryItem = variantInventory?.inventory?.[0] + const itemId = variantInventoryItem?.id + delete data.stock.manage_inventory delete data.stock.location_levels diff --git a/packages/admin-ui/ui/src/components/templates/inventory-table/index.tsx b/packages/admin-ui/ui/src/components/templates/inventory-table/index.tsx index cc87d69224..40b5bf2174 100644 --- a/packages/admin-ui/ui/src/components/templates/inventory-table/index.tsx +++ b/packages/admin-ui/ui/src/components/templates/inventory-table/index.tsx @@ -99,16 +99,9 @@ const InventoryTable: React.FC = () => { }, [store]) const { - removeTab, - setTab, - saveTab, - availableTabs: filterTabs, - activeFilterTab, reset, paginate, - setFilters, setLocationFilter, - filters, setQuery: setFreeText, queryObject, representationObject, @@ -120,11 +113,6 @@ const InventoryTable: React.FC = () => { const [query, setQuery] = useState(queryObject.query) const [numPages, setNumPages] = useState(0) - const clearFilters = () => { - reset() - setQuery("") - } - const { inventory_items, isLoading, count } = useAdminInventoryItems( { ...queryObject, diff --git a/packages/medusa/src/api/routes/admin/inventory-items/utils/join-levels.ts b/packages/medusa/src/api/routes/admin/inventory-items/utils/join-levels.ts index 1c28a9a5ef..f8e6631296 100644 --- a/packages/medusa/src/api/routes/admin/inventory-items/utils/join-levels.ts +++ b/packages/medusa/src/api/routes/admin/inventory-items/utils/join-levels.ts @@ -1,4 +1,5 @@ import { + FilterableInventoryLevelProps, IInventoryService, InventoryItemDTO, InventoryLevelDTO, @@ -25,9 +26,14 @@ export const getLevelsByInventoryItemId = async ( locationIds: string[], inventoryService: IInventoryService ): Promise> => { - const [levels] = await inventoryService.listInventoryLevels({ + const selector: FilterableInventoryLevelProps = { inventory_item_id: items.map((inventoryItem) => inventoryItem.id), - }) + } + if (locationIds.length) { + selector.location_id = locationIds + } + + const [levels] = await inventoryService.listInventoryLevels(selector, {}) const levelsWithAvailability: LevelWithAvailability[] = await Promise.all( levels.map(async (level) => { diff --git a/packages/medusa/src/api/routes/admin/stock-locations/utils/join-sales-channels.ts b/packages/medusa/src/api/routes/admin/stock-locations/utils/join-sales-channels.ts index a475cc9da9..c4077d4620 100644 --- a/packages/medusa/src/api/routes/admin/stock-locations/utils/join-sales-channels.ts +++ b/packages/medusa/src/api/routes/admin/stock-locations/utils/join-sales-channels.ts @@ -14,9 +14,12 @@ const joinSalesChannels = async ( const salesChannelIds = await channelLocationService.listSalesChannelIds( location.id ) - const [salesChannels] = await salesChannelService.listAndCount({ - id: salesChannelIds, - }) + const [salesChannels] = await salesChannelService.listAndCount( + { + id: salesChannelIds, + }, + {} + ) location.sales_channels = salesChannels