Modify PHP for Orders
Posted: Mon Nov 19, 2012 8:47 am
I had a programmer, a really bad one, modify a version of OpenCart to be an online ordering engine for restaurants. When the order comes in with options selected by the consumer, they take up way too much room on the 3.25" wide receipt tape that comes through. Here is the code for the email with the order:
Here is the major part of the problem, let's say a customer orders a Turkey Sandwich, like the one in the attached image, they want the size to be 12", they want to add lettuce, Jalapenos and Broccoli, they want Swiss and Cheddar cheese, and they want to add Oil, Mayo and Yellow mustard. As you can see in the image there is a title for each option selected under each option title on a separate line. I need the order to come in and look like the order on the right of the image below with the:
Option Title: choice, choice, choice, etc.
Option Title: choice, choice, etc.
To be clear, the left hand side of the image is what gets printed now, the right hand side of the image is what I want the order to print like.
I would ideally like to have a line separate each menu item, and for the output to look like the Turkey with the option followed by: and comma separated values on the same line, however, if this is a problem in a table and the text won't wrap properly, I could certainly save a lot of space by doing it like the Wings with the option title: and then the option choices on the line below as long as they wrap if the text is too long for the printer width. but the critical part is getting the order to print correctly. Any help is greatly appreciated
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><?php echo $title; ?></title>
</head>
<body>
<table style="font-family: Arial, Verdana,sans-serif; font-size: 11px; color: #000000; width: 212px;">
<tr>
<td align="left"><a href="<?php echo $store_url; ?>" title="<?php echo $store_name; ?>"><img src="<?php echo $logo; ?>" alt="<?php echo $store_name; ?>" style="border: none;" ></a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left"><?php echo $text_greeting; ?></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left"><?php echo $text_order_id; ?> <span style="color: #000000; font-weight: bold;"><?php echo $order_id; ?></span><br />
<?php echo $text_date_added; ?> <?php echo $date_added; ?><br >
<?php echo $text_payment_method; ?> <strong><?php echo $payment_method; ?></strong><br />
<?php echo $text_shipping_method; ?> <strong><?php echo $shipping_method; ?></strong><br />
<br />
<?php echo $text_email; ?> <strong><?php echo $customer_email; ?></strong><br />
<?php echo $text_telephone; ?> <strong><?php echo $customer_telephone; ?></strong><br />
<?php echo $text_ip; ?> <strong><?php echo $customer_ip; ?></strong>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><table style="width: 100%; font-family: Arial, Verdana,sans-serif; font-size: 11px; color: #FFFFFF;">
<tr style="text-transform: uppercase;">
<th style="text-align: left; padding: 0.3em;"><?php echo $text_shipping_address; ?></th>
<th style="text-align: left; padding: 0.3em;"><?php echo $text_payment_address; ?></th>
</tr>
<tr>
<td style="padding: 0.3em; color: #000;"><?php echo $shipping_address; ?></td>
<td style="padding: 0.3em; color: #000;"><?php echo $payment_address; ?></td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left"><table style="width: 100%; font-family: Arial, Verdana,sans-serif; font-size: 11px; color: #000000;">
<tr style="background-color: #NONE;">
<th align="left" style="padding: 0.3em; color: #000000;"><?php echo $column_product; ?></th>
<th align="right" style="width: 15%; padding: 0.3em; color: #000000;"><?php echo $column_price; ?></th>
<th align="right" style="width: 15%; padding: 0.3em; color: #000000;"><?php echo $column_quantity; ?></th>
<th align="right" style="width: 20%; padding: 0.3em; color: #000000;"><?php echo $column_total; ?></th>
</tr>
<?php foreach ($products as $product) { ?>
<tr style="background-color: #NONE;">
<td align="left" style="font-weight: bold;"><?php echo $product['name']; ?></td>
<td align="right"><?php echo $product['price']; ?></td>
<td align="right"><?php echo $product['quantity']; ?></td>
<td align="right"><?php echo $product['total']; ?></td>
</tr>
<?php foreach ($product['option'] as $option) { ?>
<tr style="background-color: NONE;">
<td style="font-weight: bold;"><?php echo $option['name']; ?>:</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr style="background-color: NONE;">
<td><?php echo $option['value']; ?></td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<?php } ?>
<tr style="background-color: NONE;">
<td align="left" style="font-weight: bold;"><?php echo $column_instructions; ?></td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr style="background-color: NONE;"><td colspan="4"><?php echo $product['instruction']; ?></td></tr>
<?php } ?>
<tr>
<td> </td>
</tr>
<?php if ($comment) { ?>
<tr style="background-color: NONE;">
<td align="left" style="font-size: 11px; font-weight: bold; color: #000000;"><?php echo $text_comment; ?></td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr style="background-color: NONE;">
<td align="left" colspan="4"><?php echo $comment; ?></td>
</tr>
<?php } ?>
<tr>
<td> </td>
</tr>
<?php if(isset($text_delivery)):?>
<tr style="background-color: NONE; color: #000000;">
<td align="left" colspan="1" style="font-size: 11px; font-weight: bold;"><?php echo $text_delivery ?></td>
<td colspan="3" align="right"><?php echo $delivery_date?> <?php echo $delivery_time?></td>
</tr>
<?php endif?>
<tr>
<td> </td>
</tr>
<?php foreach ($totals as $total) { ?>
<tr>
<td style="background-color: NONE; font-weight: bold; padding: 0.3em; text-align: left;" colspan="3"><?php echo $total['title']; ?></td>
<td style="background-color: NONE; padding: 0.3em; text-align: right;"><?php echo $total['text']; ?></td>
</tr>
<?php } ?>
</table></td>
</tr>
<?php if ($customer_id) { ?>
<tr>
<td align="left" style="color: #000000; font-size: 11px; font-weight: bold;"><?php echo $text_invoice; ?></td>
</tr>
<tr>
<td align="left"><a href="<?php echo $invoice; ?>"><?php echo $invoice; ?></a></td>
</tr>
<?php } ?>
<tr>
<td align="center" style="font-size: 10px; border-top: 1px solid #069;"><a href="<?php echo $store_url; ?>" style="color: #069; font-weight: bold; text-decoration: none;"><?php echo $store_name; ?></a> <?php echo $text_powered_by; ?> <a href="http://www.opencart.com" style="text-decoration: none; color: #374953;">OpenCart</a></td>
</tr>
</table>
</body>
</html>Option Title: choice, choice, choice, etc.
Option Title: choice, choice, etc.
To be clear, the left hand side of the image is what gets printed now, the right hand side of the image is what I want the order to print like.
I would ideally like to have a line separate each menu item, and for the output to look like the Turkey with the option followed by: and comma separated values on the same line, however, if this is a problem in a table and the text won't wrap properly, I could certainly save a lot of space by doing it like the Wings with the option title: and then the option choices on the line below as long as they wrap if the text is too long for the printer width. but the critical part is getting the order to print correctly. Any help is greatly appreciated