Thank you. That brought me a bit further, but I'm still in trouble. The form is created with zen_draw_form and does have the hidden security token when it fails. Additional observations... it only happens when a new session begins, i.e. when a new securityToken is encountered (a second "add to cart" will succeed), and only if there's already a cookie from a previous visit. But then it does happen consistently. It happens in Chrome and Opera, but not Firefox or Safari. Should you wish to see for yourself, the store (under development) is at astralisproductions.com/purchase/ with username/password astralis/Aurora (it may ask for it twice, not sure why that is happening).
For troubleshooting I'd like to know where the redirect to the timeout page happens. I installed the Notifier Trace plugin, and the result for a failed "add to cart" is:
Code:
2014-09-30 17:58:39 [main_page=product_info] NOTIFIER_CART_INSTANTIATE_START
2014-09-30 17:58:39 [main_page=product_info] NOTIFIER_CART_RESET_START, array (
'param2' => false,
)
2014-09-30 17:58:39 [main_page=product_info] NOTIFIER_CART_RESET_END
2014-09-30 17:58:39 [main_page=product_info] NOTIFIER_CART_INSTANTIATE_END
2014-09-30 17:58:40 [main_page=time_out] NOTIFY_HEADER_START_LOGIN
(...etc.)
So as far as I can tell, it calls function shoppingCart(), then redirects. I haven't been able to identify where that happens, except, it's before application_top.php is executed (because a check reveals that main_page=time_out when application_top begins).