Jump to content

[SOLUCIONADO] Ocultar nº de unidades en stock a partir de una cantidad


Alberto Fernández

Recommended Posts

Hola,

 

Tengo productos con combinaciones que, como suelo tener pocas cantidades de ellos, es preferible mostar el nº de unidades en stock en la ficha del producto.

 

Pero también tengo objetos personalizados y con combinaciones que fabrico yo mismo, que por limitaciones de prestashop me veo obligado a poner con un stock disparatado.

 

Lo que pretendo es añadir un condicionante de stock que oculte el nº de unidades en stock de los productos a partir de una cantidad.

 

Otra opción que he barajado es aprovechar en preferencias/productos/página del producto la opción de "Mostrar número de productos disponibles si su cantidad es inferior a "  para que muestre las unidades disponibles en lugar del mensaje "Advertencia: ¡Últimos artículos en stock!"

 

Esto último me parece mejor, así no habría que editar código cada vez que necesite corregir esa cantidad por si cambio de parecer en el futuro.

 

Otras ventajas de esto, es que al no mostrar el stock completo de los artículos, la competencia no sabe lo que tenéis realmente disponible, evitáis que los ladrones hagan números, y el cliente final sigue viendo que hay disponibilidad de producto.

 

 

 

 

Edited by Alberto Fernández (see edit history)
Link to comment
Share on other sites

Producto1

En este tipo de producto no tengo necesidad de mostrar stock, ya que yo mismo lo fabrico:

 

post-728409-0-91301400-1386027454_thumb.jpg

 

Producto2

En este otro tipo de producto sí quiero mostrar el stock, porque siempre es un número pequeño y de disponibilidad limitada (pues no siempre hay combinaciones)

post-728409-0-73615200-1386027515_thumb.jpg

 

Quiero conservar el formato que muestra las unidades en stock, pero ocultarlo a partir de una cantidad determinada. Supongo que bastará un condicionante en product.tpl, indicando allí el número.

Link to comment
Share on other sites

En mi fichero:
 

/themes/default/product.tpl

Tengo esto:
 

