Jump to content

Ocultar tallas agotadas de un producto


Sergi

Recommended Posts

Buenas,

Estuve buscando una opción para ocultar al público los productos agotados y vi este hilo resuelto a medias de hace 5 años: https://www.prestashop.com/forums/topic/238941-ocultaresconder-productos-sin-stock-solucionado/

Digo a medias porque faltaba resolver el tema de las combinaciones (ocultar el producto solo cuando todas sus combinaciones estén agotadas), el cual pude resolver fácilmente con el siguiente condicional en la v. 1.7.2.5:

{if $product.quantity_all_versions > 0}

Hasta aquí todo correcto. Ahora bien, para acabarlo de completar, lo ideal seria ocultar también esas combinaciones en los resultados obtenidos por el filtro. ¿Alguien sabe alguna idea de cómo lograrlo?

Muchas gracias de antemano

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

  • 2 weeks later...

Nah... No se me recalentó nada :( Edito la pregunta original y dejo un resumillo aquí mismo...

  • Prestashop puede ocultar las combinaciones sin stock en la ficha del producto PERO no en la lista de productos general, de categoria, marca, etc.
  • Lo que Prestashop oculta mediante su filtro nativo son los productos que no tengan stock total PERO no combinaciones concretas sin stock concreto. Por ej. si filtras por talla "S" te lista los productos con esa combinación atribuida, haya o no haya existencias.

Genial para un inventario fijo donde el encargado repone el stock y el cliente lo pide, pero frustrante para una pyme que maneja muchas combinaciones con poco stock, en cuyo caso se queda la tienda vacía rápidamente con tallas y colores sin stock.

¿La solución?

  • Eliminar automáticamente las combinaciones que se queden sin stock.
  • Conseguir un filtro (gratuito o de pago) que filtre también las combinaciones.

Si alguien puede ayudarme con alguna de estas dos soluciones o conoce alguna otra, sería genial.

¡Muchas gracias!

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Hola! 

Tenemos ese mismo problema... hay alguna forma de ocultar las combinaciones de talla-color que no tengan stock?

Cuando un producto tiene varias combinaciones y almenos 1 de ellas tiene 1 unidad de stock te muestra la talla en todas .... y el problema no es que la muestre sino que cuando el cliente la selecciona no sale un aviso tipo "no tenemos stock" sino que se salta a otra combinacion distinta con stock... Esto crea mucha confusión al cliente porque da la sensacion de que la página no funciona correctamente.

Gracias

Link to comment
Share on other sites

hace 4 minutos, Prestafan33 dijo:

No sé si esto te puede solucionar el problema:

Captura.JPG.d76ae4da7528ea37992b256c16eb40ab.JPG

Está en Preferencias -> Productos. Prueba a poner esa opción en "No", a ver si así cambia el comportamiento que comentas.

Gracias por la sugerencia, lo tengo así:

 

image.png.66b64bec6f7497313e2e477d18c35cea.png

 

Sin embargo no funciona... :(

Link to comment
Share on other sites

He encontrado un modulo de pago que al parecer hace este tipo de tareas (QUE DEBERIAN SER POR DEFECTO DE PRESTASHOP)

https://addons.prestashop.com/es/combinaciones-personalizacion/42298-ocultar-o-mostrar-atributos-y-combinaciones.html?ab=1

Voy a preguntar, si cumple con la funcionalidad exacta y lo comento, pero obviamente si se pudiera hacer por la via de retocar algun fichero y alguien conoce la forma se agradeceria que lo comparta.

Gracias

Link to comment
Share on other sites

Si lo único que quieres que es que no se muestren las combinaciones que no tienen stock, yo lo tengo hecho modificando el .tpl de la ficha de producto, aunque no sé si es exactamente lo que tú quieres:

Yo lo que hago es mostrar todas las tallas y colores disponibles. Cuando se selecciona una combinación (por ejemplo, talla S, color Negro), muestro todo el resto de tallas y colores disponibles, pero las tallas que NO tiene stock en color negro aparecen tachadas, y los colores que NO tiene stock para la talla S también tachados.

Creo que se parece a lo que buscas, pero no sé si es exactamente lo mismo.

Captura.JPG.67642d91ac7785d9a2fb4e5d7d226a42.JPG

En este caso está seleccionada la talla 37 en color negro, y aparecen como disponibles las tallas que tienen existencias en negro (37, 38 y 39), y luego los colores que tienen existencias para la talla 37 (gris y negro).

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

hace 3 horas, Antakarana dijo:

Hola! 

Tenemos ese mismo problema... hay alguna forma de ocultar las combinaciones de talla-color que no tengan stock?

Cuando un producto tiene varias combinaciones y almenos 1 de ellas tiene 1 unidad de stock te muestra la talla en todas .... y el problema no es que la muestre sino que cuando el cliente la selecciona no sale un aviso tipo "no tenemos stock" sino que se salta a otra combinacion distinta con stock... Esto crea mucha confusión al cliente porque da la sensacion de que la página no funciona correctamente.

Gracias

Buenas,

Creo que no hay otro remedio que elegir una de las dos opciones:

  • que los productos agotados aparezcan con alguna marca de "agotado".
  • que los productos no aparezcan directamente.

Según el tipo de comercio puede que te interese una fórmula o la otra. ¿Has leído el hilo al cual hago referencia? La solución que encontré es para la segunda opción, y para que funcione también con los resultados del filtro usé un módulo de pago. Concretamente éste.

En caso de necesitar la primera opción, la solución de @Prestafan33 parece interesante.

Saludos

 

Link to comment
Share on other sites

  • 1 month later...

Hola a todos, 

Dentro de las soluciones que hay en el foro sobre este tema, la tuya @Prestafan33 es de las mejores que he visto. Por lo menos avisamos al usuario de que no hay existencias para esa combinación de forma visual. 

¿Podrías adjuntarnos el fragmento de código que has modificado en el .tpl de la ficha de producto?

 

Muchas gracias de antemano!

Link to comment
Share on other sites

18 hours ago, Alejandro Loidi said:

Hola a todos, 

Dentro de las soluciones que hay en el foro sobre este tema, la tuya @Prestafan33 es de las mejores que he visto. Por lo menos avisamos al usuario de que no hay existencias para esa combinación de forma visual. 

¿Podrías adjuntarnos el fragmento de código que has modificado en el .tpl de la ficha de producto?

 

Muchas gracias de antemano!

El problema es que me he dado cuenta de que, con la solución que tenía originalmente, puede darse el caso de que haya combinaciones inaccesibles.

Me explico: Tal y como lo tenía yo, mostraba inaccesibles las combinaciones que no tenían stock en relación con la combinación seleccionada. Con un ejemplo: Un producto que tiene colores blanco y negro y tallas S, M y L. Supongamos que los stocks están así:

Blanco, S -> 4
Blanco, M -> 7
Blanco, L -> 0
Negro, S -> 3
Negro, M -> 0
Negro, L -> 5

Bien, supongamos que la combinación por defecto es Blanco, S (o que se accede directamente a esa combinación). Aparecerían como activos los colores Negro (porque hay stock en Negro-S), y las tallas S y M, y como desactivada la talla L (no hay Blanco-L).

El problema viene si, por ejemplo, la combinación por defecto es Blanco-M, o se accede a esa combinación. Aparecería DESACTIVADO el color Negro (porque no hay Negro-M). Y no se podría acceder a las combinaciones Negro-S y Negro-L. Eventualmente sí que sería posible si se cambia primero la talla a una que tenga stock en color negro, se cambia a color negro y se selecciona luego la talla, pero supongamos que en un momento determinado el estado de los stocks es éste:

Blanco, S -> 0
Blanco, M -> 7
Blanco, L -> 0
Negro, S -> 0
Negro, M -> 0
Negro, L -> 5

En este estado, desde la combinación Blanco-M, no se podría acceder de ninguna manera al Negro-L, porque no hay stock de la talla L en blanco (y por tanto, la talla L aparecería desactivada), y tampoco hay stock de la talla M en negro (y el color negro aparecería deshabilitado también).

Si sólo hay un atributo la cosa es sencilla, pero si son 2 o más los que se combinan la cosa se va complicando bastante. Por mi parte lo que he hecho en ese caso concreto, como los atributos sólo van a ser dos como máximo (tallas y colores), es dejar los colores siempre habilitados, independientemente del stock, y deshabilitar las tallas que están sin stock para el color seleccionado. Esto hace que en algún momento se pueda llegar a seleccionar una combinación sin stock (y aparecerá el aviso correspondiente), pero asegura que todas las combinaciones sean accesibles siempre. Tengo pendiente darle otra vuelta para ver si encuentro otra solución mejor, pero por ahora es lo único que se me ha ocurrido.

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

  • 3 weeks later...
On 1/30/2020 at 10:09 AM, Prestafan33 said:

El problema es que me he dado cuenta de que, con la solución que tenía originalmente, puede darse el caso de que haya combinaciones inaccesibles.

Me explico: Tal y como lo tenía yo, mostraba inaccesibles las combinaciones que no tenían stock en relación con la combinación seleccionada. Con un ejemplo: Un producto que tiene colores blanco y negro y tallas S, M y L. Supongamos que los stocks están así:

Blanco, S -> 4
Blanco, M -> 7
Blanco, L -> 0
Negro, S -> 3
Negro, M -> 0
Negro, L -> 5

Bien, supongamos que la combinación por defecto es Blanco, S (o que se accede directamente a esa combinación). Aparecerían como activos los colores Negro (porque hay stock en Negro-S), y las tallas S y M, y como desactivada la talla L (no hay Blanco-L).

El problema viene si, por ejemplo, la combinación por defecto es Blanco-M, o se accede a esa combinación. Aparecería DESACTIVADO el color Negro (porque no hay Negro-M). Y no se podría acceder a las combinaciones Negro-S y Negro-L. Eventualmente sí que sería posible si se cambia primero la talla a una que tenga stock en color negro, se cambia a color negro y se selecciona luego la talla, pero supongamos que en un momento determinado el estado de los stocks es éste:

Blanco, S -> 0
Blanco, M -> 7
Blanco, L -> 0
Negro, S -> 0
Negro, M -> 0
Negro, L -> 5

En este estado, desde la combinación Blanco-M, no se podría acceder de ninguna manera al Negro-L, porque no hay stock de la talla L en blanco (y por tanto, la talla L aparecería desactivada), y tampoco hay stock de la talla M en negro (y el color negro aparecería deshabilitado también).

Si sólo hay un atributo la cosa es sencilla, pero si son 2 o más los que se combinan la cosa se va complicando bastante. Por mi parte lo que he hecho en ese caso concreto, como los atributos sólo van a ser dos como máximo (tallas y colores), es dejar los colores siempre habilitados, independientemente del stock, y deshabilitar las tallas que están sin stock para el color seleccionado. Esto hace que en algún momento se pueda llegar a seleccionar una combinación sin stock (y aparecerá el aviso correspondiente), pero asegura que todas las combinaciones sean accesibles siempre. Tengo pendiente darle otra vuelta para ver si encuentro otra solución mejor, pero por ahora es lo único que se me ha ocurrido.

hola, yo solo tengo un atributo que es la talla. podrias compartir el codigo que has modificado? muchas gracias

Link to comment
Share on other sites

  • 2 months later...
On 12/19/2019 at 5:11 AM, Prestafan33 said:

Si lo único que quieres que es que no se muestren las combinaciones que no tienen stock, yo lo tengo hecho modificando el .tpl de la ficha de producto, aunque no sé si es exactamente lo que tú quieres:

Yo lo que hago es mostrar todas las tallas y colores disponibles. Cuando se selecciona una combinación (por ejemplo, talla S, color Negro), muestro todo el resto de tallas y colores disponibles, pero las tallas que NO tiene stock en color negro aparecen tachadas, y los colores que NO tiene stock para la talla S también tachados.

Creo que se parece a lo que buscas, pero no sé si es exactamente lo mismo.

Captura.JPG.67642d91ac7785d9a2fb4e5d7d226a42.JPG

En este caso está seleccionada la talla 37 en color negro, y aparecen como disponibles las tallas que tienen existencias en negro (37, 38 y 39), y luego los colores que tienen existencias para la talla 37 (gris y negro).

Es una gran solución, podrías por favor compartirnos el código para realizarlo.

Link to comment
Share on other sites

  • 1 year later...

Buenas a todos, tras dos años escribo algo:

 

Mi problema es que quiero deshabilitar una talla de un producto. Da igual el stock que tenga quiero ocultarla/deshabilitarla pero no eliminarla. Como si desapareciera esa única talla cara al cliente, pero quiero mantenerla por si mañana quiero activarla de nuevo ¿Se me entiende? Es como habilitar o deshabilitar un producto pero en este caso con una combinacion(talla).

¿Esto es más fácil de hacer? 

Link to comment
Share on other sites

  • 4 weeks later...

Buenas @Frank_C

Creo que lo mejor seria abrir un hilo nuevo con ese tema. Se me ocurre una chapucilla que podría funcionar, incómoda de mantener pero usando las funciones nativas de Prestashop: editar la combinación que quieras desactivar y poner una fecha de disponibilidad del año 3022 :)

Saludos,

Sergi

Link to comment
Share on other sites

Hola, @Frank_C

La forma ideal es montar un nuevo campo en la tabla ps_attribute, añadirlo en la class Attribute.php y luego cambiar los tpl (product.tpl y product-list.tpl) para que comprueben este nuevo dato antes de mostrar el atributo.

 

Algo rápido es meterse directamente en los tpl arriba indicados, buscar el tipo de variante que es tu atributo talla (color, select, radio) y meterle un if que compruebe el name del atributo talla para que cuando sea "S", no pintarlo.

Como depende del tema que tengas instalado, no puedo darte un código a probar.

 

Link to comment
Share on other sites

Lo primero de todo gracias a ambos por las respuestas :)

 

