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);
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();
