Jump to content

Mostrar condición del producto (usado o nuevo) en la tienda 1.7 [SOLUCIONADO]


Recommended Posts

Hola,

en mi tienda no logro hacer que se vea el estado de uso del producto (usado/nuevo). No me sirve modificarlo uno a uno, pues cuento con miles de productos usados. Necesito hacerlo de manera masiva.

Intenté modificar products.php (show condition=true), pero no se ha arreglado. 

Adjunto imagen de ejemplo.spacer.png

Por favor, agradezco guía para poder arreglarlo (googlié mucho y no encontré soluciones).

ATTE

Edited by Toto Mir
SOLUCIONADO. (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Gusman126 me respondió en este topic:

 

"Si necesitas que se muestre en la zona principal, vas a tener que cambiar el fichero .tpl ...

Yo lo añadiria debajo del nombre . en el fichero /themes/classic/templates/catalog/product.tpl

Antes de {block name='product_prices'}

 

{block name='product_condition'}
    {if $product.condition}
      <div class="product-condition">
        <label class="label">{l s='Condition' d='Shop.Theme.Catalog'} </label>
        <link itemprop="itemCondition" href="{$product.condition.schema_url}"/>
        <span>{$product.condition.label}</span>
      </div>
    {/if}
  {/block}

Link to comment
Share on other sites

  • 11 months later...

Alguno ha encontrado solución para poner show_condition por defecto true en todos los productos, ya sea por TPL o sobreescribiendo alguna clase?? 

Yo también tengo este problema y me parece muy extraño que no haya un modo mediante código para que muestre siempre la condición del producto, ya sea cambiando un tpl o sobreescribiendo una clase, llevo un día intentando resolver esto y no he encontrado una solución elegante sin tener que actualizar masivamente la base de datos .... si alguien tuviese alguna solución se lo agradecería que la compartiese ....

He encontrado que la función que hace esta comprobación es esta de la clase ProductLazyArray.php, pero es un archivo del nucleo de prestashop y creo que no se puede sobreescribir esa función .... en mi caso me bastaría con quitar ese primer if 

class ProductLazyArray extends AbstractLazyArray
{
....
    public function getCondition()
    {
        if (empty($this->product['show_condition'])) {
            return false;
        }
......

 

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

  • 4 months later...
On 1/14/2021 at 5:43 AM, nirmuc said:

Alguno ha encontrado solución para poner show_condition por defecto true en todos los productos, ya sea por TPL o sobreescribiendo alguna clase?? 

Yo también tengo este problema y me parece muy extraño que no haya un modo mediante código para que muestre siempre la condición del producto, ya sea cambiando un tpl o sobreescribiendo una clase, llevo un día intentando resolver esto y no he encontrado una solución elegante sin tener que actualizar masivamente la base de datos .... si alguien tuviese alguna solución se lo agradecería que la compartiese ....

He encontrado que la función que hace esta comprobación es esta de la clase ProductLazyArray.php, pero es un archivo del nucleo de prestashop y creo que no se puede sobreescribir esa función .... en mi caso me bastaría con quitar ese primer if 


class ProductLazyArray extends AbstractLazyArray
{
....
    public function getCondition()
    {
        if (empty($this->product['show_condition'])) {
            return false;
        }
......

 

Hola, yo añadí el punto 2) a esta solución para que toda NUEVA importación (las previas no las actualiza) tenga por detecto esa opción habilitada (prestashop 1.7.7.4)

***

1) Añadir bajo el nombre del producto en el fichero /themes/classic/templates/catalog/product.tpl

Antes de {block name='product_prices'} agregar código:

 {block name='product_condition'}
    {if $product.condition}
      <div class="product-condition">
        <label class="label">{l s='Condition' d='Shop.Theme.Catalog'} </label>
        <link itemprop="itemCondition" href="{$product.condition.schema_url}"/>
        <span>{$product.condition.label}</span>
      </div>
    {/if}
  {/block}

2) Adicionalmente cambiar a true lo siguiente:

En classes/product.php a true (está en false por defecto):

/** @var bool Will the condition select should be visible for this product ? */
    public $show_condition = true;

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