Login   Register  
PHP Classes
elePHPant
Icontem

File: db_cart_checkout_stock_example.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Olaf Lederer  >  DB Cart Class  >  db_cart_checkout_stock_example.php  >  Download  
File: db_cart_checkout_stock_example.php
Role: Application script
Content type: text/plain
Description: example file to check out an order with stock values (products)
Class: DB Cart Class
Manage a shopping cart stored in a MySQL database
Author: By
Last change:
Date: 9 years ago
Size: 7,028 bytes
 

Contents

Class file image Download
<?php 
require($_SERVER['DOCUMENT_ROOT']."/classes/db_cart/db_cart_4stock.php");

// custom formfield function more at http://www.finalwebsites.com/
function create_form_field($formelement$label ""$db_value ""$length 25) {
    
$form_field = ($label != "") ? "<label for=\"".$formelement."\">".$label."</label>\n" "";
    
$form_field .= "  <input name=\"".$formelement."\" type=\"text\" size=\"".$length."\" value=\"";
    if (isset(
$_REQUEST[$formelement])) {
        
$form_field .= $_REQUEST[$formelement];
    } elseif (isset(
$db_value) && !isset($_REQUEST[$formelement])) {
        
$form_field .= $db_value;
    } else {
        
$form_field .= "";
    }
    
$form_field .= "\">\n";
    return 
$form_field;
}
function 
create_text_area($formelement$label ""$db_value ""$rows 5$cols 20) {
    
$form_field = ($label != "") ? "  <label for=\"".$formelement."\">".$label."</label>\n" "";
    
$form_field .= "  <textarea name=\"".$formelement."\" cols=\"".$cols."\" rows=\"".$rows."\">";
    if (isset(
$_REQUEST[$formelement])) {
        
$form_field .= $_REQUEST[$formelement];
    } elseif (isset(
$db_value) && !isset($_REQUEST[$formelement])) {
        
$form_field .= $db_value;
    } else {
        
$form_field .= "";
    }
    
$form_field .= "</textarea>\n";
    return 
$form_field;
}
// example data from the example page
$cust_no $_SESSION['custom_num'];
$cust_email $_SESSION['email'];
// use the DB constants or some diffenrent

$myCheckout = new db_stock_cart($_SESSION['custom_num']);

