Monthly Archives: April 2010

One of Those Nightmares

She bought the software on a Thursday. On Friday, she bought the Installation Service. Normally, I’d expect to spend about 2 hours in tech support for the software purchase, and about 4 hours on the installation service. Reasonable for the cost of the two items.

I had the initial part of the work done within a few hours, while juggling it with other things. Then we ran into an issue with her hosting account. She was using a Reseller Account, and we were installing Automation software. The server had a setting which was incompatible with our system. She asked the host to change it. They said they did. But it wasn’t changed. She asked again. They asked which site she wanted it changed for. She said all of them – she needed new accounts to have that setting automatically. They said, “This setting has the name ‘protection’ in it. It exists to protect the server, if we turn it off, something will be unprotected.”

So their final answer was, “no, we can’t change this setting, because it exists, and says protection, so we have to leave it on.” Never mind that the setting doesn’t really protect anything serious, and that situations under which it would be an issue are very isolated. Every hosting company we have ever dealt with, up to this one, has had this setting off. This company left it on, out of paranoia, not out of any understanding of what it actually was. The weekend occurred during the exchange. By the time they concluded this, we were four days into things.

So she had to move hosts. She moved to our hosting – she got better help doing so that way, and we KNEW the software would all work there. Moving the sites took a day.

We had to change all of the file settings on the files since the old host required different settings than ours. When we did so, we found there were also a series of file ownership problems – we had to have support reset those on all of the sites, then we were able to reset the file permissions.

Then we had to reset her domain nameserver IPs. Turns out her old host had the domain name, and she had no controls for it. He promised to set them. They took a LONG time to resolve. She could not check them, or change them. So she moved the domain to HER reseller account in eNom. When she did so, ALL of her domain settings were lost. And eNom did not want to help her reset them. Two more days were lost.

We were trying to move the SSL certificate, but since the domain names were not resolving, that wasn’t working either. She also had bought a new SSL certificate (she did not like the way the old one displayed), and she bought a business verified one. Then she could not verify the business entity, because she is a sole proprietor with a DBA that is unregistered (this is legal in many places). So she had to ask for a refund and buy another one. We went the “quick” way, ordering it through our hosting supplier. But then we could not verify the Whois info, because she had Private Registration turned on. Her domain name, at eNom, could not be changed, and she was unable to access support from eNom, because they kept telling her she was not a reseller. We tried several tactics, a few workarounds, all of which deadended.

Our hosting support finally helped us get the domain settings correctly changed – turned out they needed an odd format to them to stick. They also allowed her to screenshot her account info for verification of her registration info to get around the Private Registration issue. That took another day to figure out. Another weekend intruded.

The domains resolved, the SSL working, there were still two errors in the billing software that operated alongside the automation software we were installing. One stopped hosting accounts from being created, the other caused a template error on the frontend of the site.

The billing manager support people solved one of the errors, which was replaced by another. They claimed they were not responsible for the template error – turns out they WERE, since she had purchased the template from them!

So we are now a week and a half into a process that should have taken only a few hours, and we still have two unresolved issues. Even with moving hosting, we should have been able to do all of this in about three days. We are both beyond exhausted, and tired of just “one more thing” cropping up as soon as the current hurdle is overcome.

I Want a Refund Because I’m an Idiot

We sell several pieces of software. We have an “It’ll Work” guarantee. In other words, if we can’t get it working for the customer, we’ll refund. We don’t refund in other circumstances – because software is copiable. Sadly, there ARE unscrupulous people who will download software, demand a refund, then use or distribute it (we’ve encountered them, and found them to be some of the nastiest people we have ever met). So in order to get a refund, we have to have tried, and failed, to get it working for the customer.

We don’t give refunds if the client says they tried and won’t let us try. User error is too high. We don’t give refunds if someone says, “I thought it did THIS” when our published documentation clearly states that it does not. And we don’t give refunds for terminal stupidity either. I know, that is harsh. I think I’m in a harsh mood today.

Two weeks ago, a client bought an auto-installer from us. He was hollering to us within minutes that it did not work, and that we did not give him instructions. Now, please note, that the software comes with a QuickStart Guide. 17 pages of instructions on how to set it up and use the software.

To set up the software, you have to do several things:

1. Create a sample install, and bundle the files to load into the installer.

2. Change the filenames in the installer config files, to match the names of your site files. (There are TWO names you have to change in several places, that is all).

3. Name the folder the same name as the Product ID in the shopping cart, and put the config and site files into it.

4. Upload that to a specific spot on the server.

He was crying about not having instructions, so I simplified the instructions in the manual, heavily shortening them for the support ticket response. He then asked me why those instructions were not in the manual (they were, and they were clearer there).

He made it clear that he HAD downloaded the QuickStart Manual, but that to him, it was deficient in some way, while my less helpful support ticket instructions were somehow superior to it (it was clear he simply did not want to read it).

