Jump to content

( SOLVED )PS 1.6 Always free shipping in the cart


Recommended Posts

PS 1.6 new installation

 

My shopping cart 

 

Always ( if you are logged in or not is the same )

shows FREE SHIPPING

 

In the cart there are always free shipping, even if  I've setted up all parameters to 0,

 

but if you go to the cart page and  select your cowntry there will appeare your courier and all setting seems to be right.

 

In the meantime if you don't select your courier you can go on to pay... but how is possible?

 

then I can not delete carrier by default ? 

 

Any suggestions ?????

 

Please someone can help or is this a bug ?

 

post-769172-0-03817600-1396349171_thumb.jpg

post-769172-0-16790700-1396349655_thumb.jpgpost-769172-0-78199600-1396349670_thumb.jpg

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

Now I've found the solution I'll write if someone need it.

 

Shipping--> Preferenze --> set Handling charges on a value more than 0 

 

if you write 0 ( zero ) you'll have free shipping

 

if you write 1 ( or 2/ or 3/ and so on ) you 'll have your cart with shipping money rated !!!!!!

 

post-769172-0-36978600-1396365114_thumb.jpg

 

 

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hey guys, I started to have the same problem after I upgraded Prestashop 1.6.0.5 to 1.6.0.6.

 

This seems to fix my problem however:

 

Shipping--> Preference --> set Handling charges on a value more than 0

 

Also, if this doesn't do it for you, check that your setting for "Default carrier" under Shipping/Preferences "CARRIER OPTIONS" is not set to the default "Best price" if you have setup a value for "Free shipping starts at" in the same window. Set it to your cheapest carrier instead to see if this fix the problem.

 

My 2 cents

 

Cheers

Dan

post-406825-0-55248600-1397572958_thumb.jpg

