The scenario is a "front-desk" form for new member signups. Organisation takes cash / card for payment on the day, so CiviCRM is not processing payments, and payments should be recorded as completed. Desk staff will use a form to record the new member's contact details, take payment, and initialise the membership.
The form should:
- Require first & last name & email
- Record amount taken for membership (may be weekly or annual fee)
- Save the new Contact
- Save the new Membership with 12 month expiry
- Save the initial Contribution and flag as completed
- If weekly option selected, perhaps create a pledge?
- If possible, option to select completed or pending status (latter for those setting up AP payment)
- Require minimal steps for entry (eg skip confirmation screen, don't require billing address etc)
The org will be offering self-service signups to the public via their website at the same time, but the ideal UX for staff vs new members is different so these are different requirements.
It's possible to use CiviCRM's regular Contribute form to achieve most of this, and there's a special
cid=0 parameter (
civicrm/contribute/transact?cid=0&id=X) to use a Contribute form to sign up a user who is not the logged in user - but that means getting staff to use a public-accessible Contribute form, and lacks the ability for staff to record the payment as completed.
Can CiviCRM Profiles record a new contact, contribution and membership in one form submission? How else can this best be implemented?