Related articles: Shopping at TRSI, a crash course for the uninitiated
, Saving more at TRSI, a skippable tutorial
This post is part of a collection that has forked from a discussion in the Retail forum.
Since this is complained about a lot and, in fact, was experienced by the very person for whom the raw versions of these articles were originally written, I have decided to explain, in "how to not break anything" and "how to do it right" forms, TRSI's shopping cart mechanics. I can say, with absolute honesty, that since I figured out how the carts work (more than eight months now), I have never "lost" a cart for mysterious reasons, so I use tabs and roam without fear.
First, how to shop without breaking anything
. If the words "cookie" and "server session" mean nothing to you in an online context, stop reading after this section.
TRSI's online store software is functionally dumb (and old enough that preparations are underway for its replacement). Unless you access product pages and store resources, like your shopping cart, by using the references it explicitly provides, it has no idea what you've done previously. This is why, for example, clicking on the sale banners on TRSI's main page or clicking a link to a product found on these forums causes your cart to "disappear". An analogy that explains this is the following: as far as the shopkeeper, an elderly old man with a short attention span, is concerned, when you walk in through the door, you must be a new customer, because customers in the store have already walked in, so you can't possibly be carrying any merchandise.
There are two ways you can avoid this problem without learning anything technical about how TRSI's store works. First, you can draft an entire order, item by item, accessing product pages however you wish, in your Saved Items section and then, once they're all saved, iteratively move each one to your cart and check out. Or you can do something a little fancier, but also a little more involved.
The fancy option is pretty much adhering to the "don't touch anything!" discipline you've doubtlessly been exposed to before. In this case, you can still touch things, but only
if the store lets you. To begin, open one new browser window (it doesn't matter what browser you prefer or whether it has tab support or not) pointed at any part of TRSI's store (you can an associate's referrer link to get to this point if you wish), then do the following until your order is complete:
- If you want to add an item to your cart, open its product page and purchase it as usual or click its 'order' link; you may use tabs if you wish. You may use your browser's back button or the 'Continue Shopping' link if you need to continue adding items.
- If you need to get a coupon code, feel free to load TRSI's main page and print-catalogue pages in a new browser window or tab, but, whatever you do, do NOT click any product links or the sale banner -- anything that takes you to the store is forbidden -- and make sure you close the new tab or window when you are done to avoid an accident.
- Do NOT make use of any links to the TRSI store found on AoD or any other site (or in IRC or IMs or whatever). If you want to access a product's page, use the 'Continue Shopping' links within the store until you have access to a search bar (NOT the search bar on TRSI's main page, since that's another entry point) or until you hit the main store index page, which is where you can access the dailies.
Basically, as long as you take care to never enter the store twice, you will not lose any carts. It just takes a little bit of diligence.
Second, how to do it right
. If you have not already done so, please read the preceding section -- the concepts about how TRSI drops or keeps carts at that high level are very much applicable here, and I won't actually advocate doing things differently from what I described there. Rather, I will tell you why
it works that way, and let you figure out how to make the most of the system. (And you can do some pretty nifty things once you understand how it works, such as maintaining several carts at once within a single browser process, though that's way beyond the scope of this article)
At its core, TRSI's store tracks customers using one identifier: the session string. This string is the bold part in the following URL fragment: "catalogmgr/1gnITiaobpP8EqCVsc
/order/shopping-cart/0/4/0/0/review/0"; it is generated randomly every time the store is accessed with an HTTP request (GET, POST, etc.) that either does not contain a session string or that contains a session string that is invalid due to expiration or lack of attached cookies. The vast majority of "lost" cart events result from people ignoring this detail and thereby having the store create a new session.
If you're familiar with basic web development, you should be wondering why the server can't just keep multiple sessions open per client if it works the way I described. And, actually, TRSI's store does do this. The problem is that there is another half to each customer's session: the store's cookie, generated each time a new session is created and bearing information that is always overwritten. Because this cookie is freshly baked every time the store is accessed in a manner that generates a new session, a user's cart-identification data will be lost any time this occurs, causing carts to be "abandoned" while still holding items until the next purge cycle occurs. (Of course, if you have a mechanism to manage multiple versions of cookies per site, you can have multiple carts)
Runtime (ephemeral) carts have nothing to do with user accounts, so you can freely use multiple browsers across as many systems as you'd like without losing anything. This means that it is safe to use a second browser (like Epiphany when already using Iceweasel, or Internet Explorer alongside Firefox, but not two Firefoxes on the same system as the same user because they would share cookies) to navigate the store while your first one builds an order. You could also splice product information from one browser's URLs into URLs in the other as long as the session string is left unchanged in the destination address.
Lastly, carts are marked inactive every two hours (supposedly, though I've found it to be more like 30 minutes), and carts that have not been re-marked active by user activity (any HTTP request suffices) after being flagged are purged every six hours, all based on a process that runs at fixed times during the day. As an example, consider the following series of events:
- 03:42 - you add a copy of the Nadesico thinpak to a new cart
- 04:00 - all open carts are flagged as inactive, including yours
- 06:00 - all carts marked as inactive, including yours because you have been AFK, are purged
- 06:00 - all carts that were not just purged are marked as inactive
- 16:53 - you return to find that your cart no longer exists
Note: These aren't the actual clock times, and the system probably uses a slightly different flagging mechanism, but this example should get the basic idea across.
In summary, sure, TRSI's carts have their rickety quirks and their wheels veer a little to the side when they're being pushed slowly, but if you don't push them too hard, they'll always get the job done, and you might even find that someone left a dollar inside the one you grab.
Oh, and I was also considering "they're creaky/they're they're quirky/they're altogether work-y/the shopping cart family" as an ender. Just so nobody else mentions it. MY IDEA! YOU CAN'T HAVE IT!