[email protected] Posted August 24, 2017 Share Posted August 24, 2017 Hola muy buenas tardes, a ver si nos podéis ayudar. Necesitamos que al añadir un producto vaya a la página del carrito (esto ya lo hace) pero debería borrar los anteriores productos y dejar solo ese. y por ejemplo si vamos atrás y añadimos otro producto, debería salir solo ese en el carrito y tendría que borrar el anterior. En definitiva, que cada vez que entrara en la página del carrito borrara todo lo que haya y añada el último que se ha seleccionado. Creéis que se puede realizar? También necesitaría limitar el máximo de productos a 1. (solo un producto por pedido). Muchísimas gracias. Link to comment Share on other sites More sharing options...
[email protected] Posted August 24, 2017 Author Share Posted August 24, 2017 Más o menos ya lo he conseguido. Gracias. Link to comment Share on other sites More sharing options...
Luisejo Posted August 25, 2017 Share Posted August 25, 2017 Hola [email protected] Me alegra que ya "más o menos" hayas conseguido dar con la solución. De todos modos, te comento lo que yo haría para que termines de pulirlo. Tenemos en el controlador del carrito de compra el método responsable de eliminar los productos: processDeleteProductInCart() Deberías hacer una llamada a este cada vez que se añada un nuevo producto al carrito, justo al principio. De esta forma se limpiaría lo que hay en el carro antes de añadir nuevos productos. Y en cuanto a limitar a 1 producto cada pedido, es sencillo. Ve a la template y deja el input con value=1 y disabled. Espero haber terminado de aclarar las pocas dudas que te quedasen.Si está todo claro, por favor edita el tema y ponlo como solucionado. Link to comment Share on other sites More sharing options...
[email protected] Posted August 28, 2017 Author Share Posted August 28, 2017 Hola muchísimas gracias por la respuesta. He estado probando y no me funciona. Lo añado justo aquí, en el CartController.php: if ($this->context->cookie->exists() && !$this->errors && !($this->context->customer->isLogged() && !$this->isTokenValid())) { if (Tools::getIsset('add') || Tools::getIsset('update')) { $this->processDeleteProductInCart(); $this->processChangeProductInCart(); } La cosa es que si añado el mismo producto, si que no lo suma. Pero si añado otro si que lo suma. El enlace que hace añadir el producto es: /carrito?add=1&id_product=8&id_product_attribute=0&token=29f59ba555c8f3900bda64e687e61fa2 Lo que hice yo inicialmente fue añadir un parámetro antes: /carrito?deleteAll=1?add=1&id_product=8&id_product_attribute=0&token=29f59ba555c8f3900bda64e687e61fa2 Y en el cartController cree otra opción:} elseif (Tools::getIsset('delete')) { $this->processDeleteProductInCart(); } elseif (Tools::getIsset('deleteAll')) { $this->context->cart->delete(); $this->context->cookie->id_cart = 0; $this->processChangeProductInCart(); } Que teóricamente vacía todo el carrito y la cookie y añade lo que le enviaba después por parámetro. El problema es que debe haber algún fallo en algo, porque si voy atrás y añado otro, lo añade bien y borra el anterior, pero al ir a tramitar el pedido, "peta" y vuelve a la home. Tienes alguna idea? Muchas gracias! Link to comment Share on other sites More sharing options...
[email protected] Posted August 30, 2017 Author Share Posted August 30, 2017 Alguna idea alguien?? Llevo con esto encallado mucho tiempo. O alguien si conoce algún módulo que lo haga. Un saludo. Link to comment Share on other sites More sharing options...
[email protected] Posted September 5, 2017 Author Share Posted September 5, 2017 nadie??? Link to comment Share on other sites More sharing options...
[email protected] Posted September 12, 2017 Author Share Posted September 12, 2017 Up! alguna nueva ayudita? 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