← Volver a artículos

3 de junio de 2026

9 min de lectura

Ecommerce multi-región con Medusa: zonas, monedas e impuestos desde el inicio

Cómo configurar regiones, zonas de envío, monedas e impuestos en Medusa para vender en múltiples países sin refactorizar el sistema después.

Read in English

Por qué las regiones son el eje del modelo multi-país

En Medusa, una región agrupa todo lo que varía por país o zona geográfica: la moneda, los impuestos, los métodos de pago disponibles y los proveedores de fulfillment. Un carrito siempre pertenece a una región, y esa región determina qué precio se muestra, qué impuesto se aplica y qué opciones de envío aparecen en el checkout.

Diseñar las regiones desde el inicio del proyecto evita la refactorización más dolorosa en ecommerce: agregar soporte multi-país a un sistema que asumía una sola moneda y un solo esquema de impuestos. No se trata solo de añadir un campo de país; es redefinir cómo se calculan precios, totales e inventario.

Configurar zonas de envío y métodos por región

Las zonas de envío en Medusa definen qué países pueden recibir pedidos de una región determinada. Una zona puede tener múltiples países y múltiples opciones de envío (estándar, express, punto de recolección). Cada opción tiene su propia lógica de precio: tarifa plana, calculada por peso o manejada por un fulfillment provider externo como Skydropx.

El patrón recomendado es crear una región por grupo de países con el mismo esquema de impuestos y la misma moneda. México y Colombia pueden estar en regiones separadas aunque ambas usen Stripe, porque los impuestos y las monedas son distintos. No conviene agrupar países solo por afinidad si el modelo fiscal no lo justifica.

Crear región con moneda, impuesto y primera opción de envío vía Admin API.

const { region } = await medusaAdmin.regions.create({
  name: 'México',
  currency_code: 'mxn',
  tax_rate: 16,
  payment_providers: ['stripe'],
  fulfillment_providers: ['manual'],
  countries: ['mx'],
});

await medusaAdmin.shippingOptions.create({
  name: 'Envío estándar',
  region_id: region.id,
  provider_id: 'manual',
  data: {},
  price_type: 'flat_rate',
  amount: 9900,
});

Monedas, impuestos y precios diferenciados por región

Cada región tiene una moneda base y una tasa de impuesto general. El impuesto se puede sobreescribir por categoría de producto o por proveedor de impuestos externo (como TaxJar para Estados Unidos, donde cada estado tiene sus propias reglas).

Los precios de las variantes se definen por moneda, no por región. Si una variante cuesta $450 MXN y $25 USD, esos dos precios existen como entradas separadas. Medusa selecciona el precio correcto según la moneda de la región del carrito. Si no existe un precio en la moneda de la región, Medusa lo indica en la respuesta y el checkout no puede continuar.

  • Define precios en todas las monedas de tus regiones antes de publicar el producto.
  • Usa PriceLists para promociones regionales sin modificar el precio base.
  • El campo tax_inclusive controla si el precio mostrado incluye IVA o no.

Errores frecuentes al configurar multi-región

El error más común es crear una sola región global para evitar la configuración inicial y luego intentar dividirla cuando el negocio crece. Al hacerlo, los pedidos históricos quedan en la región original y los precios hay que migrarlos manualmente.

Otro error frecuente es asumir que el inventario es global. Medusa maneja inventario a nivel de variante. Si vendes desde distintos almacenes, necesitas el módulo de Inventory con múltiples stock locations para reservar stock por almacén y por región.

Más artículos

Volver a artículos