miércoles, 28 de agosto de 2013

Prestashop supply Orders Details Import (PS 1.5) FIX

Prestashop   es uno de los mejores framework para carro de compras que conozco , apoyado por una gran comunidad.
Hoy les contaré como corregir un error que viene en prestashop para la subida de Detalle de Ordenes además de subir esta carga por referencia:

1.- deben tener una orden creada para la recepción de los productos, esto se encuentra en Existencias->   Pedidos de distribuidores-> añadir nuevo

2.- Una vez creada la orden continuamos con la carga de los productos que encontramos en : Catálogo->Productos Importar, seleccionamos Archivo de muetra de Detalle de Ordenes ;



 vemos que nos arroja un formato :

 nos pide id_producto y id_atributo ; si nosotros trabajamos con referencia esto nos va a complicar un poco; pero para este caso particular genere el siguiente script en python  http://pastebin.com/3jPw2Cfj tienes que instalar MySQLdb(python) si estas en debian el paquete es "python-mysqldb" lo puedes instalar con aptitude install python-mysqldb.
Este script nos permite obtener "product ID" y "Product Attribute" solamente con las referencia de los productos
 2. A
   
      Configuramos el script .
      linea 8 cambiamos los datos que corresponda
  1. self.conex('10.xxx.xxx.xxx','usuario','password','basededatos')

  Luego debemos generar un archivo que contenga las referencia con el precio y stock que se desea subir , (archivoconreferencia.cvs) al que invocaremos más adelante, de las siguientes características (http://pastebin.com/9nwnp3DF):
  referencia,precio,stock

Debes tener en cuenta el separador, en este caso es "," si lo haces con ";" u otro separador, para que el script considere este formato; favor cambia en la linea 16 por el delimitador que estimes conveniente.

 ultimo paso: al final del archivo (linea 87) esta:
  1. st=Stock('Ref_0007','archivoconreferencia.csv')

Debes cambiar "Ref_0007" por la referencia que tu creaste en prestashop en el paso 1, luego  'archivoconreferencia.csv' cambiarlo por el archivo que generamos al principicio en el 2.A

finalmente ejecutas el python
python stock.py  , te generara un archivo formato PS_****.csv
* considera también que todos los archivos estén y quedan en la misma carpeta donde ejecutas el script

3.- Cargar el archivo generado en el paso anterior:


Debería generarnos una salida:














 presionamos en importar datos CSV,
si nos arroja el siguiente error "Producto (x/0) no se puede añadir dos veces (en la línea x)":
cuando en el archivo PS_****.csv generado mediante el script no tiene repetidos, o si   revisaste y sabes que arroja este error independientemente que exista una duplicidad :


Esto lo debemos corregir  en una función de prestashop que esta en admin/controllers/AdminImportController.php , como no queremos estropearnos una actualizacion o para mayor seguridad modificaremos /override/controllers/admin/AdminImportController.php  donde agregamos el siguiente code  dentro de la clase class AdminImportController extends AdminImportControllerCore

luego volvemos al paso 3 .- y probamos nuevamente.

saludos,
Francisco Céspedes A.








No hay comentarios:

Publicar un comentario