How can I add custom fields to the Fundraising purchase screen which will pass on to the pledges dat

I need to gather more information than just name, email address and amount when someone donates to my fundraiser. I need to also collect address, phone #, who referred them, and a text field used for engraving.

I know how to set up custom fields for the manual entry, but how can I add those as form fields on the site so when they click the SUBMIT button to go to PayPal, those extra fields are saved to the database along with the name, email, etc.