[ANN] Go Go Gadget - A Rails ecommerce site released today

I’ve just completed my first Ruby on Rails project, an online store for
electronic gadgets including digital cameras, MP3 players and PDAs.
It’s for Australian shoppers only, but everyone can take a look and
browse through!

http://www.gogogadget.com.au

All feedback, comments, etc are welcome.

Cheers,
Dan

Nice job Dan. Do you plan on having transactions processed through a
PayPal account “forever” or is this just a first step? Also search
results page could be pluralized depending on the number of result(s).
Good luck.

Have you read the Agile book?
There’s a nice chapter in it that explain why it’s a bad thing to use
GET to add/remove items from a cart…
Wait until your web site is been hit by robots and you’ll see what they
mean…

PS: You left some commented Rails code in your html, not sure you can
really break anything with it but it’s not very advisable to do so.

Dan,

Looks great! As one that has a Paypal merchant account and is building
an e-commerce site I appreciate any advice you can give on including
paypal functionality into the site. How did you achieve it? Did you use
the Paypal Generator? Thanks for the help. Keep up the awesome work!

  • Robert D.

Dan,

Also, how did you implement the “featured product”? Thanks for the fyi.

  • Rob D.

Ved Bew wrote:

Nice job Dan. Do you plan on having transactions processed through a
PayPal account “forever” or is this just a first step? Also search
results page could be pluralized depending on the number of result(s).
Good luck.

Hi Ved,

PayPal is definitely a first step. My initial design used the PayPal
backend API which meant that the outside processing was invisible to the
user, but unfortunately they only support USD as the currency, so I had
to change the design on the last day before release. Now that’s agile
Rails for you!

In Australia, we are really lacking in technology when it comes to the
banking industry. To have the processing all done on the backend is
going to be a substantial up front cost, so I’ve put it off until I can
generate some revenue.

Cheers,
Dan

Gael P. wrote:

Have you read the Agile book?
There’s a nice chapter in it that explain why it’s a bad thing to use
GET to add/remove items from a cart…
Wait until your web site is been hit by robots and you’ll see what they mean…

Hi Gael,

Could you expand a bit more on this? I do have the agile book and used
it heavily as this is my first Rails app. If you could give some code
examples, that would help a lot.

PS: You left some commented Rails code in your html, not sure you can
really break anything with it but it’s not very advisable to do so.

Thanks for the heads up. I’ve taken it out.

Cheers,
Dan

Looking good. Here’s a couple UI comments for you.

You’ve obviously optimized for 1024 x 768 but I like the way the screen
collapses down to 800 x 600. In particular the reflective logo works
well for the overlapping menu.

I would include the blue menu item circles in the menu link. They are an
obvious target and draw people to click on them.

The search field is only obvious because you have the word search in it.
I think I’d stick with convention here; say a white text field with a
blue border. The solid color is also so prominate that it competes with
and draws away from the browsing links above.

Don’t know if it’s just me or the system but if I do a search, drill
into an item details, and then use the back button, I get a page expired
error. You’ve got bread crumbs but you have to count on people using
built in browser navigation.

The bread crumbs have few interrelated issues. 1) They don’t stand out
as bread crumbs until you get all the way to the product details. 2)
They’re incomplete (don’t contain top levels) so I can’t use them to do
all my navigation within a list of products. Actually, now that I look
at them again, at the upper levels of branch I’m not sure what they are:
data pivots or bread crumbs. For a large catalog you’re probably going
to want both. For now I’d suggest making then bread crumbs.

Looks like your fonts are hard coded. Not good for accesibility.

On your detail pages you have link/tabs for Overview, Technical Details,
and Reviews. Some of these don’t have content. I’d only display the link
if it has content and if only one tab has content I might not display
the links/tabs at all.

I like that you change the View Cart link when there’s items in your
cart. Right now it looks like it goes back to the original style after
you’ve visited the shopping cart. It’s a great detail, I’d keep the
style change whenever there is something in the cart.

Not taking the user to the shopping cart after they’ve added something
is risky; particularly in a consumer application. First I’d reconsider
that and take the user to chart when they add an item but if you keep it
the way it is I would beef up the “Your item’s been successfully added”
message. It does not jump out at you and you’re definitely left wonder
if you did add the item to the cart.

You should let people edit their orders in the shopping cart. Change
quantity and remove items.

