Jump to content

Mostrar disponibilidad en el listado de productos y en la pagina de inicio


webonmaster

Recommended Posts

Hola a todos, soy nuevo en el foro aunque llevo bastante tiempo visitandolo por motivos de trabajo y aficion.

 

Desde hace algun tiempo quiero hacer que tanto en la pagina de inicio de productos destacados como en las demas paginas se vea sin necesidad de tener que entrar al producto la disponibilidad y el numero de productos de una categoria.

 

Como decia anteriormente he estado buscando sin exito la manera de poder hacerlo. Por eso acudo al foro para que si podeis me echeis una mano aunque sea al  cuello.

 

Un ejemplo de lo que quiero hacer es esto http://www.pccomponentes.com/ donde aparece una barra de estado que indica el estado del articulo en cuestion junto con el numero de articulos.

 

He visto que corre por ahi un modulo llamado semaforo que se asemeja un poco a lo que quiero pero es para versiones anteriores a la 1.5.4.1 que es la que estoy usando en estos momentos.

 

Si alguien pudiera ayudarme le estaria muy agradecido.

Un saludo y gracias de antemano.

Link to comment
Share on other sites

Buenas tardes Sergio.

Gracias por responder, te cuento; creo que este modulo ya lo probe en su dia pero aun asi me lo acabo de bajar y probar de nuevo.

Se instala aparentemente sin problemas. "El módulo fue descargado exitosamente" pero despues no aparece en la lista de modulos ni activados ni desactivados. Alguna idea??

Gracias otra vez.

Link to comment
Share on other sites

Espera creo que ahora lo entiendo. No es un modulo como tal, ahi que sustituir los archivos product por los de tu directorio, no es asi?? lo hice pero no hace nada. no veo semaforos por ningun lado.

Ahiiii señor, llevame pronto.

Efectivamente son dos ficheros, no un módulo.

 

