Ecommerce

Cómo importar combinaciones en una multitienda PrestaShop

En el artículo de hoy veremos cómo importar combinaciones en una multitienda, tanto con el stock compartido como con el stock sin compartir, ya que puede volverse un procedimiento costoso y complicado si no se ha realizado nunca o no se tiene experiencia.

Hay ciertos procedimientos que cambian cuando pasamos de una tienda normal en PrestaShop a una multitienda, como puede ser el caso de importar combinaciones. Antes de comenzar con el proceso de importación, hay una serie de pequeñas recomendaciones a tener en cuenta.

Recomendaciones previas

Para llegar aquí, primero, debemos hacer configurado nuestro PrestaShop como multitienda. Si no tienes claro cómo se hace, tenemos un artículo explicando cómo crear una multitienda en PrestaShop, en el cual explicamos, de forma detallada, el procedimiento a seguir.

A continuación se lista una serie de pautas que recomendamos realizar antes de proceder con la importación, ya que se trata de un proceso delicado.

Modo mantenimiento y backup

Nuestra primera recomendación es activar el modo mantenimiento de PrestaShop para prevenir que los usuarios accedan a el sitio web mientras realizas configuraciones.

Para poner tu tienda en mantenimiento tienes que ir a la sección Configurar. Desplegar la opción Parámetros de la tienda y seleccionar Configuración. A continuación verás una pantalla con dos pestañas: Configuración y Mantenimiento. Deberás hacer clic en la segunda. Por último, selecciona NO en Activar la Tienda y pulsa el botón de Añadir mi IP. De esta forma, la tienda no quedará visible para el público pero estará disponible desde tu ordenador, ya que habrás añadido tu IP.

También recomendamos encarecidamente que realices una copia de seguridad completa de tu sitio web, sobre todo de la base de datos, dado que va a ser el elemento más afectado durante el proceso de importación. De ese modo, si algo sale mal, podrás restaurar el sitio web a un punto funcional.

Exportación previa

Si en tu multitienda vas a activar la opción de stock compartido es muy recomendable, por no decir obligatorio, realizar una exportación previa de los productos y combinaciones de tu sitio web.

Al activar la opción de stock compartido en una multitienda, el stock de los productos y combinaciones se pone a 0. Por desgracia esto es un comportamiento nativo de PrestaShop con el que hay que lidiar. Por ello interesa realizar una exportación para no perder la información del stock que tenía cada producto o combinación.

Veamos cómo se realizan las exportaciones.

Exportar productos en una multitienda

Exportar los productos de PrestaShop es un procedimiento muy sencillo.

Lo primero es ir a la sección Vender, desplegar la opción Catálogo y clicar en Productos. Esto nos llevará a un apartado donde veremos el listado de productos de nuestro sitio web y, situado justo encima de dicho listado, veremos el botón de ajustes.

Al clicar sobre dicho botón se desplegará un pequeño menú, clicamos en exportar y, automáticamente, se descargará un fichero CSV con la información de todos los productos de nuestra tienda.

Exportar combinaciones en una multitienda

Exportar combinaciones, en cambio, es un proceso más complicado, ya que PrestaShop no ofrece una forma nativa de hacerlo. Para ello es necesario utilizar módulos especializados o sentencias SQL personalizadas.

Nosotros optamos por la segunda opción, ya que, de esa manera, obtenemos un control preciso y no necesitamos cargar el sistema con módulos adicionales.

Al igual que con la exportación de productos, el primer paso es ir al listado de productos de nuestro sitio web y clicar en el botón de ajustes, pero, esta vez, en lugar de clicar sobre la opción ‘Exportar’, clicaremos en la opción ‘Exportar a SQL Manager’ y después en la pestaña ‘Gestor SQL’.

Esto nos llevará a una ventana en la cual veremos una tabla con las sentencias SQL personalizadas que tenemos disponibles, en este caso, tenemos que crear una nueva, por lo que haremos clic en el botón superior añadir nueva consulta SQL.

Llegaremos a un nuevo apartado en el que cual tenemos dos campos a rellenar, el nombre que queremos darle a la sentencia y el campo de la sentencia en cuestión. El nombre es meramente informativo, por lo que le daremos un nombre que nos pueda servir para identificar rápidamente que hace la consulta. En el segundo campo es donde debemos introducir la consulta SQL.

Para que esta tarea nos resulte más sencilla, en la parte inferior, disponemos de un listado de las tablas de la base de datos de PrestaShop y si clicamos sobre una tabla podemos ver los campos que esta tiene disponibles.

Esta tarea puede ser costosa si no tienes conocimientos de SQL. Afortunadamente en internet puedes encontrar muchos ejemplos de sentencias SQL para todo tipo de fines. Por lo que encontrar una para exportar las combinaciones no debería ser demasiado difícil.

A continuación te dejamos una sentencia SQL bastante simple para exportar las combinaciones de productos.

SELECT CONCAT(pl.id_product,';',pac.id_attribute,';',pl.name,';',pal.name,';', pq.quantity) AS required 
FROM ps_product p LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product AND pa.id_product_attribute = pq.id_product_attribute) LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute) LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product) LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category) LEFT JOIN ps_category c ON (cp.id_category = c.id_category) WHERE pl.id_lang = 1 AND pal.id_lang = 1 GROUP BY p.id_product,pal.name ORDER BY p.id_product, pac.id_attribute

