Jump to content

Recommended Posts

He creado una tabla dentro de la BD de prestashop, a partir de un CSV que me manda un proveedor alemán, y con un script consigo que esa tabla actualice stocks y productos...

 

El problema lo tengo al actualizar el stock de las combinaciones, es algo curioso, ya que al precer actualiza la tabla correctamente, pero luego muestra otro stock. Esta es la consulta que uso para la actualización:

$actualiza-stock = mysql_query("UPDATE  `copia_shop`.`ps_product_attribute`,`copia_shop`.`Codificacion-Alemania` SET  `quantity`= `STOCK` WHERE  `ps_product_attribute`.`reference` = `Codificacion-Alemania`.`REFERENCIA`");

Si consulto la tabla ps_product_attribute, muestra el stock correcto de cada una de las referencias, pero en la tienda y en el backoffice -> combinaciones sale otro stock.

 

Tenéis alguna idea de cómo resolver este error? Tal vez haya otra tabla que también deba actualizar y no se cuál es...

 

Gracias

  • Like 1
Link to comment
Share on other sites

Sigo buscando información acerca de cómo poder actualizar el stock de las combinaciones... he montado otro prestashop y le he puesto 1 solo producto con dos combinaciones, he buscado desde phpmyadmin el valor del stock de una de las combinaciones y he descubierto que el stock de las combinaciones, se inserta en la tabla ps_stock_avalaible, por eso no me funcionaba el script...

 

Decir que para el que busque lo mismo que yo, a través de la tabla ps_product_attribute, podemos actualizar el stock. Pillamos la referencia de esa combinación, y a través de ésta, ya sabemos el id_product_attribute para poder actualizar el campo stock de esa misma tabla.

 

Una vez hecho esto, sale el stock correctamente de cada una de las combinaciones, pero no se muestra el botón Añadir al carro... Lo he solucionado entrando en el Backoffice y asignando un stock a una de las combinaciones manualmente, con eso se activan todas las que he hecho.

 

Como me gustaría que fuese una tarea automatizada a través de un cron, sabe alguien como solucionar este último paso? Es decir no tener que entrar y asignar manualmente un stock?

 

Gracias

Link to comment
Share on other sites

Pues yo estoy como tu . 

 

tengo un gran numero de combinaciones que cambian diariamente , y lo único que quiero es cambiar las cantidades en stock . El prestashop por defecto solo deja borrar todas las combinaciones y volverlas a añadir ,pero cuando tienes 3000 productos como yo eso no es viable hacerlo a diario.  Asi que busco una solución como la que planteas . 

 

Lo importante es acotar que tablas y campos intervienen en el proceso de asignación de combinaciones a un articulo . 

 

No se si existe algún modulo que me permita importar desde csv, solo las combinaciones de los artículos que se han modificado , dejando iguales las que no han tenido modificación . Actualizando los stocks y dejando activo el producto para añadir a la cesta . 

Link to comment
Share on other sites

Yo lo que he hecho es un script en php, que lo único que hace es leer un csv de mi proveedor y en una tabla intermedia (ya que las referencias de mi proveedor y las mías son diferentes) se escriben los nuevos stocks.

 

Tras eso se ejecuta otro script que coge el dato que acabo de insertar y lo mete en la tabla de prestashop ps_stock_available, actualizando correctamente el stock de cada una de las combinaciones... en total unas 28.000, en apenas 20 segundos lo hace.

 

El problema es que en la pantalla del producto no sale el botón para comprar, entrando al backoffice y cambiando manualmente uno de los stocks de combinaciones, ya aparece el botón y parece que todo funciona normalmente; este último paso es el que me fastidia, ya que por culpa de ese motivo no puedo realizar un cron que me actualice los stock de forma totalmente automática.

 

Como ves, sólo actualizo el stock que es lo que me interesa... pero podría utilizarse para cualquier dato que necesitemos... no se si algún gurú del prestashop puede arrojarnos luz sobre el último paso.

 

Respecto al módulo, no se si merece la pena, ya que en mi caso la tabla intermedia es propia y me imagino que cada usuario tendrá un csv, xml diferente... no se... se puede mirar

Link to comment
Share on other sites

  • 4 weeks later...

No se si ya has solucionado tu problema con el stock, yo estoy también con lo mismo. Descubri que si no hacia este paso no se actualizaba el stock total correctamente, no se si puede venir de ahi tu problema.
 

//Actualiza stock total del producto
$totales = mysql_query("SELECT SUM(quantity) AS total FROM " . DB_PREFIX . "stock_available WHERE id_product= " . $codigo. " AND id_product_attribute <>0") or die (mysql_error ());
$row=mysql_fetch_assoc($totales);
mysql_query("UPDATE " . DB_PREFIX . "stock_available SET quantity = ".$row['total']." WHERE id_product= " . $codigo . " AND id_product_attribute=0 " );
$resul = mysql_affected_rows();
Link to comment
Share on other sites

A mi igual....de tantos problemas con importaciones e de otras cosas...termine por comprar emagicone.. otro mundo.

 

Y emagicone que tiene que ver con un script de actualización de stock? El programa no permite la actualización en tiempo real de stock es solo un BO de escritório.

Link to comment
Share on other sites

  • 5 weeks later...

No sé si puede tener algo que ver, pero me encontré con un problema similar y me di cuenta de que en la base de datos tengo c y psq_product_shop, y psq_product_attribute y psq_product_attribute_shop. Y que cuando el campo se repite en las tablas acabadas en shop shop debía realizar el cambio allí también para que se visualizara en la web. Si realizaba los cambios sólo en psq_product y psq_product_attribute se veía en la base de datos pero no quedaba reflejado en el frontend.

Link to comment
Share on other sites

yo he echo algo parecido ,te cuento a ver si te sirve:

tengo un sistema de gestión que sincronizo con el prestashop 1.6 el stock.Yo lo hago en el propio ProductController.php  y como dijo antes cardo necesitas actualizar tb la fila de stock_available en donde id_product_attribute=0 ,ya que hay guarda el sumatorio de todas las unidades .TB me pasaba que se actualizaba la base de datos y no me aparecia el boton de comprar teniendo stock ,esto lo solucione igualando la cantidad del producto al total que yo metia en la base: $this->product->quantity = $Total;

Espero os sirva de algo

Saludos

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...