Jump to content

Edit History

Prestafan33

Prestafan33

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.

Prestafan33

Prestafan33

17 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 el color a negro y 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.

×
×
  • Create New...