We're setting up a donation form in our Matrix system, using an Ecommerce Form and a SecurePay Direct Post Payment Gateway. (This will be our first foray into the use of Matrix's Ecommerce functionality.) It's going to be used as part of an email campaign to elicit donations from people in our 'Contacts' database. Each person in the database has a unique ID there.
The idea is to provide in the campaign email a link to a URL for the form, a URL that would include the unique ID somehow. So when the transaction is completed, the unique ID helps to speed up considerably the process of finding each contact's record in the database.
So we're looking to somehow pass each contact's unique ID as a value through the whole transaction process,
I was hoping to add the unique ID as part of the URL, e.g. something like http://payments.site.com.au/form?uniqueid=456UIJB, and then use a little Javascript to dynamically assign the unique ID as the value of a hidden field, which after a successful transaction then gets passed through and included in the email that goes to the database administrator. I've done something similar and reasonably successfully with a Custom Form with no Confirmation page (although I'll concede that it's not bulletproof).
However I find that this idea won't work with an Ecommerce form, for the following reasons:
- An Ecommerce form has to have a Confirmation page as part of the process (unlike my Custom Form, which doesn't have one).
- An Ecommerce form calls on the separate Payment Gateway form between its Confirmation and Receipt stages. The extra string in the URL representing the Contact ID disappears when the Payment Gateway form is displayed, and I can't figure out a way of getting the Contact ID to 'carry across' to the new form and come out in the resulting Recipient Email, the email that goes to the database admin.
I've tried a few edits in the code of the Confirmation page in particular, but to no avail.
So I was just wondering, has anybody come up against this kind of requirement before? If so, were you able to solve it, and how? Did you use some other method of dynamically passing through a value that you don't want the submitter of the form to see or enter, and that can't be added into the form 'manually'? If anybody would like to share the details of a solution, I would love to see them!
Sorry, this is probably not a very good explanation of the issue. But many thanks for any help or suggestions.
Cheers,
Steve