I have just made a change that I realize is going to be necessary for the shipping logic queries. I have added "packaging_type int(1)" into the table. Value 1 is for poster tubes; Value 2 is for all other shopping_cart_packaging_options: reference int(2) packaging_name varchar(50) packaging_type int(1) packaging_image_filename varchar(40) package_length decimal(3,1) package_width decimal(3,1) package_height decimal(3,1) packaging_cost_to_ship_canada decimal(3,2) packaging_cost_to_ship_us decimal(3,2) packaging_cost_to_ship_international decimal(3,2) On Wed, 2008-05-14 at 23:12 -0400, Ron Piggott wrote: > I need help writing a mySQL query and syntax that will determine the > shipping packing selected and will then determine the cost to ship. I > have assigned dollar values to various packaging. I have a designed the > following table which contains various packaging, the maximum size (in > centimeters) that packaging may contain and the cost to ship within > Canada, US or international: > > shopping_cart_packaging_options: > > reference int(2) > packaging_name varchar(50) > packaging_image_filename varchar(40) > package_length decimal(3,1) > package_width decimal(3,1) > package_height decimal(3,1) > packaging_cost_to_ship_canada decimal(3,2) > packaging_cost_to_ship_us decimal(3,2) > packaging_cost_to_ship_international decimal(3,2) > > When I input a product I have been recording it's dimensions into this > table: > > shopping_cart_product: > > reference int(5) > category_reference int(3) > product_name varchar(50) > product_description longtext > product_length decimal(3,1) > product_width decimal(3,1) > product_height decimal(3,1) > supplier_reference int(3) > sku varchar(12) > reorder_alert int(5) > discontinued int(1) > > The following code is from my check out script. It displays the > products being purchased at check out, quantity ordered and pricing. It > also creates the order record in the shopping_cart_orders table. I am > hoping some code could be added in here to figure out shipping costs > based on product dimensions and the dimensions of the available > packaging. I haven't been able to figure out how to compare the total > dimensions of the products with the available packaging. There are (2) > types of packaging: Tubes for posters (The poster category has a > category_reference of 2) and envelopes / boxes for everything else. > Perhaps a split shipment needs to take place if someone orders a poster > and something else that needs to ship in an envelope. I want the logic > behind this to optimize packaging shipping and handling costs and for > the order created to indicate to me which type of packaging I should use > that will hold all items ordered. > > Thanks for helping me. Ron > > > mysql_connect('localhost',$username,$password); > @mysql_select_db($database) or die( "Unable to select database"); > $query="SELECT * FROM ( shopping_cart_category INNER JOIN > shopping_cart_product ON shopping_cart_category.reference = > shopping_cart_product.category_reference ) INNER JOIN > shopping_cart_product_image ON > shopping_cart_product_image.product_reference = > shopping_cart_product.reference INNER JOIN shopping_cart_inventory ON > shopping_cart_inventory.product_reference = > shopping_cart_product.reference WHERE > shopping_cart_product_image.primary_image =1 ORDER BY product_name ASC"; > $product_result=mysql_query($query); > $number_of_products=mysql_numrows($product_result); > mysql_close(); > > echo "<u>Today's Order Is For:</u><p>\r\n"; > echo "<ul>\r\n"; > > echo "<table border=\"1\">\r\n"; > > echo "<tr><td width=\"225\"><font face=\"times new roman > \"><center><u>Product Name</u></center></td>\r\n"; > echo "<td width=\"100\"><font face=\"times new roman\"><center><u>Unit > Price</u></center></td>\r\n"; > echo "<td width=\"125\"><font face=\"times new roman > \"><center><u>Quantity Ordered</u></center></td>\r\n"; > echo "<td width=\"100\"><font face=\"times new roman > \"><center><u>Total</u></center></td></tr>\r\n"; > > $product_cost_total = 0; > $i=0; > while ($i < $number_of_products) { > > $product_reference = mysql_result($product_result, > $i,"shopping_cart_product.reference"); > $product_name = mysql_result($product_result, > $i,"shopping_cart_product.product_name"); > $quantity = $_SESSION['selection'][$product_reference]; > $cost_of_product = mysql_result($product_result, > $i,"shopping_cart_inventory.selling_price"); > > if ( $_SESSION['selection'][$product_reference] > 0 ) { > > echo "<tr><td width=\"225\"><font face=\"times new roman\"><center><a > href=\"" . $path_to_shopping_cart . "product/" . > stripslashes($product_reference) . "/\">" . > stripslashes($product_name) . "</a></center></td>\r\n"; > echo "<td width=\"100\"><font face=\"times new roman\"><center>$" . > $cost_of_product . "</center></td>\r\n"; > echo "<td width=\"125\"><font face=\"times new roman\"><center>" . > $quantity . "</center></td>\r\n"; > echo "<td width=\"100\"><font face=\"times new roman\"><center>$" . > number_format(($quantity * $cost_of_product), 2, '.', '') . > "</center></td></tr>\r\n"; > > $product_cost_total = number_format(($product_cost_total + > ($cost_of_product*$quantity)), 2, '.', ''); > > #record product(s) being sold to the shopping_cart_products_sold table > > $shipping_order_reference = $_SESSION['shipping_order_reference']; > > mysql_connect('localhost',$username,$password); > @mysql_select_db($database) or die( "Unable to select database"); > mysql_query("INSERT INTO `shopping_cart_products_sold` ( `reference` , > `orders_reference` , `product_reference` , `quantity` ) VALUES ( NULL , > '$shipping_order_reference', '$product_reference', '$quantity' );"); > $saved_product_order_reference = mysql_insert_id(); > mysql_close(); > > } > > ++$i; > } > > echo "</table>\r\n"; > -- ron.piggott@xxxxxxxxxxxxxxxxxx www.actsministrieschristianevangelism.org Acts Ministries Christian Evangelism "Where People Matter" 12 Burton Street Belleville, Ontario, Canada K8P 1E6 In Belleville Phone : (613) 967-0032 In North America Call Toll Free : (866) ACTS-MIN Fax: (613) 967-9963 -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php