Skip to main content
Skip to main content

Price Lists

Queries and Mutations listed here are used to send requests to the Admin Price List API Routes.

All hooks listed require authentication.

A price list are special prices applied to products based on a set of conditions, such as customer group.

Related Guide: How to manage price lists.

Mutations

useAdminCreatePriceList

This hook creates a price list.

Example

import React from "react"
import {
PriceListStatus,
PriceListType,
} from "@medusajs/medusa"
import { useAdminCreatePriceList } from "medusa-react"

type CreateData = {
name: string
description: string
type: PriceListType
status: PriceListStatus
prices: {
amount: number
variant_id: string
currency_code: string
max_quantity: number
}[]
}

const CreatePriceList = () => {
const createPriceList = useAdminCreatePriceList()
// ...

const handleCreate = (
data: CreateData
) => {
createPriceList.mutate(data, {
onSuccess: ({ price_list }) => {
console.log(price_list.id)
}
})
}

// ...
}

export default CreatePriceList

Mutation Function Parameters

AdminPostPriceListsPriceListReqAdminPostPriceListsPriceListReqRequired
The details of the price list to create.

Mutation Function Returned Data

AdminPriceListResAdminPriceListResRequired
The price list's details.

useAdminUpdatePriceList

This hook updates a price list's details.

Example

import React from "react"
import { useAdminUpdatePriceList } from "medusa-react"

type Props = {
priceListId: string
}

const PriceList = ({
priceListId
}: Props) => {
const updatePriceList = useAdminUpdatePriceList(priceListId)
// ...

const handleUpdate = (
endsAt: Date
) => {
updatePriceList.mutate({
ends_at: endsAt,
}, {
onSuccess: ({ price_list }) => {
console.log(price_list.ends_at)
}
})
}

// ...
}

export default PriceList

Hook Parameters

idstringRequired
The price list's ID.

Mutation Function Parameters

AdminPostPriceListsPriceListPriceListReqAdminPostPriceListsPriceListPriceListReqRequired
The details to update of the payment collection.

Mutation Function Returned Data

AdminPriceListResAdminPriceListResRequired
The price list's details.

useAdminDeletePriceList

This hook deletes a price list and its associated prices.

Example

import React from "react"
import { useAdminDeletePriceList } from "medusa-react"

type Props = {
priceListId: string
}

const PriceList = ({
priceListId
}: Props) => {
const deletePriceList = useAdminDeletePriceList(priceListId)
// ...

const handleDelete = () => {
deletePriceList.mutate(void 0, {
onSuccess: ({ id, object, deleted }) => {
console.log(id)
}
})
}

// ...
}

export default PriceList

Hook Parameters

idstringRequired
The price list's ID.

Mutation Function Returned Data

DeleteResponseDeleteResponseRequired
The response returned for a DELETE request.

useAdminCreatePriceListPrices

This hook adds or updates a list of prices in a price list.

Example

import React from "react"
import { useAdminCreatePriceListPrices } from "medusa-react"

type PriceData = {
amount: number
variant_id: string
currency_code: string
}

type Props = {
priceListId: string
}

const PriceList = ({
priceListId
}: Props) => {
const addPrices = useAdminCreatePriceListPrices(priceListId)
// ...

const handleAddPrices = (prices: PriceData[]) => {
addPrices.mutate({
prices
}, {
onSuccess: ({ price_list }) => {
console.log(price_list.prices)
}
})
}

// ...
}

export default PriceList

Hook Parameters

idstringRequired
The price list's ID.

Mutation Function Parameters

AdminPostPriceListPricesPricesReqAdminPostPriceListPricesPricesReqRequired
The details of the prices to add.

Mutation Function Returned Data

AdminPriceListResAdminPriceListResRequired
The price list's details.

useAdminDeletePriceListPrices

This hook deletes a list of prices in a price list.

Example

import React from "react"
import { useAdminDeletePriceListPrices } from "medusa-react"

type Props = {
priceListId: string
}

const PriceList = ({
priceListId
}: Props) => {
const deletePrices = useAdminDeletePriceListPrices(priceListId)
// ...

const handleDeletePrices = (priceIds: string[]) => {
deletePrices.mutate({
price_ids: priceIds
}, {
onSuccess: ({ ids, deleted, object }) => {
console.log(ids)
}
})
}

// ...
}

export default PriceList

Hook Parameters