// cancel the order (with all rows and information) // this function be at the TOP ! 
if (isset($_GET['action']) && $_GET['action'] == "cancel") {
    
$myCheckout->cancel_order();
}
// update a single order row
if (isset($_POST['add']) && $_POST['add'] == "Update") { 
    if (
$myCheckout->check_against_stock($_POST['stock'], $_POST['quantity'])) {
        
$myCheckout->update_row($_POST['row_id'], $_POST['quantity']);
    }
}
// update shipment and process or go back to products
if (isset($_POST['submit'])) {
    
// first update eventually modified data
    
$myCheckout->update_shipment($_POST['name'], $_POST['address'], $_POST['postal_code'], $_POST['place'], $_POST['country'], $_POST['message']);
    if (
$_POST['submit'] == "Order now!") {
        
$myCheckout->check_out($cust_email); // place here the mail from your customer or a variable
    
} else {
        
header("Location: ".PROD_IDX);
    }
}
if (!
$myCheckout->check_return_shipment()) {
    
// get the external customer data here
    
$cust_conn mysql_connect(DB_SERVERDB_USERDB_PASSWORD);
    
mysql_select_db(DB_NAME$cust_conn);
    
// the exampple query for customer data (the default shipment address)
    
$cust_sql sprintf("SELECT name, address, postal_code, place, country FROM db_cart_example_customer WHERE cust_no = %d"$cust_no);
    
$cust_result mysql_query($cust_sql) or die(mysql_error());
    
$cust_obj mysql_fetch_object($cust_result);
    
$myCheckout->ship_name $cust_obj->name;
    
$myCheckout->ship_address $cust_obj->address;
    
$myCheckout->ship_pc $cust_obj->postal_code;
    
$myCheckout->ship_city $cust_obj->place;
    
$myCheckout->ship_country $cust_obj->country;
    
mysql_free_result($cust_result);
    
$myCheckout->insert_new_shipment();        
} else {
    
$myCheckout->set_shipment_data();
}
// show all rows in this order
$myCheckout->show_ordered_rows();
$search_in $myCheckout->get_order_num_string();
// reading art_no and stock from the database
$query_stock sprintf("SELECT art_no, amount AS on_stock FROM db_cart_stock_article_example WHERE art_no IN (%s) ORDER BY art_no"$search_in);
$res_stock mysql_query($query_stock);
while (
$stock mysql_fetch_assoc($res_stock)) {
    
$stock_array[$stock['art_no']] = $stock['on_stock'];
// end loop storing stock values into an array
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>DB_cart example page</title>
<style type="text/css">
<!--
label {
    width:100px;
    display:block;
    float:left;
    margin-left:20px;
}
table {
    border-collapse:collapse;
}
th {
    text-align:left;
    padding:5px 0 0 10px;
    border-bottom:1px solid #666666;
}
td {
    padding:5px 10px;
}
form {
    margin:0;
}
-->
</style>
</head>

<body>
<h2>DB_cart &quot;checkout&quot; expample</h2>
<p>Try on this page the methods you need during the checkout.</p>
<p style="color:#FF0000;font-weight:bold;margin:10px 0;"><?php echo $myCheckout->error?></p>
<?php if ($myCheckout->get_number_of_records() > 0) { ?>
<h3 style="width:480px;"><span style="float:right;"><a href="<?php echo $_SERVER['PHP_SELF']; ?>?action=cancel">Cancel all!</a></span>Your order:</h3>
<table>
  <tr>
    <th>Art. no.</th>
    <th>Product</th>
    <th>Price</th>
    <th>Amount</th>
    <th>on Stock</th>
    <th>Quantity</th>
  </tr>
  <?php foreach ($myCheckout->order_array as $val) { ?>
  <tr>
    <td><?php echo $val['product_id']; ?></td>
    <td><?php echo $val['product_name']; ?></td>
    <td align="right"><?php echo $myCheckout->format_value($val['price']); ?></td>
    <td align="right"><?php echo $myCheckout->format_value($val['price'] * $val['quantity']); ?></td>
    <td align="center"><?php echo $stock_array[$val['product_id']]; ?></td>
    <td>
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <input type="hidden" name="row_id" value="<?php echo $val['id']; ?>">
        <input type="hidden" name="stock" value="<?php echo $stock_array[$val['product_id']]; ?>">
        <input type="text" name="quantity" size="5" value="<?php echo $val['quantity']; ?>">
        <input type="submit" name="add" value="Update">
      </form>
    </td>
  </tr>
  <?php // end foreach loop ?>
</table>
<p>Total value of this cart: <b><?php echo $myCheckout->format_value($myCheckout->show_total_value()); ?></b></p>
<p>Total value VAT: <b><?php echo $myCheckout->format_value($myCheckout->create_total_VAT()); ?></b></p>
<p>A copy of this orderform will be send to: <b><?php echo $cust_email?></b></p>
<h3>Shipment to:</h3>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" style="width:480px;">
  <?php
  
echo create_form_field("name""Name:"$myCheckout->ship_name30)."<br>";
  echo 
create_form_field("address""Address:"$myCheckout->ship_address30)."<br>";
  echo 
create_form_field("postal_code""PC / place:"$myCheckout->ship_pc8);
  echo 
create_form_field("place"""$myCheckout->ship_city17)."<br>";
  echo 
create_form_field("country""Country:"$myCheckout->ship_country30)."<br>";
  echo 
create_text_area("message""Message:"$myCheckout->ship_msg330)."<br>";
  
?>
  <p>
  <input type="submit" name="submit" value="&lt;&lt; Continue shopping">
  <input type="submit" name="submit" value="Order now!">
  </p>
</form>
<?php // end if cart is not empty ?>
</body>
</html>
<?php
mysql_free_result
($res_stock);
?>