Jump to content

Cantidad de stock en product-list


oxoa

Recommended Posts

Hola, como puedo poner la cantidad de stock en el product list?? estoy insertando este codigo pero no hay manera, presta 1.6

{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}

Saludos

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

Tu problema será que estás intentando pintar en tu vista un valor que no existe. Es decir, cuando queremos mostrar algo en pantalla, no basta con modificar el .tpl para que aparezca el valor, sino que previamente hay que recuperarlo de base de datos. 

Tienes hecha la parte visual pero te faltan todas las modificaciones previas en los controller y/o clases.

Link to comment
Share on other sites

intentalo asi

{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}
Link to comment
Share on other sites

 

intentalo asi

{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}

Asi tampoco... :(

Jesa, no he tocado nada mas que el .tpl... he puesto tambien el fabricante y solo he modificado el  product-list, por eso creia que bastaria con esto... estoy un poco perdido

Link to comment
Share on other sites

Lo de cambiar solamente el tpl algunas veces funciona y otras no...la razón es sencilla. No siempre se recuperan de la base de datos todos los campos relacionados con lo que vamos a pintar en pantalla. Es decir, a lo mejor en la pantalla del producto se recuperan todos los datos del producto y no todos se pintan. Por eso, al modificar solo el tpl funciona porque el dato ya está previamente recuperado de bbdd. En el product-list debe ser que solo se recuperan los datos que se van a pintar y de ahí que no te funcione el pintar la cantidad. 

Tendrías que seguir el flujo que hace al recuperar los productos de una categoría hasta llegar a la query que ejecuta y allí añadir la cantidad del producto para después poderla pintar en tu pantalla.

Link to comment
Share on other sites

Lo de cambiar solamente el tpl algunas veces funciona y otras no...la razón es sencilla. No siempre se recuperan de la base de datos todos los campos relacionados con lo que vamos a pintar en pantalla. Es decir, a lo mejor en la pantalla del producto se recuperan todos los datos del producto y no todos se pintan. Por eso, al modificar solo el tpl funciona porque el dato ya está previamente recuperado de bbdd. En el product-list debe ser que solo se recuperan los datos que se van a pintar y de ahí que no te funcione el pintar la cantidad. 

Tendrías que seguir el flujo que hace al recuperar los productos de una categoría hasta llegar a la query que ejecuta y allí añadir la cantidad del producto para después poderla pintar en tu pantalla.

Ok, voy haber si lo consigo, luego os cuento...

Link to comment
Share on other sites

Si has seguido por donde va pasando cuando cargas la pantalla no deberías tener problema en conseguirlo. Lo que buscas seguro que se puede hacer, no es algo tan raro, eso si, todo depende de los conocimientos que tengas de programación. 

Link to comment
Share on other sites

Si has seguido por donde va pasando cuando cargas la pantalla no deberías tener problema en conseguirlo. Lo que buscas seguro que se puede hacer, no es algo tan raro, eso si, todo depende de los conocimientos que tengas de programación. 

 

El problema es ese, que no soy programador... :S

Link to comment
Share on other sites

El problema es ese, que no soy programador... :S

Saludos;

 

Yo lo tengo como se muestra en la captura, y lo que hice fue lo siguiente, por si te sirve de esta forma:

 

Después de esté código (aproximádamente en la línea 55) :

 <img class="replace-2x img-responsive" src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html':'UTF-8'}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" />

Agregué esto:

{if $product.quantity >0}   
    <strong>{l s='STOCK: '}</strong>{$product.quantity}
{else}
    <strong>{l s='SIN STOCK'}</strong>                    
{/if}  

stock.jpg

 

 

:) :)

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

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