Charging by the job is the way to go. Being the business owner, you should have the knowledge to estimate how long it is going to take. That comes with experience, and what makes a business successful. This is the whole reason people mowing lawns for $15 no matter what size do not last. Trying to sell to your customers that they will have to pay you $50 per hour is next to impossible, but telling them you will do this job, for this amount is a lot easier for them to take.
If you suggest the by-the-hour rate, they initially compare it to what they make at their job, and 9 out of ten times, it is a whole lot more, and they just say no.