ご報告ありがとうございます。
PHP にありがちな比較のミスをやっていました。
次の修正で直ると思います。
--- receipt.php.~1.36.~	2010-06-27 13:12:30.000000000 +0900
+++ receipt.php	2010-08-18 22:42:29.033368471 +0900
@@ -326,7 +326,7 @@
 	foreach (unserialize_text($order['info']) as $lab => $v) {
 	    if ($ok) {
 		if (isset($nitem[$lab])) {
-		    if ($nitem[$lab]!="") {
+		    if ($nitem[$lab]!=="") {
 			if (preg_match('/^-?\d+$/', $v)) {
 			    $nitem[$lab] += $v;
 			} else {
@@ -360,7 +360,7 @@
 			   array_keys($citem)) as $ki) {
 	    unset($citem[$ki]);
 	}
-	if ($v!="") $citem[$k.$sl] = $v;
+	if ($v!=="") $citem[$k.$sl] = $v;
     }
     $xoopsTpl->assign('list', $list);
     $xoopsTpl->assign('confirm', $confirm);