Edited by papagino (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hey guys, I started to have the same problem after I upgraded Prestashop 1.6.0.5 to 1.6.0.6.

 

This seems to fix my problem however:

 

Shipping--> Preference --> set Handling charges on a value more than 0

 

Also, if this doesn't do it for you, check that your setting for "Default carrier" under Shipping/Preferences "CARRIER OPTIONS" is not set to the default "Best price" if you have setup a value for "Free shipping starts at" in the same window. Set it to your cheapest carrier instead to see if this fix the problem.

 

My 2 cents

 

Cheers

Dan

 

 

Thank you for all these tips, I have tried all sort of ways including those you mentioned above, but they don't work. It's  been  10 days now that my shop is off. I need to find a solution. it was working fine before I upgrade to 1.6. I am now thinking of down-grading to 1.5.

  • Like 1
Link to comment
Share on other sites

Same issue here.  I've used version 1.5.4 and now version 1.6.  I've used 2 completely separate templates and BOTH scenarios have "Free Shipping" established and it never changes.  I've got a UPS account and the module active.  I've got my shipper as default over local pick up, i've even setup dollars and weights to over exxagerate shipping options to force the system to require a shipping cost, and every time "Free Shipping" is the only option.

 

I've disabled all zones, countries, etc to makes sure I only was Using North America, etc.

 

This truly has to be a prestashop bug.  Is there anyone able to help. I've read this forum and tried everything everyone as mentioned, even if I'd already done it - to no avail.

Link to comment
Share on other sites

Not sure why this is set as Solved because as I read through the post no one has got it right yet.

This is as simple as editing the Front office translations and installed module translations.

Look to localization, Translations, Front office translations, select your language and click modify scroll though to shopping-cart and edit the translation for Free Shipping! I use $0.00 be sure and click save now go to Installed module translations, select your language, click modify, scroll through to cart-block and change it there also.

  • Like 4
Link to comment
Share on other sites

Not sure why this is set as Solved because as I read through the post no one has got it right yet.

This is as simple as editing the Front office translations and installed module translations.

Look to localization, Translations, Front office translations, select your language and click modify scroll though to shopping-cart and edit the translation for Free Shipping! I use $0.00 be sure and click save now go to Installed module translations, select your language, click modify, scroll through to cart-block and change it there also.

Done the first part, there is no module in 1.6.0.6 for translations

  • Like 1
Link to comment
Share on other sites

Not sure what you mean by there is no module for translations as it is not a module but a menu item.

Localization. Translations.

 

These images are from 1.6.0.6 I included them in case your saying there is no Installed module translations.

 

 

post-310220-0-25321500-1398467469_thumb.jpg

 

post-310220-0-31916500-1398467485_thumb.jpg

  • Like 1
Link to comment
Share on other sites

Not sure what you mean by there is no module for translations as it is not a module but a menu item.

Localization. Translations.

 

These images are from 1.6.0.6 I included them in case your saying there is no Installed module translations.

 

 

attachicon.gifImage1.jpg

 

attachicon.gifImage2.jpg

Thanks!  That solved that issue.  Still working on a shipping issue, but at least it no longer says Free Shipping!  Thank you!

  • Like 1
Link to comment
Share on other sites

Hi.

 

To display the shipping as 0 edit ajax-cart.js, locate:

if (parseFloat(jsonData.shippingCostFloat) > 0 || jsonData.nbTotalProducts < 1)
			$('.ajax_cart_shipping_cost').text(jsonData.shippingCost);
		else if (typeof(freeShippingTranslation) != 'undefined')
$('.ajax_cart_shipping_cost').html(freeShippingTranslation);

and replace it with:

$('.ajax_cart_shipping_cost').text(jsonData.shippingCost);

This way the '0' value will be displayed in the selected currency.

 

Regards.

Robin.

The CartExpert Team

Edited by CartExpert.net (see edit history)
  • Like 2
Link to comment
Share on other sites

OK, with all the hit and trial in this forum, most of which failed, realized one thing - incase you simply modify the carriers in the default theme, it works fine. However, if you add a carrier, I start to face the above issue. Hence, simply edit the default carrier and you would be able to use both free and paid shipping accordingly.

 

HOWEVER, With the free module, it automatically pics up either free or paid shipping as selected in preferences and does not allow the customer to choose the carrier as easily as it used to in ver 1.5. This option comes up at the bottom of the image only if you activate the shipping estimate module - fyi!

Link to comment
Share on other sites

I finally got this to stop annoying me. I had tried everything suggested in this thread, and nothing worked.

 

In Shipping / Shipping, I set the "Free Shipping Starts At $" to 10 million dollars. For the LBS option, I set it to 10,000 lbs.

 

Both of these numbers are ridiculously high for my shop. I don't have enough stock to hit those numbers. If I do, I'll add 5 or 6 more zeroes on the end.

 

But, I no longer see "Free Shipping" in the cart, except if it's empty. And, if there's nothing in the cart, they can have all the free shipping they want. :)

 

I hope that helps the frustrated out there!

  • Like 8
  • Haha 1
Link to comment
Share on other sites

Ok, I too ran into this issue and using UPS.  Please find below what settings using 1.6.0.05 work and provide you with more options.

 

The scenario:

 

1) You want to offer free shipping to your customers at a threshold you set.

2) If the threshold is not hit carrier rates should show

3) If threshold is hit, all carriers should not display as FREE!

 

A solution:

 

1) In your shipping options set the value for free shipping either by price and weight to 0  (any other value will show all carrier methods to be free once that threshold is hit.

2) Create a carrier for your free shipping.  Make certain to disable free shipping button at top, set out of range behavior to disable carrier, set the option for weight or price whichever you wish to use, set the range for the free shipping and the zones you wish to make it available for.

3) If using UPS or FedEx in example, go into each type offered by the carrier and change the ranges to a value lower then your free shipping threshold.  If you have more than one type of service available from UPS or FedEx i.e overnight 2 day et cetera set your UPS ground out of range behavior to disabled.  And set all others to apply the cost (explained below).

 

Now, you should have the following:

 

You wish to offer your customers free shipping at $500 (example), now, when your customer hits that value the free shipping carrier you set up will display.  What will also display is the option for your customers to pay for faster shipping methods if they choose. If you are using UPS or FedEx and are offering free shipping, you are most likely using the ground service as that is the cheapest thus the reason the outline above disabled the ground service for out of range behavior.

 

