Please help me understand tax zones. The logic is not working for me

Gang, I’m trying to setup state sales tax and cs-cart is giving me a major headache. Here in PA our business is located in a 7% tax county but the state at large is 6%

We need cs-cart to always asses the highest tax the user is eligible for based on their shipping address. It seems like it works in the opposite way. For example if you had a tax rate set for the state of Pennsylvania at 6% and a tax rate for all the zip codes in Allegheny county at 7% (part of the state of Pennsylvania) it gives the state tax rate of 6% to the order even when their shipping address is in an allegheny county zip code.

Another example would be if you added the United States as an active destination, and did not define a tax rate for it, then all orders in Pennsylvania would not be taxed, :shock: :shock: even the orders that occur within Pennsylvania where we have tax zones setup. The result is if we want to define custom shipping methods then we won’t correctly asses tax to Pennsylvania residents and this could cause major legal issues for our client.

The user should ALWAYS gets the highest tax rate that their shipping address would be included in from all available tax rates defined. So if their order is in the zip code 16066 (Butler County Pennsylvania) they would be taxed at the 6% Pennslyania rate. If they are in 15212 they would be taxed at the 15212 rate of 7% (We have 15212 in the database set to 7%) and the 6% Pennsylvania state rate would be ignored. If their shipping address is in Ohio they should not be taxed.

I’m not sure if this qualifies as a bug or not, but I really can’t make heads or tails of this logic. It appears cs-cart gives precedence the the less specific locations where it should always give precedence to the most specific locations if it was working correctly.

For now our work around was to input every zip code in PA and remove all general destinations, however this is not a fix since we can’t add any custom shipping methods without breaking taxes.

Note: They should get just one rate, and not the combination of available rates.

Another note: Here in PA we only have one tax (sales tax) however I assume this is probably even more bizarre to setup in places like Canada where there is a VAT assessed in addition.

US 0% ← Remove PA from the states list

PA 6% ← Enter zip codes for the tax rate

PA 6.25% ← Enter zip codes for the tax rate

PA 6.5% ← Enter zip codes for the tax rate

PA 6.75% ← Enter zip codes for the tax rate


[quote name='The Tool' timestamp='1337271161' post='136623']

US 0% ← Remove PA from the states list

PA 6% ← Enter zip codes for the tax rate

PA 6.25% ← Enter zip codes for the tax rate

PA 6.5% ← Enter zip codes for the tax rate

PA 6.75% ← Enter zip codes for the tax rate



What the man said is true. ^

Obviously we are missing something simple in our setup. I don't think you fully understood the issue we are dealing with. Sorry for being so wordy. This is as simple as I can make the problem.


[]First we input all of our PA zip codes

]Then we established two locations and grouped the zip codes by location

[]Then we applied 6% tax rate to all of the non-Allegheny county zip codes and 7% to the Allegheny zip code via the locations

]Then we wanted to create a custom shipping method for USA addresses so we made a location for the US.


Under these parameters no taxes are assessed for any USA address including any of the zip codes we defined for taxes. If we remove the USA location then it works again.

How do we have both working taxes and custom shipping methods? Thanks in advance.

Have you defined the states for US and did you remove PA from that list?

Shipping settings are complex and not easily explained by words. It would be best to show screen shots of your settings.

We never had any states setup. Sorry for being a pain … I'm not sure how this would work. Would PA then be excluded from using the shipping method? The shipping method needs to be for the country and the taxes are state specific.

We have zero states defined for the country location.

That's why you are having issues. You need to set up a US location (select all the states you will ship to but exclude PA) and a PA location excluding all states except for PA. If you have different tax rates for PA then you will need to set up multiple PA locations as explained previously.

Edit: You can set up whatever locations with whatever shipping method.

I guess you are more or less confirming what I already knew. Basically then to define a custom shipping rate for all of the US, you'd have to go in and setup the same rate 3 times, once for the PA/Non-Allegheny location, once for the PA/Allegheny location, and then one for the All US less PA location.

I still think this setup makes zero sense. Why not just charge the tax rates as defined and calculate shipping methods independently of this? Oh well.

We have the same issue with PA taxes. Here is how I got it to work in 2.2.4 Pro:

  • Create Location USA with 49 other states
  • Create Location PA with just PA selected as the state AND a list of all 6% tax zip codes
  • Create Location AlleghenyCounty with list of 7% tax zip codes (no states selected)
  • Create Location Philadelphia with list of 8% tax zip codes (no states selected)
  • Create 3 tax rates (6%, 7%, 8%) and assign the locations to the corresponding tax rates

    I agree that it should be easier. It seems CS-Cart matches the location from general to specific rather than the other way around, so you can't do “exception” lists for just the Pgh/Philly tax rates. PA gets matched from the shipping address and then CS-Cart stops looking, so you have to not match the 6% PA ZIP codes in order to “fall” into the other locations which will match the ZIP code.