Jump to content

Cambiar carrier en orden activa


lfelisiak

Recommended Posts

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

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 by nadie (see edit history)
Link to comment
Share on other sites

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 by lfelisiak
Nueva solucion (see edit history)
Link to comment
Share on other sites

  • 3 weeks later...

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