* docs: migrate ui docs to docs universe * created yarn workspace * added eslint and tsconfig configurations * fix eslint configurations * fixed eslint configurations * shared tailwind configurations * added shared ui package * added more shared components * migrating more components * made details components shared * move InlineCode component * moved InputText * moved Loading component * Moved Modal component * moved Select components * Moved Tooltip component * moved Search components * moved ColorMode provider * Moved Notification components and providers * used icons package * use UI colors in api-reference * moved Navbar component * used Navbar and Search in UI docs * added Feedback to UI docs * general enhancements * fix color mode * added copy colors file from ui-preset * added features and enhancements to UI docs * move Sidebar component and provider * general fixes and preparations for deployment * update docusaurus version * adjusted versions * fix output directory * remove rootDirectory property * fix yarn.lock * moved code component * added vale for all docs MD and MDX * fix tests * fix vale error * fix deployment errors * change ignore commands * add output directory * fix docs test * general fixes * content fixes * fix announcement script * added changeset * fix vale checks * added nofilter option * fix vale error
265 lines
9.3 KiB
Plaintext
265 lines
9.3 KiB
Plaintext
---
|
||
addHowToData: true
|
||
---
|
||
|
||
import DocCardList from '@theme/DocCardList';
|
||
import Icons from '@theme/Icon';
|
||
|
||
# Multi-Regional Store
|
||
|
||
This document guides you through Medusa's different features and resources to create a multi-regional store.
|
||
|
||
## Overview
|
||
|
||
A multi-regional store allows merchants to sell across different countries. This includes supporting each country's tax rules, currency, available shipping and payment options, and more.
|
||
|
||
Medusa comes with multi-regional support out of the box. This recipe explains how you can benefit from Medusa's features to create a multi-regional store.
|
||
|
||
---
|
||
|
||
## Multi-Region Setup
|
||
|
||
With Medusa, you can create unlimited regions in your store. Each region has configurations managed through the Medusa Admin Dashboard or the Admin API.
|
||
|
||
### Currency
|
||
|
||
Merchants can specify the currency of each region. Multiple regions can have the same currency, but a region can have only one currency.
|
||
|
||
When customers view your products from a region, they see the prices in the region’s currency. As explained later, this also affects which prices are shown to the customer in a region.
|
||
|
||
### Tax rates and providers
|
||
|
||
At the regional level, merchants can define a default tax rate and tax rates for specific conditions (for example, for a particular set of products). Each region can also have a different tax provider that calculates the taxes. You can use Medusa's default tax provider or create a custom tax provider.
|
||
|
||
During checkout, the taxes are calculated based on the customer's region, tax configurations, and rates.
|
||
|
||
<DocCardList colSize={4} items={[
|
||
{
|
||
type: 'link',
|
||
href: '/user-guide/taxes/manage',
|
||
label: 'Manage Taxes in Medusa Admin',
|
||
customProps: {
|
||
icon: Icons['users-solid'],
|
||
description: 'Learn how to manage taxes in Medusa Admin.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/modules/taxes/admin/manage-tax-settings',
|
||
label: 'Manage Taxes Using Admin APIs',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to manage tax settings using the Admin APIs.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/modules/taxes/backend/create-tax-provider',
|
||
label: 'Create Tax Provider',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to create a tax provider.',
|
||
}
|
||
},
|
||
]} />
|
||
|
||
### Payment and Fulfillment Providers
|
||
|
||
Merchants can choose which payment and fulfillment providers are available in each region. For example, one region can use Payment Provider A and B while another only uses Payment Provider B.
|
||
|
||
Customers will only be shown the payment providers and shipping options configured for the region during checkout. This lets you give customers a localized experience that feels familiar and instills trust.
|
||
|
||
Medusa provides official plugins for payment and fulfillment providers. You can also create custom providers.
|
||
|
||
<DocCardList colSize={6} items={[
|
||
{
|
||
type: 'link',
|
||
href: '/user-guide/regions/providers',
|
||
label: 'Manage Providers in Medusa Admin',
|
||
customProps: {
|
||
icon: Icons['users-solid'],
|
||
description: 'Learn how to manage providers in Medusa Admin.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/plugins/payment',
|
||
label: 'Available Payment Plugins',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Check out available payment plugins',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/modules/carts-and-checkout/backend/add-payment-provider',
|
||
label: 'Create Payment Provider',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to create a payment provider.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/modules/carts-and-checkout/backend/add-fulfillment-provider',
|
||
label: 'Create Fulfillment Provider',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to create a fulfillment provider.',
|
||
}
|
||
},
|
||
]} />
|
||
|
||
---
|
||
|
||
## Prices Per Region and Currency
|
||
|
||
When a merchant sets the price of a product in Medusa, they can specify the price per currency and region. Merchants can also benefit from this pricing mechanism when adding sales or overriding prices for specific conditions using the [Price Lists feature](../modules/price-lists/overview.mdx).
|
||
|
||
Then, customers see the price of a product based on the region they're in and the region's currency and whether any special pricing applies to their case. Medusa has a pricing strategy (which you can override) to show the customer the best price based on their context.
|
||
|
||
Using the [tax-inclusive beta feature](../beta.md#tax-inclusive-pricing), merchants can specify prices, including taxes per currency and region. Medusa then calculates the tax amount applied to a line item in the cart based on the region's tax configurations.
|
||
|
||
<DocCardList colSize={6} items={[
|
||
{
|
||
type: 'link',
|
||
href: '/user-guide/products/manage#edit-product-prices-with-bulk-editor',
|
||
label: 'Setting Product Prices in Medusa Admin',
|
||
customProps: {
|
||
icon: Icons['users-solid'],
|
||
description: 'Learn how to set a product prices in Medusa Admin.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/plugins/payment',
|
||
label: 'Display Product Price in Storefront',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to display the correct product price in a storefront.',
|
||
}
|
||
},
|
||
]} />
|
||
|
||
---
|
||
|
||
## Multi-Warehouse Support
|
||
|
||
Medusa provides Multi-warehouse features that allow you to manage your inventory across different locations. Merchants can then control which location an item in an order is fulfilled, allowing them to keep a correct inventory count across locations and sales channels.
|
||
|
||
A multi-regional setup lets you manage your inventory through Medusa across the different regions you serve. Your products’ inventory and availability aren't bound to a single stock location, and customers are always shown accurate inventory information based on the location associated with their sales channel.
|
||
|
||
<DocCardList colSize={4} items={[
|
||
{
|
||
type: 'link',
|
||
href: '/modules/multiwarehouse/overview',
|
||
label: 'Multi-warehouse Overview',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn about the Multi-warehouse feature in Medusa.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/user-guide/multiwarehouse/locations',
|
||
label: 'Manage Stock Locations',
|
||
customProps: {
|
||
icon: Icons['users-solid'],
|
||
description: 'Learn how to manage stock locations in the Medusa admin.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/user-guide/multiwarehouse/inventory',
|
||
label: 'Manage Inventory',
|
||
customProps: {
|
||
icon: Icons['users-solid'],
|
||
description: 'Learn how to manage inventory in the Medusa admin.',
|
||
}
|
||
},
|
||
]} />
|
||
|
||
---
|
||
|
||
## Multi-Lingual Setup with Third-Party CMS
|
||
|
||
Medusa can be integrated with third-party services, including Content Management Systems (CMS). You can benefit from rich CMS features with a third-party CMS, including managing your content in multiple languages. This allows you to cater to customers’ different languages in the regions you serve.
|
||
|
||
Medusa provides an official Contentful plugin and a community Strapi plugin. You can also create a CMS plugin that integrates with your preferred CMS platform to provide multi-lingual features.
|
||
|
||
<DocCardList colSize={6} items={[
|
||
{
|
||
type: 'link',
|
||
href: '/plugins/cms',
|
||
label: 'CMS Plugins',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn about available CMS plugins for the Medusa backend.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/development/plugins/create',
|
||
label: 'How to Create a Plugin',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to create a plugin for the Medusa backend.',
|
||
}
|
||
},
|
||
]} />
|
||
|
||
---
|
||
|
||
## Automatic Location Detection
|
||
|
||
When you sell across regions, it's essential to be able to detect the customer's region and provide them with the products, prices, and content relevant to them without requiring actions from their side.
|
||
|
||
Medusa provides an IP Lookup plugin that lets you detect a customer's location and, ultimately, their region using [ipstack](https://ipstack.com/). You can also create a plugin that detects the location through a different logic.
|
||
|
||
<DocCardList colSize={6} items={[
|
||
{
|
||
type: 'link',
|
||
href: '/plugins/other/ip-lookup',
|
||
label: 'IP Lookup Plugin',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to use the IP Lookup plugin in your Medusa backend.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/development/plugins/create',
|
||
label: 'How to Create a Plugin',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to create a plugin for the Medusa backend.',
|
||
}
|
||
},
|
||
]} />
|
||
|
||
---
|
||
|
||
## Additional Features and Development Resources
|
||
|
||
Medusa provides other essential commerce features and development resources to help you build your multi-region store.
|
||
|
||
<DocCardList colSize={6} items={[
|
||
{
|
||
type: 'link',
|
||
href: '/modules/overview',
|
||
label: 'Commerce Modules',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn about the available commerce features and modules in Medusa.',
|
||
}
|
||
},
|
||
{
|
||
type: 'link',
|
||
href: '/development/overview',
|
||
label: 'Medusa Development',
|
||
customProps: {
|
||
icon: Icons['academic-cap-solid'],
|
||
description: 'Learn how to customize your Medusa backend for your use case.',
|
||
}
|
||
},
|
||
]} /> |