Firstly how are you getting the variables back looks like you are using QUERY_STRING. A better way would be to have the rewrite part of the code that you have.
You could replace
<td bordercolor='white' valign=bottom align=right>
<form action='addtocart.php'>
<font>Amount:</font><input type='text' name='amount' value='1' size=3><imput type='hidden' value='Cat 1'><imput type='hidden' value='29.95'><br>
<input type='submit' value='Add to Cart'>
</form>
</td>
with
<TD bordercolor="white" valign="bottom" align="right">
<INPUT type="button" value="Add to Cart" onclick="window.location='newitem.php?itemnumber=12345'">
</TD>
ok it doesnt send the quantity or the price but the price will be stored in your db anyway.
I would be tempted to store the cart as a session variable. say an array that holds the product code of the purchase.
i.e.
item[]=$itemnumber;
this line will add the current item number on the end of the array.
then when the time somes to send the email just use a standard form but set the order to be something like.
-- rest of email form --
<TEXTAREA name="order">
<?
$numofitems=count($item);
while ( --$numofitems > 0 )
{
echo $item[$numofitems]."\n";
}
?>
</TEXTAREA>
-- end of form --