Index: branches/version-2_5-dev/html/install/sql/insert_data.sql
===================================================================
--- branches/version-2_5-dev/html/install/sql/insert_data.sql	(revision 18865)
+++ branches/version-2_5-dev/html/install/sql/insert_data.sql	(revision 18871)
@@ -567,10 +567,12 @@
 INSERT INTO mtb_mobile_domain (id, name, rank) VALUES (7, 'willcom.com', 6);
 
-INSERT INTO mtb_order_status (id, name, rank) VALUES (1, '新規受付', 0);
-INSERT INTO mtb_order_status (id, name, rank) VALUES (2, '入金待ち', 1);
-INSERT INTO mtb_order_status (id, name, rank) VALUES (6, '入金済み', 2);
-INSERT INTO mtb_order_status (id, name, rank) VALUES (3, 'キャンセル', 3);
-INSERT INTO mtb_order_status (id, name, rank) VALUES (4, '取り寄せ中', 4);
-INSERT INTO mtb_order_status (id, name, rank) VALUES (5, '発送済み', 5);
+INSERT INTO mtb_order_status (id, name, rank) VALUES (7, '決済処理中', 0);
+INSERT INTO mtb_order_status (id, name, rank) VALUES (1, '新規受付', 1);
+INSERT INTO mtb_order_status (id, name, rank) VALUES (2, '入金待ち', 2);
+INSERT INTO mtb_order_status (id, name, rank) VALUES (6, '入金済み', 3);
+INSERT INTO mtb_order_status (id, name, rank) VALUES (3, 'キャンセル', 4);
+INSERT INTO mtb_order_status (id, name, rank) VALUES (4, '取り寄せ中', 5);
+INSERT INTO mtb_order_status (id, name, rank) VALUES (5, '発送済み', 6);
+
 
 INSERT INTO mtb_order_status_color (id, name, rank) VALUES (1, '#FFFFFF', 0);
@@ -580,4 +582,5 @@
 INSERT INTO mtb_order_status_color (id, name, rank) VALUES (5, '#BFDFFF', 4);
 INSERT INTO mtb_order_status_color (id, name, rank) VALUES (6, '#FFFFAB', 5);
+INSERT INTO mtb_order_status_color (id, name, rank) VALUES (7, '#FFCCCC', 6);
 
 INSERT INTO mtb_ownersstore_err (id, name, rank) VALUES ('1000', '不明なエラーが発生しました。', 0);
@@ -964,10 +967,4 @@
 INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('MAIL_TYPE_PC', '1', 255, 'メールアドレス種別');
 INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('MAIL_TYPE_MOBILE', '2', 256, 'メールアドレス種別');
-INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_NEW', '1', 257, '新規注文');
-INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_PAY_WAIT', '2', 258, '入金待ち');
-INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_PRE_END', '6', 259, '入金済み');
-INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_CANCEL', '3', 260, 'キャンセル');
-INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_BACK_ORDER', '4', 261, '取り寄せ中');
-INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_DELIV', '5', 262, '発送済み');
 INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ODERSTATUS_COMMIT', 'ORDER_DELIV', 263, '受注ステータス変更の際にポイント等を加算するステータス番号 (発送済み)');
 INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ADMIN_NEWS_STARTYEAR', '2005', 264, '新着情報管理画面 開始年(西暦) ');
@@ -1076,2 +1073,9 @@
 INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ONLINE_PAYMENT', '"1"', 707, 'ダウンロード販売機能用オンライン決済payment_id(カンマ区切り)');
 INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('DOWNLOAD_BLOCK', '1024', 708, 'ダウンロード販売機能 ダウンロードファイル読み込みバイト(KB)');
+INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_NEW', '1', 800, '新規注文');
+INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_PAY_WAIT', '2', 801, '入金待ち');
+INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_PRE_END', '6', 802, '入金済み');
+INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_CANCEL', '3', 803, 'キャンセル');
+INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_BACK_ORDER', '4', 804, '取り寄せ中');
+INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_DELIV', '5', 805, '発送済み');
+INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('ORDER_PENDING', '7', 806, '決済処理中');
Index: branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php
===================================================================
--- branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php	(revision 18860)
+++ branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php	(revision 18871)
@@ -36,6 +36,23 @@
     /**
      * 受注を完了する.
-     */
-    function completeOrder() {
+     *
+     * 下記のフローで受注を完了する.
+     *
+     * 1. トランザクションを開始する
+     * 2. カートの内容を検証する.
+     * 3. 受注一時テーブルから受注データを読み込む
+     * 4. ユーザーがログインしている場合はその他の発送先へ登録する
+     * 5. 受注データを受注テーブルへ登録する
+     * 6. トランザクションをコミットする
+     *
+     * 実行中に, 何らかのエラーが発生した場合, 処理を中止しエラーページへ遷移する
+     *
+     * 決済モジュールを使用する場合は受注ステータスを「決済処理中」に設定し,
+     * 決済完了後「新規受付」に変更すること
+     *
+     * @param integer $orderStatus 受注処理を完了する際に設定する受注ステータス
+     * @return void
+     */
+    function completeOrder($orderStatus = ORDER_NEW) {
         $objQuery =& SC_Query::getSingletonInstance();
         $objSiteSession = new SC_SiteSession();
@@ -54,9 +71,9 @@
         }
 
+        $orderTemp['status'] = $orderStatus;
         $orderId = $this->registerOrder($orderTemp, $objCartSession,
                                         $_SESSION['cartKey']);
         $objQuery->commit();
         $objCustomer->updateSession();
-        $this->sendOrderMail($orderId);
     }
 
@@ -76,5 +93,13 @@
      * 受注情報を登録する.
      *
+     * 引数の受注情報を受注テーブル及び受注詳細テーブルに登録する.
+     * 登録後, 受注一時テーブルに削除フラグを立て, カートの内容を削除する.
+     *
      * TODO ダウンロード商品の場合の扱いを検討
+     *
+     * @param array $orderParams 登録する受注情報の配列
+     * @param SC_CartSession $objCartSession カート情報のインスタンス
+     * @param integer $cartKey 登録を行うカート情報のキー
+     * @param integer 受注ID
      */
     function registerOrder($orderParams, &$objCartSession, $cartKey) {
Index: branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php	(revision 18860)
+++ branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php	(revision 18871)
@@ -151,11 +151,13 @@
             // 決済方法により画面切替
             if($payment_type != "") {
-                // TODO 決済方法のモジュールは Plugin として実装したい
                 $_SESSION["payment_id"] = $arrData['payment_id'];
+                $objPurchase = new SC_Helper_Purchase_Ex();
+                $objPurchase->completeOrder(ORDER_PENDING);
                 $this->sendRedirect($this->getLocation(URL_SHOP_MODULE));
             }else{
                 // 受注を完了し, 購入完了ページへ
                 $objPurchase = new SC_Helper_Purchase_Ex();
-                $objPurchase->completeOrder();
+                $objPurchase->completeOrder(ORDER_NEW);
+                $objPurchase->sendOrderMail($arrData["order_id"]);
                 $this->sendRedirect($this->getLocation(URL_SHOP_COMPLETE));
             }
Index: branches/version-2_5-dev/data/class/util/SC_Utils.php
===================================================================
--- branches/version-2_5-dev/data/class/util/SC_Utils.php	(revision 18868)
+++ branches/version-2_5-dev/data/class/util/SC_Utils.php	(revision 18871)
@@ -301,5 +301,9 @@
     }
 
-    /* 前のページで正しく登録が行われたか判定 */
+    /**
+     * 前のページで正しく登録が行われたか判定
+     *
+     * @deprecated SC_SiteSession::isPrePage() を使用して下さい
+     */
     function sfIsPrePage(&$objSiteSess) {
         $ret = $objSiteSess->isPrePage();
Index: branches/version-2_5-dev/data/mtb_constants_init.php
===================================================================
--- branches/version-2_5-dev/data/mtb_constants_init.php	(revision 18853)
+++ branches/version-2_5-dev/data/mtb_constants_init.php	(revision 18871)
@@ -413,4 +413,6 @@
 /** 発送済み */
 define('ORDER_DELIV', 5);
+/** 決済処理中 */
+define('ORDER_PENDING', 7);
 /** 受注ステータス変更の際にポイント等を加算するステータス番号 (発送済み) */
 define('ODERSTATUS_COMMIT', ORDER_DELIV);
