Jump to content

¿como cambiar Condición de Producto?


Recommended Posts

Hola.

 

En la ficha de productos de PS 1.6 existe el campo Condición de Producto - > Nuevo, y me gustaría añadir y poder seleccionar otros tipos.

H emirado y no veo en nigún sitio donde cambiar esa lista

¿alguien sabe como?

 

Gracias.-

 

Parece ser que tendrías que cambiarlo en la base de datos y en algunos archivos.

 

En la base de datos:

ALTER TABLE `ps_product` CHANGE COLUMN `condition` `condition` ENUM('new','used','refurbished','exhibitioned') NOT NULL DEFAULT 'new' AFTER `available_date`;
ALTER TABLE `ps_product_shop` CHANGE COLUMN `condition` `condition` ENUM('new','used','refurbished','exhibitioned') NOT NULL DEFAULT 'new' AFTER `available_date`;

Cambiando los estados new, used, refurbished, exhibitioned, por los que a ti te convengan (cuidado con las comillas).

 

En classes/Product.php lo mismo (no sé en qué línea lo tendrás, yo lo tengo sobre la 291):

'condition' => array('type' => self::TYPE_STRING, 'shop' => true, 'validate' => 'isGenericName', 'values' => array('new', 'used', 'refurbished', 'exhibitioned'), 'default' => 'new'),

En tu /adminXXX/themes/default/template/controllers/products/informations.tpl:

<select name="condition" id="condition">
<option value="new" {if $product->condition == 'new'}selected="selected"{/if} >{l s='New'}</option>
<option value="used" {if $product->condition == 'used'}selected="selected"{/if} >{l s='Used'}</option>
<option value="refurbished" {if $product->condition == 'refurbished'}selected="selected"{/if}>{l s='Refurbished'}</option>
<option value="exhibitioned" {if $product->condition == 'exhibitioned'}selected="selected"{/if}>{l s='Item from exhibition'}</option>
</select>

Borras la caché de smarty y supongo que después debería aparecerte en la ficha. A mí no me sale pero debo tenerlo deshabilitado o algo, pero me lo guarda bien.

 

Haz una copia de los archivos que vayas a modificar, por si acaso.

 

A mi me gustaría quitar la condición, ya que es lógico que lo que voy a vender es nuevo..

 

Echa un vistazo en este hilo http://www.prestashop.com/forums/topic/318138-quitar-condici%C3%B3n-nuevousado-de-p%C3%A1gina-del-producto-en-16/

  • Like 1
Link to comment
Share on other sites

  • 7 months later...

Parece ser que tendrías que cambiarlo en la base de datos y en algunos archivos.

 

En la base de datos:

ALTER TABLE `ps_product` CHANGE COLUMN `condition` `condition` ENUM('new','used','refurbished','exhibitioned') NOT NULL DEFAULT 'new' AFTER `available_date`;
ALTER TABLE `ps_product_shop` CHANGE COLUMN `condition` `condition` ENUM('new','used','refurbished','exhibitioned') NOT NULL DEFAULT 'new' AFTER `available_date`;

Cambiando los estados new, used, refurbished, exhibitioned, por los que a ti te convengan (cuidado con las comillas).

 

En classes/Product.php lo mismo (no sé en qué línea lo tendrás, yo lo tengo sobre la 291):

'condition' => array('type' => self::TYPE_STRING, 'shop' => true, 'validate' => 'isGenericName', 'values' => array('new', 'used', 'refurbished', 'exhibitioned'), 'default' => 'new'),

En tu /adminXXX/themes/default/template/controllers/products/informations.tpl:

<select name="condition" id="condition">
<option value="new" {if $product->condition == 'new'}selected="selected"{/if} >{l s='New'}</option>
<option value="used" {if $product->condition == 'used'}selected="selected"{/if} >{l s='Used'}</option>
<option value="refurbished" {if $product->condition == 'refurbished'}selected="selected"{/if}>{l s='Refurbished'}</option>
<option value="exhibitioned" {if $product->condition == 'exhibitioned'}selected="selected"{/if}>{l s='Item from exhibition'}</option>
</select>

Borras la caché de smarty y supongo que después debería aparecerte en la ficha. A mí no me sale pero debo tenerlo deshabilitado o algo, pero me lo guarda bien.

 

Haz una copia de los archivos que vayas a modificar, por si acaso.

 

 

Echa un vistazo en este hilo http://www.prestashop.com/forums/topic/318138-quitar-condici%C3%B3n-nuevousado-de-p%C3%A1gina-del-producto-en-16/

 

 

