Clarify you'd be buying multiple singles.
Nicer error message for no through ticket, include via in all link.
Check for failed jobs to prevent infinite refresh.

Needs error handling.
Make three-letter codes in URL case-insensitive.