Cómo importar combinaciones en una multitienda PrestaShop

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.

Modo mantenimiento multitienda prestashop 1.7

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.

Cómo exportar productos en Prestashop 1.7

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’.

Exportar a SQL Manager.
Gestor SQL en PrestaShop

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.

Añadir consulta SQL en PrestaShop

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.

Crear una nueva consulta SQL para exportar información en SQL manager.

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.

Tablas de la base de datos de prestashop.

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.

Prestashop SQL manager para exportar combinaciones.

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.

Selector de tiendas en multitienda
Importar archivo de datos en PrestaShop

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:

Configuración de subida de productos para multitienda

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.

id_producto prestashop
cantidad prestashop
atributo prestashop

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:

CSV con diferentes tiendas en multitienda PrestaShop

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.

Separador de múltiples valores en PrestaShop

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’.

Importar productos en multitienda

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.

se puede tener dos webs a la vez en prestashop
borrar la cache de prestashop manualmente
Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes usar estas etiquetas y atributos HTML:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>