Hola, muchas gracias por la información si este foro estaría perdida! estaba mirando para añadir en mi página nuevos estados para que apareciesen los plazos de envío por ejemplo ya que dependiendo de los productos hay uno u otro plazo. Y estaba revisando los archivos antes de hacer el cambio, pero mi código es algo diferente al de rsaiz (el de themes/default/template/controllers/products/informations.tpl) , al ser de una plantilla... y lo tengo en otra ruta themes/miplantilla/product.tpl. El código lo pone así:


</p>
{if $product->condition}
<p id="product_condition">
<label>{l s='Condition'} </label>
{if $product->condition == 'new'}
<link itemprop="itemCondition" href="http://schema.org/NewCondition"/>
<span class="editable">{l s='New'}</span>
{elseif $product->condition == 'used'}
<link itemprop="itemCondition" href="http://schema.org/UsedCondition"/>
<span class="editable">{l s='Used'}</span>
{elseif $product->condition == 'refurbished'}
<link itemprop="itemCondition" href="http://schema.org/RefurbishedCondition"/>
<span class="editable">{l s='Refurbished'}</span>
{/if}
</p>

Tengo miedo que al apuntar a una página web los nuevos estados que introduzca si los pongo que apunten a esa ruta no sirvan... cómo podría hacer? valdría copiar a continuación del que ya hay el código de rsaiz

<select name="condition" id="condition">
<option value="new" {if $product->condition == 'new'}selected="selected"{/if} >{l s='New'}</option>

Muchas gracias de Antemano :)

Link to comment
Share on other sites

Hola, princess. Tal y como lo tienes, lo que tendrías que cambiar es (soy incapaz de resaltarlo en color rojo; sólo tienes que cambiar los nombres de las condiciones, que te pongo como nombre 1, nombre 2 y nombre 3):

{if $product->condition}

<p id="product_condition">
<label>{l s='Condition'} </label>

{if $product->condition == 'nombre de la condición 1'}

<link itemprop="itemCondition" href="http://schema.org/NewCondition"/>
<span class="editable">{l s='nombre de la condición 1'}</span>

{elseif $product->condition == 'nombre de la condición 2'}

<link itemprop="itemCondition" href="http://schema.org/UsedCondition"/>
<span class="editable">{l s='nombre de la condición 2'}</span>

{elseif $product->condition == 'nombre de la condición 3'}

<link itemprop="itemCondition" href="http://schema.org/RefurbishedCondition"/>

<span class="editable">{l s='nombre de la condición 3'}</span>

Los

<link itemprop="itemCondition" href="http://schema.org/RefurbishedCondition"/>

No afectan al funcionamiento de tu página, son fragmentos enriquecidos y la verdad es que no estoy nada puesta en SEO, quizá alguien te pueda aconsejar mejor pero creo que si los quitas no pasará nada. Puedes dejarlos comentados dejando cada línea como esta (lo que está entre {* y *} no se muestra):

{* <link itemprop="itemCondition" href="http://schema.org/RefurbishedCondition"/> *}

Un saludo.

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

  • 1 year later...
  • 4 months later...

Gracias por el aporte, pero no termino de conseguirlo.

 

Creo que he dado todos los pasos, pero me he tenido que dejar algo. Yo estoy con la versión 1.6.1.11

 

De hecho he conseguido que me salga en el selector de la ficha del producto y que se almacene en la tabla del producto.

 

Pero no consigo que aparezca en el front-office del producto, no muestra nada. Ni encuentro los dos campos nuevos en las traducciones.

Me he tenido que pasar algo por alto.

Link to comment
Share on other sites

Según documentación encontrada en https://www.prestashop.com/forums/topic/538261-adding-options-to-product-condition-list/

también hay que tocar modules/blocklayered/blocklayered.php:

					$condition_list = array(
						'new' => $this->translateWord('New', (int)$filter['id_lang']),
						'used' => $this->translateWord('Used', (int)$filter['id_lang']),
						'refurbished' => $this->translateWord('Refurbished', (int)$filter['id_lang'])
					);

Después de hacer esto ya veo los campos en las traducciones de  ADMINPRODUCTS dentro de "Traducciones del panel de administración" pero los campos en español aparecen vacíos como era de esperar. El problema es que no me deja traducirlos ya que cada vez que lo intento me sale un error de permisos: You do not have permission to access this document.

 

¿como puedo hacer para solucionar esto? creo que es lo único que me falta para que funcione.

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