To allow for A/B testing on the donation confirmation page, we need to pass the URL "bucket" parameters from the donation page to the confirmation page
Acceptance criteria:
- When the user comes to the confirmation page, the A/B test bucket information is preserved.
Implementation notes:
3 ways to implement this (in order of increasing complexity and increasing "safety" of "personal data")
1. Store current bucket in SessionStorage. We'd need to check GDPR compliance, but a non-unique string ("a" or "b") should not be considered PII
2. Use URL parameters. The complexity here comes from the fact that we need to send a "Return URL" to the payment providers, generated in the Payment Bounded Context, that now needs more data from the outside. We might need to introduce a new interface as a dependency for all payment URL generators that would allow to pass URL parameters from the application layer to the payment use case. We also have to wait until PayPal changes (T329159) are done, which change the URL generation code.
3. Transform the Fundraising application (or at least the donation and confirmation page) into a Single-Page application. When the page and URL stays the same and the content of the page changes, all components can get the current A/B testing buckets from the URL, because the URL stays the same for all views of the page.