Compartir es sexy
  •  
  •  
  •  
  •  

Voy a explicar algo que nos ha traído de cabeza más de una vez a los que trabajamos habitualmente con tiendas Prestashop que tienen catálogos de cierto tamaño y combinaciones de atributos: cómo actualizar el stock de manera masiva desde un fichero Excel y no morir en el intento. Todo ello gracias a Salva Carbonell y su pericia con las bases de datos. Así pues, vamos allá.

PASO 1.- Creamos un fichero Excel con dos columnas: una con la referencia de la combinación y otra con la cantidad. Grabamos el fichero como .csv (Guardar como… otros formatos). Ejemplo:

Referencia

Cantidad

0011BSM

12

0011BXL

3

0011NSM

8

0011NXL

11

01ELLABLK

35

01ELLAPNK

10

01ELLAWHI

21

01KIKICERI

9

PASO 2.- Antes de nada, haced un BACKUP de vuestra base de datos. Accedemos a la base de datos de nuestra tienda Prestashop usando PHPmyAdmin (los datos de acceso están en el fichero «settings.inc.php» dentro de la carpeta «config»).

Creamos una tabla en la base de datos con dos campos: referencia (tipo de campo varchar(32)) y cantidad (int(10)).

PASO 3.- Entramos en la tabla e importamos los datos de nuestro fichero .csv:

-Elegimos el fichero

-Le indicamos que salte un registro desde el inicio (si hemos puesto título en las columnas del Excel)

-En formato de archivo elegimos CSV, y en la casilla «Campos terminados en» cambiamos la coma que aparece por ; (punto y coma).

-Ejecutamos y comprobamos que se ha importado el fichero de Stock.

Realizamos copias de seguridad de las tablas «ps_product_attribute» y  «ps_stock_available» (elegimos la tabla, y en «Operaciones» elegimos «copiar estructura y datos» y le ponemos a la copia un nombre fácil de reconocer).

PASO 4.- Una vez realizados todos estos pasos, ejecutamos estas dos sentencias SQL:

UPDATE  `(NOMBRE BASE DE DATOS)`.`ps_product_attribute`,`(NOMBRE BASE DE DATOS)`.`Stock` SET  `quantity`= `cantidad` WHERE  `ps_product_attribute`.`reference` = `Stock`.`referencia`

UPDATE  `(NOMBRE BASE DE DATOS)`.`ps_stock_available`, `(NOMBRE BASE DE DATOS)`.`ps_product_attribute`  SET  `ps_stock_available`.`quantity` = `ps_product_attribute`.`quantity` WHERE  `ps_stock_available`.`id_product_attribute` = `ps_product_attribute`.`id_product_attribute`

 

Y ahora ya deberíais tener todo el stock actualizado, incluyendo combinaciones.

Espero que os haya servido de ayuda y si tenéis dudas, escribidme o anotar en los comentarios cómo os ha ido.

 

No votes yet.
Please wait...

Compartir es sexy
  •  
  •  
  •  
  •