On 5/25/2022 at 10:30 AM, Iván Ros Navarro said:

Hola, @Frank_C

La forma ideal es montar un nuevo campo en la tabla ps_attribute, añadirlo en la class Attribute.php y luego cambiar los tpl (product.tpl y product-list.tpl) para que comprueben este nuevo dato antes de mostrar el atributo.

 

Algo rápido es meterse directamente en los tpl arriba indicados, buscar el tipo de variante que es tu atributo talla (color, select, radio) y meterle un if que compruebe el name del atributo talla para que cuando sea "S", no pintarlo.

Como depende del tema que tengas instalado, no puedo darte un código a probar.

 

Creo que esto no me sirve, me explico. Mi prestashop es una especie de base de datos por lo que no se vende en dicho prestashop si no que envía esos productos mediante plugin(modulo) a otro sitio que es el encargado de vender. Creo que con tu código haces que no se muestre y no se pueda vender pero aun así se enviaría mediante el plugin(modulo). Entiendo lo que mencionas pero ... ufff sería un currazo no? jaja 

 

On 5/18/2022 at 1:50 PM, Sergi said:

Buenas @Frank_C

Creo que lo mejor seria abrir un hilo nuevo con ese tema. Se me ocurre una chapucilla que podría funcionar, incómoda de mantener pero usando las funciones nativas de Prestashop: editar la combinación que quieras desactivar y poner una fecha de disponibilidad del año 3022 :)

Saludos,

Sergi

Esto lo veo interesante y factible, soluciona muchos módulos de pago sin funcionase. No lo he podido probar ya que creé reglas de exclusiones donde reciben los productos y no hizo falta, pero es interesante :)

 

PD: Ojalá Prestashop implementase un sencillo botón como con los productos ... :P

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...