La consulta anterior exporta la siguiente información:

  • Id del producto
  • Posición de la combinación
  • Nombre del producto
  • Valor de la combinación
  • Stock de la combinación

Una vez tenemos la consulta lista, volvemos a la pestaña ‘Gestor SQL’ y clicamos en el icono con forma de nube para descargar el fichero CSV resultante de nuestra consulta.

Proceso de importación

El proceso de importación en una multitienda varía ligeramente si la opción de stock compartido esta activada o no. En ambos casos necesitamos un fichero CSV con la información a actualizar o importar.

Stock compartido desactivado

Si el stock compartido entre las tiendas de nuestro PrestaShop esta desactivado, el proceso de importación es bastante sencillo. De nuevo vamos al listado de productos y, esta vez, seleccionamos la tienda en la que queremos realizar la importación, en el ejemplo hemos seleccionado la tienda ‘Tienda Española’. Este paso es importante ya que la tienda que seleccionemos es la tienda en la que se importarán las combinaciones, después clicamos en la opción importar.

En el menú de importación seleccionamos ‘combinaciones’ en el primer desplegable. Después seleccionamos el fichero CSV a importar. Finalmente tenemos qué indicar que carácter es el que separa las distintas columnas y, en caso de haber valores múltiples, también debemos indicar que carácter los separa.

Después hay varias opciones:

  • Eliminar las combinaciones antes de importar: Es recomendable activar esta opción, ya que, de no estar activada, las combinaciones existentes en el CSV y en nuestra tienda podrían duplicarse. De todas formas depende de el caso de cada uno.
  • Utilizar la referencia del producto como clave: Activaremos esta opción si en el fichero de importación utilizamos la referencia del producto como clave, en lugar de el ID del producto.
  • Enviar notificación de correo electrónico: Esta opción enviará un correo de notificación cuando la importación acabe, la activamos o desactivamos según el interés particular de cada uno.

En la siguiente imagen se puede ver un ejemplo:

Después clicamos en siguiente y procedemos a indicarle a PrestaShop qué columnas del fichero CSV corresponden a qué valores de las combinaciones. Podemos seleccionar la opción ‘ignorar columna’ si no queremos que una columna la tenga en cuenta.

Una vez todo listo, clicamos en el botón ‘importar’ y esperamos a que el proceso de importación finalice.

Stock compartido activado

Con el stock activado, el proceso a seguir es similar, solo que esta vez no importa qué tienda seleccionemos a la hora de realizar la importación. Pero si que importa que haya una tienda seleccionada, ya que si seleccionamos la opción ‘all shops’ o el grupo de tiendas, PrestaShop devolverá un fallo.

En este caso, nuestro fichero CSV debe contener una columna nueva, en la cual indicamos el nombre o id de las tiendas en las que va a realizar la importación. Esto es importante ya que, de no existir esta columna, las combinaciones solamente se importarán en una de las tiendas y en la otra se añadirá el stock a los productos pero sin combinaciones. Por ejemplo:

Después seleccionamos la opción que queramos, clicamos en importar y de nuevo subimos el fichero de importación. Seleccionamos las opciones a nuestro gusto, tal y cómo se hace con el stock desactivado. Hay que tener en cuenta que en este caso el campo contiene más de un valor, y se ha utilizado el carácter ‘/’ para separar valores, por lo tanto en la configuración de PrestaShop debemos indicarle que ese carácter es el separador de valor múltiple.

A la hora de asignar las columnas recordemos que hay que indicar que la nueva columna hace referencia a el campo ‘Id / Nombre de la tienda’.

Conclusión

Importar combinaciones de productos en una multitienda no es tan complicado una vez se conoce el proceso. Pero puede dar quebraderos de cabeza hasta que se da con la solución. Esperamos haberte ahorrado algunos minutos de estos quebraderos y esperamos que este artículo te haya servido de ayuda. Déjanos un comentario si te ha servido y cuéntanos qué problemas te ha dado tu multitienda.

Caronte Studio

Entradas recientes

Cómo implementar Lazy Loading para imágenes y mejorar tu SEO

En este artículo, aprenderás qué es el Lazy Loading y cómo implementarlo fácilmente en tu… Leer más

5 horas hace

Presupuesto de rastreo o Crawl Budget: ¿Qué es y cómo mejorarlo?

En esta guía práctica, te explicamos qué es el presupuesto de rastreo, por qué es… Leer más

3 días hace

Qué es el call to action (CTA) y cómo hacer uno efectivo

¿Alguna vez te has encontrado con un mensaje que te invita a actuar, ya sea… Leer más

1 semana hace

¿Qué es una promesa en JavaScript? Todo lo que necesitas saber

Una de las preguntas más comunes entre los desarrolladores web que comienzan a usar JavaScript… Leer más

2 semanas hace

Preimpresión digital ¿Por qué es tan importante?

Descubre qué es y para qué sirve la preimpresión digital para conseguir una buena impresión… Leer más

2 semanas hace

Tipos de consentimientos para YouTube, Twitter, LinkedIn y TikTok

Ampliamos información para las redes sociales. Descubre cómo gestionar correctamente los consentimientos necesarios en las… Leer más

3 semanas hace