Jump to content

Problema con modulo "Promociones en el carrito"


Manz Soluciones

Recommended Posts

Buenos días.

 

Soy profesional en prestashop, pero no consigo encontrar el problema que tengo con el modulo de "Promociones en el carrito".

 

En dicho modulo, tu añades los productos que quieres promocionar para que aparezcan en el carrito. Basicamente a mi no me sale nada en el carrito.

 

Uso prestashop 1.5.6.

 

Hice los siguientes pasos.

- Comprar el modulo en Prestasho Addons

- Instalar el modulo

- Añadir productos en "Configuración".

 

Y nada.

 

Alguna idea?.

 

Tambien lo desinstale y volvi a instalar y nada.

 

Mi pagina es greatimes.es

 

 

post-785145-0-18451900-1415024419_thumb.jpg

post-785145-0-01441500-1415024424_thumb.jpg

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

1 º Comprueba que aparezca instalado en su hook (en la pestaña modulos -> posiciones puedes verlo) 

 

2º Comprueba que tu fichero: (el de tu plantilla)

shopping-cart.tpl

imprima el hook:

{$HOOK_SHOPPING_CART_EXTRA}

3º Si todo es correcto, habilita el debug: http://www.prestashop.com/forums/topic/232476-%C2%BFqu%C3%A9-hacer-cuando-se-queda-la-pantalla-en-blanco-en-prestashop/ para ver si salta un error.

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

Hola nadie.

 

Gracias por la rapida respuesta.

 

He mirado en shopping-cart.tpl y si aparece la zona de {$HOOK_SHOPPING_CART_EXTRA}

 

Lo que no veo es que en poisiciones de los modulos no hay nunguno llamado cart_extra.

El modulo aparece en los hooks

- Cart creation and update

- Administration panel header

- Shopping cart footer.

 

Si activo el modo debug me da error pero de un tema de colores.

Link to comment
Share on other sites

Prueba hacer la siguiente prueba editar el fichero *.php del módulo, busca el codigo que esta dentro de:
 

	public function hookshoppingCart($params)
	

Comentalo todo el contenido de la función, menos:

		return $this->display(__FILE__, 'xxxxx.tpl', $this->getCacheId($cache_id));

Despues editar el "tpl" del modulo y escribe hola mundo y dime si se imprime en el hook ese "hola mundo", ya que quizas  sea algo interno del módulo y asi descartamos cosas.

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

Hola.

 

Simplemente lo comente como me dices, y al subirlo ya me imprime el tpl, sin datos claro.

Asique deduzco que es algun problema de estructura en la llamada a sql del modulo.

 

Lo pego por si lo ves de primeras.

public function hookShoppingCart()
	{
		$cart = Context::getContext()->cart;
		$this->clear();
		if ($cart->id_customer != 0)
		{
			$previousRules = ($cart->getCartRules());
			$existingCartRules = (int)Db::getInstance()->getValue('
				SELECT COUNT(id_cart)
				FROM `'._DB_PREFIX_.'cart_cart_rule` WHERE id_cart = '.$cart->id);
			$customerCartRules = (int)Db::getInstance()->getValue('
				SELECT COUNT(id_customer)
				FROM `'._DB_PREFIX_.'cart_rule` WHERE id_customer = '.$cart->id_customer.' AND active = 1');

			if (empty($previousRules) && empty($existingCartRules) && empty($customerCartRules))
			{
				if ($this->getTopProduct() != 0)
				{
					$token = 'pushoncartPromos';
					$params = $this->getParams();

					$this->context->smarty->assign(array(
							'name'=>$params[0],
							'prodID'=>$params[1],
							'description' => $params[2],
							'price' => $params[3],
							'discountPrice' => $params[4],
							'discount' => '-'.$params[5],
							'imageLink' => $params[6],
							'symbol' => $params[7],
							'discountAmount' => $params[5],
							'discount_in_cash' => $params[8],
							'reduction_percent' => $params[9],
							'discountType' => $this->DiscountType($this->getTopProduct()),
							'discountName' => Db::getInstance()->getValue('
									SELECT discount_name
									FROM `'._DB_PREFIX_.'pushoncartproducts` WHERE id_product = "'.(int)$this->getTopProduct().'"'),
							'requestUri' => 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'modules/'.$this->name.'/addToCart.php',
							'token' => md5($token)
							));

					return $this->display(__FILE__, '/views/templates/front/productOffer.tpl');
				}
			}
		}
	}

Gracias de antemano.

Link to comment
Share on other sites

Por Fin creo que esta resuelto.

 

Lo deduje en base a esta llamada

SELECT COUNT(id_customer)
				FROM `'._DB_PREFIX_.'cart_rule` WHERE id_customer = '.$cart->id_customer.' AND active = 1');

Asique se me ocurrio mirar si existia alguna regla de compras, y ahi estaban, todos tenian fecha limite, asique eliminar y parece que ya funciona todo.

 

Perdona las molestias.

 

Espero que esto pueda ayudar si le pasa a otra persona.

 

Gracias Nadie por tu rapida ayuda.

Link to comment
Share on other sites

Solo un comentario más.

 

Me doy cuenta que cuando no has iniciado sesion en la tienda no te muestra estas ofertas.

 

Imagino que eso se podria pasar por alto eliminando esto:

if ($cart->id_customer != 0)

Con sus correspondientes {}, porque por lo que entiendo esto es un Si el ID de COMPRADOR no es igual a NADA me haces tal.

 

¿Que opinas?.

Gracias.

Link to comment
Share on other sites

Hola nadie.

 

La finalidad basicamente es que cuando un usuario añade productos al carrito, en el carrito aparecen ofertas para ese "carrito".

 

En plan de un "10% de descuento en tal camiseta", pero dicha oferta no aparece en el producto, solo con la compra de más productos.

 

Un poco jaleoso la verdad, cosas del cliente.

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