Forum Moderators: open
Cookie based shopping cart.
Search engine friendly, but not customer friendly. 'Please enable...' or 'Please update...' is a quick way to loose customers. Same for Javascript shopping cart.
Static site with simple order form
If you have a small number of products, or if the products lend themselves to being on one order page (linked from the search engine friendly product pages) then this approach is OK.
Product Id in HTTP QUERY_STRING
If you have enough PageRank then you might get away with URLs like /cgi-bin/products.cgi?id=52 but Googlebot is fairly reluctant to spider them. Can be masked by mod_rewrite or similar.
Session Id in HTTP QUERY_STRING
Bad idea in my opinion. In addition to robot unfriendly URLs, this can lead to duplicates.
Static catalogue and /robots.txt protected cart
Nice option. Use URL based sessions only when the customer adds something to the basket. Robots and casual visitors get the robot friendly URLs, and because they're just loading static pages the server load is minimal.
Hybrid
As above, but the static version uses the cart software with no session IDs (i.e. robot friendly URLs). The advantage is that those users who accept cookies can be tracked from entry to purchase (enabling comparison of conversion rates from various sources).