Different tax rates for different states

Client lives in NY and will have to charge different tax rates for EACH COUNTY in the state. Will MarketPress support this?

  • forlio
    • New Recruit

    No kidding, I have yet to find an e commerce system that supports taxes based on a persons address. How do people not get hammered by the IRS for not charging people, city, county, and state tax? So yeah if any one knows of a system that supports city, county, and state tax please let me know.

  • kvmolino
    • WPMU DEV Initiate

    And Aaron, FYI, here is the plain English description of the New York rule---clearly says "in which the items were PURCHASED", and my client has had to do this for years.

    "The New York state sales tax rate is 4%, and the maximum NY sales tax after local surtaxes is 8.875%. Counties and cities in New York are allowed to charge an additional local sales tax on top of the New York state sales tax, and all municipalities in New York have done so. Products sold remotely and shipped into New York may be required to charge the appropriate sales tax rate for the municipality in which the items were purchased. Finally, there are specific exemptions to the sales tax that allow college textbooks and clothing items priced under $55 (and any under $110 after March 31, 2010) to be purchased free of sales tax.

  • Aaron
    • CTO

    Exactly my point, it's all a legal mess. The lawyer in me would ask "where is the product PURCHASED"? Is it where the buyer is located, or where the store physically is located, or the warehouse the product is shipped from, or where the server that hosts the online store is located, etc etc.

    Because of the murkiness of tax laws for ecommerece, the generally accepted interpretation is tax should be charged at the local rate for where the physical store/business is located, not the buyer location, and can only legally be collected if the item is being shipped in state. This is because it's almost impossible to figure out the exact tax rate based on buyer location (and remit taxes to every single city/county people bought from). It's just how ecommerce is done, and why you won't see county/city specific tax rules in ecommerce software.

    Though recently some states have been trying to clarify these laws, as they are greedy for all the missed taxes to Amazon.com and the like. I think your client should consult a local ecommerce tax specialist, as they are misinterpreting things.

  • brentjohner
    • The Incredible Code Injector

    similar post from a very long time ago: https://premium.wpmudev.org/forums/topic/tax-rate-based-on-purchasers-location

    Most of the big e-commerce tools support this (WP eCommerce, ZenCart, ...), but MP does not. I am also not sure how businesses are not being affected by it. In the linked post you'll see some code I have to hack into marketpress.php after each update (this is a CORE file that is overwritten on update) to force the correct handling of taxes in Canada. I would be very grateful if it was incorporated in some way, especially if it will benefit others. I don't believe there is any 'murkiness' in these laws but if it were optional then at least users could decide.

  • brentjohner
    • The Incredible Code Injector

    That's great. Thanks Aaron!

    Making the province tax rates configurable makes sense to me.

    Note: It's not in the code I posted before but because the province field is free text and without validation my switch statement is looking more like

    if (province == 'AB' or province == 'Alberta' or province == 'ALBERTA', ...)

    I believe there are other posts with suggestions about handling the province/state field, but I just wanted to point it out as it may impact how you make this change.



  • brentjohner
    • The Incredible Code Injector

    Hi Aaron,

    Thanks for the update in 2.2. Tested and wasn't working for me.

    I had to replace:

    if ( isset($settings['tax']['canada_rate'][$key]) )
    	$price = round($total * $settings['tax']['canada_rate'][$key], 2);


    if ( isset($settings['tax']['canada_rate'][$state]) )
    	$price = round($total * $settings['tax']['canada_rate'][$state], 2);

    With that change seems to work fine. Is it a bug or am I missing something?

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.