(**) This is because as soon as it's used, the ekey in the URL is invalidated by automatically removing it from the cscart_ekeys table in the database; regardless of its TTL value. (I've checked this.)
TTL does not matter in case you use the 'ekey' link twice (in different browsers, for example). At the moment when you extract the 'ekey' data from the database, it will be removed from it, even if TTL is not expired.
This ekey functionality deals not only with Orders, but, for example, for downloading attachments to orders (when a product is down-loadable). And a customer should not be able to use this download link several times.
You can modify the 'fn_get_object_by_ekey' function in the 'app/functions/fn.common.php' file: add a new parameter which will trigger the removal or not depending on its value. And set this parameter in the 'fn_get_object_by_ekey' function calling in the 'app/controllers/frontend/orders.php' file.
I should say it again, this function (fn_get_object_by_ekey) is called not only when you track an order, but in some other cases which require only single request via 'ekey' functionality. If it is OK, you can comment the deletion.
I should say it again, this function (fn_get_object_by_ekey) is called not only when you track an order, but in some other cases which require only single request via 'ekey' functionality. If it is OK, you can comment the deletion.