---
displayed_sidebar: servicesSidebar
---
import ParameterTypes from "@site/src/components/ParameterTypes"
# IStockLocationService
## Methods
### create
`**create**(input, context?): Promise<[StockLocationDTO](../types/StockLocationDTO.mdx)>`
This method is used to create a stock location.
#### Example
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function createStockLocation (name: string) {
const stockLocationModule = await initializeStockLocationModule({})
const stockLocation = await stockLocationModule.create({
name
})
// do something with the stock location or return it
}
```
#### Parameters
#### Returns
Promise<[StockLocationDTO](../types/StockLocationDTO.mdx)>
___
### delete
`**delete**(id, context?): Promise<void>`
This method is used to delete a stock location.
#### Example
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function deleteStockLocation (id:string) {
const stockLocationModule = await initializeStockLocationModule({})
await stockLocationModule.delete(id)
}
```
#### Parameters
#### Returns
Promise<void>
___
### list
`**list**(selector, config?, context?): Promise<[StockLocationDTO](../types/StockLocationDTO.mdx)[]>`
This method is used to retrieve a paginated list of stock locations based on optional filters and configuration.
#### Example
To retrieve a list of stock locations using their IDs:
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function listStockLocations (ids: string[]) {
const stockLocationModule = await initializeStockLocationModule({})
const stockLocations = await stockLocationModule.list({
id: ids
})
// do something with the stock locations or return them
}
```
To specify relations that should be retrieved within the stock locations:
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function listStockLocations (ids: string[]) {
const stockLocationModule = await initializeStockLocationModule({})
const stockLocations = await stockLocationModule.list({
id: ids
}, {
relations: ["address"]
})
// do something with the stock locations or return them
}
```
By default, only the first `10` records are retrieved. You can control pagination by specifying the `skip` and `take` properties of the `config` parameter:
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function listStockLocations (ids: string[], skip: number, take: number) {
const stockLocationModule = await initializeStockLocationModule({})
const stockLocations = await stockLocationModule.list({
id: ids
}, {
relations: ["address"],
skip,
take
})
// do something with the stock locations or return them
}
```
#### Parameters
#### Returns
Promise<[StockLocationDTO](../types/StockLocationDTO.mdx)[]>
___
### listAndCount
`**listAndCount**(selector, config?, context?): Promise<[[StockLocationDTO](../types/StockLocationDTO.mdx)[], number]>`
This method is used to retrieve a paginated list of stock locations along with the total count of available stock locations satisfying the provided filters.
#### Example
To retrieve a list of stock locations using their IDs:
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function listStockLocations (ids: string[]) {
const stockLocationModule = await initializeStockLocationModule({})
const [stockLocations, count] = await stockLocationModule.listAndCount({
id: ids
})
// do something with the stock locations or return them
}
```
To specify relations that should be retrieved within the stock locations:
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function listStockLocations (ids: string[]) {
const stockLocationModule = await initializeStockLocationModule({})
const [stockLocations, count] = await stockLocationModule.listAndCount({
id: ids
}, {
relations: ["address"]
})
// do something with the stock locations or return them
}
```
By default, only the first `10` records are retrieved. You can control pagination by specifying the `skip` and `take` properties of the `config` parameter:
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function listStockLocations (ids: string[], skip: number, take: number) {
const stockLocationModule = await initializeStockLocationModule({})
const [stockLocations, count] = await stockLocationModule.listAndCount({
id: ids
}, {
relations: ["address"],
skip,
take
})
// do something with the stock locations or return them
}
```
#### Parameters
#### Returns
Promise<[[StockLocationDTO](../types/StockLocationDTO.mdx)[], number]>
___
### retrieve
`**retrieve**(id, config?, context?): Promise<[StockLocationDTO](../types/StockLocationDTO.mdx)>`
This method is used to retrieve a stock location by its ID
#### Example
A simple example that retrieves a inventory item by its ID:
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function retrieveStockLocation (id: string) {
const stockLocationModule = await initializeStockLocationModule({})
const stockLocation = await stockLocationModule.retrieve(id)
// do something with the stock location or return it
}
```
To specify relations that should be retrieved:
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function retrieveStockLocation (id: string) {
const stockLocationModule = await initializeStockLocationModule({})
const stockLocation = await stockLocationModule.retrieve(id, {
relations: ["address"]
})
// do something with the stock location or return it
}
```
#### Parameters
#### Returns
Promise<[StockLocationDTO](../types/StockLocationDTO.mdx)>
___
### update
`**update**(id, input, context?): Promise<[StockLocationDTO](../types/StockLocationDTO.mdx)>`
This method is used to update a stock location.
#### Example
```ts
import {
initialize as initializeStockLocationModule,
} from "@medusajs/stock-location"
async function updateStockLocation (id:string, name: string) {
const stockLocationModule = await initializeStockLocationModule({})
const stockLocation = await stockLocationModule.update(id, {
name
})
// do something with the stock location or return it
}
```
#### Parameters
#### Returns
Promise<[StockLocationDTO](../types/StockLocationDTO.mdx)>