Sales Channels
Queries and Mutations listed here are used to send requests to the Admin Sales Channel API Routes.
All hooks listed require user authentication.
A sales channel indicates a channel where products can be sold in. For example, a webshop or a mobile app. Admins can manage sales channels and the products available in them.
Related Guide: How to manage sales channels.
Mutations
useAdminCreateSalesChannel
This hook creates a sales channel.
Example
import React from "react"
import { useAdminCreateSalesChannel } from "medusa-react"
const CreateSalesChannel = () => {
const createSalesChannel = useAdminCreateSalesChannel()
// ...
const handleCreate = (name: string, description: string) => {
createSalesChannel.mutate({
name,
description,
}, {
onSuccess: ({ sales_channel }) => {
console.log(sales_channel.id)
}
})
}
// ...
}
export default CreateSalesChannel
Mutation Function Parameters
The details of the sales channel to create.
Mutation Function Returned Data
The sales channel's details.
useAdminUpdateSalesChannel
This hook updates a sales channel's details.
Example
import React from "react"
import { useAdminUpdateSalesChannel } from "medusa-react"
type Props = {
salesChannelId: string
}
const SalesChannel = ({ salesChannelId }: Props) => {
const updateSalesChannel = useAdminUpdateSalesChannel(
salesChannelId
)
// ...
const handleUpdate = (
is_disabled: boolean
) => {
updateSalesChannel.mutate({
is_disabled,
}, {
onSuccess: ({ sales_channel }) => {
console.log(sales_channel.is_disabled)
}
})
}
// ...
}
export default SalesChannel
Hook Parameters
id
stringRequiredMutation Function Parameters
The details to update of the sales channel.
Mutation Function Returned Data
The sales channel's details.
useAdminDeleteSalesChannel
This hook deletes a sales channel. Associated products, stock locations, and other resources are not deleted.
Example
import React from "react"
import { useAdminDeleteSalesChannel } from "medusa-react"
type Props = {
salesChannelId: string
}
const SalesChannel = ({ salesChannelId }: Props) => {
const deleteSalesChannel = useAdminDeleteSalesChannel(
salesChannelId
)
// ...
const handleDelete = () => {
deleteSalesChannel.mutate(void 0, {
onSuccess: ({ id, object, deleted }) => {
console.log(id)
}
})
}
// ...
}
export default SalesChannel
Hook Parameters
id
stringRequiredMutation Function Returned Data
The response returned for a
DELETE
request.
DELETE
request.useAdminDeleteProductsFromSalesChannel
This hook removes a list of products from a sales channel. This doesn't delete the product. It only removes the association between the product and the sales channel.
Example
import React from "react"
import {
useAdminDeleteProductsFromSalesChannel,
} from "medusa-react"
type Props = {
salesChannelId: string
}
const SalesChannel = ({ salesChannelId }: Props) => {
const deleteProducts = useAdminDeleteProductsFromSalesChannel(
salesChannelId
)
// ...
const handleDeleteProducts = (productId: string) => {
deleteProducts.mutate({
product_ids: [
{
id: productId,
},
],
}, {
onSuccess: ({ sales_channel }) => {
console.log(sales_channel.id)
}
})
}
// ...
}
export default SalesChannel
Hook Parameters
id
stringRequiredMutation Function Parameters
AdminDeleteSalesChannelsChannelProductsBatchReq
AdminDeleteSalesChannelsChannelProductsBatchReqRequiredThe details of the products to delete from the sales channel.
AdminDeleteSalesChannelsChannelProductsBatchReq
AdminDeleteSalesChannelsChannelProductsBatchReqRequiredMutation Function Returned Data
The sales channel's details.
useAdminAddProductsToSalesChannel
This hook adds a list of products to a sales channel.
Example
import React from "react"
import { useAdminAddProductsToSalesChannel } from "medusa-react"
type Props = {
salesChannelId: string
}
const SalesChannel = ({ salesChannelId }: Props) => {
const addProducts = useAdminAddProductsToSalesChannel(
salesChannelId
)
// ...
const handleAddProducts = (productId: string) => {
addProducts.mutate({
product_ids: [
{
id: productId,
},
],
}, {
onSuccess: ({ sales_channel }) => {
console.log(sales_channel.id)
}
})
}
// ...
}
export default SalesChannel
Hook Parameters
id
stringRequiredMutation Function Parameters
The details of the products to add to the sales channel.
Mutation Function Returned Data
The sales channel's details.
useAdminAddLocationToSalesChannel
This hook associates a stock location with a sales channel. It requires the @medusajs/stock-location module to be installed in your Medusa backend.
Example
import React from "react"
import {
useAdminAddLocationToSalesChannel
} from "medusa-react"
type Props = {
salesChannelId: string
}
const SalesChannel = ({ salesChannelId }: Props) => {
const addLocation = useAdminAddLocationToSalesChannel()
// ...
const handleAddLocation = (locationId: string) => {
addLocation.mutate({
sales_channel_id: salesChannelId,
location_id: locationId
}, {
onSuccess: ({ sales_channel }) => {
console.log(sales_channel.locations)
}
})
}
// ...
}
export default SalesChannel
Mutation Function Parameters
sales_channel_id
stringRequiredlocation_id
stringRequiredMutation Function Returned Data
The sales channel's details.
useAdminRemoveLocationFromSalesChannel
This hook removes a stock location from a sales channel. This only removes the association between the stock location and the sales channel. It does not delete the stock location. This hook requires the @medusajs/stock-location module to be installed in your Medusa backend.
Example
import React from "react"
import {
useAdminRemoveLocationFromSalesChannel
} from "medusa-react"
type Props = {
salesChannelId: string
}
const SalesChannel = ({ salesChannelId }: Props) => {
const removeLocation = useAdminRemoveLocationFromSalesChannel()
// ...
const handleRemoveLocation = (locationId: string) => {
removeLocation.mutate({
sales_channel_id: salesChannelId,
location_id: locationId
}, {
onSuccess: ({ sales_channel }) => {
console.log(sales_channel.locations)
}
})
}
// ...
}
export default SalesChannel
Mutation Function Parameters
sales_channel_id
stringRequiredlocation_id
stringRequiredMutation Function Returned Data
The sales channel's details.
Queries
useAdminSalesChannel
This hook retrieves a sales channel's details.
Example
import React from "react"
import { useAdminSalesChannel } from "medusa-react"
type Props = {
salesChannelId: string
}
const SalesChannel = ({ salesChannelId }: Props) => {
const {
sales_channel,
isLoading,
} = useAdminSalesChannel(salesChannelId)
return (
<div>
{isLoading && <span>Loading...</span>}
{sales_channel && <span>{sales_channel.name}</span>}
</div>
)
}
export default SalesChannel
Hook Parameters
id
stringRequiredQuery Returned Data
Sales Channel's details.
useAdminSalesChannels
This hook retrieves a list of sales channels. The sales channels can be filtered by fields such as q
or name
passed in the query
parameter. The sales channels can also be sorted or paginated.
Example
To list sales channels:
import React from "react"
import { useAdminSalesChannels } from "medusa-react"
const SalesChannels = () => {
const { sales_channels, isLoading } = useAdminSalesChannels()
return (
<div>
{isLoading && <span>Loading...</span>}
{sales_channels && !sales_channels.length && (
<span>No Sales Channels</span>
)}
{sales_channels && sales_channels.length > 0 && (
<ul>
{sales_channels.map((salesChannel) => (
<li key={salesChannel.id}>{salesChannel.name}</li>
))}
</ul>
)}
</div>
)
}
export default SalesChannels
To specify relations that should be retrieved within the sales channels:
import React from "react"
import { useAdminSalesChannels } from "medusa-react"
const SalesChannels = () => {
const {
sales_channels,
isLoading
} = useAdminSalesChannels({
expand: "locations"
})
return (
<div>
{isLoading && <span>Loading...</span>}
{sales_channels && !sales_channels.length && (
<span>No Sales Channels</span>
)}
{sales_channels && sales_channels.length > 0 && (
<ul>
{sales_channels.map((salesChannel) => (
<li key={salesChannel.id}>{salesChannel.name}</li>
))}
</ul>
)}
</div>
)
}
export default SalesChannels
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 { useAdminSalesChannels } from "medusa-react"
const SalesChannels = () => {
const {
sales_channels,
limit,
offset,
isLoading
} = useAdminSalesChannels({
expand: "locations",
limit: 10,
offset: 0
})
return (
<div>
{isLoading && <span>Loading...</span>}
{sales_channels && !sales_channels.length && (
<span>No Sales Channels</span>
)}
{sales_channels && sales_channels.length > 0 && (
<ul>
{sales_channels.map((salesChannel) => (
<li key={salesChannel.id}>{salesChannel.name}</li>
))}
</ul>
)}
</div>
)
}
export default SalesChannels
Hook Parameters
Filters and pagination configurations applied on the retrieved sales channels.
Query Returned Data
limit
numberRequiredoffset
numberRequiredcount
numberRequired