Cómo montar varias tiendas online con Woocommerce y un carro de la compra común

Antes de empezar debo hacer un alegato a favor de las tiendas online con Woocommerce porque muchos estaréis pensando que los ecommerce no se montan con WordPress    Woocommerce. Y yo os digo que estáis equivocados.

Woocommerce sí o no

Hay varios motivos por los que montar una tienda online con Woocommerce y no utilizar Prestashop, Magento u otras soluciones SaaS para creación de tiendas online tipo Shopify:

  • Con WP Woo necesitas menos recursos para poner en marcha la tienda online: ideal para probar un mercado, probar una gama de productos, empezar a vender online cuando ya tienes una tienda física, etc. Por recursos entendemos potencia de hosting web, horas de trabajo y precio de la mano de obra técnica. Si queremos comparar, WP Woo se mueve con la mitad de potencia que Prestashop y con la cuarta parte de Magento. Profesionales que puedan poner en marcha una tienda online con Woocommerce (incluyendo personalizaciones, no sólo instalar), hay muchos, para cualquier otra tecnología escasean (y por tanto son más caros).
  • La curva de aprendizaje de Woo es muy rápida (gráficamente una curva muy empinada).
  • Woo permite una personalización rápida de muchas funcionalidades, más rápido y cómodo que un SaaS.
  • Todos los plugins de extensión de funcionalidad para Woo funcionan y hacen lo que dicen. El 75% de los módulos de Prestashop no funcionan correctamente.
  • Hay descritos ecommerce con más de 50mil productos mantenidos con Woocommerce, ¿por qué tu no vas a poder hacerlo?

Ahora os voy a dar una razón más para usar WP Woo: puedes tener varias tiendas online con un mismo carro de la compra. Esta funcionalidad la ofrece Magento desde hace tiempo, pero si tu presupuesto en tecnología es limitado y te encuentras en alguna de las situaciones anteriores, esa no es una opción válida.

Es cierto que si quieres tener varias tiendas diferentes tu proyecto de comercio electrónico parece que es bastante grande como para plantearse el uso de una tecnología «grande». O no. Tu proyecto de ecommerce puede tener la característica de necesitar varias tiendas online independientes, aunque sean pequeñas, para probar diversos mercados o diferentes gamas de productos, y a la vez que sea interesante disponer de un único carro de la compra común.

La utilización de Woocommerce como software para una tienda online la recomiendan algunos de los mejores desarrollando tiendas online personalizadas. Podéis leer el artículo de Sngular sobre el ecommerce top100.

La explicación técnica para no técnicos sobre el carro de la compra

La información de qué llevas en tu carro de la compra puede guardarse de dos maneras diferentes:

  • En una cookie. Así es como la tienda sabe lo que tienes en el carro si no estás identificado en ella con usuario y contraseña.
  • En un registro temporal en base de datos, vinculado a tu usuario en la tienda, es decir, que debes estar identificado.

Si queremos que dos tiendas online bajo dominios diferentes compartan un mismo carro de la compra, en el caso de que la información de lo que hemos metido en el carro esté almacenada en una cookie, la única forma de hacerlo es que se generen dos cookies con el mismo contenido, una por cada dominio. Esto obliga a que técnicamente cuando navegas por una tienda de alguna manera lo haces por las dos, y que cuando modificas el contenido de tu carro de la compra, la orden se ejecute en las dos para que se modifiquen simultáneamente las cookies.

En el caso de que estemos identificados en la tienda online y que la información del carro de la compra se guarde en la base de datos, nos encontramos ante la misma situación descrita anteriormente con las cookies pero con la base de datos, o bien, compartir la base de datos de usuarios y de carro de la compra entre varias tiendas, de forma que sea desde el ecommerce que sea la información del usuario y de su carro de la compra es único en una tabla de datos compartida.

Adicionalmente hay que tener en cuenta que si realizas el checkout (el pago de la compra) en cualquiera de las tiendas, debes poder hacerlo con productos de la otra tienda, algo un tanto raro para los procesos internos de una aplicación de ecommerce. Así que compartir una tabla de datos, o varias entre tiendas independiente no es trivial, y cualquier solución es técnicamente pesada de implementar.

El carro único compartido entre tiendas con Woocommerce

Por cierto, ¿tiendas online que utilicen un carro de la compra común? Pues el máximo exponente que yo conozco es el grupo Tradeinn, cuyas 14 tiendas online comparten un solo carro de la compra.

Como he comentado justo antes, una de las opciones es compartir tablas de la base de datos entre distintas tiendas. Aquí está la clave, en compartir una misma base de datos para las dos tiendas (o las que sean). La forma más sencilla de hacerlo es compartir la base de datos completa, incluyendo la base de datos de productos, aunque en una tienda aparezcan unos productos y en otra tienda otros.

Compartir la base de datos entre dos comercios electrónicos significa que es una sola base de datos para las dos tiendas, con una sola aplicación de gestión del ecommerce.

Esto implica que la capa de la interfaz de usuario es la que se va a encargar de mostrar un contenido u otro dependiendo del dominio o tienda en la que nos encontremos. Por debajo en realidad estará funcionando una sola aplicación de tienda online, en este caso Woocommerce sobre WordPress.

