The developer of the "ready-made solution" would be your competitor. If you are developing custom made solutions and your clients thinks that a $200 off-the-self solution is a better deal, you have to justify the cost of your solution.
I've had clients hand me a list of features included in a ready made solution that was very impressive, but a very poor fit for their needs. I then have to take my time explaining why it would greatly increase the complexity of maintaining the store after it was installed. That's where the experience comes into play. The client can't visualize what is going to happen when they turn the daily operations over to a office worker. The solution with less features was actually the better way to go for them.
A client was using a slightly modified version of a popular package. They had 3 people processing orders and were constantly 2 days behind. I replaced the entire program and one person was able to keep up and also take care of the shipping in the same day.
They thought it was cheaper to go with the slightly modified version, until they were able to see their labor costs plummet by paying for the custom solution. Your job as a developer is to provide guidance as well as code. The more people competing for their dollar, the harder it is to set them straight.