Configurar Magento multi-tienda

Configurar Magento múlti-tienda con múltiples dominios

Magento nos permite configurar multiples tiendas de forma tolalmente independiente, cada una con su dominio propio y todo bajo una sola instalación. Configurar Magento múlti-tienda con múltiples dominios nos facilita enormemente la adminstración, puesto que todas nuestras tiendas estarán bajo un mismo panel. Otra ventaja es, que solo tendremos una base de datos y por supuesto todos los benefícios de cara al posicionamiento SEO.

A continuación, algunos casos o modelos de negocio para los cuales podría interesarnos una configuración con múltiples dominios.

Crear una tienda con diferentes idiomas bajo un mismo dominio (ver tutorial).
Para esta opción solo necesitamos configurar una vista de nuestra tienda para cada idioma.
Crear varias tiendas con diferentes dominios para el mismo modelo de negocio.
Por ejemplo imaginemos que la empresa para la que estamos trabajando quiere vender los mismos productos pero en diferentes países y que cada uno tenga su propio idioma y su propio dominio, por ejemplo mi-tienda.es y my-store.com
Crear varias tiendas para distintos modelos de negocio
También puede ser interesante la posibilidad de tener bajo una misma instalación una tienda de ropa y una ferretería por ejemplo. Cada tienda con su dominio y productos correspondientes.

Configurar una categoría raíz

En primer lugar, para configurar nuestro Magento multi-tienda, lo que hacemos es crear la nueva categoría o categorías raíz. Una por cada modelo de negocio sería lo más aconsejable.

Para crear una nueva categoría sigue estos pasos:

  1. Inicia sesión en el Panel de administración de Magento
  2. En el menú superior, vamos a Catálogo > Administrar categorías.
  3. Clic en Agregar categoría raíz  (Figura 1).

    Nueva categoría raíz Magento
    Figura 1. Botón Añadir categoría raíz.
  4. Escribimos el nombre para la categoría.
  5. En Is Active, seleccionar .
  6. En  Configuración de pantalla (Display Settings), en Is Anchor, selecciona  y después Guardar categoría  (Figura 2).

    Nueva categoría raíz Magento
    Figura 2. Botón Guardar categoría.

Configurar sitio web, dominio y vista de la tienda

Lo siguiente es crear nuestras tiendas y asociarlas a las vistas y dominios correspondientes.

  1. Vamos a Sistema > Administrar tiendas.
  2. Clic en Crear sitio web.
  3. Damos un nombre para la tienda.
  4. En el campo Código, escribe una cadena única sin espacios despues clic en Guardar sitio web (Figura 3). Este código lo usaremos para llamar a nuestra tienda desde index.php.

    Nuevo sitio web Magento
    Figura 3. Botón Guardar sitio web.
  5. Clic en Crear tienda.
  6. En el  campo Sitio Web, seleccione el sitio web que acaba de crear.
  7. Escribe un nombre para tu tienda.
  8. En el campo categoría raíz, seleccionamos la categoría raíz que creamos al principio. Para terminar clic en Guardar almacén  (Figura 4).

    Nueva store Magento
    Figura 4. Botón Guardar.
  9. Clic en Crear vista.
  10. En el  campo Store, selecciona la tienda que acabamos de crear. Damos un Nombre a la vista. (aquí es común poner el nombre del idioma, por ejemplo Español).
  11. En el campo Código, ponemos una cadena única para identificar la vista nuestra tienda. Personalmente aquí suelo utilizar las iniciales del idioma, por ejemplo es para Español. El estadolo ponemos a Habilitado y hacemos clic en Guardar la vista de tienda  (Figura 5).

    Nueva vista Magento
    Figura 5. Botón de Guardar vista.

Configurar URLs para cada tienda

Continuamos indicandole a Magento cual son las urls desde la configuración general.

  1. Nos dirigimos a Sistema > Configuración.
  2. En la lista desplegable seleccionamos Alcance de la configuración (Current Configuration Scope) (Figura 6), seleccionamos el sitio web que acabamos de crear.

    Alcance de la configuración Magento
    Figura 6. Lista desplegable Alcance de la configuración actual.
  3. Dentro de la opción General seleccionamos el país predeterminado (según selección tendremos que tener los archivos de traducciones correspondientes a ese idioma), países permitidos donde queremos vender nuestros productos y la información de la tienda. (Figura 7).

    Configuración general Magento
    Figura 7. Configuración General.
  4. Seleccionamos la opción Web en el menú de la derecha y desplegamos las secciones Unsecure y Secure, respectivamente.
  5. Para cada sección, desactiva la casilla de verificación Usar predeterminada a la izquierda y escribir la dirección url de la tienda, incluida la barra diagonal final. Terminamos haciendo clic en Guardar configuración en la parte superior derecha (Figura 8).

    Configuración urls Magento
    Figura 8. Botón Save Config.

Ya tenemos la configuración básica para una tienda de Magento para poder visualizarla en el frontend.

La configuración completa es algo más compleja y explicarlo se escapa al propósito de este tutorial, aún así voy a listar a groso modo el resto de configuraciones necesarias para cada tienda (dependiendo de cada caso serán necesarias más o menos configuraciones).

  • Diseño
  • Emails de la tienda
  • Contactos
  • Email de Ventas
  • Métodos de envío
  • Métodos de pago
  • Correos transaccionales
  • Páginas y bloques staticos (home, banners,…)
  • Traducir o crear productos y subcategorias

Configuración del servidor

La configuración en el servidor se puede realizar utilizando 2 métodos diferentes.

Método 1: Directorios separados para cada dominio, funciona para todas las versiones de Magento.

