lfelisiak Posted December 17, 2017 Share Posted December 17, 2017 Hola que tal gente de la comunidad, tengo una duda sobre realizar una modificacion sobre prestashop en una funcionalidad que necesito para mi tienda, Deseo hacer que si el total de los productos en el carrito suma mas de una determinada cantidad de dinero, y se tienen productos de determinadas categorias, este aplique un envio gratuito. Ahora bien, he llegado al punto en que no se donde debo realizar esta modificacion, tengo un modulo hecho donde configuro los productos y categorias y el precio de carrito para hacer el descuento, pero en donde puedo hacer que este codigo se ejecute? he probado en hookActionCartSave hookDisplayCarrierList pero no consigo cambiar el carrier, de hecho no encuentro una funcion (Leyendo el Cart.php) para cambiar el carrier. Alguien podria orientarme? Gracias de antemano. Link to comment Share on other sites More sharing options...
nadie Posted December 17, 2017 Share Posted December 17, 2017 (edited) 29 minutes ago, lfelisiak said: Hola que tal gente de la comunidad, tengo una duda sobre realizar una modificacion sobre prestashop en una funcionalidad que necesito para mi tienda, Deseo hacer que si el total de los productos en el carrito suma mas de una determinada cantidad de dinero, y se tienen productos de determinadas categorias, este aplique un envio gratuito. Ahora bien, he llegado al punto en que no se donde debo realizar esta modificacion, tengo un modulo hecho donde configuro los productos y categorias y el precio de carrito para hacer el descuento, pero en donde puedo hacer que este codigo se ejecute? he probado en hookActionCartSave hookDisplayCarrierList pero no consigo cambiar el carrier, de hecho no encuentro una funcion (Leyendo el Cart.php) para cambiar el carrier. Alguien podria orientarme? Gracias de antemano. Hola, En principio no necesitas módulo u modificación de código para lo que planteas hacer en tu mensaje. Puedes crear una regla para que se aplique tal acción. Te pongo un ejemplo con varias imágenes. Vas a la pestaña Catalogo -> Descuentos, tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/edea.png Ahora en "Reglas del Carrito" -> Añade una nueva, tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/anadirReglaCarrito-1024x385.png Y dentro de la pestaña "Condición" tienes una opción llamada "Selección de Producto", tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/restricionProductos-1024x537.png donde puedes restringir la aplicación de la regla que estas creando. Además en condición puedes establecer un pedido mínimo para la aplicación, tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/importe_minimo-1024x506.png Una vez configurado lo comentado en el párrafo anterior, si vas a la pestaña "Acciones" puedes seleccionar "Gastos de envío gratis", tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/Gratis.png Edited December 17, 2017 by nadie (see edit history) Link to comment Share on other sites More sharing options...
lfelisiak Posted December 17, 2017 Author Share Posted December 17, 2017 (edited) 3 hours ago, nadie said: Hola, En principio no necesitas módulo u modificación de código para lo que planteas hacer en tu mensaje. Puedes crear una regla para que se aplique tal acción. Te pongo un ejemplo con varias imágenes. Vas a la pestaña Catalogo -> Descuentos, tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/edea.png Ahora en "Reglas del Carrito" -> Añade una nueva, tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/anadirReglaCarrito-1024x385.png Y dentro de la pestaña "Condición" tienes una opción llamada "Selección de Producto", tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/restricionProductos-1024x537.png donde puedes restringir la aplicación de la regla que estas creando. Además en condición puedes establecer un pedido mínimo para la aplicación, tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/importe_minimo-1024x506.png Una vez configurado lo comentado en el párrafo anterior, si vas a la pestaña "Acciones" puedes seleccionar "Gastos de envío gratis", tal como puedes ver en esta imagen: http://victor-rodenas.com/wp-content/uploads/2017/12/Gratis.png En efecto , asi es ! pero lo que sucede es que mi jefe no quiere hacerlo por la via de cupones. Por que ya tiene mas que suficientes dijo, Si bien no deberia ingresarse ningun codigo de cupon, ya que al dejarlo vacio, lo aplica solo. Programacionalmente no hay una manera? Aprecio mucho tu pronta respuesta! Gracias! He llegado a una solucion que funciona para el 5 steps checkout A grandes rasgos en el hook displayBeforePayment $cart = $this->context->cart; $delivery_option = $cart->getDeliveryOption(); $delivery_option[(int)$cart->id_address_invoice] = $carrier_id.','; $cart->setDeliveryOption($delivery_option); $cart->id_carrier=(int)$carrier_id; $cart->update(); eso actualiza el carrier al que quieras dentro de los que estan activos. Esto no esta funcionando en order-opc (1 step checkout) supongo que deberia usar otro hook o algo, Tienes alguna idea de como puedo tambien tenerlo funcionando en 1 step checkout? Edited December 17, 2017 by lfelisiak Nueva solucion (see edit history) Link to comment Share on other sites More sharing options...
lfelisiak Posted January 5, 2018 Share Posted January 5, 2018 Ni una idea? 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