From your question you mentioned 2 or 3 competitors which means that you should still be able to achieve a first page position for the keywords you're targeting but perhaps not the top 3. In that case it comes down not only to optimization and link building; Is your site as useful as theirs?
A question I very rarely hear people asking in the SEO field is "I want to compete with someone for certain keywords, but is my business worth being ahead of the competition at this point?"
As well as content might be written, the moment you enter the e-commerce side of SEO the prices, delivery model/costs company reputation etc come into play a lot more than in the service industry. Especially if the product you're selling is the same one your competitor is selling. How many different ways can you describe a product?
My point here is the better the business model you are following the more likely people are to use your site than your competitors and in time you'll beat them in the SERPs. You should still put effort into generating content and building links but it will be easier if user experience on your site outclasses that of your competitors.
Hope this helped