If you want your customers to only have the free shipping carrier that you set up and none others, than set each UPS or FedEx carrier option to "disabled" for out of range behavior.

 

The above example also fixes the all carriers are free problem and gives you additional options as you will soon see.

Edited by Draygon (see edit history)
  • Thanks 1
Link to comment
Share on other sites

  • 3 weeks later...

Hi.

 

To display the shipping as 0 edit ajax-cart.js, locate:

if (parseFloat(jsonData.shippingCostFloat) > 0 || jsonData.nbTotalProducts < 1)
			$('.ajax_cart_shipping_cost').text(jsonData.shippingCost);
		else if (typeof(freeShippingTranslation) != 'undefined')
$('.ajax_cart_shipping_cost').html(freeShippingTranslation);

and replace it with:

$('.ajax_cart_shipping_cost').text(jsonData.shippingCost);

This way the '0' value will be displayed in the selected currency.

 

Regards.

 

Robin.

 

The CartExpert Team

Thanks for this Robin, I have used this fix in /public_html/themes/my-theme/js/modules/blockcart/ajax-cart.js

 

It worked well and got rid of the 'Free Shipping!' sign in ADD TO CART (see attachment)

however, that 'Free Shipping!' sign still appears in the cart's drop-down menu. What did I do wrong?

post-791406-0-96231200-1400319047_thumb.jpg

Link to comment
Share on other sites

THE DEFINITIVE ANSWER. THIS WORKS!

 

PART 1 (Thanks to Robin)

 

Navigate to /public_html/themes/your-theme/js/modules/blockcart/ajax-cart.js

locate:

if (parseFloat(jsonData.shippingCostFloat) > 0 || jsonData.nbTotalProducts < 1)             $('.ajax_cart_shipping_cost').text(jsonData.shippingCost);         else if (typeof(freeShippingTranslation) != 'undefined') $('.ajax_cart_shipping_cost').html(freeShippingTranslation);

and replace it with:

$('.ajax_cart_shipping_cost').text(jsonData.shippingCost);

 

PART 2

Navigate to public_html/themes/your-theme/modules/blockcart/blockcart.tpl

 

Locate:

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">

{if $shipping_cost_float == 0}

{l s='Free shipping!' mod='blockcart'}

{else}

{$shipping_cost}

{/if}

</span>

 

And replace it with:

 

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">

 

{$shipping_cost}

 

</span>

 

All done!

  • Like 6
Link to comment
Share on other sites

  • 3 weeks later...

This coding didn't work for me.  Then I remembered that by enabling multistore/advanced stock management I am now the proud owner of "warehouses".  This means that:

 

1.  You must associate a carrier with a warehouse:   Stock > Warehouse >     highlight your carriers!

2.  You must associate a product with a warehouse:  Catalog > Product > Warehouse  (at the bottom).  Check the box that says "Stock"

 

This solved my problem and it only took a few hours :/  It might help you.  I think that if there is an issue with your carriers the default thing for prestashop to do is declare Free Shipping.  This is a bit confusing to me at least.

Edited by 0121stephen (see edit history)
  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

I'm in the process of a solution that DOES work:

Rollback to 1.5

 

I figure between this issue and the dozen or so others, painful though it may be, that's the right solution.

 

Maybe in a year or three v 1.6 will be stable enough to consider the move - although I doubt it. I flat out told one of my clients she should tip me for NOT moving her to 1.6 because it's been such a nightmare. I'm eating the cost of rolling this other client's site back. But for the sake of going an entire week without issues, I'm feeling that's a worthwhile investment.

 

Best of luck to the rest of you. :)

  • Like 2
Link to comment
Share on other sites

I managed to get rid of the sign and when I did, I wrote down how I did it. It's all based on what other people have posted on this thread. Here it is:

 

GETTING RID OF CONSTANT FREE SHIPPING SIGN

 

PART 1

Navigate to /public_html/themes/YOUR-theme/js/modules/blockcart/ajax-cart.js

 

locate:

