Index: /branches/version-2_11-dev/data/class/SC_CartSession.php
===================================================================
--- /branches/version-2_11-dev/data/class/SC_CartSession.php	(revision 20764)
+++ /branches/version-2_11-dev/data/class/SC_CartSession.php	(revision 20787)
@@ -508,8 +508,9 @@
      * @param integer $charge 手数料
      * @param integer $discount 値引
+     * @param integer $deliv_id 配送業者ID
      * @return array カートの計算結果の配列
      */
     function calculate($productTypeId, &$objCustomer, $use_point = 0,
-                       $deliv_pref = "", $charge = 0, $discount = 0) {
+                       $deliv_pref = "", $charge = 0, $discount = 0, $deliv_id = 0) {
         $objDb = new SC_Helper_DB_Ex();
 
@@ -528,6 +529,8 @@
 
         // 配送業者の送料を加算
-        if (OPTION_DELIV_FEE == 1) {
-            $results['deliv_fee'] += $objDb->sfGetDelivFee($deliv_pref, $productTypeId);
+        if (OPTION_DELIV_FEE == 1
+            && !SC_Utils_Ex::isBlank($deliv_pref)
+            && !SC_Utils_Ex::isBlank($deliv_id)) {
+            $results['deliv_fee'] += $objDb->sfGetDelivFee($deliv_pref, $deliv_id);
         }
 
Index: /branches/version-2_11-dev/data/class/helper/SC_Helper_DB.php
===================================================================
--- /branches/version-2_11-dev/data/class/helper/SC_Helper_DB.php	(revision 20786)
+++ /branches/version-2_11-dev/data/class/helper/SC_Helper_DB.php	(revision 20787)
@@ -1172,31 +1172,24 @@
      *
      * @param integer|array $pref_id 都道府県ID 又は都道府県IDの配列
-     * @return string 指定の都道府県, 商品種別の配送料金
-     */
-    function sfGetDelivFee($pref_id, $product_type_id) {
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
-
-        /*
-         * FIXME 都道府県が指定されていない場合は、東京都の番号を指定しておく
-         * http://svn.ec-cube.net/open_trac/ticket/410
-         */
-        if($pref_id == "") {
-            $pref_id = 13;
-        }
+     * @param integer $deliv_id 配送業者ID
+     * @return string 指定の都道府県, 配送業者の配送料金
+     */
+    function sfGetDelivFee($pref_id, $deliv_id = 0) {
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
         if (!is_array($pref_id)) {
             $pref_id = array($pref_id);
         }
         $sql = <<< __EOS__
-            SELECT SUM(T1.fee) AS fee
+            SELECT T1.fee AS fee
               FROM dtb_delivfee T1
               JOIN dtb_deliv T2
                 ON T1.deliv_id = T2.deliv_id
-             WHERE T1.pref = ? AND T2.product_type_id = ?
+             WHERE T1.pref = ?
+               AND T1.deliv_id = ?
                AND T2.del_flg = 0
 __EOS__;
-
         $result = 0;
         foreach ($pref_id as $pref) {
-            $result += $objQuery->getOne($sql, array($pref, $product_type_id));
+            $result += $objQuery->getOne($sql, array($pref, $deliv_id));
         }
         return $result;
Index: /branches/version-2_11-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php
===================================================================
--- /branches/version-2_11-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php	(revision 20764)
+++ /branches/version-2_11-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php	(revision 20787)
@@ -116,5 +116,6 @@
                                                   $objPurchase->getShippingPref(),
                                                   $arrOrderTemp['charge'],
-                                                  $arrOrderTemp['discount']);
+                                                  $arrOrderTemp['discount'],
+                                                  $arrOrderTemp['deliv_id']);
         $this->arrForm = array_merge($arrOrderTemp, $arrCalcResults);
 
Index: /branches/version-2_11-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php
===================================================================
--- /branches/version-2_11-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php	(revision 20764)
+++ /branches/version-2_11-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php	(revision 20787)
@@ -118,6 +118,9 @@
         }
 
-        // 購入金額の取得
-        $this->arrPrices = $objCartSess->calculate($cart_key, $objCustomer, 0, $objPurchase->getShippingPref());
+        /*
+         * 購入金額の取得
+         * ここでは送料を加算しない
+         */
+        $this->arrPrices = $objCartSess->calculate($cart_key, $objCustomer);
 
         // お届け日一覧の取得