Cómo tener varios sitios web y una sola instalación de WordPress Woocommerce

WordPress como casi cualquier gestor de contenidos online se encarga de gestionar redirecciones internas de páginas web para poder usar enlaces (urls) amigables. Esto es un problema si queremos usar una misma base de datos para dos dominios diferentes pues todas las referencias a archivos y a la propia web se realizan mediante enlaces absolutos, es decir, enlaces que incluyen siempre el nombre de dominio de la web. Eso hace imposible tener una única instalación y dos dominios diferentes simultáneamente.

Para solucionar este gran inconveniente tenemos WordPress Multisite o WordPress Network (conocido como WordPress MU por su origen aunque desde hace años es el mismo WP con una configuración especial). Esta variante de WordPress permite tener una sola instalación para múltiples webs independientes. Pero aún tenemos una gran pega que solucionar, y es que se comparte la base de datos pero cada sitio web dispone de sus propias tablas para la configuración y contenidos propios, puesto que funcionan como sitios web completamente independientes y autónomos. Esto implica que las tablas de la base de datos correspondientes a Woocommerce también se multiplican y son propias de cada uno de los sitios web de la red. Esta es la forma en que WordPress.com da servicio de alojamiento web a cualquier usuario.

Cómo tener varios dominios con un solo WordPress

La red de sitios con WordPress se puede configurar de dos maneras. Cada sitio web puede ser bien subdominios de un dominio principal, o bien un directorio del dominio principal (instalado en el raiz del dominio). Cuando hacemos una instalación de WP MU es necesario elegir una u otra opción, no podemos combinarlas.

Para el caso que nos ocupa la opción de utilizar directorios es suficiente. Recuerda que debes tener instalado WP en el raiz del dominio que sea.

Para convertir cada uno de esos sitios web de una carpeta a un dominio independiente, necesitamos un plugin llamado WordPress MU Domain Mapping que se encargará de redirigir todas las llamadas a un dominio determinado hacia el sitio web correspondiente en WordPress.

Con este plugin ya podemos vislumbrar la solución para que dos dominios utilicen el mismo sitio web, que es de lo que se trata para que los dos dominios utilicen el mismo Woocommerce, y por tanto ambas tiendas online compartan usuarios y carro de la compra (además por su puesto de todo lo demás).

Nada nos impide indicar en la configuración del plugin WP MU Domain Mapping, que dos dominios están vinculados al mismo sitio web. Así de sencillo. De esta forma tendremos dos dominios web con exáctamente el mismo contenido, una réplica uno de otro.

Mostrar contenido diferente según el dominio

El último paso es personalizar las plantillas de WordPress y Woocommerce (theme) para que en función del dominio que esté visitando el usuario, se muestren unos contenidos u otros, unas categorías u otras, unos productos u otros, se cargue una cabecera u otra, que el buscador interno esté restringido en cada dominio a lo que le corresponde, etc.

Y no nos olvidemos del SEO, debemos tener cuidado de qué contenidos permitimos indexar para cada dominio y no duplicarlos pues nos penalizaría de cara a Google. También las cabeceras meta, las Twitter Cards y los códigos de seguimiento como los de Google Analytics deben estar personalizadas para cada dominio.

Esto lo haremos de forma sencilla simplemente añadiendo una meta de noindex en la cabecera de los contenidos que puedan llegar a mostrarse bajo un dominio que no le corresponde. Si utilizamos XML Sitemaps para ayudar a Google a indexar nuestros contenidos también debemos tenerlo en cuenta para generar el mapa xml de forma correcta y añadir en cada dominio los contenidos que le corresponden.

Dificultades a resolver

Una de las dificultades que pensé que echarían por tierra todo lo anterior es que cada una de las tiendas online debería funcionar bajo protocolo de seguridad https. Esto implica que a nivel de servidor web es necesario que exista un certificado de seguridad SSL para cada dominio (o gastarse un dineral en un certificado multidominio).

Resulta que nuestra instalación, tal como yo la he descrito hasta ahora, utiliza diferentes dominios de forma virtualizada, pero un único sitio físico, lo que complica la instalación de un certificado SSL para cada uno de los dominios sobre el mismo sitio físico. Yo utilizo paneles de administración de servidores para gestionar los hostings, por comodidad y porque no me gusta meterme en la pesada tarea de configurar un hosting web a mano manipulando archivos de Apache o de Nginx. Los paneles de administración de hostings normalmente sólo permiten instalar un certificado SSL sobre un dominio con alojamiento físico configurado. Esto tiene solución, de hecho yo utilizo los certificados SSL gratuitos de Let’s Encrypt, pero eso ya lo dejo para otra ocasión.

Si soy sincero lo más pesado puede llegar a ser la personalización del theme para que muestre unos contenidos u otros. Lo que recomiendo es que si este es tu caso, ni se te ocurra utilizar el theme oficial de Woo, el Storefront, ni ninguno que sea hijo de éste. La personalización requiere el triple de esfuerzo que cualquier otro theme.

Si necesitas ayuda con tus tiendas online ya sabes dónde encontrarme [ignacio () loogic . com]