Once again, there is a bug in the site. Sometimes, it seems like every few months we come across a new one – and the truth is, that’s what it is. Running an online store with ecommerce software isn’t an easy job on the IT side; especially if you’re attempting to improve the store as you go along.
E-commerce stores have to be hosted; think the building a retail store would rent from, and the orders and stock count run from an ecommerce software. So think of it as the actual physical space (i.e. the store). Now, the CSS and HTML of a site dictate it’s physical appearance (i.e. the store fixtures & layout) while the process of getting taking payments & shipments are managed by 3rd party suppliers. In addition, specific processes like the Rewards Program and the like are added code from additional 3rd party’s, so it’s like having another company staffing the store for you.
So why the bugs? Well, the biggest problem is that at any time, any of those different programs could / can be updated. On both sides, security issues could be found which have to be patched. Those patches can adversely affect your store code itself, creating new bugs.
Maybe you’re not likely to be broken into; but the bank next door shares the same building so they’ve got to slap some plywood on the big vent people are crawling through to raid them. Well; that vent was your air conditioning and now the store’s hotter. Some customers won’t notice; some will love the heat but most will be upset. So you’ve got to fix it – maybe by finding a new route for the air-conditioning, maybe by slapping some fans together and turning them on full throttle.
The other reason bugs crop-up is our need to improve. Sometimes, it’s just not good enough – like how slow the site was before the most recent update. Sometimes, it’s just necessary to update the software to fix a slew of minor (backend) bugs, but by changing, we might be creating additional problems.
Our current bug has the rewards program redemption and the coupon code system share the same ‘space’. However, the change to the new, larger premises has pushed them together so close, no one get to them. The trick is finding the best way to move them apart – and unlike a real world example; it’s not as easy as moving a few boxes.
Sometimes, I envy physical stores. When bugs crop, fixing them can be a headache. When it comes to coding, I’m the equivalent of a basic DIYer – just about good enough to switch bulbs, patch walls, set up IKEA furniture, etc. I can, at a push do some plumbing and the like. I could even fix the tiling on the floors, though that’d take a while. Like most DIYers I’m slower and just not as good as a professional; but with most things I can handle.
Unfortunately, for most of the bugs that crop-up especially the major one’s, my skills aren’t adequate. Which is why we have an IT company working with us on this. Of course, that’s additional expenses and time, since we aren’t their only client. Sometimes, a fix that’d take them an hour has to wait 3 days because they’ve got other customers in queue.
The Long-Term Solution
In an ideal world, there would be little to no bugs. Like Amazon, with a full IT team behind, you’d know when your servers were being updated, you’d be able to test the updates thoroughly. You might even release the updates to only a small fraction of your customers, making sure that it still works for them before releasing the fix. Unfortunately, being a small business – we just don’t have the resources to do all the above.
Quite often, we have to test as much as we can the latest update (if we find out about it in time!) and then release it into the wilds, hoping that we caught most of the bugs. The one’s that weren’t caught; well, we’ll try to fix them as we can.
It’d be easier if we weren’t constantly attempting to improve the site – keeping the site static would lower the number of moving parts. However, as we grow; like real world retail stores – the original premises just don’t work anymore. Then it’s a case of letting customers suffer or fixing it. For us, fixing it will always be the go-to option.