I got a 404 error when I tried to view your privacy policy from the
footer.

Oh wow. View Cart isn’t on the menu all the time. I’d have it there all
the time with an empty shopping cart page. It’s definitely a part of
your app you want to build location recognition for all the time.

Anyway my quick $.02. I hope some of it was helpful. As a newbie who’s
working on, but yet to deploy, my first application I love seeing the
work of other people out there doing it. Thanks for showing us your
work.

William

Robert D. wrote:

Dan,

Looks great! As one that has a Paypal merchant account and is building
an e-commerce site I appreciate any advice you can give on including
paypal functionality into the site. How did you achieve it? Did you use
the Paypal Generator? Thanks for the help. Keep up the awesome work!

Hi Robert,

Firstly, if you can do USD currency, look at the PayPal API plugin for
Rails. You can find it at:

It works really well, although you’ll need quite a bit of technical
skill to work it in to your app. Some of the doco is not accurate also,
but if you need a hand, just post to the list and copy me in to make
sure I see it.

I actually implemented the existing PayPal functionality by hand using
the O’Reilly book “PayPal Hacks” as my guide, which I borrowed from a
friend. Lucky I had this as I had to use it on the last day before the
release to implement the current design.

In answer to your other question, to implement the featured thing, all I
did was create another table/model “features” which just had the columns
“id” and “product_id” I then just place the product ids I want featured
in the table and iterate over the rows to get the products I want. Does
that make sense? I think I missed some steps but that was the general
idea.

Cheers,
Dan

If you do some digging around, you’ll find a fairly recent incident
where Google Web Accelerator was causing people’s content to disappear
from sites like backpackit.com (37signals).

Some web accelerators ‘prefetch’ content on the page. So imagine a
scenario where a customer visits their shopping cart. The web
accelerator visits some of the links on the page… some of which
might be “remove” item links. In the background the user’s cart is
being cleared out! So imagine the surprise when they click check out
and all the products are gone.

So in short, put anything that changes the state of the application
behind a POST…

Not very helpful, but nice work!

Wow! Thank you William for going through the site so thoroughly. This
stuff is gold!
In case anyone wants to follow along, the URL again is
http://www.gogogadget.com.au (saves you looking back over the thread).

William LeFevre wrote:

Looking good. Here’s a couple UI comments for you.

You’ve obviously optimized for 1024 x 768 but I like the way the screen
collapses down to 800 x 600. In particular the reflective logo works
well for the overlapping menu.

I did try my best to make the site accessible in 800x600, just in case.

I would include the blue menu item circles in the menu link. They are an
obvious target and draw people to click on them.

I thought the same thing actually, so good point. I’ll include it in
the todo list.

The search field is only obvious because you have the word search in it.
I think I’d stick with convention here; say a white text field with a
blue border. The solid color is also so prominate that it competes with
and draws away from the browsing links above.

Thanks for the suggestion, I’ll try it out and see how it looks.

Don’t know if it’s just me or the system but if I do a search, drill
into an item details, and then use the back button, I get a page expired
error. You’ve got bread crumbs but you have to count on people using
built in browser navigation.

Oooh, this sounds nasty. Can any more experienced Rail-ers comment on
this? Admittedly I didn’t use the back button much while I was
developing the site. It looks as though I may have implemented it
wrong. This is my first Rails app, so most of the time I felt like I
didn’t really know what I was doing! :wink:

The bread crumbs have few interrelated issues. 1) They don’t stand out
as bread crumbs until you get all the way to the product details. 2)
They’re incomplete (don’t contain top levels) so I can’t use them to do
all my navigation within a list of products. Actually, now that I look
at them again, at the upper levels of branch I’m not sure what they are:
data pivots or bread crumbs. For a large catalog you’re probably going
to want both. For now I’d suggest making then bread crumbs.

Good point on the top level link, I’ll add that definitely. The bread
crumbs/data pivots were fairly half-way done, I didn’t spend a lot of
time on them. I’ll have to go back over it and put a bit more thought
into the design. The site was already delayed by three weeks, so I had
to drop anything that wasn’t super critical.

Looks like your fonts are hard coded. Not good for accesibility.

I thought that I did implement this correctly, but I’m not too much of
an expert. I set my initial font size as 10pt (I think it was 10) and
then used % sizing for each change from there. How should I set my
initial font size for accessibility?

