Index: /branches/version-2_11-dev/data/class/SC_CartSession.php
===================================================================
--- /branches/version-2_11-dev/data/class/SC_CartSession.php	(revision 20849)
+++ /branches/version-2_11-dev/data/class/SC_CartSession.php	(revision 20877)
@@ -22,5 +22,10 @@
  */
 
-/* カートセッション管理クラス */
+/**
+ * カートセッション管理クラス
+ *
+ * @author LOCKON CO.,LTD.
+ * @version $Id$
+ */
 class SC_CartSession {
     /** ユニークIDを指定する. */
@@ -290,4 +295,10 @@
     }
 
+    /**
+     * 商品種別ごとにカート内商品の一覧を取得する.
+     *
+     * @param integer $productTypeId 商品種別ID
+     * @return array カート内商品一覧の配列
+     */
     function getCartList($productTypeId) {
         $objProduct = new SC_Product_Ex();
@@ -298,9 +309,8 @@
                && $this->cartSession[$productTypeId][$i]['cart_no'] != "") {
 
-                if (SC_Utils_Ex::isBlank($this->cartSession[$productTypeId][$i]['productsClass'])) {
-                    $this->cartSession[$productTypeId][$i]['productsClass'] =&
-                            $objProduct->getDetailAndProductsClass(
+                // 商品情報は常に取得
+                $this->cartSession[$productTypeId][$i]['productsClass'] =&
+                        $objProduct->getDetailAndProductsClass(
                                     $this->cartSession[$productTypeId][$i]['id']);
-                }
 
                 $price = $this->cartSession[$productTypeId][$i]['productsClass']['price02'];
@@ -343,4 +353,7 @@
 
     // カート内にある商品ＩＤを全て取得する
+    /**
+     * @deprected getAllProductClassID を使用して下さい
+     */
     function getAllProductID($productTypeId) {
         $max = $this->getMax($productTypeId);
@@ -369,4 +382,10 @@
     }
 
+    /**
+     * 商品種別ID を指定して, カート内の商品をすべて削除する.
+     *
+     * @param integer $productTypeId 商品種別ID
+     * @return void
+     */
     function delAllProducts($productTypeId) {
         $max = $this->getMax($productTypeId);
@@ -402,4 +421,11 @@
     }
 
+    /**
+     * カート番号と商品種別IDを指定して, 数量を取得する.
+     *
+     * @param integer $cart_no カート番号
+     * @param integer $productTypeId 商品種別ID
+     * @return integer 該当商品規格の数量
+     */
     function getQuantity($cart_no, $productTypeId) {
         $max = $this->getMax($productTypeId);
@@ -411,4 +437,12 @@
     }
 
+    /**
+     * カート番号と商品種別IDを指定して, 数量を設定する.
+     *
+     * @param integer $quantity 設定する数量
+     * @param integer $cart_no カート番号
+     * @param integer $productTypeId 商品種別ID
+     * @retrun void
+     */
     function setQuantity($quantity, $cart_no, $productTypeId) {
         $max = $this->getMax($productTypeId);
@@ -420,4 +454,11 @@
     }
 
+    /**
+     * カート番号と商品種別IDを指定して, 商品規格IDを取得する.
+     *
+     * @param integer $cart_no カート番号
+     * @param integer $productTypeId 商品種別ID
+     * @return integer 商品規格ID
+     */
     function getProductClassId($cart_no, $productTypeId) {
         for ($i = 0; $i <= $max; $i++) {
@@ -526,11 +567,8 @@
      * - tax: 税額
      * - subtotal: カート内商品の小計
-     * - deliv_fee: カート内商品の合計送料 FIXME
+     * - deliv_fee: カート内商品の合計送料
      * - total: 合計金額
      * - payment_total: お支払い合計
      * - add_point: 加算ポイント
-     *
-     *  TODO ダウンロード商品のみの場合の送料を検討する
-     *  TODO 使用ポイント, 配送都道府県, 支払い方法, 手数料の扱いを検討
      *
      * @param integer $productTypeId 商品種別ID
@@ -557,5 +595,5 @@
             $cartItems = $this->getCartList($productTypeId);
             foreach ($cartItems as $item) {
-                $results['deliv_fee'] += $item['deliv_fee'] * $item['quantity'];
+                $results['deliv_fee'] += $item['productsClass']['deliv_fee'] * $item['quantity'];
             }
         }
@@ -600,4 +638,9 @@
     }
 
+    /**
+     * カートが保持するキー(商品種別ID)を配列で返す.
+     *
+     * @return array 商品種別IDの配列
+     */
     function getKeys() {
         $keys = array_keys($this->cartSession);
@@ -612,12 +655,28 @@
     }
 
+    /**
+     * カートに設定された現在のキー(商品種別ID)を登録する.
+     *
+     * @param integer $key 商品種別ID
+     * @return void
+     */
     function registerKey($key) {
         $_SESSION['cartKey'] = $key;
     }
 
+    /**
+     * カートに設定された現在のキー(商品種別ID)を削除する.
+     *
+     * @return void
+     */
     function unsetKey() {
         unset($_SESSION['cartKey']);
     }
 
+    /**
+     * カートに設定された現在のキー(商品種別ID)を取得する.
+     *
+     * @return integer 商品種別ID
+     */
     function getKey() {
         return $_SESSION['cartKey'];
Index: /branches/version-2_11-dev/data/class/SC_Product.php
===================================================================
--- /branches/version-2_11-dev/data/class/SC_Product.php	(revision 20790)
+++ /branches/version-2_11-dev/data/class/SC_Product.php	(revision 20877)
@@ -615,5 +615,5 @@
         }
         /*
-         * point_rate は商品規格(dtb_products_class)ごとに保持しているが,
+         * point_rate, deliv_fee は商品規格(dtb_products_class)ごとに保持しているが,
          * 商品(dtb_products)ごとの設定なので MAX のみを取得する.
          */
@@ -676,4 +676,5 @@
                     T4.stock_unlimited_max,
                     T4.point_rate,
+                    T4.deliv_fee,
                     T4.class_count
                FROM dtb_products
@@ -691,4 +692,5 @@
                               MAX(stock_unlimited) AS stock_unlimited_max,
                               MAX(point_rate) AS point_rate,
+                              MAX(deliv_fee) AS deliv_fee,
                               COUNT(*) as class_count
                          FROM dtb_products_class
