Jump to content

Free Shipping within the UK, Flat Rate Internationally?


Recommended Posts

Hey guys,

First off, I'm relatively new to Prestashop. I've got my site pretty much up and running now, apart from the Shipping options.

I can't seem to figure out how to setup my system so that all orders from the UK have FREE shipping applied, and a flatrate of £4.99 applied to international orders?

Any help at all with this would be superb!

Cheers :)

Link to comment
Share on other sites

I suggest that you go to Shipping > Zones and create a UK zone and an International zone. Then go to Shipping > Carriers and create a Domestic carrier assigned to the UK zone and an International carrier assigned to the International zone. If you are using billing according to price, then go to Shipping > Price ranges, create a price range of £0 - £10000000 for each of the carriers, or basically any high amount that you don't expect anyone to order over. If you are using billing according weight, then go to Shipping > Weight ranges and create a weight range of 0kg - 1000000kg for each carrier. Once you've done this, you can go to the Shipping tab, select the Domestic carrier in the dropdown box at the bottom, leave the shipping cost as £0, then click Save, then select the International carrier in the dropdown box and enter the shipping cost as £4.99, then click Save. Once you've done that, whenever a customer checks out with a UK address, they will be charged no shipping and whenever a customer checks out with a non-UK address, they will be charged £4.99 shipping.

  • Like 1
Link to comment
Share on other sites

That is a different situation. In that situation, you have a carrier that has free shipping from a certain order amount and another carrier that doesn't have free shipping. My solution was for when one carrier always has free shipping and another carrier doesn't have free shipping.

Link to comment
Share on other sites

All I need is to create a Free Shipping Carrier and assign it to my country and anybody from my country will get free shipping ... other than that .. I have another carrier for international . would the above mentioned solution be applicable ? for my situation ?

Link to comment
Share on other sites

Yes, it sounds like my solution is applicable. It covers free shipping for the UK and charging a flat rate internationally. Unfortunately, you can't assign a carrier to a country, only to a zone. That's why in my solution, you must create a zone that contains UK only and another zone that contains all other countries.

Link to comment
Share on other sites

  • 1 year later...

Help needed

I am using presta shop final version 1.3

my coding is

// Free fees
       $free_fees_price = 0;
       if (isset($configuration['PS_SHIPPING_FREE_PRICE']))
           $free_fees_price = Tools::convertPrice(floatval($configuration['PS_SHIPPING_FREE_PRICE']), new Currency(intval($this->id_currency)));
       $orderTotalwithDiscounts = $this->getOrderTotal(true, 4);
       if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0)
           return $shipping_cost;
       if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) AND floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0)
           return $shipping_cost;



My shipping id is 27 and it is set to allow free shipping over £50 now with it this way it works perfect with the code i have put in the this post whhich is the orginial coding.

but if I use any of the above code in other posts it does not give free shipping even if i change the ID in the examples that are on this thread.

Please could some one assit me with this issue I dont know why it it is not letting me.

The idea is that I allow free shipping over £50 to UK customers but not for US customers they will be still charged the flat fee.

Can some one assit me please.

Thanks you.

Link to comment
Share on other sites

  • 1 month later...

I managed to do this by overriding the Cart.php class. In 1.4.4 you can find on line 1119 this code :

 

if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0)
		return $shipping_cost;

 

Now if you want to have free shipping for a particular Zone you need to loopup the Zone ID. This you can find in the BO > Shipping > Zones

 

then use this new code to specify free shipping for this zone:

 

if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 AND $id_zone == 7)
		return $shipping_cost;

 

So in this example you will get free shipping on all countries within Zone ID 7

Link to comment
Share on other sites

  • 1 year later...

ok guys, how about if i want to set a free shipping starts @..... for each of my carriers? for example:

Carrier#1(economy shipping) - free shipping @ $30

Carrier#2(priority shipping) - free shipping @ $60

 

I think it wont be much different than code changes discussed in this topic, but since i am not a php master i cant make it work. Any help will be welcomed.using presta1.5.3.1.

Link to comment
Share on other sites

  • 2 weeks later...

tomerg3 thanks alot for your response. i have checked your module and it looks fine, offering a lot of shipping options.I will defiantly consider buying such a module on a later stage of business development, but for now i need something free or at least a lot cheaper.

once again thanks alot.

Link to comment
Share on other sites

  • 4 weeks later...

Rocky I have bit different issue............

 

I have billing choice of range as per total weight. I have only one carrier defined as any std carrier. I want to offer Free Shipping above 500 INR to domestic [indian] customers and free shipping for international customers above 550 USD. How to do this? My default currency is INR and default country is India.

 

 

I suggest that you go to Shipping > Zones and create a UK zone and an International zone. Then go to Shipping > Carriers and create a Domestic carrier assigned to the UK zone and an International carrier assigned to the International zone. If you are using billing according to price, then go to Shipping > Price ranges, create a price range of £0 - £10000000 for each of the carriers, or basically any high amount that you don't expect anyone to order over. If you are using billing according weight, then go to Shipping > Weight ranges and create a weight range of 0kg - 1000000kg for each carrier. Once you've done this, you can go to the Shipping tab, select the Domestic carrier in the dropdown box at the bottom, leave the shipping cost as £0, then click Save, then select the International carrier in the dropdown box and enter the shipping cost as £4.99, then click Save. Once you've done that, whenever a customer checks out with a UK address, they will be charged no shipping and whenever a customer checks out with a non-UK address, they will be charged £4.99 shipping.

Link to comment
Share on other sites

  • 1 year later...

I suggest that you go to Shipping > Zones and create a UK zone and an International zone. Then go to Shipping > Carriers and create a Domestic carrier assigned to the UK zone and an International carrier assigned to the International zone. If you are using billing according to price, then go to Shipping > Price ranges, create a price range of £0 - £10000000 for each of the carriers, or basically any high amount that you don't expect anyone to order over. If you are using billing according weight, then go to Shipping > Weight ranges and create a weight range of 0kg - 1000000kg for each carrier. Once you've done this, you can go to the Shipping tab, select the Domestic carrier in the dropdown box at the bottom, leave the shipping cost as £0, then click Save, then select the International carrier in the dropdown box and enter the shipping cost as £4.99, then click Save. Once you've done that, whenever a customer checks out with a UK address, they will be charged no shipping and whenever a customer checks out with a non-UK address, they will be charged £4.99 shipping.

Hi Rocky,

 

I have a shop in Belgium , but i also deliver to the Netherlands.

I want free shipping for Belgium as from 75 EUR. But not for the Netherlands.

Your answer above could work if I had my transport cost calculated by EUR, but it's calculated by weight ...

Is there an easy solution to solve my problem ?

 

kr

Jelle

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