On your detail pages you have link/tabs for Overview, Technical Details,
and Reviews. Some of these don’t have content. I’d only display the link
if it has content and if only one tab has content I might not display
the links/tabs at all.

I agree totally. It was on my list, but I didn’t get time. I will do
it very soon, I don’t like it either.

I like that you change the View Cart link when there’s items in your
cart. Right now it looks like it goes back to the original style after
you’ve visited the shopping cart. It’s a great detail, I’d keep the
style change whenever there is something in the cart.

Cool. I’ll have the style change, but keep the link there all the time
as per your comment further below.

Not taking the user to the shopping cart after they’ve added something
is risky; particularly in a consumer application. First I’d reconsider
that and take the user to chart when they add an item but if you keep it
the way it is I would beef up the “Your item’s been successfully added”
message. It does not jump out at you and you’re definitely left wonder
if you did add the item to the cart.

Yeah, this one was interesting. Originally I was considering having a
little box somewhere to show a brief box of what is in the cart (ala
Apple Store). That may solve it. Going to the cart however may work, I
guess I was thinking that I wanted to encourage further shopping and not
suggest to checkout straight away. I’ll have a think about it all,
including the beefing up of the message.

You should let people edit their orders in the shopping cart. Change
quantity and remove items.

Definitely. A must do.

I got a 404 error when I tried to view your privacy policy from the
footer.

Oooh, thanks for that one. I’ll fix it.

Oh wow. View Cart isn’t on the menu all the time. I’d have it there all
the time with an empty shopping cart page. It’s definitely a part of
your app you want to build location recognition for all the time.

Agreed.

Anyway my quick $.02. I hope some of it was helpful. As a newbie who’s
working on, but yet to deploy, my first application I love seeing the
work of other people out there doing it. Thanks for showing us your
work.

No worries! Thank you for all the valuable feedback, I really
appreciate it. Please pass on the details of your app when it’s
finished so I can check it out.

Cheers,
Dan

On 27/03/06, Dan H. [email protected] wrote:

examples, that would help a lot.
If you have the Agile book then you want to look at Chapter 16, last
part:
16.9 The Problem with GET Requests, Page 324

Gael

Dan my pleasure. Your post caught me at a good time.

Regarding Fonts
Set your base font size to something dynamic; either ems or percentages.
I used to favor percents but now I use ems. I usually use .85em or .9em
as my base.

Regarding Shopping Cart Behavior
Shopping cart interaction is one of the fun and crucial interactions
every ecommerc site needs to figure out. You want the interaction to
make your customers feel secure and comfortable while at the same time
selling them more stuff.

William

Mr. Dan H.,

Nice job on the shopping cart.

I will presume after all of the free marketing and helpful assistance
that the list has just given you in testing and development advice,
that we’ll see a nice write-up on how you went about constructing the
shopping cart and/or will have some helpers/modules/etc pushed back at
us? :wink:

Dave

On 3/27/06, William LeFevre [email protected] wrote:

I think I’d stick with convention here; say a white text field with a
They’re incomplete (don’t contain top levels) so I can’t use them to do
the links/tabs at all.
message. It does not jump out at you and you’re definitely left wonder
your app you want to build location recognition for all the time.


Posted via http://www.ruby-forum.com/.


Rails mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails

David Andrew T.
http://dathompson.blogspot.com

David Andrew T. wrote:

I will presume after all of the free marketing and helpful assistance
that the list has just given you in testing and development advice,
that we’ll see a nice write-up on how you went about constructing the
shopping cart and/or will have some helpers/modules/etc pushed back at
us? :wink:

Dave

Hi Dave,

Definitely. At the moment I’m still learning a lot about Rails, but I
am considering either contributing to Substruct or doing some kind of
Rails blog. I think the Rails blog is a good idea seeing as I came
across many stumbling blocks that had me hitting my head against a
wall. Fortunately I worked through them, but it would have been nice to
find some helpful doco around. I really find some of the doco lacking
in Rails land. That’s too be expected I guess since we’re only at 1.1
so far.

Either way I need to find the time as I’m working full time as well as
starting up a company at the moment. The future however looks good as
far as contributing to the Rails community. When my company starts to
pick up momentum, I’ll be creating a few more Rails apps and I’ll have
more time to do it in.

Thanks for the nudge though, it helps me keep going after a heavy
weekend of coding.

Cheers,
Dan