NBlack Posted December 7, 2014 Share Posted December 7, 2014 Buenos días, Estoy intentando traerme la variable $VouchezAllowed a order-carrier.tpl, en order-payment.tpl se puede hacer uso de esta variable pero no es posible usarla en order-carrier.tpl. He mirado en los .php correspondientes pero no encuentro cuando definen esa variable en la sección correspondiente. Se trata de que si el cliente tiene un cupón disponible y no lo ha usado en el apartado de elección de transporte le aparezca un mensaje informativo de que dispone de cupones. El cuadro ya aparece, lo que me interesa es ponerle un {if $VouchezAllowed} <div class="order_carrier_content_aviso box"> <img src="../themes/default-bootstrap/img/warning-icon.png" width="26" height="26"> ¿Ha olvidado aplicar su descuento? - PULSE AQUI </div> Se agradece toda ayuda posible. Link to comment Share on other sites More sharing options...
NBlack Posted December 7, 2014 Author Share Posted December 7, 2014 Como últimamente he visto que el foro Español está de capa caida en cuanto a modificación de código desde que nadie se fue he traslalado la pregunta al foro ingles: http://www.prestashop.com/forums/topic/386471-import-variable-with-discount-to-order-carriertpl/ Link to comment Share on other sites More sharing options...
ventura Posted December 7, 2014 Share Posted December 7, 2014 Son vales limitados a un solo cliente ¿? Link to comment Share on other sites More sharing options...
NBlack Posted December 7, 2014 Author Share Posted December 7, 2014 Se trata de hacer el recuento de los vales que tiene el cliente con un foreach y guardarlo en un item, si ese item es >= 1 entonces se muestra la caja, sino, no. Link to comment Share on other sites More sharing options...
ventura Posted December 7, 2014 Share Posted December 7, 2014 No me has respondido y no te he entendido demasiado tampoco. En DiscountController.php tienes esto $cart_rules = CartRule::getCustomerCartRules($this->context->language->id, $this->context->customer->id, true, false); $nb_cart_rules = count($cart_rules); De ahi se sacan los datos que aparecen en la pagina descuentos desde la cuenta de usuario, 1 Link to comment Share on other sites More sharing options...
NBlack Posted December 7, 2014 Author Share Posted December 7, 2014 (edited) Perdón Ventura, no sabía a que te referías. Son vales generados para TODOS los clientes pero solo 1 uso por cada uno (es decir, no es independiente a un sólo usuario). El mayor problema que he tenido es que el {DEBUG} no me lo ejecuta en order mientras que en el resto de la web si y no puedo ver las variables de uso. Es decir, $cart_rules ¿hace referencia a los descuentos? Disculpa mi ignorancia. Gracias P.D.: El resultado buscado es: - Si el cliente tiene algún cupón sin usar, que en la página de selección de transportista le aparezca un cuadro informando de que dispone de un cupón, si no lo tiene, que no aparezca nada. El problema es que la gente no usa los cupones que hacemos y a veces preguntan por ellos después de hacer la compra. Edited December 7, 2014 by NBlack (see edit history) Link to comment Share on other sites More sharing options...
NBlack Posted December 7, 2014 Author Share Posted December 7, 2014 Por el momento he visto que para poder hacer uso de la variable $displayVouchers que es la única que contiene el nº de cupones sin usar del cliente hay que añadirla en /controllers/ParentOrderController.php dentro de protected function _assignWrappingAndTOS() El problema que se me plantea ahora es que esta variable depende de un objeto dentro de protected function _assignSummaryInformations() $available_cart_rules y que es de tipo privado... Si alguien puede arrojar algo de luz, se agradecerá. Link to comment Share on other sites More sharing options...
ventura Posted December 7, 2014 Share Posted December 7, 2014 No te disculpes por favor, aqui cuanto más sabemos más ignoramos. Para la visualizacion nada mejor que banners en partes visibles de la web para informar de la disponibilidad de estos vales de descuento. Date cuenta que las variables relativas a cart_rules en cart u order se utlizan para calcular los precios y demas operaciones relativas a operaciones en el carrito o a pedidos realizados. Puedes hacer una consulta para sacar todos los datos de la tabla cart_rules y de ahi coger lo que necesites $all_cart_rules = Db::getInstance()->executeS(' SELECT cr.* FROM `'._DB_PREFIX_.'cart_rule` cr '); 1 Link to comment Share on other sites More sharing options...
NBlack Posted December 7, 2014 Author Share Posted December 7, 2014 Ventura, Muchas gracias por la mano que me estas echando, nunca había recurrido a acceder directamente a la bbdd y meter los resultados en una variable. Por desgracia he mirado y el resultado en cart_rules me indica que códigos tengo, pero no se si ese usuario ya ha hecho uso de ese cupón. ¿No existe posibilidad de usar la llamada que hace en private _assignSummaryInformations? $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); Si meto eso cambiando el nombre de la variable y reusándola me da error. Muchas gracias por todo Si lo veo muy crudo lo dejo estático y listo, pero ya de ponernos, pues hacerlo bien. Link to comment Share on other sites More sharing options...
Recommended Posts