Stock Locations
Queries and Mutations listed here are used to send requests to the Admin Stock Location API Routes. To use these hooks, make sure to install the @medusajs/stock-location module in your Medusa backend.
All hooks listed require user authentication.
A stock location, provided by the Stock Location module, indicates a physical address that stock-kept items, such as physical products, can be stored in. An admin can create and manage available stock locations.
Related Guide: How to manage stock locations.
Mutations
useAdminCreateStockLocation
This hook creates a stock location.
Example
import React from "react"
import { useAdminCreateStockLocation } from "medusa-react"
const CreateStockLocation = () => {
const createStockLocation = useAdminCreateStockLocation()
// ...
const handleCreate = (name: string) => {
createStockLocation.mutate({
name,
}, {
onSuccess: ({ stock_location }) => {
console.log(stock_location.id)
}
})
}
// ...
}
export default CreateStockLocation
Mutation Function Parameters
The details of the stock location to create.
Mutation Function Returned Data
The stock location's details.
useAdminUpdateStockLocation
This hook updates a stock location's details.
Example
import React from "react"
import { useAdminUpdateStockLocation } from "medusa-react"
type Props = {
stockLocationId: string
}
const StockLocation = ({ stockLocationId }: Props) => {
const updateLocation = useAdminUpdateStockLocation(
stockLocationId
)
// ...
const handleUpdate = (
name: string
) => {
updateLocation.mutate({
name
}, {
onSuccess: ({ stock_location }) => {
console.log(stock_location.name)
}
})
}
}
export default StockLocation
Hook Parameters
id
stringRequiredMutation Function Parameters
The details to update of the stock location.
Mutation Function Returned Data
The stock location's details.
useAdminDeleteStockLocation
This hook deletes a stock location.
Example
import React from "react"
import { useAdminDeleteStockLocation } from "medusa-react"
type Props = {
stockLocationId: string
}
const StockLocation = ({ stockLocationId }: Props) => {
const deleteLocation = useAdminDeleteStockLocation(
stockLocationId
)
// ...
const handleDelete = () => {
deleteLocation.mutate(void 0, {
onSuccess: ({ id, object, deleted }) => {
console.log(id)
}
})
}
}
export default StockLocation
Hook Parameters
id
stringRequiredMutation Function Returned Data
Queries
useAdminStockLocations
This hook retrieves a list of stock locations. The stock locations can be filtered by fields such as name
or created_at
passed in the query
parameter.
The stock locations can also be sorted or paginated.
Example
To list stock locations:
import React from "react"
import { useAdminStockLocations } from "medusa-react"
function StockLocations() {
const {
stock_locations,
isLoading
} = useAdminStockLocations()
return (
<div>
{isLoading && <span>Loading...</span>}
{stock_locations && !stock_locations.length && (
<span>No Locations</span>
)}
{stock_locations && stock_locations.length > 0 && (
<ul>
{stock_locations.map(
(location) => (
<li key={location.id}>{location.name}</li>
)
)}
</ul>
)}
</div>
)
}
export default StockLocations
To specify relations that should be retrieved within the stock locations:
import React from "react"
import { useAdminStockLocations } from "medusa-react"
function StockLocations() {
const {
stock_locations,
isLoading
} = useAdminStockLocations({
expand: "address"
})
return (
<div>
{isLoading && <span>Loading...</span>}
{stock_locations && !stock_locations.length && (
<span>No Locations</span>
)}
{stock_locations && stock_locations.length > 0 && (
<ul>
{stock_locations.map(
(location) => (
<li key={location.id}>{location.name}</li>
)
)}
</ul>
)}
</div>
)
}
export default StockLocations
By default, only the first 20
records are retrieved. You can control pagination by specifying the limit
and offset
properties:
import React from "react"
import { useAdminStockLocations } from "medusa-react"
function StockLocations() {
const {
stock_locations,
limit,
offset,
isLoading
} = useAdminStockLocations({
expand: "address",
limit: 10,
offset: 0
})
return (
<div>
{isLoading && <span>Loading...</span>}
{stock_locations && !stock_locations.length && (
<span>No Locations</span>
)}
{stock_locations && stock_locations.length > 0 && (
<ul>
{stock_locations.map(
(location) => (
<li key={location.id}>{location.name}</li>
)
)}
</ul>
)}
</div>
)
}
export default StockLocations
Hook Parameters
Filters and pagination configurations to apply on the retrieved stock locations.
Query Returned Data
limit
numberRequiredoffset
numberRequiredcount
numberRequiredThe list of stock locations.
useAdminStockLocation
This hook retrieves a stock location's details.
Example
import React from "react"
import { useAdminStockLocation } from "medusa-react"
type Props = {
stockLocationId: string
}
const StockLocation = ({ stockLocationId }: Props) => {
const {
stock_location,
isLoading
} = useAdminStockLocation(stockLocationId)
return (
<div>
{isLoading && <span>Loading...</span>}
{stock_location && (
<span>{stock_location.name}</span>
)}
</div>
)
}
export default StockLocation
Hook Parameters
id
stringRequired