We are curious to hear the community's thoughts on how this could be implemented - as you many know, county and city tax rules can complicate the tax calculation of an order exponentially. Some of the replies in this feature request allude to how this feature could be added, or make mention of how easy it would be to add this functionality of the process, but I can't say that we are convinced.
WHMCS would like to implement a solution that would help solve this need, but we need some more feedback/ideas from the community.
36 Comments
Login to post a comment.
In our case, we know how much taxes we should charge in any given situation, but collecting that data for all of our customers on a continuous basis for proper submission to the taxing authority is very different from knowing how much customer X should be paying. If we only wanted to make sure that each customer paid their fair share we could just adjust their monthly rate, but that is not what this is about. It matters very little how much customers actually pay. It matters a lot how much we submit and being able to back up that number in case of an audit. Technically none of us has to collect any sales tax as a line item. It could be added into the cost of the product and people just pay your set price. The thing is the taxes would have to come out of that amount exactly as if you collected it as a separate line item or not. The reason for that point is to illustrate that it is the reports and management of these numbers that matters more than the actual charges.
This relates to comments such as those from ThomasB above. Submitting too much taxes is never going to be questioned as he stated, but what we can never do is charge a customer more tax than we actually pay in. It would be far safer to just raise the price of your product than to risk that kind of an audit. All that would take is one customer questioning their local government why you are charging more taxes than are due to get someone's attention. At least if your answer was that you just overpay, they might stop looking there.
The only way a proper solution can be implemented is that the end results allows and open ended selection where you assign certain fields to be the tracking source. In our custom code, we asked that it be made to link to a single custom field which we use to keep track of the county since that is what we needed to reference. ,The admin interface would need to be able to allow you to select the desired (not hard coded) tracking field so that if zip codes worked for you, just select that....if we need county and it is not normally stored, we would assign a custom field. Others might want to select the city name.
Using that logic, a worst case scenario is that some users might use a custom field named ".5% tax" and another named "1% tax" (obviously named appropriately by the admin so that it makes sense to their use case). The problem is that there are so many variants of what people want, it is impossible to make everyone happy by "just doing it this way". It needs to be a solution much like what already exists except extended further to allow any field to be the reference source....not just the State.
I don't say all of that trying to imply it would be easy to implement. Sadly I think that most of the people this issue affects have just found some sort of compromise such as those mentioned above. The WHMCS staff doesn't hear all of the pain they have inflicted and so they assume that the number of customers this affects is really small. I don't know how many many it affects, I just know that I am one of them and that there are certainly others.
Oh, that was a good point about the name being likely misspelled though. We deal with that directly by making it a drop down selection. For obvious reasons that could potentially get ugly if the list is too long, but we are used to seeing lists of 50 states to select from and so it works pretty well at the scales we need. Again, other people might have different opinions on that matter which is why the software itself needs to just let us select whatever reference field we need.
https://www.serviceobjects.com/products/ecommerce/fasttax
The way I imagine it is tax based on a zip code, this would allow us to set up taxes for cities. Just allow us to enter all the zip codes are for that city under the tax rule and WHMCS could do a simple comparison based on the customers entered zip to apply the tax. It would rule out issues that could arise with customer input from a string for city which is a lot more likely to be misspelled as compared to a 5 digit zip code.
I respectfully request that WHMCS reconsider and start to actively think about this can be implemented within WHMCS.
To give you just one example, in West Virginia the current sales tax is 6%, with perhaps less than two dozen counties / municipalities adding an additional 0.5% to 1.0% sales tax on top of that. So if West Virginia deems that an Ohio company has established nexus with West Virginia, then West Virginia now wants the Ohio company to charge the sales tax rate of the county/municipality that the West Virginia customer lives in. There is no way to currently do this in WHMCS, but this needs to be implemented. It's not as simple as setting up a Tax Rule for all of West Virginia, because although West Virginia has a sales tax of 6%, various municipalities have a tax rate of 6.5-7.0% that must be charged to customers living in those municipalities.
Mike
I have been able to set up a variant of OpenCart and WooCommerce to work with our taxes out of the box. I think either solution could be working as a tax replacement for WHMCS.
Once implemented it is easy to move all the existing data with no issues in the upgrade process. A new default tax would be created that copies the old system and then we could make changes and additions as we need.
The thing is, this is not as simple as making a field to link to a tax calculation. It is also necessary to create a new report which breaks out the collected taxes to be reported correctly and also to modify the invoice to display the new data to the customer. Of note though, is that much of this has already been done for our solution. It would need to be cleaned up for general use so that it wasn't hard coded to a specific custom field and that would require a new admin control to interface with that. Then our custom report would need to be reworked to be generic and for most people it would probably be necessary to update the invoice unless it was decided that everyone should do that themselves.
All of that adds up to significant development just to achieve a single new tax layer. I don't believe it is proper for the WHMCS team to write it that way. They should go a bit further and add in as many tax layers as the user wishes. That final request is where the hesitation seems to come in for the WHMCS team because it is one thing to jerry-rig in a single tax layer to fit our needs and it is a very different thing to make it so open ended that it will handle every imaginable possibility. I know for certain that whatever they come up with will leave people asking for strange use cases, but they should be able to get it pretty close!
If anyone is about to ask if they can borrow/rent/buy our custom code, here is where the problem lies. The changes that were necessary to make this work are in the core itself. It is not possible to update beyond very minor incremental updates without breaking our modifications. You can't just transfer the modified files most of the time as that breaks the core. For a long time we paid to have our custom work updated as new versions came out, but since Sponsored Development became a thing of the past this is no longer something they are willing to do. This leaves us hanging on to old versions and even security updates have to be tested carefully. Once you hit one that breaks things, it is all stop. For this reason we would be very pleased if our modifications were used as the basis for a new, fully functional system. If the WHMCS team could look at what they created for us and either use it as a starting point or maybe just inspiration, that might be a thing. Our solution has worked perfectly for a very long time so hopefully it can provide some sort of value here. That would be a win-win for everyone.
Then, per-product, be able to select from the configurable-tax-options drop downs to choose which taxes apply to this product.
This may regionalize product offerings, which could be hard for nationwide domestic folks, but seriously, those companies are already in tax hell - and if they're not, they should be. Setting up a system for rules to match an order against possible tax group matches shouldn't be too bad. Lots of mapping, but hey, this is the US tax pain.
Being able to create our own, very custom taxes is critical to us, and very, very painful. I'm sure /everyone/ using WHMCS for products other than just straight webhosting feels the same pain, or is aware of it and ignoring it because it is very difficult right now.