General Concepts

The way osCommerce is constructed looks a bit complicated at first, but once you learn its conventions, you can efficiently modify your cart quite extensively.
 
First, if you look at default.php in a text editor, you will see that the code is divided into sections. These sections are defined like this:
 
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
 
The code <!—sometext//--> defines the start of a specific section, and the code  <!—sometext_eof//--> defines the end of that section. This is important for those of us that do not read php or html code very well.
 
Example (from default.php):
 
<body marginwidth="0" marginheight="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
 
<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
  <tr>
    <td width=" <?php echo BOX_WIDTH; ?>" valign="top">
         <table border="0" width=" <?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
 
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
 
Above, php code is separated from the html with <?php at the beginning of the code, and ?> at the end. Knowing this, you can safely edit the html without breaking any of the core PHP code.
 
In the above example, you can see the conventions in action. First, you see a standard html <body> tag followed by the section divider <!—header//-->. Then, in yellow, I have highlighted the <?php and ?> tags, which offset the php command that is between them, in this case, telling the server to require header.php before the parsing any more of the file default.php. And finally, the closing of the section using <!—header_eof//--> . Note how this is repeated in the subsequent sections of code, body and left navigation. Understanding the above convention is critical to editing the look of osCommerce, and it is used in every file in osCommerce.