Re: Shopping cart shipping logic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have figured it out.  When I first started I was trying to do too much
in one command; when I broke it down into sections I figured it out. Ron
Ron

On Wed, 2008-05-14 at 23:17 -0400, Ron Piggott wrote:
> 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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux