Google checkout/paypal is probably putting some people off & the design of the site isn't great. My first impression is that it looks dodgy and unprofessional, although I am biased with my web development history. The other thing is the price of your products - are you pricing business away? I can't be arsed to check for you but maybe have a quick search for some of your best selling things and compare prices with other companies. When I do online shopping I ALWAYS google for a better price. P&P can make a huge difference too - if it costs more somewhere else but the postage is cheaper, i'll tend to use them and ignore the basket full of items on the other site.
Regarding SEO....
There are a lot of free directories you can add links to your site from for free, some better than others. There are also a lot of good paid links. Pagerank alone won't help you get high up in google, but it does mean that your site is likely to benefit more from any SEO you perform on the page. Probably the most important part of getting high up in the listings is the browser title. You need this to reflect what people are searching for. For instance, if it was the Hilton Hotel in Edinburgh you'd probably want a title such as "Hilton Hotel in Edinburgh Scotland". That way you capture people searching for Hilton Hotel, Hotel in Edinburgh, Hotel in Scotland. Crap example, but that's the idea. There is a free tool you can use to check how many people are searching for certain things every month:
http://www.goodkeywords.com/
It's not totally accurate as it uses Overture results, which is obviously a lower percentage of searches than Google, but it's still very useful. Watch out with this though as overture doesn't distinguish between singular and plural. It would probably say hotel in edinburgh, but that could mean hotels in edinburgh for example. It also sometimes jumbles the phrases around, for example it might say edinburgh hotel in, which is clearly b****cks, just need to use your common sense and rejumble the words.
Anyway, the idea is to try and capture a couple of really good search phrases in the browser title. If it's quite a niche site then just one really good keyword phrase can work as well. Try your best to make a sentence out of it though so it makes sense rather than being mumbo jumbo. The ordering of the keywords are important. Try to use each keyword once only however, google doesn't like spammed keywords.
Once you browser title is sorted you're half way there. It's always best to have an <h1> tag as close to the </head> tag as possible. Doesn't have to be standard uber large heading text, can just be a small bit of text at the top left of a page. Try and make it similar to the browser title, but not identical, maybe try shuffling a few words around.
Meta tags are not so important for google, I'm pretty sure it doesn't even look at them, however yahoo and MSN do so try and make sure your meta keywords and description also reflect what you're trying to capture in the browser title. With keywords most people seem to seperate them by commas, I prefer to just make a sentence, it has the same effect. To use the same example I'd probably have "hilton hotel edinburgh scotland uk" With the description try to make it descriptive but get they keywords in there, don't make it too long mind. Try to use each keyword more than once, MSN seems to like that.
Your on page text should also contain your keywords, but not too often. Around 4% of text is ideal. You don't want to use too many keywords as Google can penalise sites for being spammy with keywords. If you can't adjust the on page text without sounding s**t then it's probably best to re-write it or just see how you do with the other changes.
So that's it, the basics of SEO
One more thing regarding links it to your site. I'm not convinced it matters so much now, but the link text linking in to your website helps considerably. An example of this is if you type "click here" in to google, Adobe appear number one. Just think of how many people link to Acrobat Reader with the link text "Click Here". Having relevent keywords on the page that is linking out to you will help also, so try and make it a relevent link rather than just a random place with millions of links and nothing else. Google can't penalise you for having crap links in as that would make it very easy to sabotage other people's rankings, however you probably won't gain anything from crap links.
There is a plugin for firefox called Search Status which has a few useful features, it displays the pagerank of every page and allows you to see what the keyword density of your page is and a few other bits and pieces.
Regarding Google Adwords - I know you said you can't afford it but it is great for driving traffic, even if you don't spend loads. The only real secret to getting better click through rates in Adwords is to not have one advert and a s**t load of keywords for that advert. Have lots of adverts with ad text that is actaully relevent to the keyword you want to capture. Rankings in Google Adwords are based on how much you want to spend. Google does however take in to consideration the amount of clicks the advert gets. So if you were bidding 25p per click and someone was bidding 27p you could actually get higher than him by getting more clicks than his advert.
Hope this helps...