He then said it was still not working. I looked. NOTHING had been done. He had unzipped our software, loaded it to the server, and wondered why nothing was working! He hadn’t set up a THING.

I gave him more instructions. He complained again. But got a little further. Several more complaints later, I finally went in and finished the job, performed a successful install, and sent him the URL for the install. Mind you, all that was wrong in the first place is that he didn’t follow instructions, and never finished the setup.

He replied a few minutes later that he had found the reason why it wasn’t working, and was making changes. He then blitzed my fix, and deleted all traces that a successful install had ever occurred. But I didn’t know this until he began hollering at me again two weeks later, demanding a refund.

The software worked on his system. What didn’t work, was the customer. I’m not sure if he could not read, was too lazy to read, or simply wanted to try to bully someone else into doing the work for him. I don’t think he has enough technical smarts to be successful at what he wants to do, because he doesn’t seem to have a grasp on structures and processes that he needs to have.

Anyway, I explained that it had been working.

He said that since he had not seen it, obviously it had never worked.

I told him I’d set it up again.

He told me he wanted a refund. Refused to even answer about the offer to fix it.

I told him his situation did not warrant a refund, but if he provided the install files for the site he wanted installed, I’d set it up for him again.

He then began threatening, in no less than three emails. He’d report me to the BBB (that’s a joke, so no threat there), he’d tell everybody how horrid I am, unless I gave him a refund or the upgrade to the version that is 3 times the cost of the one he paid for, and the “full manual”.

My response was to ask him why he did not want me to fix it, that I could have it fixed within half an hour.

I also informed him that if he did choose to blacken my name, I’d remove any sensitive info from the support emails, and make those public, so anyone who wondered whether he was telling the truth or not could judge for themselves. (Anyone who saw his frank stupidity would know that we had honored our agreement fully.)

I added that the Technical Manual had NOTHING in it that pertained to the version he had bought, it only had info for the Full version, and that the Full version would do him no good since it worked the same was as the less expensive version, which he had been unable to figure out.  I finished by telling him I refused to be blackmailed by threats into issuing a refund against our policies, or into giving him a free copy of our expensive software.

His next response was by email – apparently in an attempt to avoid saying anything else on the support ticket that I could make public! He demanded that I fix it today or give him a refund. I informed him that he’d have to send me the files (which I’d already told him three times previously). Not sure what his response to that will be.

There are those who say, “just give the refund”. But when someone starts trying to blackmail me, and when they are clearly NOT entitled to a refund according to our terms, I don’t feel it is wise to give in. We created our terms very thoughtfully, and for sound reasons. Those reasons are to protect one of the pillars of our business from theft and fraud, and are as important as avoiding a dissatisfied customer.

I have given free upgrades to dissatisfied customers who were having problems we could not immediately solve when the less expensive version was new and all the bugs had not been worked out. But this time I knew it worked. I knew there was no problem with the software, and this guy was not being honest, or even rational. He gave me every reason to believe that he was in fact, just trying to scam me. So a refund is not an option.

If he does send the files, I will be documenting every step with screenshots, and with witnesses. And he will be informed that if I have to fix it again, I will charge him for it.

I hate dealing with unpleasant customers. But I am WAY beyond the point of feeling like I have to grovel and MAKE them satisfied, because frankly, it is impossible to do that with many people. Instead, we have written good, and very fair policies, and we stick to them. When people get unpleasant and expect to be an exception, we stick to the policies anyway. They have a purpose, and if we let people bully us into making unwarranted exceptions, we aren’t helping them, or ourselves any at all.

UPDATE: Client did not provide the files necessary to set up his installer. So I duplicated one of my own installers for another system (he wanted ZenCart, I used Joomla), put that into his hosting, and the installer again works perfectly. I documented with screenshots, so I can prove that it does indeed work.

Two Software Releases for VirtueMart

We just released VirtueMart Flex Tax, and Authorize.net SIM Flex Payments for VirtueMart. So what is new and special about these add-ons?

VirtueMart Flex Tax started out as a means of calculating Canadian Taxes. There is another option out there for this, but it is clunky, overly complicated, and requires modification of way too many site files (this makes sustainability difficult). The use is also overly complicated and unintuitive. We also had US clients that needed VM to do things that it did not do. VM Flex Tax was designed to elegantly handle a range of tax computation limitations in VirtueMart.

