Jump to content

Saber si un producto tiene alguna oferta


Recommended Posts

¡Buenas!

 

Si accedes al objeto Product tienes el campo booleano "on_sale", si el producto está en oferta dicho campo está en "true". 

$product = new Product($id_producto);
if ($product->on_sale) {
	// Está en oferta
}
Link to comment
Share on other sites

De nada  :)

 

Yo también tenía muchas dudas cuando empecé con la programación en PrestaShop y me vi en la misma situación. A veces incluso la propia documentación oficial flojea y te las ves y deseas para encontrar información, así que la ayuda entre nosotros es importante.

 

Ya me comentas si has podido salir airoso

Link to comment
Share on other sites

 

¡Buenas!

 

Si accedes al objeto Product tienes el campo booleano "on_sale", si el producto está en oferta dicho campo está en "true". 

$product = new Product($id_producto);
if ($product->on_sale) {
	// Está en oferta
}

 Lo acabo de probar, pero siempre me devuelve 0, incluso los que tienen ofertas

Link to comment
Share on other sites

 Lo acabo de probar, pero siempre me devuelve 0, incluso los que tienen ofertas

 

¿Puedes probar a hacer un dumpeo del objeto producto para ver si lo está instanciando de forma correcta?

 

Agrega:

ddd($product);

o

var_dump($product); exit;

Pega el resultado que te de a ver si es que el objeto está vacío.

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

¿Puedes probar a hacer un dumpeo del objeto producto para ver si lo está instanciando de forma correcta?

 

Agrega:

ddd($product);

o

var_dump($product); exit;

Pega el resultado que te de a ver si es que el objeto está vacío.

 

Esta bien instanciado, me devuelve todo el objeto product. Pero el on_sale esta siempre en false. Que extraño

Link to comment
Share on other sites

Vamos a por otra opción,

 

En la clase SpecificPrice tienes lo siguiente:

public static function getByProductId($id_product, $id_product_attribute = false, $id_cart = false)
{
	return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
		SELECT *
		FROM `'._DB_PREFIX_.'specific_price`
		WHERE `id_product` = '.(int)$id_product.
		($id_product_attribute ? ' AND id_product_attribute = '.(int)$id_product_attribute : '').'
		AND id_cart = '.(int)$id_cart);
}

Puedes llamarla pasándole el $id_product y si devuelve más de un registro es que tienes algún tipo de oferta.

  • Like 1
Link to comment
Share on other sites

Vamos a por otra opción,

 

En la clase SpecificPrice tienes lo siguiente:

public static function getByProductId($id_product, $id_product_attribute = false, $id_cart = false)
{
	return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
		SELECT *
		FROM `'._DB_PREFIX_.'specific_price`
		WHERE `id_product` = '.(int)$id_product.
		($id_product_attribute ? ' AND id_product_attribute = '.(int)$id_product_attribute : '').'
		AND id_cart = '.(int)$id_cart);
}

Puedes llamarla pasándole el $id_product y si devuelve más de un registro es que tienes algún tipo de oferta.

 Si había pensado en esa opción, lo haré así.

 

Muchas gracias compañero.

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