Index: branches/version-2_5-dev/data/Smarty/templates/admin/products/product_class_complete.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/products/product_class_complete.tpl	(revision 20514)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/products/product_class_complete.tpl	(revision 20754)
@@ -26,4 +26,13 @@
 <input type="hidden" name="mode" value="" />
 <input type="hidden" name="product_id" value="" />
+<!--{foreach key=key item=item from=$arrSearchHidden}-->
+    <!--{if is_array($item)}-->
+        <!--{foreach item=c_item from=$item}-->
+        <input type="hidden" name="<!--{$key|h}-->[]" value="<!--{$c_item|h}-->" />
+        <!--{/foreach}-->
+    <!--{else}-->
+        <input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->" />
+    <!--{/if}-->
+<!--{/foreach}-->
     <div id="complete">
         <div class="complete-top"></div>
@@ -36,4 +45,5 @@
         <div class="btn-area">
             <ul>
+                <li><a class="btn-action" href="javascript:;" onclick="fnChangeAction('<!--{$smarty.const.ADMIN_PRODUCTS_URLPATH}-->'); fnModeSubmit('search','',''); return false;"><span class="btn-prev">検索結果へ戻る</span></a></li>
                 <li><a class="btn-action" href="./product.php"><span class="btn-next">続けて登録を行う</span></a></li>
             </ul>
Index: branches/version-2_5-dev/data/Smarty/templates/admin/products/product_class_confirm.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/products/product_class_confirm.tpl	(revision 20595)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/products/product_class_confirm.tpl	(revision 20754)
@@ -36,12 +36,11 @@
 <!--{/foreach}-->
 
-<!--{* TODO 不要？ *}-->
-<!--{foreach key=key item=items from=$arrSearchHidden}-->
-    <!--{if is_array($items.value)}-->
-        <!--{foreach key=index item=item from=$items.value}-->
-            <input type="hidden" name="<!--{$key}-->[<!--{$index}-->]" value="<!--{$item|h}-->" />
+<!--{foreach key=key item=item from=$arrSearchHidden}-->
+    <!--{if is_array($item)}-->
+        <!--{foreach item=c_item from=$item}-->
+        <input type="hidden" name="<!--{$key|h}-->[]" value="<!--{$c_item|h}-->" />
         <!--{/foreach}-->
     <!--{else}-->
-        <input type="hidden" name="<!--{$key}-->" value="<!--{$items|h}-->" />
+        <input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->" />
     <!--{/if}-->
 <!--{/foreach}-->
Index: branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php	(revision 20752)
+++ branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php	(revision 20754)
@@ -216,7 +216,4 @@
      * 規格の登録または更新を行う.
      *
-     * TODO dtb_class_combination は, dtb_product_categories に倣って,
-     *      DELETE to INSERT だが, UPDATE を検討する.
-     *
      * @param array $arrList 入力フォームの内容
      * @param integer $product_id 登録を行う商品ID
@@ -236,4 +233,7 @@
         // デフォルト値として設定する値を取得しておく
         $arrDefault = $this->getProductsClass($product_id);
+
+        // XXX #1188 UPDATE だとデータの不整合が発生するため DELETE/INSERT を行う
+        $objQuery->delete('dtb_products_class', 'product_id = ? AND class_combination_id IS NOT NULL', array($product_id));
 
         for ($i = 0; $i < $total; $i++) {
@@ -248,7 +248,5 @@
             $arrPC = array();
             foreach ($registerKeys as $key) {
-                if ($del_flg === 0) {
-                    $arrPC[$key] = $arrList[$key][$i];
-                }
+                $arrPC[$key] = $arrList[$key][$i];
             }
             $arrPC['product_id'] = $product_id;
@@ -264,22 +262,13 @@
             $arrPC['del_flg'] = $del_flg;
 
-            // 登録 or 更新
-            $is_update = false;
-            if (!SC_Utils_Ex::isBlank($arrList['product_class_id'][$i])) {
-                $is_update = true;
-
-                // 更新の場合は規格組み合わせを検索し, 削除しておく
-                $class_combination_id = $arrExists[$arrList['product_class_id'][$i]]['class_combination_id'];
-                $existsCombi = $objQuery->getRow(
-                    '*',
-                    'dtb_class_combination',
-                    'class_combination_id = ?',
-                    array($class_combination_id));
-
-                $objQuery->delete('dtb_class_combination',
-                                  'class_combination_id IN (?, ?)',
-                                  array($existsCombi['class_combination_id'],
-                                        $existsCombi['parent_class_combination_id']));
-            }
+            $class_combination_id = $arrExists[$arrList['product_class_id'][$i]]['class_combination_id'];
+            $existsCombi = $objQuery->getRow('*', 'dtb_class_combination',
+                                             'class_combination_id = ?',
+                                             array($class_combination_id));
+
+            $objQuery->delete('dtb_class_combination',
+                              'class_combination_id IN (?, ?)',
+                              array($existsCombi['class_combination_id'],
+                                    $existsCombi['parent_class_combination_id']));
 
             // 規格組み合わせを登録
@@ -302,21 +291,12 @@
             }
 
-            // 更新
-            if ($is_update) {
-                $arrPC['product_class_id'] = $arrList['product_class_id'][$i];
-                $objQuery->update("dtb_products_class", $arrPC,
-                                  "product_class_id = ?",
-                                  array($arrPC['product_class_id']));
-            }
-            // 新規登録
-            else {
-                $arrPC['create_date'] = "now()";
-                $arrPC['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id');
-                /*
-                 * チェックを入れない商品は product_type_id が NULL になるので, 0 を入れる
-                 */
-                $arrPC['product_type_id'] = SC_Utils_Ex::isBlank($arrPC['product_type_id']) ? 0 : $arrPC['product_type_id'];
-                $objQuery->insert("dtb_products_class", $arrPC);
-            }
+            $arrPC['create_date'] = "now()";
+            $arrPC['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id');
+            /*
+             * チェックを入れない商品は product_type_id が NULL になるので, 0 を入れる
+             */
+            $arrPC['product_type_id'] = SC_Utils_Ex::isBlank($arrPC['product_type_id']) ? 0 : $arrPC['product_type_id'];
+
+            $objQuery->insert("dtb_products_class", $arrPC);
         }
 
