When you begin to customize your Ubercart installation to make it work or look just a little differently, it can be quite tempting to simply open up the module files and add your fixes. However, altering the module files (of Ubercart or Drupal) is considered bad practice and should be avoided if at all possible. The primary reason is that any changes you make will have to be recreated when you update to the latest version of the code. With the rapid pace of Ubercart development, this can be quite crippling.
An alternative solution is to take advantage of the Drupal module system on which the Ubercart package has been built. Without going into too much detail about the actual coding needs, we can point out that Drupal lets you "hook" into any form, page, or themed element display to alter the way things work or look. This means that instead of altering core modules, you should create a module specific to your site (I usually name mine after the site itself) and write code that alters your installation in the appropriate places.
You will need to familiarize yourself with Drupal's APIs to be any good at this, but it will pay off in the long run. You should take particular notice of the little gem that will let you add to or take away from the functionality of any form on your site, hook_form_alter().
Custom modules will require both a .info and a .module file. You can copy another module's .info file as a template and modify it for yours. You should put the .info and .module files in the same directory. We recommend storing these in a modules subdirectory of your site's directory in /sites or the /sites/all directory.