idstringRequired
The price list's ID.

Mutation Function Parameters

AdminDeletePriceListPricesPricesReqAdminDeletePriceListPricesPricesReqRequired
The details of the prices to delete.

Mutation Function Returned Data

AdminPriceListDeleteBatchResAdminPriceListDeleteBatchResRequired
The details of deleting a price list.

useAdminDeletePriceListProductsPrices

This hook deletes all the prices associated with multiple products in a price list.

Example

import React from "react"
import { useAdminDeletePriceListProductsPrices } from "medusa-react"

type Props = {
priceListId: string
}

const PriceList = ({
priceListId
}: Props) => {
const deleteProductsPrices = useAdminDeletePriceListProductsPrices(
priceListId
)
// ...

const handleDeleteProductsPrices = (productIds: string[]) => {
deleteProductsPrices.mutate({
product_ids: productIds
}, {
onSuccess: ({ ids, deleted, object }) => {
console.log(ids)
}
})
}

// ...
}

export default PriceList

Hook Parameters

idstringRequired
The price list's ID.

Mutation Function Parameters

AdminDeletePriceListsPriceListProductsPricesBatchReqAdminDeletePriceListsPriceListProductsPricesBatchReqRequired
The details of the products' prices to delete.

Mutation Function Returned Data

AdminPriceListDeleteBatchResAdminPriceListDeleteBatchResRequired
The details of deleting a price list.

useAdminDeletePriceListProductPrices

This hook deletes all the prices related to a specific product in a price list.

Example

import React from "react"
import {
useAdminDeletePriceListProductPrices
} from "medusa-react"

type Props = {
priceListId: string
productId: string
}

const PriceListProduct = ({
priceListId,
productId
}: Props) => {
const deleteProductPrices = useAdminDeletePriceListProductPrices(
priceListId,
productId
)
// ...

const handleDeleteProductPrices = () => {
deleteProductPrices.mutate(void 0, {
onSuccess: ({ ids, deleted, object }) => {
console.log(ids)
}
})
}

// ...
}

export default PriceListProduct

Hook Parameters

idstringRequired
The price list's ID.
productIdstringRequired
The product's ID.

Mutation Function Returned Data

AdminPriceListDeleteBatchResAdminPriceListDeleteBatchResRequired
The details of deleting a price list.

useAdminDeletePriceListVariantPrices

This hook deletes all the prices related to a specific product variant in a price list.

Example

import React from "react"
import {
useAdminDeletePriceListVariantPrices
} from "medusa-react"

type Props = {
priceListId: string
variantId: string
}

const PriceListVariant = ({
priceListId,
variantId
}: Props) => {
const deleteVariantPrices = useAdminDeletePriceListVariantPrices(
priceListId,
variantId
)
// ...

const handleDeleteVariantPrices = () => {
deleteVariantPrices.mutate(void 0, {
onSuccess: ({ ids, deleted, object }) => {
console.log(ids)
}
})
}

// ...
}

export default PriceListVariant

Hook Parameters

idstringRequired
The price list's ID.
variantIdstringRequired
The product variant's ID.

Mutation Function Returned Data

AdminPriceListDeleteBatchResAdminPriceListDeleteBatchResRequired
The details of deleting a price list.

Queries

useAdminPriceLists

This hook retrieves a list of price lists. The price lists can be filtered by fields such as q or status passed in the query parameter. The price lists can also be sorted or paginated.

Example

To list price lists:

import React from "react"
import { useAdminPriceLists } from "medusa-react"

const PriceLists = () => {
const { price_lists, isLoading } = useAdminPriceLists()

return (
<div>
{isLoading && <span>Loading...</span>}
{price_lists && !price_lists.length && (
<span>No Price Lists</span>
)}
{price_lists && price_lists.length > 0 && (
<ul>
{price_lists.map((price_list) => (
<li key={price_list.id}>{price_list.name}</li>
))}
</ul>
)}
</div>
)
}

export default PriceLists

To specify relations that should be retrieved within the price lists:

import React from "react"
import { useAdminPriceLists } from "medusa-react"

const PriceLists = () => {
const { price_lists, isLoading } = useAdminPriceLists({
expand: "prices"
})

return (
<div>
{isLoading && <span>Loading...</span>}
{price_lists && !price_lists.length && (
<span>No Price Lists</span>
)}
{price_lists && price_lists.length > 0 && (
<ul>
{price_lists.map((price_list) => (
<li key={price_list.id}>{price_list.name}</li>
))}
</ul>
)}
</div>
)
}