Rather than developing a “Canadian Tax Patch” for VirtueMart, we developed a Flex Tax add-on that addresses all the needs we saw in VM. Instead of saying “We need to handle Canadian Taxes” or “We need a solution for Florida or Chicago Taxes”, we started with functional needs. We identified four needs types:

  1. VirtueMart did not allow multiple level taxes. In other words, you could not do a Country Tax, and then separate State Taxes, and then City Taxes to easily and elegantly handle many levels of taxes without having to set up combined taxes for each location (some laws require a breakdown in tax readout on checkout). So we wanted to be able to set a global Country tax, then State or Province taxes which would add to the Country tax, and then a City tax if needed, so we had a flexible three tiered computation.
  2. VirtueMart did not allow proper control over how the taxes were charged. It offered “By Vendor” and “By Purchaser”. Problem with that, is some locations require that taxes be charged by the billing address, some by the delivery address, and some by both (Florida and several other states do this). So we expanded those options to cover all the bases.
  3. VirtueMart did not handle shipping taxes in any way that was actually useful for most store owners. Most states that charge tax on shipping require that it be computed on the same basis as the product taxes, but VM was simply not capable of being bullied into this basic logic (it only allows you to set a single tax rate for shipping, and won’t charge a different rate by location of the buyer – and it only allows you to charge tax on shipping at all if the tax computation is set to Vendor based taxing!). So we added in the function to choose “Same as Product” for shipping tax computation. Because we did not want to lose any function (in case anyone actually needed the convoluted method that VM currently provided) we also added in an option to preserve the previous function.
  4. VirtueMart had a single tax readout on checkout. Many areas require a breakdown of the taxes charged in the readout. Previous coders who provided solutions for this required that you use THEIR VM template to achieve this function. Our coder (brilliant guy, really!) did not use that method, but coded the function into the core files, so it works with any template.

This new add-on provides function for a wide variety of situations, in the simplest possible manner. It was designed to allow you to pick and choose the functions you need, so that you can use them in almost any combination, to meet the needs of  US and Canadian taxes, pretty much no matter where you are.

Our second release is the Authorize.net SIM Flex Payment Module. Authorize.net offers two ways of processing payments. The standard method collects CC data on YOUR site, then transmits it to AN. This provides PCI compliance headaches for small merchants, because the security burden rests squarely on them. The AN SIM method of processing payments transfers the customer to AN before any CC data is entered in, meaning that AN assumes the risk for all PCI compliance (this is the same method used by PayPal standard). This is a huge financial relief for very small merchants.

We discovered while researching options for this kind of module, that many other CC Gateways offer “Authorize.net Emulation Mode”.  This means that we could code a single module, and have it work for more than one gateway. We have simply added new Gateways as our clients have requested. It currently supports:

  • Authorize.net
  • Eprocessing Network
  • Internet Secure (Canadian)

Again, our coder approached it from a very elegant coding stance, and simplified it so that it requires minimal user complexity.

Developer licenses are available for both modules, allowing installs on unlimited sites.

FaceBook LESS Effective for Business than Ryze

We used to love Ryze, before it fell. Now it is not trafficked enough to be worth spending time there. But it sure did work. We got probably 2/3 of our business from relationships on Ryze. Because they were all business, and predominantly startups and WAHMs. A high concentration of a very effective target market.

FaceBook has been much less successful. It takes more work to get fewer responses. Because it is a mix, it is like shouting to the whole world, instead of being able to talk quietly to people who are interested.

There are those who may disagree with me, but you really can’t just establish a presence on FaceBook and be yourself, and get business from it. You could do that on Ryze.

On FB, you have to plan and work very hard at targeting, and attracting people, and then the majority of them are not interested in business relationships. It is a very scattered approach to promotion, and you can only narrow it so far by using Pages or other features, because FB was not intended as a marketing venue to begin with.

I’m not suggesting that FB is not worth the effort. I think it is. But the return rates for my time are far lower than they were on Ryze. Perhaps 10% or less.

Sadly, Ryze is a dead duck, and there is nothing out there that comes close to replacing it. It worked for a number of reasons, and while many Ning sites have tried to duplicate the function, they have yet to provide anything that is convenient to use and effective. Instead, they require a good deal of inconvenience to use them. One reason Ning groups hang around the fringes of social networking, but rarely become anything more than fringe sites.

The small business, WAHM, Startup, and side business market is not being effectively served online at this point. It is a huge niche, waiting to be plumbed. Ryze had it, then lost it, and most of them are still fumbling around trying to make other systems work, without the ability to use a system tailored to their needs.

So we keep working at FaceBook. And we keep missing the effectiveness of Ryze.

Update, 2013: A few people I knew from Ryze have “gone back”. But they seem to do so out of stubborn nostalgia, rather than any amount of effectiveness. Ryze is still dead, except for a few thriving groups that seem to serve networkers from Asia.

Grow a Garden!

Gardening doesn't have to be that hard! No matter where you live, no matter how difficult your circumstances, you CAN grow a successful garden.

Life from the Garden: Grow Your Own Food Anywhere Practical and low cost options for container gardening, sprouting, small yards, edible landscaping, winter gardening, shady yards, and help for people who are getting started too late. Plenty of tips to simplify, save on work and expense.