Skip to content
Ben Lobaugh edited this page Apr 2, 2013 · 2 revisions

Payment Flow Process

  1. Fill in order form and submit
  2. Check for and apply valid coupons
  3. Collect attendee data ( optional - happens here or after payment is processed )
  4. Collect payment info and submit to payment gateway
  5. Process payment
  6. Complete checkout

1. Fill in order form and submit

User visits order form, chooses a package, optional adds a coupon and submits order

  • Shortcode displays available tickets
  • Coupons are "applied" via JavaScript. DOES NOT subtract total from actual payment. UI feature only

Create draft payment and draft attendees

2. Check for and apply valid coupons

If user has submitted a value for a coupon ensure it exists and is valid for this event/package

  • Is coupon valid?
  • Change order total
  • DO NOT subtract coupon from pool yet! Done after payment is complete

New status: pending

3. Collect attendee data

This is optional, kind of. This step either happens as step 3 OR after step 5

  • Show the form listing fields for all attendees
  • Save data in the draft attendee CPT

New status: pending or publish ( depends on which step it follows )

4. Collect payment info and submit to payment gateway

Gateway is in control

  • Show payment for from gateway
  • Submit for processing

New status: processing

5. Process payment

Gateway is in control. This step allows the gateway to handle interacting with the payment system.

  • Allow the gateway to do what it wants

New status: publish

6. Complete checkout

Note: If attendee data has not yet been collected the status will change to coll_att_data_post and the payment page refreshed to collect attendee data.

At this point the system assumes that the gateway has completed the payment to a satisfactory conclusion.

  • Subtract tickets from available pool of tickets
  • Publish attendees
  • Subtract coupon from pool
  • Email payment receipt + link to payment to payee
  • Email attendee links to purchaser
  • If attendees emails have been provided send attendee a link to their ticket

Possible statuses

  • draft
  • pending
  • processing
  • published
  • coll_att_data_pre
  • coll_att_data_post

The last two kind of suck. Probably they can be updated into one with a check on the option of when to collect attendee data.

Supporting docs