Jump to content

Ayuda para no mostrar productos sin stock en POPULARES , presta 1.6 - SOLUCIONADO


joseangel2003

Recommended Posts

Hola, he estado leyendo y leyendo en el foro pero no encuentro la manera de lograr que en POPULARES y en el resto de los listados de la tienda no se muestren productos con stock 0 por mas que esten activos (asi los dejamos por un tema google), alguien nos podria dar una mano?

 

la web es www.owonet.com.ar y la version de presta es la 1.6.0.6

 

Gracias desde ya!

Edited by joseangel2003 (see edit history)
Link to comment
Share on other sites

Hola.

Tendrias dos soluciones.

O modificar las clases de Category editando la linea 639 aprox.

.($id_supplier ? ' AND p.id_supplier = '.(int)$id_supplier : '')
.' AND stock.quantity >0 GROUP BY product_shop.id_product';

O lo mejor es desactivar los productos cuando no tengan stock, asi no aparecen en ningun lado.

Link to comment
Share on other sites

Hola Manz, gracias por el tiempo, ya modifique la linea que me recomendaste en /classes/category.php (a mi me figura en la 697 y limpie cache y forze compilacion y limpie cache en google (tenemos cdn) pero nada , siguen saliendo productos sin stock en POPULARES , no los desactivamos por un tema de SEO.

 

espero nos puedan ayudar.

 

Gracias

Link to comment
Share on other sites

Hola.

 

Despues de muchas pruebas, ver el codigo más a fonto, etc, me doy cuenta que esa solución que te suministré no es valida en 1.5 y 1.6.

 

Como parece ser que no hay una solución factible de primeras te indico las dos posibilidades que tienes.

 

1º. Comprar este plugin que desactiva automaticamente el producto cuando el stock es 0:

http://catalogo.webscharles.es/otros-modulos/10-chrls-desactiva-stock-cero.html

 

2º. Si el hosting te lo permite puedes crear un Trigger. Basicamente es indicarle que cuando haya un cambio en la base de datos haga la operación que quieras.

 

Para ello tendrias que crear un trigger con la siguiente funcion. (En phpmyadmin debe aparecerte la pestaña Trigger, o en su defecto preguntar a tu hosting)

UPDATE ps_product SET active=0, redirect_type='404' WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity=0);
UPDATE ps_product_shop SET active=0, redirect_type='404' WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity=0);
UPDATE ps_product SET active=1, redirect_type='' WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity>0);
UPDATE ps_product_shop SET active=1, redirect_type='' WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity>0);

Esa operación lo que hace es.

Establece el PRODUCTO como INACTIVO si EL STOCK es IGUAL a 0

Establece el PRODUCTO como ACTIVO si EL STOCK es MAYOR a 0

 

Puedes leer más en este post. http://www.prestashop.com/forums/topic/258359-how-to-hide-out-of-stock-products-in-prestashop-1541/

 

Espero que te sirva.

Edited by Manz Soluciones (see edit history)
Link to comment
Share on other sites

Hola Manz, otra vez gracias por el tiempo, esta perfecto lo que me pasas como alternativa pero no queremos desactivar el producto sino que no se muestre en los listados cuando la cantidad es cero, si te fijas en la ficha del producto podes desactivar tambien a mano o activar pero lo que nos interesa es quie el producto siga activa solo que no se muestre en los listados cuando el stock es igual a cero, la idea es que google siga encontrando el producto (si lo desactivas te da "no encontrado") pero que los compradores no los vean en los listados cuando no tienen stock, espero me entiendas y ojala me puedas dar una mano o alguien que sepa que parte del codigo tocar!

 

gracias

Link to comment
Share on other sites

  • 3 months later...

Yo he probado modificar el product-list.tpl de la plantilla, usando una opción que daban en otro post, pero me desactiva también los productos que tienen en la combinación por defecto 0, aunque en las demás si haya stock, así que no me sirve.

 

La opción es esta:

 

{foreach from=$products item=product name=products}

Justo debajo poner:
{if $product.quantity > 0}

 

Y cierras luego el {/if}

</div>
</li>{/if}
{/foreach}

 

¿Alguien sabe como sería para que tuviera en cuenta la cantidad total de los productos (sumando todas las combinaciones)????

 

La opción desactivar estos productos no me sirve, por temas de SEO, simplemente quiero que no se vean en el listado.

Link to comment
Share on other sites

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