All of these play a part.
Some people say backlinks make a big difference, but in my own experience its not a major one. I`ve got many of my own sites and pages at number 1 with 1 backlink, and thats it. Saying that though, you shouldn't just dismiss them as they can have a bearing, and will also increase your non google traffic. It also depends on the type of site you run.
Having your keyword in the page url is a good thing, as it tells google that the page is likely to be very relevant to that keyword.
Keywords play a big part, and although you can get penalised for having too many, the limit seems to have increased lately. This is a very difficult area though, because no one knows how many "too many" is, theres no exact figure. Adding a few and waiting for a while to see what happens can be a good idea.
Having a good title and meta description for the page does a fair bit of good, and also include a keywords tag. Some people say not to bother, but it makes you focus on your keywords for the page and have a think about them, which is a good thing, and some search engines do still use them. Its important to make your title, description and keywords different for each page, don't just use the same for all your pages (although this tends to happen more with the keywords tag).
A H1 tag at the top of your page, featuring your keyword and relevant description can help.
Remember though, to write for humans, and not specifically for search engines. It tends to be the case that if you have good readable content, the search engines will like it too (and this is the way it should be). The only exception is to use your keyword a number of times. When humans write they have a habit of not repeating the same words, and using different words to describe the same thing. This does make it more readable, but in this case use the same keyword for the description of what ever it is each time.
SEO is a very difficult subject, as a lot of it comes down to the particular site, and how its coded, theres no one solution that fits all. If you give an example of one page that isn't where you want, and the keyword you want it to move up then you could get more specific advice.
Just had a quick scan through your site, and one thing I would do is to move all the Javascript out of your page and into a separate file, and then include that file on the page. This cuts down the amount of text on the page, so that your content makes up a bigger percentage of the page in terms of text. It also means that it will be cached by browsers, and won't have to be downloaded each time, which will speed up page loading times. It's a very simple tweak, and well worth doing.
Add in an H1 (heading) tag at the top of the body HTML, with the product name (if thats what you want to optimize on). This confirms to google what the page is about. You may not actually want it to display in that location, but you can use CSS to make it appear somewhere else on the page.