/** * Page のプロセス(モバイル). * * @return void */ function mobileProcess() { // 買い物を続ける場合 if (!isset($_REQUEST['continue'])) { $_REQUEST['continue'] = ""; } if ($_REQUEST['continue']) { $this->sendRedirect($this->getLocation(MOBILE_URL_SITE_TOP), true); exit; } $objView = new SC_MobileView(false); $objCartSess = new SC_CartSession("", false); $objSiteSess = new SC_SiteSession(); $objSiteInfo = $objView->objSiteInfo; $objCustomer = new SC_Customer(); $objDb = new SC_Helper_DB_Ex(); // 基本情報の取得 $arrInfo = $objSiteInfo->data; // 商品購入中にカート内容が変更された。 if ($objCartSess->getCancelPurchase()) { $this->tpl_message = "商品購入中にカート内容が変更されましたので、お手数ですが購入手続きをやり直して下さい。"; } if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { case 'confirm': // カート内情報の取得 $arrRet = $objCartSess->getCartList(); $max = count($arrRet); $cnt = 0; for ($i = 0; $i < $max; $i++) { // 商品規格情報の取得 $arrData = $objDb->sfGetProductsClass($arrRet[$i]['id']); // DBに存在する商品 if ($arrData != "") { $cnt++; } } // カート商品が1件以上存在する場合 if ($cnt > 0) { // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); $pre_uniqid = $objSiteSess->getUniqId(); // 注文一時IDの発行 $objSiteSess->setUniqId(); $uniqid = $objSiteSess->getUniqId(); // エラーリトライなどで既にuniqidが存在する場合は、設定を引き継ぐ if ($pre_uniqid != "") { $sqlval['order_temp_id'] = $uniqid; $where = "order_temp_id = ?"; $objQuery = new SC_Query(); $objQuery->update("dtb_order_temp", $sqlval, $where, array($pre_uniqid)); } // カートを購入モードに設定 $objCartSess->saveCurrentCart($uniqid); // 購入ページへ $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); exit; } break; default: break; } if (!isset($_GET['mode'])) { $_GET['mode'] = ""; } /* * FIXME sendRedirect() を使った方が良いが無限ループしてしまう... */ switch ($_GET['mode']) { case 'up': $objCartSess->upQuantity($_GET['cart_no']); SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); break; case 'down': $objCartSess->downQuantity($_GET['cart_no']); SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); break; case 'delete': $objCartSess->delProduct($_GET['cart_no']); SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); break; } // カート集計処理 if (empty($arrData)) { $arrData = array(); } $objDb->sfTotalCart($this, $objCartSess, $arrInfo); $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo, $objCustomer); $this->arrInfo = $arrInfo; // ログイン判定 if ($objCustomer->isLoginSuccess(true)) { $this->tpl_login = true; $this->tpl_user_point = $objCustomer->getValue('point'); $this->tpl_name = $objCustomer->getValue('name01'); } // 送料無料までの金額を計算 $tpl_deliv_free = $this->arrInfo['free_rule'] - $this->tpl_total_pretax; $this->tpl_deliv_free = $tpl_deliv_free; // 前頁のURLを取得 $this->tpl_prev_url = $objCartSess->getPrevURL(); $objView->assignobj($this); $objView->display(SITE_FRAME); }
function lfRegistOrderDetail(&$objQuery, $order_id, &$objCartSess) { $objDb = new SC_Helper_DB_Ex(); // カート内情報の取得 $arrCart = $objCartSess->getCartList(); $max = count($arrCart); // 既に存在する詳細レコードを消しておく。 $objQuery->delete("dtb_order_detail", "order_id = {$order_id}"); // 規格名一覧 $arrClassName = $objDb->sfGetIDValueList("dtb_class", "class_id", "name"); // 規格分類名一覧 $arrClassCatName = $objDb->sfGetIDValueList("dtb_classcategory", "classcategory_id", "name"); for ($i = 0; $i < $max; $i++) { // 商品規格情報の取得 $arrData = $objDb->sfGetProductsClass($arrCart[$i]['id']); // 存在する商品のみ表示する。 if ($arrData != "") { $sqlval['order_id'] = $order_id; $sqlval['product_id'] = $arrCart[$i]['id'][0]; $sqlval['classcategory_id1'] = $arrCart[$i]['id'][1]; $sqlval['classcategory_id2'] = $arrCart[$i]['id'][2]; $sqlval['product_name'] = $arrData['name']; $sqlval['product_code'] = $arrData['product_code']; $sqlval['classcategory_name1'] = $arrClassCatName[$arrData['classcategory_id1']]; $sqlval['classcategory_name2'] = $arrClassCatName[$arrData['classcategory_id2']]; $sqlval['point_rate'] = $arrCart[$i]['point_rate']; $sqlval['price'] = $arrCart[$i]['price']; $sqlval['quantity'] = $arrCart[$i]['quantity']; $this->lfReduceStock($objQuery, $arrCart[$i]['id'], $arrCart[$i]['quantity']); // INSERTの実行 $objQuery->insert("dtb_order_detail", $sqlval); } else { if (defined("MOBILE_SITE")) { SC_Utils_Ex::sfDispSiteError(CART_NOT_FOUND, "", false, "", true); } else { SC_Utils_Ex::sfDispSiteError(CART_NOT_FOUND); } } } }
function lfGetProductsClass($product_id, $classcategory_id1, $classcategory_id2) { $objDb = new SC_Helper_DB_Ex(); $arrClassCatName = $objDb->sfGetIDValueList("dtb_classcategory", "classcategory_id", "name"); $arrRet = $objDb->sfGetProductsClass(array($product_id, $classcategory_id1, $classcategory_id2)); $arrProduct['price'] = $arrRet['price02']; $arrProduct['quantity'] = 1; $arrProduct['product_id'] = $arrRet['product_id']; $arrProduct['point_rate'] = $arrRet['point_rate']; $arrProduct['product_code'] = $arrRet['product_code']; $arrProduct['product_name'] = $arrRet['name']; $arrProduct['classcategory_id1'] = $arrRet['classcategory_id1']; $arrProduct['classcategory_id2'] = $arrRet['classcategory_id2']; $arrProduct['classcategory_name1'] = $arrClassCatName[$arrRet['classcategory_id1']]; $arrProduct['classcategory_name2'] = $arrClassCatName[$arrRet['classcategory_id2']]; return $arrProduct; }