Jump to content

Recommended Posts

Hi We have a shop that has been up and running for a while with no major issues (Version 1.2.5.0)

We just added new products that require a different "International" shipping cost then the rest.

For Example:

T-Shirt cost $35 - Shipping $12.95

Poster Print $60 - Shipping $27.50

 

Here is what we did:

1) In Shipping we created "International" carrier

2) In Price Rages we created 3 different price ranges:

$0-$39 / $39-$54 / $54-$61

3) In Billing we checked "According to total price"

4) In Fees we selected "International" carrier and added shipping cost for the 3 price ranges

 

BUT when we go to the shop and add our T-shirt of $35 the International shipping comes up as $27.50 and NOT $12.95. And that goes to all products they are all being applied the highest cost (The Out-of-range behavior)

 

The question is why. Since the price ranges are set up in a way that there is no out-of-range behavior

Can some one please help.

I am attaching screen shots of all these settings.

post-72019-0-96902700-1321543942_thumb.jpg

Link to comment
Share on other sites

Your current set up, according to screenshot, will always apply the cost for the max range because there is no seperation between $0 to $61. :)

 

Sorry but that is not the case. His price ranges are correctly set. The shipping module uses exclusive/inclusive ranges. That is for example, from value 1 up to but excluding value 2, from and including value 2 up to but excluding value 3 etc.

 

 

Any other Ideas?

 

Check that your International carrier is assigned to the correct zones.

Link to comment
Share on other sites

It seems to me that there is either a zone conflict somewhere or a conflict in one of your price ranges.

 

You mentioned 'We just added new products that require a different "International" shipping cost then the rest.'. Do you already have some international carriers set up?

 

If so, what are the assigned zones for the carrier and the price ranges?

 

Just trying to gain a better understanding of your set up.

Link to comment
Share on other sites

You mentioned 'We just added new products that require a different "International" shipping cost then the rest.'. Do you already have some international carriers set up?

 

Yes if you look at attached thumbnail in our previous comment above you will see the International carrier and the assigned zones that we've set up a long time ago and has been working fine (with just one assigned price, no ranges)

 

You will also see in the thumbnail the price ranges for those zones...

 

Do you need other information that is not in those screen shots?

P.S. thank you for your help with this...

Link to comment
Share on other sites

Hi suva,

To be honest I can't really see anything in your settings that would create the problem. However, it can be like that when just working from screen shots.

 

If you create a new employee with admin permissions and PM me the BO log-in, password and BO URL, I'd be happy to take a look for you. After this you can simply delete the employee.

Link to comment
Share on other sites

Hi suva,

To be honest I can't really see anything in your settings that would create the problem. However, it can be like that when just working from screen shots.

 

If you create a new employee with admin permissions and PM me the BO log-in, password and BO URL, I'd be happy to take a look for you. After this you can simply delete the employee.

 

Thank you for offering to look into this! I just send you temp log in

Link to comment
Share on other sites

Hi Natalya,

 

First, congrats on a nice looking site.

 

I think I see what the issue is although I can't be 100% as the permissions you set up for me don't allow me to view the carrier settings. You are trying to use both price based and weight based shipping at the same time. Unfortunately, you can use one or the other but not both.

 

Let me know if this is indeed the case. If not and everything is price based you'll need to extend the permissions on the account you set up for me so I can see some detail.

Link to comment
Share on other sites

Hi Natalya,

 

First, congrats on a nice looking site.

 

I think I see what the issue is although I can't be 100% as the permissions you set up for me don't allow me to view the carrier settings. You are trying to use both price based and weight based shipping at the same time. Unfortunately, you can use one or the other but not both.

 

Let me know if this is indeed the case. If not and everything is price based you'll need to extend the permissions on the account you set up for me so I can see some detail.

 

Hi Dave I just adjusted permissions for your temp admin, you should be able to see details.

As far as I can see there is only one place where you select shipping based and weight or price, its in the main page of the SHIPPING tab and I have it selected as "Billing: According to total price" is there another place where this needs to be marked?

Link to comment
Share on other sites

Hi Natalya,

 

I think we are getting somewhere now.

 

Your carriers haven't been assigned any zones. This basically means the system doesn't know which carrier to use.

 

I haven't made any changes, it's better to do that yourself.

 

You need to assign Domestic carrier to the US zone and the International Carrier to all except the US.

 

See if that works for you.

 

