Skip to main content
Skip to main content
You're viewing the documentation for v1, which isn't the latest Medusa version.Latest documentation

Regions

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

All hooks listed require user authentication.

Regions are different countries or geographical regions that the commerce store serves customers in. Admins can manage these regions, their providers, and more.

Related Guide: How to manage regions.

Mutations​

useAdminCreateRegion​

This hook creates a region.

Example​

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

type CreateData = {
name: string
currency_code: string
tax_rate: number
payment_providers: string[]
fulfillment_providers: string[]
countries: string[]
}

const CreateRegion = () => {
const createRegion = useAdminCreateRegion()
// ...

const handleCreate = (regionData: CreateData) => {
createRegion.mutate(regionData, {
onSuccess: ({ region }) => {
console.log(region.id)
}
})
}

// ...
}

export default CreateRegion

Mutation Function Parameters​

AdminPostRegionsReqAdminPostRegionsReqRequired
The details of the region to create.

Mutation Function Returned Data​

AdminRegionsResAdminRegionsResRequired
The region's details.

useAdminUpdateRegion​

This hook updates a region's details.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const updateRegion = useAdminUpdateRegion(regionId)
// ...

const handleUpdate = (
countries: string[]
) => {
updateRegion.mutate({
countries,
}, {
onSuccess: ({ region }) => {
console.log(region.id)
}
})
}

// ...
}

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Mutation Function Parameters​

AdminPostRegionsRegionReqAdminPostRegionsRegionReqRequired
The details to update of the regions.

Mutation Function Returned Data​

AdminRegionsResAdminRegionsResRequired
The region's details.

useAdminDeleteRegion​

This hook deletes a region. Associated resources, such as providers or currencies are not deleted. Associated tax rates are deleted.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const deleteRegion = useAdminDeleteRegion(regionId)
// ...

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

// ...
}

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Mutation Function Returned Data​

DeleteResponseDeleteResponseRequired
The response returned for a DELETE request.

useAdminRegionAddCountry​

This hook adds a country to the list of countries in a region.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const addCountry = useAdminRegionAddCountry(regionId)
// ...

const handleAddCountry = (
countryCode: string
) => {
addCountry.mutate({
country_code: countryCode
}, {
onSuccess: ({ region }) => {
console.log(region.countries)
}
})
}

// ...
}

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Mutation Function Parameters​

AdminPostRegionsRegionCountriesReqAdminPostRegionsRegionCountriesReqRequired
The details of the country to add to the region.

Mutation Function Returned Data​

AdminRegionsResAdminRegionsResRequired
The region's details.

useAdminRegionRemoveCountry​

This hook deletes a country from the list of countries in a region. The country will still be available in the system, and it can be used in other regions.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const removeCountry = useAdminRegionRemoveCountry(regionId)
// ...

const handleRemoveCountry = (
countryCode: string
) => {
removeCountry.mutate(countryCode, {
onSuccess: ({ region }) => {
console.log(region.countries)
}
})
}

// ...
}

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Mutation Function Parameters​

stringstringRequired
The code of the country to delete from the region.

Mutation Function Returned Data​

AdminRegionsResAdminRegionsResRequired
The region's details.

useAdminRegionAddFulfillmentProvider​

This hook adds a fulfillment provider to the list of fulfullment providers in a region.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const addFulfillmentProvider =
useAdminRegionAddFulfillmentProvider(regionId)
// ...

const handleAddFulfillmentProvider = (
providerId: string
) => {
addFulfillmentProvider.mutate({
provider_id: providerId
}, {
onSuccess: ({ region }) => {
console.log(region.fulfillment_providers)
}
})
}

// ...
}

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Mutation Function Parameters​

AdminPostRegionsRegionFulfillmentProvidersReqAdminPostRegionsRegionFulfillmentProvidersReqRequired
The details of the fulfillment provider to add to the region.

Mutation Function Returned Data​

AdminRegionsResAdminRegionsResRequired
The region's details.

useAdminRegionDeleteFulfillmentProvider​

This hook deletes a fulfillment provider from a region. The fulfillment provider will still be available for usage in other regions.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const removeFulfillmentProvider =
useAdminRegionDeleteFulfillmentProvider(regionId)
// ...