if (parseFloat(jsonData.shippingCostFloat) > 0 || jsonData.nbTotalProducts < 1)             $('.ajax_cart_shipping_cost').text(jsonData.shippingCost);         else if (typeof(freeShippingTranslation) != 'undefined') $('.ajax_cart_shipping_cost').html(freeShippingTranslation);

and replace it with:

$('.ajax_cart_shipping_cost').text(jsonData.shippingCost);

 

PART 2

Navigate to public_html/themes/YOUR-theme/modules/blockcart/blockcart.tpl

 

 

Locate:

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">

{if $shipping_cost_float == 0}

{l s='Free shipping!' mod='blockcart'}

{else}

{$shipping_cost}

{/if}

</span>

 

And replace it with:

 

 

 

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">

 

{$shipping_cost}

 

</span>

 

 

Good luck!

  • Like 2
Link to comment
Share on other sites

I can't solve this issue either. I either have the "free shipping" if I uncheck the visitors, or the cart shows the shipping when I'm not logged in. This is surreal, really. Why not test the software before offering it to the public? Even if it's free, it shouldn't have such bugs in one of the most important part of the cart. It's misleading to the buyers and hurts the business.

 

I'm at a point of hiring a freelancer, but then why would I have to if there's is a bug in the software (since so many people are having the same issue)??? It's beyond my understanding how long PS is ignoring this issue. If there's no bug in the software, why wouldn't then PS make some sort of a tutorial to help people set up everything properly? We're not born with the knowledge of how to set the program to work smoothly.

 

Sometimes I have a feeling that some of these bugs are planted on purpose so people give up and hire PS people to fix these bugs!

  • Like 1
Link to comment
Share on other sites

I can't solve this issue either. I either have the "free shipping" if I uncheck the visitors, or the cart shows the shipping when I'm not logged in. This is surreal, really. Why not test the software before offering it to the public? Even if it's free, it shouldn't have such bugs in one of the most important part of the cart. It's misleading to the buyers and hurts the business.

 

I'm at a point of hiring a freelancer, but then why would I have to if there's is a bug in the software (since so many people are having the same issue)??? It's beyond my understanding how long PS is ignoring this issue. If there's no bug in the software, why wouldn't then PS make some sort of a tutorial to help people set up everything properly? We're not born with the knowledge of how to set the program to work smoothly.

 

Sometimes I have a feeling that some of these bugs are planted on purpose so people give up and hire PS people to fix these bugs!

 

I was able to resolve the issue by doing the following:

 

After...

PART 1

Navigate to /public_html/themes/YOUR-theme/js/modules/blockcart/ajax-cart.js

 

Locate:

if (parseFloat(jsonData.shippingCostFloat) > 0 || jsonData.nbTotalProducts < 1)            $('.ajax_cart_shipping_cost').text(jsonData.shippingCost);        else if (typeof(freeShippingTranslation) != 'undefined')$('.ajax_cart_shipping_cost').html(freeShippingTranslation);

and replace it with:

$('.ajax_cart_shipping_cost').text(jsonData.shippingCost);

 

PART 2

Navigate to public_html/themes/YOUR-theme/modules/blockcart/blockcart.tpl

 

Locate:

 

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">

{if $shipping_cost_float == 0}

{l s='Free shipping!' mod='blockcart'}

{else}

{$shipping_cost}

{/if}

</span>

 

And replace it with:

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">

 

{$shipping_cost}

 

</span>

Thanks to nocturnal

 

