I've recently created a new module for Drupal's Ubercart e-commerce solution that required me to add a new line item to the checkout process. It was a huge headache, as the documentation is incomplete, and there are no clear explanations/tutorials on how to do this process from start to finish. So I have decided to post the process here for three reasons:

  1. To save others from having to go through the same process of having to figure it all out like I did
  2. To save the process in a central area so that I can refer back to it myself!
  3. To get feedback on parts of the process I've done incorrectly, or to add parts that I may have missed