I'm not sure I fully understand the reasons behind the question, but a bit of info you need to be aware of here:
And the best way to do this is to create a session var for that user by which you can filter the query so only show their orders.
In review of the below, you may understand it's not so much "the best" way but "most convenient" and still has areas in which it may break.
I know theres pass data via url but visibility in the browser negates some uses.
How so? Query strings are always reliable.
You need to know that sessions are inherently
cookie based. When you start a session, the PHPSESSID cookie is set in the browser. Try it sometime, start a session, then look for and delete your PSPSESSID cookie. Your session will be gone.
You can inherently fall back on the query string if a cookie cannot be set
script.php?PHPSESSID=1234567890
but most programmers don't do this. This demonstrates two things: query strings will always be more reliable than cookies, and sessions are only as good as cookies or the programmer with the foresight to build in degradation without cookie support.
I know this seems to be an esoteric point for most people, but more and more users are being hacked. Once this happens, they go into total paranoia mode. They don't understand the technology, and learn to fear everything, disabling cookies, Javascript, Flash, and anything else someone tells them will protect them. Additionally, many devices - search engines among them - can't execute Javascript, Flash, and don't support cookies. While saying "that's only .001% of our visitors" gets it off your desk, that .001% adds up to a lot of people and a lot of money, and their dollars are as good as anyone else's.
So yes, while sessions are the most common and convenient way, you always, always, always have to include Murphy's Law into anything you do.