Go to SHIPPING > CARRIERS > MY CARRIER > SHIPPING LOCATIONS AND COSTS > Add handling costs (YES // HANDLIING COST IS DEFINE IN SHIPPING >PREFERENCES) - Free shipping (NO) - Billing (According to total price) - Tax (Choice of tax) - Out-of-range behavior (Apply the cost of the highest) - Ranges configuration (SEE IMG) Just in case url is broken > https://www.diigo.com/item/image/4tsmv/d18c 

 

We just have to be patient sometimes. Prestashop is a great software and as a community, we can help make this software better. 

 

I hope this helps.

Edited by netechx (see edit history)
  • Like 1
Link to comment
Share on other sites

Netechx, thanks for offering your help, it was very nice of you. I'll let you know if I'm really stuck! Right now, it seems like I figured that setting out, finally! I was able to change the "Free shipping" for "Calculated at checkout" and it no longer shows free shipping or shipping cost if you're not logged in.

 

I had to have my webhost increase the limits to be able to edit translations. Then I changed the translation in the blockcart module, so instead of "Free shipping" it now shows "Calculated at checkout". Then I unchecked Visitors from the carrier. So, if one is not logged in, they see the "Calculated at checkout" in the cart drop window.

 

But...

 

The problem is solved half-way only. If the customer then proceeds to checkout (I have a standard checkout) and creates an account by entering the email+name+password, they get the shipping showing. And they haven't yet entered their address! Now I have to figure this one out.

 

Gosh, I wish PS was as easy as other carts! It's a great platform but has a fair share of bugs that really need PS staff's attention!

Link to comment
Share on other sites

Blue,

 

Try the following link.  Both the "Free Shipping" and "Free" wording issues are discussed and resolved.  Many of us like you have been through this and have it now resolved using the following link.  May also help you solve an issue you didn't know was it issue in the first place...

 

http://www.prestashop.com/forums/topic/327558-solvedone-little-word/?do=findComment&comment=1657207

Link to comment
Share on other sites

Draygon, thanks for the link! I read that thread and will definitely try your code. But first I'm thinking about upgrading PS to a newer version (and I pray that the shipping issue in it is already fixed!). I asked a question about messing the codes after upgrading here: http://www.prestashop.com/forums/topic/339771-will-upgrading-1606-to-1607-erase-edited-codes/ Just need to make sure because sometimes the new version overrides the old codes and it's a MESS.

 

If upgrading won't mess up my edited codes but at the same time won't fix the shipping issue, I'll try your code. It doesn't hurt to have an updated version anyway.

Link to comment
Share on other sites

OK, I'm not updating PS because I don't want to lose all the changes I made.

 

Draygon, I tried your code and the problem seems to be just the same, it is solved half-way only. If the customer is not logged in, nothing shows up in the cart drop window. But when they proceed to checkout and create an account by entering the email+name+password, they get the shipping added to the total. And they haven't entered their address yet. The bug is obviously somewhere in the system because the mailing address has not been filled in yet, so the shipping can't be calculated.

 

Screenshot2014-06-25at93601AM_zps05aac3b

 

Dear Prestashop, PLEASE FIX THIS BUG in your software!!! And if there is no bug, then please tell us how to set things to work properly.

 

It is incredible how long we have to beg you to fix such a simple thing. I like this platform and am used to it, and I really don't want to go through the hassle of moving to another platform. But I see how indifferent PS staff is and wonder if it is gonna be like this in the future, if (God forbid) other problems pop up and there is no help anywhere.

  • Like 1
Link to comment
Share on other sites

Ya it's anoying. I'm not sure the forum is the place to put those "bug" in fact, no one from PS answered the problem here. I don't really get how we can get help when such thing happen elseway then paying $$. It's nice to have open source, but sometimes looks like it's not all free ;)

Link to comment
Share on other sites

Ya it's anoying. I'm not sure the forum is the place to put those "bug" in fact, no one from PS answered the problem here. I don't really get how we can get help when such thing happen elseway then paying $$. It's nice to have open source, but sometimes looks like it's not all free ;)

Kind of makes you think a bit more cynical :)

Link to comment
Share on other sites

Did you try this? I posted it earlier in this thread. It worked for me ...

 

THE DEFINITIVE ANSWER. THIS WORKS!

 

PART 1 (Thanks to Robin)

 

Navigate to /public_html/themes/your-theme/js/modules/blockcart/ajax-cart.js

locate:

if (parseFloat(jsonData.shippingCostFloat) > 0 || jsonData.nbTotalProducts < 1)             $('.ajax_cart_shipping_cost').text(jsonData.shippingCost);         else if (typeof(freeShippingTranslation) != 'undefined') $('.ajax_cart_shipping_cost').html(freeShippingTranslation);

