fairdesign Posted April 24, 2016 Share Posted April 24, 2016 (edited) Buenos días a todos! Estoy tratando de integrar el código de seguimiento (tracking code) de una red de afiliados (webgains). Ellos nos piden que insertemos un código javascript y en ese código nos piden que insertemos valores a 3 variables, dos de ellas ya lo hemos resuelto de esta manera (por si a alguien le ayuda) y por cierto usamos prestashop 1.6: En el módulo de pago concreto editamos la .tpl de la confirmación de compra e insertamos el código JS de la red de afiliados. Hay dos variables a las que debemos aportar valores: var OrderReference = ""; var OrderValue = ""; Se los proporcionamos asÍ: var OrderReference = "{$reference_order}"; var OrderValue = "{$ordersTotalPaid}"; Para obtener estos valores en el .tpl previamente ha habido que editar orderConfirmationController.php e inyectar a smarty sus valores: $this->context->smarty->assign(array( 'ordersTotalPaid' => $order->getOrdersTotalPaid(), 'reference_order' => $this->reference )); Esto lo hacemos en la función displayPaymentReturn(). Ahora nos piden además el código de descuento que se usa en el carrito y ahí si que no sabemos de dónde lo vamos a sacar, dado que no está en $order que sepamos. Es fundamentalmente una nueva inyección a smarty en orderConfirmationController.php. ¿alguien sabe como sacar esta variable? Espero no haberme confundido de sección del foro. He estado buscando un buen rato previamente y no he encontrado nada por el foro por lo que espero no estar duplicando tema. Muchas gracias de antemano! Edited April 24, 2016 by fairdesign (see edit history) Link to comment Share on other sites More sharing options...
Code-Plus Posted April 26, 2016 Share Posted April 26, 2016 Buenas, lo siento pero no tengo tiempo de mirártelo como hacer todo, pero te digo más o menos por donde buscar. La opción más sencilla sería: En OrderConfirmation no lo puedes meter porque no está contemplado, tenéis que buscar en un controlador anterior, el del inicio del carro, que es donde se coge el voucher (dto), de ahí se lo pasáis a la smarty, apuntando al tpl donde habéis metido las otras, y el javascript tendrá la variable. Saludos. 1 Link to comment Share on other sites More sharing options...
ventura Posted April 26, 2016 Share Posted April 26, 2016 Normalmente el vale de descuento se puede comprobar así, desde el array que se genera si se introduce el codigo en el imput del resumen del carrito // Get available cart rules and unset the cart rules already in the cart $available_cart_rules = CartRule::getCustomerCartRules($this->context->language->id, (isset($this->context->customer->id) ? $this->context->customer->id : 0), true, true, true, $this->context->cart, false, true); $cart_cart_rules = $this->context->cart->getCartRules(); foreach ($available_cart_rules as $key => $available_cart_rule) { foreach ($cart_cart_rules as $cart_cart_rule) { if ($available_cart_rule['id_cart_rule'] == $cart_cart_rule['id_cart_rule']) { unset($available_cart_rules[$key]); continue 2; } } } 1 Link to comment Share on other sites More sharing options...
fairdesign Posted July 8, 2016 Author Share Posted July 8, 2016 Muchas gracias Code-Plus y ventura por vuestras respuestas, nos han servido para entender mejor el funcionamiento de la arquitectura y especialmente la tuya Code-Plus, que ha sido finalmente por lo que hemos optado. Saludos! 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now