export default PriceLists

By default, only the first 10 records are retrieved. You can control pagination by specifying the limit and offset properties:

import React from "react"
import { useAdminPriceLists } from "medusa-react"

const PriceLists = () => {
const {
price_lists,
limit,
offset,
isLoading
} = useAdminPriceLists({
expand: "prices",
limit: 20,
offset: 0
})

return (
<div>
{isLoading && <span>Loading...</span>}
{price_lists && !price_lists.length && (
<span>No Price Lists</span>
)}
{price_lists && price_lists.length > 0 && (
<ul>
{price_lists.map((price_list) => (
<li key={price_list.id}>{price_list.name}</li>
))}
</ul>
)}
</div>
)
}

export default PriceLists

Hook Parameters

Filters and pagination configurations to apply on the retrieved price lists.

Query Returned Data

limitnumberRequired
The maximum number of items that can be returned in the list.
offsetnumberRequired
The number of items skipped before the returned items in the list.
countnumberRequired
The total number of items available.
price_listsPriceList[]Required
An array of price lists details.

useAdminPriceListProducts

This hook retrieves a price list's products. The products can be filtered by fields such as q or status passed in the query parameter. The products can also be sorted or paginated.

Example

To list products in a price list:

import React from "react"
import { useAdminPriceListProducts } from "medusa-react"

type Props = {
priceListId: string
}

const PriceListProducts = ({
priceListId
}: Props) => {
const { products, isLoading } = useAdminPriceListProducts(
priceListId
)

return (
<div>
{isLoading && <span>Loading...</span>}
{products && !products.length && (
<span>No Price Lists</span>
)}
{products && products.length > 0 && (
<ul>
{products.map((product) => (
<li key={product.id}>{product.title}</li>
))}
</ul>
)}
</div>
)
}

export default PriceListProducts

To specify relations that should be retrieved within the products:

import React from "react"
import { useAdminPriceListProducts } from "medusa-react"

type Props = {
priceListId: string
}

const PriceListProducts = ({
priceListId
}: Props) => {
const { products, isLoading } = useAdminPriceListProducts(
priceListId,
{
expand: "variants"
}
)

return (
<div>
{isLoading && <span>Loading...</span>}
{products && !products.length && (
<span>No Price Lists</span>
)}
{products && products.length > 0 && (
<ul>
{products.map((product) => (
<li key={product.id}>{product.title}</li>
))}
</ul>
)}
</div>
)
}

export default PriceListProducts

By default, only the first 50 records are retrieved. You can control pagination by specifying the limit and offset properties:

import React from "react"
import { useAdminPriceListProducts } from "medusa-react"

type Props = {
priceListId: string
}

const PriceListProducts = ({
priceListId
}: Props) => {
const {
products,
limit,
offset,
isLoading
} = useAdminPriceListProducts(
priceListId,
{
expand: "variants",
limit: 20,
offset: 0
}
)

return (
<div>
{isLoading && <span>Loading...</span>}
{products && !products.length && (
<span>No Price Lists</span>
)}
{products && products.length > 0 && (
<ul>
{products.map((product) => (
<li key={product.id}>{product.title}</li>
))}
</ul>
)}
</div>
)
}

export default PriceListProducts

Hook Parameters

idstringRequired
The ID of the associated price list.
Filters and pagination configurations applied on the retrieved products.

Query Returned Data

limitnumberRequired
The maximum number of items that can be returned in the list.
offsetnumberRequired
The number of items skipped before the returned items in the list.
countnumberRequired
The total number of items available.
products(PricedProduct | Product)[]Required
An array of products details.

useAdminPriceList

This hook retrieves a price list's details.

Example

import React from "react"
import { useAdminPriceList } from "medusa-react"

type Props = {
priceListId: string
}

const PriceList = ({
priceListId
}: Props) => {
const {
price_list,
isLoading,
} = useAdminPriceList(priceListId)

return (
<div>
{isLoading && <span>Loading...</span>}
{price_list && <span>{price_list.name}</span>}
</div>
)
}

export default PriceList

Hook Parameters

idstringRequired
The price list's ID.

Query Returned Data

price_listPriceListRequired
Price List details.
Was this section helpful?