and replace it with:

$('.ajax_cart_shipping_cost').text(jsonData.shippingCost);

 

PART 2

Navigate to public_html/themes/your-theme/modules/blockcart/blockcart.tpl

 

Locate:

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">

{if $shipping_cost_float == 0}

{l s='Free shipping!' mod='blockcart'}

{else}

{$shipping_cost}

{/if}

</span>

 

And replace it with:

 

<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">

 

{$shipping_cost}

 

</span>

 

All done!

Link to comment
Share on other sites

Well, here is my fix based on Lesley Paone code here: http://blog.dh42.com/fix-prestashop-free-shipping/

 

The problem comes from the live carrier when the user is not connected.

 

 

 

You might need to adjust it to fit your theme.. or simply takes what he propose on link but it didn't worked for me (theme problems..)

 

 

What I did:

 

file: /public_html/themes/YOUR_THEME/modules/blockcart/blockcart.tpl

 

I have replaced

{if $shipping_cost_float == 0}
	{l s='Free shipping!' mod='blockcart'}
{else}
	{$shipping_cost}
{/if}

by

{if $shipping_cost_float == 0} 
    {if !$logged}
	<script type="text/javascript">
		var freeShippingTranslation = '{l s='Log in to calculate shipping' mod='blockcart' js=1}';
	</script>
	{l s='Log in to calculate shipping' mod='blockcart' js=1}
    {else}
	<script type="text/javascript">
		var freeShippingTranslation = '{l s='Free shipping!' mod='blockcart' js=1}';
	</script>
	{l s='Free shipping!' mod='blockcart' js=1}
    {/if}
{else}
	{$shipping_cost}
{/if}

It's probably not perfect, but so far it works really good on my shop!  If someone try it, please let me know if it worked for you.. Or if you had to change something... or if you made it better :)

Edited by MissLili (see edit history)
  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Thanks, MissLili.  I tried your code on 1.6.0.8, but it's still not worked and I don't understand why this thread marked as solved.  I can pretent to hide it for only 1 sec by changing the locolization/translation, but this is a serious unsolved bug and I probably have to abanden 1.6 because of this.

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

Hum.. if nothing happend my guess is that you didn't changed it at the right place. Do you have a theme? Have you modified yout theme files?  Could you post your code maybe?

I didn't modify the built-in theme except selecting a color set in the front office.  No other code modification involved.  Is it possible for you to put a youtube video or complete code so that we can fix it by your way?  Thanks!

Link to comment
Share on other sites

  • 2 weeks later...

For me, some of this was fixed when I filled in the data for that default carrier (UPS for me) for the default country that was set in the localization.  I use my own zones in the USA for shipping but have had values in the carrier table for North America not filled in. By filling it in, now that carrier works as default as it should.

The amounts in that North America in the carrier section were then used for that first shipping amount, then when they entered a location, it corrected it.

Shouldn't the default ZONE be what is used to calc that first amount and not the country/continent?  That looks like it may be the bug, or pretty close to it.

 

John S. 

Midwesttent

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Has this issue been fixed in 1.6.0.9???

 

Regards

Greg

 

No it hasn't!!! This is a basic setting and should not be overlooked!! Very important to get a fix for it, we have a 1.6.0.9 running and still can't set different shipping if above a certain price!! It only works if you set general shipping fee to a certain price but then it disables all country settings done in carriers... doh!! Please someone fix this ASAP???!!!

 

...oh and NONE of the above suggestions work for us :(

 

EDIT: The only thing that solved it for me was:

In each carrier, select in step 2 "Out of range" behaviour to "disable this carrier" - then Presta seems to calculate correctly.

Edited by miss-d (see edit history)
Link to comment
Share on other sites

Hmmmmm, how do we get this issue looked at?

 

to get looked at?

 

don't post on solved topics, this really limits number of community members who will ever see it.  Open new topic just on your issue.

 

to 'realliy' get it looked at, not only open a new topic, but also open a bug report here: http://forge.prestashop.com/

 

I am closing this topic.

 

If original post does not solve or answer your questioin, open new topic.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...