Fijate por si quieres añadirlo en tu product-list.tpl y no quieres machacar en el fichero, que en el codigo del usuario  snakefd99cb, tienes esto:

  <p id="availability_statut"{if ($product.quantity <= 0 && !$product.available_later && $allow_oosp) OR ($product.quantity > 0 && !$product.available_now) OR !$product.available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
    				<span id="availability_label">{l s='Availability:'}</span>
    				{if $product.available_now != 0 && ($product.available_now >= -2 && $product.available_now <= 4)}<span id="availability_value" onclick="window.open('http://tuweb/disponibilidad.html','','width=600, height=400, top=140, left=140, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no')" title="{if $product.available_now == -2}{if $product.available_now|substr:3}{/if}{elseif $product.available_now == 1}En stock/In stock{elseif $product.available_now == 1}En stock ultimas unidades/low in stock{elseif $product.available_now == -1}24/72H{elseif $product.available_now == 4}Almacén Europa/Warehouse Europe{/if}">
    						<span class="availability_color" style="background:{if $product.available_now == -2}black{elseif $product.available_now == -1}orange{elseif $product.quantity == 0 || $product.available_now == -1}#f1f2f4{elseif $product.available_now == 1}green{elseif $product.available_now == 2}green{elseif $product.available_now == 20}oragne{elseif $product.available_now == 4}green{/if};"> </span>
    						<span class="availability_color" style="background:{if $product.available_now == -2}black{elseif $product.available_now == -1}orange{elseif $product.quantity == 0 || $product.available_now == 3}#f1f2f4{elseif $product.available_now == 1}green{elseif $product.available_now == 2}green{elseif $product.available_now == 4}green{/if};"> </span>
    						<span class="availability_color" style="background:{if $product.available_now == -2}black{elseif $product.available_now == -1}orange{elseif $product.quantity == 0 || $product.quantity == 2 || $product.quantity == 0}#f1f2f4{elseif $product.available_now == 1}green{elseif $product.available_now == 4}orange{/if};"> </span>
    				</span>
    				{if $product.available_now == -2 && $product.available_now|substr:3}<br/><br/><span><br/>{$product.available_now|substr:3}</span>{elseif $product.available_now == 4 && $product.available_now|substr:2}<br/><br/><span><br/>{$product.available_now|substr:2}</span>{/if}{else}<span id="availability_value">{if $product.quantity == 0}{if $allow_oosp}{$product.available_later}{else}<span class="availability_color" style="background:red; margin-right: 2px"> </span><span class="availability_color" style="background:red; margin-right: 2px"> </span><span class="availability_color" style="background:red;"> </span>{/if}{else}{$product.available_now}{/if}</span>{/if}
    
    				<br/>
    			</p>

(Recuerda forzar compilación en la pestaña Parametros Avanzados -> Rendimiento)

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

Bueno despues de varias semanas buscando esto es lo mas parecido a lo que me referia compatible con la versión 1.5.4.1 y al ser posible gratuito.

El resultado es mostrar una barra por colores del stock del producto pero como se ve en el modulo el estado del producto lo muestra en la ficha del mismo y yo quisiera que lo mostrase en la categoria para evitar al cliente a entrar hasta el producto para ver la disponibilidad.

Aqui dejo el enlace al modulo por si a alguien le pudiera interesar.

Sigo buscando.

http://addons.prestashop.com/es/aplicaciones-front-office-prestashop-modulos/1233-rsi-stock.html

Link to comment
Share on other sites

He copiado y pegado literalmente en mi product-list.tpl el codigo del que hablais, y lo unico que consigo es que al final de la lista de categorias diga 4 items in stock "ojo al dato" cuando son 136 los articulos que conforman esa categoria. Compre una plantilla que es la que utilizo por defecto la cual no muestra en las categorias el available famoso en verdecito cuando esta el producto disponible he de aqui mi perrera por el tema y el hecho de querer conservar la plantilla que me gusta y que me costo una pasta.

Por eso pido ayuda desesperadamente.

Gracial igualmente por los consejos recibios hasta ahora.

Un saludo.

 

AHhhh este es el codigo del que hablais verdad?

 

    {*Added quantity in stock*}
<!-- availability -->
<p id="availability_statut"{if ($product.quantity <= 0 && !$product.available_later && $allow_oosp) OR ($product.quantity > 0 && !$product.available_now) OR !$product.available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
<span id="availability_label">{l s='Availability:'}</span>
<span id="availability_value"{if $product.quantity <= 0} class="warning_inline"{/if}>
{if $product.quantity <= 0}{if $allow_oosp}{$product.available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product.available_now}{/if}
</span>
</p>

<!-- 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 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*}

<!-- Out of stock hook -->
<p id="oosHook"{if $product.quantity > 0} style="display: none;"{/if}>
{$HOOK_PRODUCT_OOS}
</p>

<p class="warning_inline" id="last_quantities"{if ($product.quantity > $last_qties OR $product.quantity <= 0) OR $allow_oosp OR !$product.available_for_order OR $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
{*End Added quantity in stock*}

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

Hablo solo pero no os preocupeis no pasa na.

Acabo de fijarme que los items que muestra al final de la categoria son los articulos que hacen referencia al ultimo producto de la lista de 15 que conforman la plantilla. Quiedisir que nos vamos acercando a la madre del tema. 15 son los articulos que aparecen como pudieran ser 31 eso lo tenemos claro solo es cuestion de decir cuantos articulos quieres que aparezcan por categoria, el tema esta en que lo mismo que dice la cantidad exacta del numero de articulos que tiene la ultima casilla de la plantilla, porque no me dice el del resto y al ser posible debajo de cada cuadrito como deberia ser?.

Ahi vamos.

Un saludo.

Link to comment
Share on other sites

Yo lo que hago, es editar el fichero:

 

/themes/default/product-list.tpl
Busco esto:

{if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}<span class="availability">{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{l s='Product available with different options'}{else}{l s='Out of stock'}{/if}</span>{/if}

y debajo añado:

<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>
y me muestra el stock de cada producto (Eso si, esto creo que no funciona con los productos con combinaciones)
  • Like 1
Link to comment
Share on other sites

Porcierto seria posible adjuntar una imagen al codigo, por ejemplo una imagen pequeñita de stock o sin stock en funcion de lo que sea, ahora sale la cantidad de cada pero cuando no hay stock no sale nada y me gustaria poner una imagen de sin stock y si es muy complicado pues solo un texto de no stock.

Gracias.

Link to comment
Share on other sites

Porcierto seria posible adjuntar una imagen al codigo, por ejemplo una imagen pequeñita de stock o sin stock en funcion de lo que sea, ahora sale la cantidad de cada pero cuando no hay stock no sale nada y me gustaria poner una imagen de sin stock y si es muy complicado pues solo un texto de no stock.

Gracias.

Por ejemplo:

 

{if $product.quantity > 0}
<img src="{$img_dir}si_stock.jpg"  alt="{l s='Sin stock'}" />
{else}
<img src="{$img_dir}no_stock.jpg"  alt="{l s='En stock'}"  />
{/if}
 

Y la imagenes :

no_stock.jpg y si_stock.jpg

las subes al directorio /themes/tu-plantilla/img/

Link to comment
Share on other sites

Muchas gracias Nadie, voy a probarlo.

Un besazo campeon. Eres mi idolo,

 

Se me ha ido la mano al escribir la variable, revisalo ahora. 

 

 

Por ejemplo:

 

{if $product.quantity > 0}
<img src="{$img_dir}si_stock.jpg"  alt="{l s='Sin stock'}" />
{else}
<img src="{$img_dir}no_stock.jpg"  alt="{l s='En stock'}"  />
{/if}
 

Y la imagenes :

no_stock.jpg y si_stock.jpg

las subes al directorio /themes/tu-plantilla/img/

Link to comment
Share on other sites

Bueno pues esto es lo que queria desde un principio, el evitar al cliente el tener que entrar hasta el producto para ver si habia o  no stock. De esta manera desde la categoria muestra el estado del producto y si le interesa pues sabe si esta disponible.

Gracias mil veces sin vosotros no lo hubiera conseguido nunca.

:)

Link to comment
Share on other sites

Adjuntando captura. Alguna critica constructiva??? algun consejo para centrar los cuadritos?? de admiten propuestas...

Gracias a todos.

 

 

Puedes arreglar el hueco, al parecer cuando no tienes existencias no te rellena el hueco.

 

El codigo que te dio el compañero Sergio:

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

Dejalo asi:


<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 $product.quantity <= 0} <div style="height:10px;"></div> {/if}

Es decir igual, pero añades despues esto:

{if $product.quantity <= 0} <div style="height:10px;"></div> {/if}

(Lo de 10 lo he puesto al azar, tu calcula a ver como se queda bien)

Link to comment
Share on other sites

Tengo la web en 4 idiomas, y en el producto sí me traduce el "items in stock" por "artículos disponibles" en castellano y en los demás idiomas respectivamente.

 

¿Cómo hago para que me traduzca esa parte en la lista de productos también?

 

un saludo!

Link to comment
Share on other sites

Ok Nadie sustitui el 10 por un 27 y ahora queda de lujo.

Gracias.

 

Perfecto !

 

 

Tengo la web en 4 idiomas, y en el producto sí me traduce el "items in stock" por "artículos disponibles" en castellano y en los demás idiomas respectivamente.

 

¿Cómo hago para que me traduzca esa parte en la lista de productos también?

 

un saludo!

 

En principio puedes traducirlo desde la pestaña Localización -> Traducciones -> Traducciones del Front-Office -> Pinchar Bandera Idioma a traducir, puedes traducirlo para el listado de productos.

Link to comment
Share on other sites

En principio puedes traducirlo desde la pestaña Localización -> Traducciones -> Traducciones del Front-Office -> Pinchar Bandera Idioma a traducir, puedes traducirlo para el listado de productos.

 

Me aparece 1000 = max_input_vars cuando intento actualizar el idioma.

 

Me pide un mínimo de 1440.

 

¿Cómo lo cambio? ¿Directamente en el servidor?

 

Tengo un Centos 6.

 

Gracias, un saludo.

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

Me aparece 1000 = max_input_vars cuando intento actualizar el idioma.

 

Me pide un mínimo de 1440.

 

¿Cómo lo cambio? ¿Directamente en el servidor?

 

Tengo un Centos 6.

 

Gracias, un saludo.

 

Si tienes acceso al php.ini cambialo.

 

---

 

Yo por ejemplo en los hosting compartidos, (esto funciona en la mayoria no en todos) lo que hago es crear un fichero llamado:

php.ini

en blanco y colocar esto:

max_input_vars=7000;

y subo ese fichero a la carpeta de administración de la tienda.

 

Con carpeta de administración de la tienda, me refiero a si para entrar al panel la url la url de tu tienda es:

tuweb.com/panel_admin/

lo subo dentro de:

/panel_admin/

---

 

Pero vamos si tu tienes acceso total, no creo que tengas problema en cambiarlo.

 

La otra opción es hacer la traducción manual, como explico aquí: http://victor-rodenas.com/2012/05/04/como-generar-traducciones-manuales-en-prestashop/

 

Saludos,

  • Like 1
Link to comment
Share on other sites

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