Método 2: Directorio compartido, funciona para versiones superiores a 1.4.0.1.

Para realizar la configuración de cualquiera de los métodos mencionados partimos desde una instalación base de Magento en nuestro servidor a partir de la que crearemos nuestra multitienda.

Método 1: Directorios separados para cada dominio

  1. Creamos un nuevo dominio o un dominio secundario en nuestro servidor.
  2. Si el nombre de dominio está alojado en otro servidor tendremos que apuntar las DNS desde el servidor donde esté alojado el nombre de dominio hacia nuestro servidor web.
  3. Utilizando FTP o SSH , copiamos los archivos .htaccess, indice.php, de la instalación de Magento al Document Root del nuevo dominio. Opcionalmente podemos copiar el directorio errors si queremos personalizar las páginas de error de cada web.
  4. Editar el archivo indice.php que acabamos de copiar y en la última línea de la siguiente manera:
    Mage::run('nueva_store', 'website');

    Atención: Cambie nueva_store por código dado en la configuración del nuevo sitio web.

  5. Por último, usando SSH, tenemos que crear los siguientes enlaces simbólicos en el directorio raíz del el nuevo dominio apuntando a los directorios y archivos de la instalación base de Magento usando el comando ln -s suponiendo que es un servidor Linux:
    ln -s /home/dominio/html/app/ app
    ln -s /home/dominio/html/includes/ includes
    ln -s /home/dominio/html/js/ js
    ln -s /home/dominio/html/lib/ lib
    ln -s /home/dominio/html/media/ media
    ln -s /home/dominio/html/skin/ skin
    ln -s /home/dominio/html/var/ var
    
  6. Llegado a este punto si todo ha ido bien, ya deberíamos poder ver nuestra nueva tienda Magento en nuestro navegador web.

Método 2: Directorio compartido

Hasta ahora hemos añadido los dominios adicionales al servidor y configurado la nueva tienda en Magento. Ahora solo tenemos que decirle a Magento que tienda debe cargar basandonos en el nombre de dominio.

  1. Editamos el  archivo .htaccess, ubicado en el directorio raíz de la instalación de Magento y agregamos las siguientes redirecciones.
    RewriteCond %{HTTP_HOST} www\.dominio1\.com [NC]
    RewriteRule .* - [E=MAGE_RUN_CODE:dominio1_com]
    RewriteCond %{HTTP_HOST} www\.dominio1\.com [NC]RewriteRule .* - [E=MAGE_RUN_TYPE:website] 
    RewriteCond %{HTTP_HOST} www\.dominio2\.com [NC]RewriteRule .* - [E=MAGE_RUN_CODE:dominio2_com]
    RewriteCond %{HTTP_HOST} www\.dominio2\.com [NC]RewriteRule .* - [E=MAGE_RUN_TYPE:website]
    
    • MAGE_RUN_CODE  : este es el código único elegido al crear en Magento la website / store view
    • MAGE_RUN_TYPE  – dependiendo de si desea cargar un sitio web  específico  o una  vista de tienda;  Estableciendolo en website o store , respectivamente.

    Agregaremos una entrada para cada dominio adicional que hayamos configurado.

  2. Guarda el archivo

Ahora navegamos al nuevo sitio y para verificar que se ha cargado la tienda correcta. Si no es así, posiblemente el  MAGE_RUN_CODE  no coincida o el dominio no se resuelva en la carpeta / ruta correcta.

La capacidad de establecer el código de la tienda utilizando variables ambientales se introdujo en Magento 1.4. Si estamos ejecutando una versión anterior de Magento,  el servidor web no admite variables de entorno Apache o simplemente queremos utilizar otro método podemos establecer el código de la  realizando los pasos siguientes:

  1. Abrir  index.php  en cualquier editor de texto
  2. Buscar la siguiente línea cerca de la parte inferior del archivo:
    Mage::run($mageRunCode, $mageRunType);
  3. Agregar las líneas siguientes justo encima de esta línea:
    switch($_SERVER['HTTP_HOST']) {
        case 'dominio1.com':
        case 'www.dominio1.com':
    	$mageRunCode = 'nueva_store1';
    	$mageRunType = 'website';
    	break;
        case 'dominio2.com':
        case 'www.dominio2.com':
    	$mageRunCode = 'nueva_store2';
    	$mageRunType = 'website';
    	break;
    }
  4. Guarda el archivo

Importante: Reemplazar el  dominio, el  runCode  y el  runType  de acuerdo con la configuración establecida. Podemos agregar tantas sentencias condicionales como tiendas.

2 comentarios en “Configurar Magento múlti-tienda con múltiples dominios

  • Buenas, una pregunta…
    Yo quiero colgar el idioma principal del dominio, y luego los otros idiomas en directorios.

    dominio.com -> tienda en ES
    dominio.com/en -> tienda EN
    dominio.com/it -> tienda IT
    dominio.com/fr -> tienda en FR

    ¿Cómo lo hago?

    Gracias!

    • A ver si he entendido. Lo que quieres es tener un solo dominio multi-idioma con el prefijo de país al final de la url.
      La configuración es la siguiente:
      1. Crear tantas vistas de tu tienda como idiomas necesitas. Para conseguir dominio.com/es, el código de la vista debe ser código=es.
      2. Desde Sistema > Configuración > General > General, configura el país predeterminado y los países permitidos (selecciona el alcance de la configuración).
      3. Ahora ve a Sistema > Configuración > General > Web > Opciones de URL > Agregar código de la tienda en la URL = Si (alcance de la configuración = default)
      4. Si aún no lo tienes, instala las traducciones correspondientes y listo.

Comentarios y opiniones

Puede que tarde en responder, se paciente.

*
*