const handleRemoveFulfillmentProvider = (
providerId: string
) => {
removeFulfillmentProvider.mutate(providerId, {
onSuccess: ({ region }) => {
console.log(region.fulfillment_providers)
}
})
}

// ...
}

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Mutation Function Parameters​

stringstringRequired
The fulfillment provider's ID to delete from the region.

Mutation Function Returned Data​

AdminRegionsResAdminRegionsResRequired
The region's details.

useAdminRegionAddPaymentProvider​

This hook adds a payment provider to the list of payment providers in a region.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const addPaymentProvider =
useAdminRegionAddPaymentProvider(regionId)
// ...

const handleAddPaymentProvider = (
providerId: string
) => {
addPaymentProvider.mutate({
provider_id: providerId
}, {
onSuccess: ({ region }) => {
console.log(region.payment_providers)
}
})
}

// ...
}

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Mutation Function Parameters​

AdminPostRegionsRegionPaymentProvidersReqAdminPostRegionsRegionPaymentProvidersReqRequired
The details of the payment provider to add to the region.

Mutation Function Returned Data​

AdminRegionsResAdminRegionsResRequired
The region's details.

useAdminRegionDeletePaymentProvider​

This hook deletes a payment provider from a region. The payment provider will still be available for usage in other regions.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const removePaymentProvider =
useAdminRegionDeletePaymentProvider(regionId)
// ...

const handleRemovePaymentProvider = (
providerId: string
) => {
removePaymentProvider.mutate(providerId, {
onSuccess: ({ region }) => {
console.log(region.payment_providers)
}
})
}

// ...
}

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Mutation Function Parameters​

stringstringRequired
The ID of the payment provider to delete from the region.

Mutation Function Returned Data​

AdminRegionsResAdminRegionsResRequired
The region's details.

Queries​

useAdminRegions​

This hook retrieves a list of Regions. The regions can be filtered by fields such as created_at passed in the query parameter. The regions can also be paginated.

Example​

To list regions:

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

const Regions = () => {
const { regions, isLoading } = useAdminRegions()

return (
<div>
{isLoading && <span>Loading...</span>}
{regions && !regions.length && <span>No Regions</span>}
{regions && regions.length > 0 && (
<ul>
{regions.map((region) => (
<li key={region.id}>{region.name}</li>
))}
</ul>
)}
</div>
)
}

export default Regions

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 { useAdminRegions } from "medusa-react"

const Regions = () => {
const {
regions,
limit,
offset,
isLoading
} = useAdminRegions({
limit: 20,
offset: 0
})

return (
<div>
{isLoading && <span>Loading...</span>}
{regions && !regions.length && <span>No Regions</span>}
{regions && regions.length > 0 && (
<ul>
{regions.map((region) => (
<li key={region.id}>{region.name}</li>
))}
</ul>
)}
</div>
)
}

export default Regions

Hook Parameters​

Filters and pagination configurations to apply on the retrieved regions.

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.
regionsRegion[]Required
An array of regions details.

useAdminRegion​

This hook retrieves a region's details.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const { region, isLoading } = useAdminRegion(
regionId
)

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

export default Region

Hook Parameters​

idstringRequired
The region's ID.

Query Returned Data​

regionRegionRequired
Region details.

useAdminRegionFulfillmentOptions​

This hook retrieves a list of fulfillment options available in a region.

Example​

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

type Props = {
regionId: string
}

const Region = ({
regionId
}: Props) => {
const {
fulfillment_options,
isLoading
} = useAdminRegionFulfillmentOptions(
regionId
)

return (
<div>
{isLoading && <span>Loading...</span>}
{fulfillment_options && !fulfillment_options.length && (
<span>No Regions</span>
)}
{fulfillment_options &&
fulfillment_options.length > 0 && (
<ul>
{fulfillment_options.map((option) => (
<li key={option.provider_id}>
{option.provider_id}
</li>
))}
</ul>
)}
</div>
)
}

export default Region

Hook Parameters​

regionIdstringRequired
The region's ID.

Query Returned Data​

fulfillment_optionsFulfillmentOption[]Required
Fulfillment providers details.
Was this section helpful?