Jump to content

Envio gratis a partir de X pero solo en certificados


Alanaglassbeads

Recommended Posts

Hola, buenos días,

Enhorabuena por el foro, es de gran ayuda.

Vengo con una duda que tengo y es que en mi tienda tengo puesto envio certificado gratis a partir de 30 euros.

Debido a una peticion de una cliente he incorporado envio urgente, pero no quiero que sea gratis a partir de 30 euros. 

¿Como hago lo hago? 

Espero se entienda, muchas gracias por vuestro tiempo y por la ayuda prestada.

Un gran saludo. 

 

PD: me he dado cuenta también que el envio gratis me sale para todo el mundo, mientras que quiero que solamente sea para españa. ¿como puedo hacer para que solo salga para españa? disculpad mi torpeza y gracias de nuevo por vuestra ayuda. 

Edited by Alanaglassbeads (see edit history)
Link to comment
Share on other sites

En el archivo

classes/Cart.php

Busca esta parte y añade el codigo en color rojo

 

// Free fees
$free_fees_price = 0;
if (isset($configuration['PS_SHIPPING_FREE_PRICE']))
$free_fees_price = Tools::convertPrice((float)$configuration['PS_SHIPPING_FREE_PRICE'], Currency::getCurrencyInstance((int)$this->id_currency));
$orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, null, null, false);
if ($orderTotalwithDiscounts >= (float)($free_fees_price) && (float)($free_fees_price) > 0 && $id_zone == (int)$defaultCountry->id_zone)

 

 

De está manera se aplicara el envio gratuito a partir de X cantidad en el pais por defecto de la tienda, entiendo que España

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Hola Ventura, tengo

 

En el archivo

classes/Cart.php

Busca esta parte y añade el codigo en color rojo

 

// Free fees
$free_fees_price = 0;
if (isset($configuration['PS_SHIPPING_FREE_PRICE']))
$free_fees_price = Tools::convertPrice((float)$configuration['PS_SHIPPING_FREE_PRICE'], Currency::getCurrencyInstance((int)$this->id_currency));
$orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, null, null, false);
if ($orderTotalwithDiscounts >= (float)($free_fees_price) && (float)($free_fees_price) > 0 && $id_zone == (int)$defaultCountry->id_zone)

 

 

De está manera se aplicara el envio gratuito a partir de X cantidad en el pais por defecto de la tienda, entiendo que España

Hola Ventura, 

 

Me podrías decir como puedo saber si al insertar la linea esta funcionando correctamente, ya que si la pongo mal no me doy cuenta hasta que me hagan un pedido desde fuera de España.

 

Quiero empezar a vender fuera de España y la casualidad es que tu respuesta me fue de lujo.

 

Ya me dices cuando puedas...

 

Muchas gracias de antemano.

 

 

Saludos, Fran

Link to comment
Share on other sites

  • 3 weeks later...

Create una direccion de fuera de la zona por defecto de la tienda

Hola Ventura, perdona la molestia pero queremos abrir de forma internacional y como te comentaba el pasado día 2 no me funciona después de añadir la frase "&& $id_zone == (int)$defaultCountry->id_zone" justo en la línea donde comentas.

 

Cuando la incorporo en el código la frase, no me funciona los envíos dentro de España gratis a partir de "X" €.

 

Gracias

 

Saludos

Edited by materialsub (see edit history)
Link to comment
Share on other sites

Eso depende de como tengas configuradas las zonas . Lo suyo es que tengas por ejemplo España en una zona propia por ejemplo Peninsula

 

Jjajaja, ahora es gracioso, de manera internacional siempre cobra el transporte, así que bien, pero en España ahora el envío siempre es gratis, y da igual la cantidad.

 

En transporte lo tengo puesto gratis a partir de 300€.

 

Perdona la paliza, pero he cambiado de todo para probar y nada.

 

 

Muchas gracias

Link to comment
Share on other sites

Después de varios intentos me funciona, pero me falta que el transporte en España a partir de 300€ salga gratis, este caso es siempre que tengo el código editado tal y como tu lo indicas más arriba "&& $id_zone == (int)$defaultCountry->id_zone". Sin el código funciona bien en España, pero en el resto de países también es gratis a partir de 300€ cuando lo que nos interesa es que se cobre el transporte con cualquier importe en otros países.

 

Además en la pestaña de transporte, tengo que el envío sea gratuito a partir de 300€

 

Por cierto nuestra web es www.materialsub.com, y mi versión de prestashop es la 1.5.6.2

 

Le he dado muchísimas vueltas a la cabeza y no lo consigo, espero que me puedas ayudar.

 

Gracias.

Link to comment
Share on other sites

Te deberia funcionar sin problemas. Siempre te queda la opcion de configurarlo todo como Regla de compra

 

No se si estoy haciendo algo mal de todo lo que he mirado y cambiado...

 

Te envío pantallazos de la regla de compra, pero tampoco funciona. Ahora mismo tenemos puesto el código como te comentamos, la pestaña de transporte con la opción de transporte gratis a partir de 300€ y la regla de compra como puedes ver más abajo, pero ahora mismo se cobra el transporte en cualquier país y con cualquier importe.

Edited by materialsub (see edit history)
Link to comment
Share on other sites

Para que funciones tendras que establecer un solo parametro o el envio gratuito desde transportes con el codigo indicado en el post anterior, o la regla de compra con las condiciones que tienes añadidas. Si tienes los dos configurados se solapan.

Link to comment
Share on other sites

Hola, lo acabo de hacer y nada, seguimos igual. Primero he desactivado la regla de compra y he dejado la opción del transporte gratuito a partir de 300€ y después al revés y no se produce ningún cambio. En el envío internacional es perfecto, pero a España se le sigue cobrando el transporte a partir de 300€. 

Es como si en este caso no reconociera que la localización de la web sea en España y no realice el descuento del transporte a partir de los 300€. En la localización tenemos como país por defecto España, pero no se si habrá algún dato más que no tengamos en cuenta.

 

Siento la paliza que te estamos dando, pero es que nos estamos volviendo locos y no encontramos solución.

 

Gracias.

Link to comment
Share on other sites

  • 2 months later...

Buenas,

Funciona a la perfección, muchas gracias Ventura.

Yo añadiría que si tenemos una o varias zonas personalizadas por provincias en concreto o no queremos que sea sólo en el país por defecto, cambiaríamos la última parte por la id de la zona, en mi caso:

&& $id_zone == 247)

Link to comment
Share on other sites

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