{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
                        <p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
                                <span id="quantityAvailable">{$product->quantity|intval}</span>
                                <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item in stock'}</span>
                                <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items in stock'}</span>
                        </p>
                        {/if}

lo he cambiado asi:
 

{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
                        <p id="pQuantityAvailable"{if $product->quantity <= 0 || $product->quantity < $last_qties}  style="display: none;"{/if}>
                                <span id="quantityAvailable">{$product->quantity|intval}</span>
                                <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item in stock'}</span>
                                <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items in stock'}</span>
                        </p>
                        {/if}

Y ahora cuando en la casilla (en Preferencias -> Productos) que dice:

 

Adjunto Imagen

 

ldl.jpg
 

Mostrar número de productos disponibles si su cantidad es inferior a

coloques el limite te ocultara el stock.

 

Supongo que esto lo arregalaran en futuras versiones segun veo, ya que la opcion por defecto segun veo (creo*), creo que sirve para mostrar el mensaje/aviso.

  • Like 1
Link to comment
Share on other sites

En mi fichero:

 

/themes/default/product.tpl

Tengo esto:

 

{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
                        <p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
                                <span id="quantityAvailable">{$product->quantity|intval}</span>
                                <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item in stock'}</span>
                                <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items in stock'}</span>
                        </p>
                        {/if}

lo he cambiado asi:

 

{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
                        <p id="pQuantityAvailable"{if $product->quantity <= 0 || $product->quantity < $last_qties}  style="display: none;"{/if}>
                                <span id="quantityAvailable">{$product->quantity|intval}</span>
                                <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item in stock'}</span>
                                <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items in stock'}</span>
                        </p>
                        {/if}

Y ahora cuando en la casilla (en Preferencias -> Productos) que dice:

 

Adjunto Imagen

 

ldl.jpg

 

Mostrar número de productos disponibles si su cantidad es inferior a

coloques el limite te ocultara el stock.

 

Supongo que esto lo arregalaran en futuras versiones segun veo, ya que la opcion por defecto segun veo (creo*), creo que sirve para mostrar el mensaje/aviso.

 

Nadie, como bien dices, sólo muestra el aviso "Advertencia: ¡Últimos artículos en stock!" en lugar de la cantidad si es inferior al número indicado. Vamos, que no hace lo que dice! XDD y es justo lo que necesito....

 

He probado con el código que facilitas en ambas plantillas, y el resultado es el mismo que sin los cambios ¿?¿?¿? (he limpiado caché smarty, navegador, etc).

Link to comment
Share on other sites

Entonces ¿En combinaciones no funciona?

 

Eso es, en combinaciones no funciona ya que siempre muestra la cantidad sea esta mayor o menor de la indicada. En productos sin atributos ni combinaciones muestra la cantidad si es mayor, pero la oculta si es menor mostrando "Advertencia: ¡Últimos artículos en stock!"(funciona al revés).

 

He probado en otra instalación limpia 1.5.6.1 y pasa lo mismo. ¿nadie, en qué versión has aplicado la modificación del código?. Si es la misma es muuy raro.

Edited by Alberto Fernández (see edit history)
Link to comment
Share on other sites

Hola nadie, has comprobado si el cambio de código te funciona con productos con combinaciones y/o personalizados?

 

No, no lo he probado, pero vamos si no funciona con combinaciones, es porque quizás haya que que tocar algún js.

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

No, no lo he probado, pero vamos si no funciona con combinaciones, es porque quizás haya que que tocar algún js.

 

Hola nadie, al final lo he conseguido!

 

Aunque no hice una comprobación final con tu código, creo que no me funcionaba porque la cantidad indicada como umbral opera sobre el total de unidades del producto, (esto es, sumando las unidades de cada combinación) en lugar de operar sobre las combinaciones individualmente.

 

Basándome en este otro post del foro en inglés: http://www.prestashop.com/forums/topic/56232-hide-stock-quantity/?hl=%2Bhide+%2Bstock&do=findComment&comment=1320018

 

He dejado mi código así:

			<!-- number of item in stock -->			
			
			{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
			<p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
				<span>{if $product->quantity > 200}{l s='In Stock'}{else}</span>
				<span id="quantityAvailable">{$product->quantity|intval}</span>
				<span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}</span>
				<span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}</span>
			</p>
			{/if}{/if}

De esta manera obtengo más de lo que esperaba:

 

Mostrar las cantidades disponibles para cada producto y combinación (que no pasen del umbral marcado, en este ejemplo 200)

Queda así: http://cincelaser.com/panderetas/14-pandereta-colores.html

 

Mostrar "en stock" (u otro mensaje) para productos que fabrico y para los que no es necesario indicar stock (ya que se indica una cantidad elevaba en la ficha) en lugar de ocultar la disponibilidad: Queda así:http://cincelaser.com/marcapaginas/33-mpc-libro.html

 

No sé si es muy elegante, pero al menos funciona!

 

Gracias!

Link to comment
Share on other sites

Hola nadie, al final lo he conseguido!

 

Aunque no hice una comprobación final con tu código, creo que no me funcionaba porque la cantidad indicada como umbral opera sobre el total de unidades del producto, (esto es, sumando las unidades de cada combinación) en lugar de operar sobre las combinaciones individualmente.

 

Basándome en este otro post del foro en inglés: http://www.prestashop.com/forums/topic/56232-hide-stock-quantity/?hl=%2Bhide+%2Bstock&do=findComment&comment=1320018

 

He dejado mi código así:

			<!-- number of item in stock -->			
			
			{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
			<p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
				<span>{if $product->quantity > 200}{l s='In Stock'}{else}</span>
				<span id="quantityAvailable">{$product->quantity|intval}</span>
				<span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}</span>
				<span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}</span>
			</p>
			{/if}{/if}

De esta manera obtengo más de lo que esperaba:

 

Mostrar las cantidades disponibles para cada producto y combinación (que no pasen del umbral marcado, en este ejemplo 200)

Queda así: http://cincelaser.com/panderetas/14-pandereta-colores.html

 

Mostrar "en stock" (u otro mensaje) para productos que fabrico y para los que no es necesario indicar stock (ya que se indica una cantidad elevaba en la ficha) en lugar de ocultar la disponibilidad: Queda así:http://cincelaser.com/marcapaginas/33-mpc-libro.html

 

No sé si es muy elegante, pero al menos funciona!

 

Gracias!

 

Lo de que sea elegante o no, no es importante, lo importante es que lo has solucionado y dejado funcional.

 

Me alegro de que hayas obtenido una solución para el problema !

 

Como veo que has añadido la palabra "Solucionado" en el titulo del tema, procedo a cerrarlo.

 

Saludos,

Link to comment
Share on other sites

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