Jump to content

Estado del articulo visible por defecto.


droperco

Recommended Posts

Hola, estoy creando una nueva tienda basada en Prestashop 1.7.5.2. y los produsctos, mas de 10.000 los estoy subiendo por medio de la importación. El problema es que algunos de los productos no son nuevos, si no reacondicionados y quiero que se vea el estado del mismo, pero al subirlos con un archivo de importación el estado se importa, pero no lo muestra, tendria que ir uno por uno para artivar la pestaña de mostrar estado y siendo mas de 10.000 referencias pues eso...... por eso necesito saber si hay alguna forma de configurar que por defecto se muestre ya que no encuentro ningun apartado en los archivos de importación que puedan darme esa posibilidad.

 

Gracias por adelantado a todo el que me pueda echar un cable.

Link to comment
Share on other sites

Hola,

En la importación de CSV tienes un campo llamado "Estado" que te permite poner esos valores:

  • Nuevo
  • Utilizado
  • Reacondicionado

Simplemente crea una columna llamada Estado y en cada producto asignas un valor de estos 3.

Si ya tienes la importación hecha, exporta productos y mientras pongas el ID del producto y el nombre de éste es suficiente.

Saludos

Link to comment
Share on other sites

En 29/3/2020 a las 12:21 PM, SergioE dijo:

Hola,

En la importación de CSV tienes un campo llamado "Estado" que te permite poner esos valores:

  • Nuevo
  • Utilizado
  • Reacondicionado

Simplemente crea una columna llamada Estado y en cada producto asignas un valor de estos 3.

Si ya tienes la importación hecha, exporta productos y mientras pongas el ID del producto y el nombre de éste es suficiente.

Saludos

Gracias por tu aportación. Lo que me ocurre es que el estado ya aparece en la ficha, pero al suvirlo por csv la pestaña de "Mostrar condición en la página de producto" no se activa y a eso me refiero, si hay una forma de que se active mediante un archivo csv u otro sistema y que por defecto todos los articulos se marque para que aparezca el estado que ya tiene guardado en la ficha. Saludos.

nuevo-1.jpg

Link to comment
Share on other sites

Muy buenas.

No se si habrá alguna opción dentro del administrador para hacer lo que necesitas, dentro del importador de productos no lo veo.

Si tienes acceso a la base de datos con una simple sentencia puedes activar todos los productos.

Update ps_product set show_condition=1;
Update ps_product_shop set show_condition=1;

Pruébalo primero con un solo producto para ver que todo funciona, sustituyendo xxx por el id del producto a modificar.

Update ps_product set show_condition=1 where id_product=xxx;
Update ps_product_shop set show_condition=1  where id_product=xxx;

También puedes filtrarlo por el valor del estado (new, refurbished, used).

Update ps_product_shop set show_condition=1  where  `condition` = 'refurbished';
Update ps_product set show_condition=1  where  `condition` = 'refurbished';

Otra solución sería tener un script en php o un módulo que te haga el proceso.  

 

Link to comment
Share on other sites

En 3/4/2020 a las 11:59 AM, Juanjomg dijo:

i tienes acceso a la base de datos con una simple sentencia puedes activar todos los productos

GRacias por tu aportación. Realmente si tengo acceso a la base de datos y a los archivos, pero lo de las sentencias no te voy a engañar, el algo que no se como ejecutarlas, estoy habituado a realizar modificaciones en archivos del prestashop, pero no a ejecutar sentencias en la base de datos. Me puedes indicar algun tutorial en internet que pueda leer para tener una orientacion?

 

Otra vez gracias.

Link to comment
Share on other sites

Puedes usar el siguiente código.

<?php

require 'config/config.inc.php';

try {
	$sql = "Update " . _DB_PREFIX_ . "product set show_condition=1 where id_product=1;";
	$sql = $sql."Update " . _DB_PREFIX_ . "product_shop set show_condition=1  where id_product=1";
	Db::getInstance()->execute($sql);
} catch (Exception $e) {
   die($e->getMessage());
}

echo "Cambio realizado";

 

Te cambia el estado del producto con id=1, verifica que te funciona y elimina la condición where id_product=1, para aplicarlo a todos los productos.

Link to comment
Share on other sites

hace 7 horas, Juanjomg dijo:

Puedes usar el siguiente código.


<?php

require 'config/config.inc.php';

try {
	$sql = "Update " . _DB_PREFIX_ . "product set show_condition=1 where id_product=1;";
	$sql = $sql."Update " . _DB_PREFIX_ . "product_shop set show_condition=1  where id_product=1";
	Db::getInstance()->execute($sql);
} catch (Exception $e) {
   die($e->getMessage());
}

echo "Cambio realizado";

 

Te cambia el estado del producto con id=1, verifica que te funciona y elimina la condición where id_product=1, para aplicarlo a todos los productos.

Perfecto, muchas gracias, en cuanto realice la prueba informo del resultado. Gracias.

Link to comment
Share on other sites

  • 8 months later...

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

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