Index: openacs-4/packages/ecommerce/www/checkout-one-form.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/checkout-one-form.tcl,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/ecommerce/www/checkout-one-form.tcl 13 Jan 2005 13:57:58 -0000 1.2 +++ openacs-4/packages/ecommerce/www/checkout-one-form.tcl 31 May 2005 23:13:14 -0000 1.2.2.1 @@ -296,20 +296,25 @@ and i.order_id=:order_id order by i.product_id" { # ordering by i.product_id so loop can identify first instance of a quantity - if { $product_id == $last_product_id } { - set first_instance 0 - } else { + + if { $product_id != $last_product_id } { set first_instance 1 db_1row get_shipping_info " - select shipping, shipping_additional, weight - from ec_products - where product_id=:product_id" + select shipping, shipping_additional, weight, no_shipping_avail_p + from ec_products + where product_id=:product_id" + } else { + set first_instance 0 } - set shipping_prices_for_one_item [ec_shipping_prices_for_one_item_by_rate $product_id $shipping $shipping_additional $default_shipping_per_item $weight $weight_shipping_cost $first_instance $add_exp_amount_per_item $add_exp_amount_by_weight] + # if no_shipping_avail_p, skip calculating shipping for this item + if { [string equal $no_shipping_avail_p "f"] } { - set total_reg_shipping_price [expr $total_reg_shipping_price + [lindex $shipping_prices_for_one_item 0]] - set total_exp_shipping_price [expr $total_exp_shipping_price + [lindex $shipping_prices_for_one_item 1]] - set last_product_id $product_id + set shipping_prices_for_one_item [ec_shipping_prices_for_one_item_by_rate $product_id $shipping $shipping_additional $default_shipping_per_item $weight $weight_shipping_cost $first_instance $add_exp_amount_per_item $add_exp_amount_by_weight] + + set total_reg_shipping_price [expr $total_reg_shipping_price + [lindex $shipping_prices_for_one_item 0]] + set total_exp_shipping_price [expr $total_exp_shipping_price + [lindex $shipping_prices_for_one_item 1]] + set last_product_id $product_id + } } @@ -438,7 +443,7 @@ # if we want to bias users to use their billing addresses. set shipping_address_ids [db_list get_shipping_address_ids " select address_id -` from ec_addresses + from ec_addresses where user_id=:user_id and address_type = 'shipping'" ]