Edit: The word in BOLD above should read UPS Ground

 

Edit again:

 

You have UPS Ground enabled and Domestic disabled in Carriers but no price range for UPS Ground.

I would suggest you use the Domestic Carrier as you already have price range and fees set up for this.

Link to comment
Share on other sites

For Domestic (US) we use a custom UPS Shipping calculator and its done by sending data to UPS and then UPS sends us back the actual rate. All of the calculations for this are done outside of Presta shop, the only thing we tagged is that if its US then use this UPS method etc...

 

For International we never had to worry about it since it was always a set price.

And if you test the shopping cart on the front end it works fine and it recognizes when you enter a US ship to address or International (see screen shot of the International assigned zones, you just dont see them when you return to this page to edit, but they were always selected like you described)

 

So It cant be that, the zones work fine and they all get recognized properly... its just that the cart does not assign the ranges for International (but the cart shows you the International rate, its just the highest)

 

Let me know if you have any other ideas..

Thanks for taking this time I greatly appreciate it

post-72019-0-29652300-1321559719_thumb.jpg

Link to comment
Share on other sites

I see. I wasn't aware that you were using other modules as part of your shipping. I was under the impression it was just the default shipping module.

 

Unfortunately I'm out of ideas. I am not familiar with other shipping modules.

 

Domestic shipping is not the problem (which uses separate module) Its only International shipping that is the problem and that is the default shipping of Presta.

 

In any case thank you very much for your help.

If any one else had the same problem and found a solution please let me know.

Link to comment
Share on other sites

Having digested what have said I just took another look. I really can't see why this is not working. Your price ranges are spot on.

 

For some reason it's seeing it as out of range but for what reason is a Mystery.

 

Just to humour me, can you try setting your Free shipping starts at values to 0 and then select international in the fees and just click 'save'. I seem to think I read somewhere that someone was having a proble like this and clicking save on the fees for the carrier seemed to fix the problem.

 

Keeping my fingers crossed !

Link to comment
Share on other sites

Keeping my fingers crossed !

 

I was hoping this would be the magic solution... but no luck.

 

I even switched the US to regular Domestic shipping which is Prestashop internal module and set it for "Free" shipping (since we are doing a promotion for holidays anyway) but that did not help. International still defaults to the highest price...

Link to comment
Share on other sites

I'm beginning to wonder if there's a bug in V1.2.5.0 I have set up the shipping on more prestashop site than I care to remember and as far as I can tell, yours should be working.

 

Have you considered upgrading to the latest version? I know it's going to be a problem with your theme as it'll not be compatible so you would have to see if it available for the latest version.

 

The upgrade process would leave your existing site in tact and working as it is now until your new version is tested and ready to launch. It's just a case then of moving from the sub-folder to replace your current site.

Link to comment
Share on other sites

Have you considered upgrading to the latest version?

 

Its a consideration but not right now, there is just no time and client does not have the budget for it.

So I would much rather find a fix for this version (as like you said it all looks like it should be working...)

Link to comment
Share on other sites

  • 1 month later...

I have a similar problem.

 

I want a special carrier to be available only for orders above a certain value, but it simply does not work. When an order is bellow that value, the special carrier still shows up...

 

I think the problem is that I have the billing according to total weight (I have multiple weight ranges), but I would like to use also some price ranges... Is it possible??

 

Obviously I have the "out-of-range behaviour" set to "Disable carrier".

 

Thanks

 

I'm using v1.3.3

Link to comment
Share on other sites

  • 9 months later...

I found this function in /classes/carrier.php

 

public static function getDeliveryPriceByRanges($rangeTable, $id_carrier)
{
 $rangeTable = pSQL($rangeTable);
 return Db::getInstance()->ExecuteS('
 SELECT d.`id_'.$rangeTable.'`, d.`id_carrier`, d.`id_zone`, d.`price`
 FROM `'._DB_PREFIX_.'delivery` d
 LEFT JOIN `'._DB_PREFIX_.$rangeTable.'` r ON r.`id_'.$rangeTable.'` = d.`id_'.$rangeTable.'`
 WHERE (d.`id_'.$rangeTable.'` IS NOT NULL AND d.`id_'.$rangeTable.'` != 0 AND d.`id_carrier` = '.intval($id_carrier).')
 ORDER BY r.`delimiter1` ASC');
}

 

Why it not working?

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