Changeset 11729 for branches/comu/html/shopping/complete.php
- Timestamp:
- 2007/03/10 21:35:02 (20 years ago)
- File:
-
- 1 edited
-
branches/comu/html/shopping/complete.php (modified) (34 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/html/shopping/complete.php
r248 r11729 12 12 $this->tpl_mainpage = 'shopping/complete.tpl'; 13 13 $this->tpl_css = URL_DIR.'css/layout/shopping/complete.css'; 14 $this->tpl_title = " ¤´Ãíʸ´°Î»";14 $this->tpl_title = "ご注文完了"; 15 15 global $arrCONVENIENCE; 16 16 $this->arrCONVENIENCE = $arrCONVENIENCE; … … 22 22 $objPage->arrCONVENIMESSAGE = $arrCONVENIMESSAGE; 23 23 /* 24 session_start »þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç25 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤Î͸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£26 private-no-expire: ¥¯¥é¥¤¥¢¥ó¥È¤Î¥¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£24 session_start時のno-cacheヘッダーを抑制することで 25 「戻る」ボタン使用時の有効期限切れ表示を抑制する。 26 private-no-expire:クライアントのキャッシュを許可する。 27 27 */ 28 28 session_cache_limiter('private-no-expire'); … … 41 41 $objCustomer = new SC_Customer(); 42 42 43 // Á°¤Î¥Ú¡¼¥¸¤ÇÀµ¤·¤¯ÅÐÏ¿¼ê³¤¤¬¹Ô¤ï¤ì¤¿¤«È½Äê43 // 前のページで正しく登録手続きが行われたか判定 44 44 sfIsPrePage($objSiteSess); 45 // ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ¤ò¥Á¥§¥Ã¥¯45 // ユーザユニークIDの取得と購入状態の正当性をチェック 46 46 $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess); 47 47 if ($uniqid != "") { 48 48 49 // ´°Î»½èÍý49 // 完了処理 50 50 $objQuery = new SC_Query(); 51 51 $objQuery->begin(); … … 53 53 $objQuery->commit(); 54 54 55 // ¥»¥Ã¥·¥ç¥ó¤ËÊݴɤµ¤ì¤Æ¤¤¤ë¾ðÊó¤ò¹¹¿·¤¹¤ë55 // セッションに保管されている情報を更新する 56 56 $objCustomer->updateSession(); 57 57 58 // ´°Î»¥á¡¼¥ëÁ÷¿®58 // 完了メール送信 59 59 if($order_id != "") { 60 60 sfSendOrderMail($order_id, '1'); 61 61 } 62 62 63 // ¤½¤Î¾¾ðÊó¤Î¼èÆÀ63 //その他情報の取得 64 64 $other_data = $objQuery->get("dtb_order", "memo02", "order_id = ? ", array($order_id)); 65 65 if($other_data != "") { 66 66 $arrOther = unserialize($other_data); 67 67 68 // ¥Ç¡¼¥¿¤òÊÔ½¸68 // データを編集 69 69 foreach($arrOther as $key => $val){ 70 // URL ¤Î¾ì¹ç¤Ë¤Ï¥ê¥ó¥¯¤Ä¤¤Çɽ¼¨¤µ¤»¤ë70 // URLの場合にはリンクつきで表示させる 71 71 if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $val["value"])) { 72 72 $arrOther[$key]["value"] = "<a href='#' onClick=\"window.open('". $val["value"] . "'); \" >" . $val["value"] ."</a>"; … … 78 78 } 79 79 80 // ¥¢¥Õ¥£¥ê¥¨¥¤¥ÈÍÑ¥³¥ó¥Ð¡¼¥¸¥ç¥ó¥¿¥°¤ÎÀßÄê80 // アフィリエイト用コンバージョンタグの設定 81 81 $objPage->tpl_conv_page = AFF_SHOPPING_COMPLETE; 82 82 $objPage->tpl_aff_option = "order_id=$order_id"; 83 // ¹ç·×²Á³Ê¤Î¼èÆÀ83 //合計価格の取得 84 84 $total = $objQuery->get("dtb_order", "total", "order_id = ? ", array($order_id)); 85 85 if($total != "") { … … 89 89 90 90 $objPage->arrInfo = $arrInfo; 91 // ¥¥ã¥ó¥Ú¡¼¥ó¤«¤é¤ÎÁ«°Ü¤«¥Á¥§¥Ã¥¯91 // キャンペーンからの遷移かチェック 92 92 $objPage->is_campaign = $objCampaignSess->getIsCampaign(); 93 93 $objPage->campaign_dir = $objCampaignSess->getCampaignDir(); 94 94 95 95 $objView->assignobj($objPage); 96 // ¥Õ¥ì¡¼¥à¤òÁªÂò(¥¥ã¥ó¥Ú¡¼¥ó¥Ú¡¼¥¸¤«¤éÁ«°Ü¤Ê¤éÊѹ¹)96 // フレームを選択(キャンペーンページから遷移なら変更) 97 97 $objCampaignSess->pageView($objView); 98 98 99 // ¥»¥Ã¥·¥ç¥ó³«Êü99 // セッション開放 100 100 $objCampaignSess->delCampaign(); 101 101 //-------------------------------------------------------------------------------------------------------------------------- 102 // ¥¨¥Ó¥¹¥¿¥°°úÅϤ·Íѥǡ¼¥¿¤òÀ¸À®¤¹¤ë102 // エビスタグ引渡し用データを生成する 103 103 function lfGetEbisData($order_id) { 104 104 $objQuery = new SC_Query(); … … 107 107 108 108 if($arrRet[0]['customer_id'] > 0) { 109 // ²ñ°÷ÈÖ¹æ109 // 会員番号 110 110 $arrEbis['m1id'] = $arrRet[0]['customer_id']; 111 // Èó²ñ°÷or²ñ°÷111 // 非会員or会員 112 112 $arrEbis['o5id'] = '1'; 113 113 } else { 114 // ²ñ°÷ÈÖ¹æ114 // 会員番号 115 115 $arrEbis['m1id'] = ''; 116 // Èó²ñ°÷or²ñ°÷116 // 非会員or会員 117 117 $arrEbis['o5id'] = '2'; 118 118 } 119 119 120 // ¹ØÆþ¶â³Û120 // 購入金額 121 121 $arrEbis['a1id'] = $arrRet[0]['total']; 122 // ÀÊÌ122 // 性別 123 123 $arrEbis['o2id'] = $arrRet[0]['order_sex']; 124 // ǯÎð124 // 年齢 125 125 $arrEbis['o3id'] = $arrRet[0]['order_age']; 126 // ¿¦¶È126 // 職業 127 127 $arrEbis['o4id'] = $arrRet[0]['order_job']; 128 128 … … 132 132 133 133 $line = ""; 134 // ¾¦ÉÊID¤ò¥¢¥ó¥À¡¼¥Ð¡¼¤ÇÀܳ¤¹¤ë¡£134 // 商品IDをアンダーバーで接続する。 135 135 foreach($arrProducts['product_id'] as $val) { 136 136 if($line != "") { … … 141 141 } 142 142 143 // ¾¦ÉÊID143 // 商品ID 144 144 $arrEbis['o1id'] = $line; 145 145 … … 147 147 } 148 148 149 // ´°Î»½èÍý149 // 完了処理 150 150 function lfDoComplete($objQuery, $uniqid) { 151 151 global $objCartSess; … … 155 155 global $arrInfo; 156 156 157 // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ157 // 一時受注テーブルの読込 158 158 $arrData = sfGetOrderTemp($uniqid); 159 159 160 // ²ñ°÷¾ðÊóÅÐÏ¿½èÍý160 // 会員情報登録処理 161 161 if ($objCustomer->isLoginSuccess()) { 162 // ¿·¤ªÆÏ¤±Àè¤ÎÅÐÏ¿162 // 新お届け先の登録 163 163 lfSetNewAddr($uniqid, $objCustomer->getValue('customer_id')); 164 // ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç164 // 購入集計を顧客テーブルに反映 165 165 lfSetCustomerPurchase($objCustomer->getValue('customer_id'), $arrData, $objQuery); 166 166 } else { 167 // ¹ØÆþ»þ¶¯À©²ñ°÷ÅÐÏ¿167 //購入時強制会員登録 168 168 switch(PURCHASE_CUSTOMER_REGIST) { 169 // ̵¸ú169 //無効 170 170 case '0': 171 // ¹ØÆþ»þ²ñ°÷ÅÐÏ¿171 // 購入時会員登録 172 172 if($arrData['member_check'] == '1') { 173 // ²¾²ñ°÷ÅÐÏ¿173 // 仮会員登録 174 174 $customer_id = lfRegistPreCustomer($arrData, $arrInfo); 175 // ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç175 // 購入集計を顧客テーブルに反映 176 176 lfSetCustomerPurchase($customer_id, $arrData, $objQuery); 177 177 } 178 178 break; 179 // ͸ú179 //有効 180 180 case '1': 181 // ²¾²ñ°÷ÅÐÏ¿181 // 仮会員登録 182 182 $customer_id = lfRegistPreCustomer($arrData, $arrInfo); 183 // ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç183 // 購入集計を顧客テーブルに反映 184 184 lfSetCustomerPurchase($customer_id, $arrData, $objQuery); 185 185 break; … … 187 187 188 188 } 189 // °ì»þ¥Æ¡¼¥Ö¥ë¤ò¼õÃí¥Æ¡¼¥Ö¥ë¤Ë³ÊǼ¤¹¤ë189 // 一時テーブルを受注テーブルに格納する 190 190 $order_id = lfRegistOrder($objQuery, $arrData, $objCampaignSess); 191 // ¥«¡¼¥È¾¦Éʤò¼õÃí¾ÜºÙ¥Æ¡¼¥Ö¥ë¤Ë³ÊǼ¤¹¤ë191 // カート商品を受注詳細テーブルに格納する 192 192 lfRegistOrderDetail($objQuery, $order_id, $objCartSess); 193 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Î¾ðÊó¤òºï½ü¤¹¤ë¡£193 // 受注一時テーブルの情報を削除する。 194 194 lfDeleteTempOrder($objQuery, $uniqid); 195 // ¥¥ã¥ó¥Ú¡¼¥ó¤«¤é¤ÎÁ«°Ü¤Î¾ì¹çÅÐÏ¿¤¹¤ë¡£195 // キャンペーンからの遷移の場合登録する。 196 196 if($objCampaignSess->getIsCampaign()) { 197 197 lfRegistCampaignOrder($objQuery, $objCampaignSess, $order_id); 198 198 } 199 199 200 // ¥»¥Ã¥·¥ç¥ó¥«¡¼¥ÈÆâ¤Î¾¦Éʤòºï½ü¤¹¤ë¡£200 // セッションカート内の商品を削除する。 201 201 $objCartSess->delAllProducts(); 202 // Ãíʸ°ì»þID¤ò²ò½ü¤¹¤ë¡£202 // 注文一時IDを解除する。 203 203 $objSiteSess->unsetUniqId(); 204 204 … … 206 206 } 207 207 208 // ²ñ°÷ÅÐÏ¿¡Ê²¾ÅÐÏ¿¡Ë208 // 会員登録(仮登録) 209 209 function lfRegistPreCustomer($arrData, $arrInfo) { 210 // ¹ØÆþ»þ¤Î²ñ°÷ÅÐÏ¿210 // 購入時の会員登録 211 211 $sqlval['name01'] = $arrData['order_name01']; 212 212 $sqlval['name02'] = $arrData['order_name02']; … … 229 229 $sqlval['reminder'] = $arrData['reminder']; 230 230 $sqlval['reminder_answer'] = $arrData['reminder_answer']; 231 // ²ñ°÷²¾ÅÐÏ¿231 // 会員仮登録 232 232 $sqlval['status'] = 1; 233 // URL ȽÄêÍÑ¥¡¼233 // URL判定用キー 234 234 $sqlval['secret_key'] = sfGetUniqRandomId("t"); 235 235 … … 239 239 $objQuery->insert("dtb_customer", $sqlval); 240 240 241 // ¸ÜµÒID¤Î¼èÆÀ241 // 顧客IDの取得 242 242 $arrRet = $objQuery->select("customer_id", "dtb_customer", "secret_key = ?", array($sqlval['secret_key'])); 243 243 $customer_id = $arrRet[0]['customer_id']; 244 244 245 // ¥á¥ë¥Þ¥¬ÇÛ¿®Íѥե饰¤ÎȽÄê245 // メルマガ配信用フラグの判定 246 246 switch($arrData['mail_flag']) { 247 case '1': // HTML ¥á¡¼¥ë247 case '1': // HTMLメール 248 248 $mail_flag = 4; 249 249 break; 250 case '2': // TEXT ¥á¡¼¥ë250 case '2': // TEXTメール 251 251 $mail_flag = 5; 252 252 break; 253 case '3': // ´õ˾¤Ê¤·253 case '3': // 希望なし 254 254 $mail_flag = 6; 255 255 break; … … 261 261 $objQuery = new SC_Query(); 262 262 $objQuery->begin(); 263 // ¥á¥ë¥Þ¥¬ÇÛ¿®Íѥơ¼¥Ö¥ëÅÐÏ¿263 // メルマガ配信用テーブル登録 264 264 lfRegistNonCustomer($arrData['order_email'], $mail_flag, $objQuery); 265 265 $objQuery->commit(); 266 266 267 // ¡¡²¾ÅÐÏ¿´°Î»¥á¡¼¥ëÁ÷¿®267 // 仮登録完了メール送信 268 268 $objMailPage = new LC_Page(); 269 269 $objMailPage->to_name01 = $arrData['order_name01']; … … 277 277 $objMail = new GC_SendMail(); 278 278 $objMail->setItem( 279 '' // ¡¡°¸Àè280 , sfMakeSubject(" ²ñ°÷ÅÐÏ¿¤Î¤´³Îǧ") //¡¡¥µ¥Ö¥¸¥§¥¯¥È281 , $body // ¡¡ËÜʸ282 , $arrInfo['email03'] // ¡¡ÇÛÁ÷¸µ¥¢¥É¥ì¥¹283 , $arrInfo['shop_name'] // ¡¡ÇÛÁ÷¸µ¡¡Ì¾Á°284 , $arrInfo["email03"] // ¡¡reply_to285 , $arrInfo["email04"] // ¡¡return_path279 '' // 宛先 280 , sfMakeSubject("会員登録のご確認") // サブジェクト 281 , $body // 本文 282 , $arrInfo['email03'] // 配送元アドレス 283 , $arrInfo['shop_name'] // 配送元 名前 284 , $arrInfo["email03"] // reply_to 285 , $arrInfo["email04"] // return_path 286 286 , $arrInfo["email04"] // Errors_to 287 287 , $arrInfo["email01"] // Bcc 288 288 ); 289 // °¸Àè¤ÎÀßÄê290 $name = $arrData['order_name01'] . $arrData['order_name02'] ." ÍÍ";289 // 宛先の設定 290 $name = $arrData['order_name01'] . $arrData['order_name02'] ." 様"; 291 291 $objMail->setTo($arrData['order_email'], $name); 292 292 $objMail->sendMail(); … … 295 295 } 296 296 297 // ¼õÃí¥Æ¡¼¥Ö¥ë¤ØÅÐÏ¿297 // 受注テーブルへ登録 298 298 function lfRegistOrder($objQuery, $arrData, $objCampaignSess) { 299 299 $sqlval = $arrData; 300 300 301 // ¼õÃí¥Æ¡¼¥Ö¥ë¤Ë½ñ¤¹þ¤Þ¤Ê¤¤Îó¤ò½üµî302 unset($sqlval['mail_flag']); // ¥á¥ë¥Þ¥¬¥Á¥§¥Ã¥¯303 unset($sqlval['deliv_check']); // Ê̤ΤªÆÏ¤±Àè¥Á¥§¥Ã¥¯304 unset($sqlval['point_check']); // ¥Ý¥¤¥ó¥ÈÍøÍÑ¥Á¥§¥Ã¥¯305 unset($sqlval['member_check']); // ¹ØÆþ»þ²ñ°÷¥Á¥§¥Ã¥¯306 unset($sqlval['password']); // ¥í¥°¥¤¥ó¥Ñ¥¹¥ï¡¼¥É307 unset($sqlval['reminder']); // ¥ê¥Þ¥¤¥ó¥À¡¼¼ÁÌä308 unset($sqlval['reminder_answer']); // ¥ê¥Þ¥¤¥ó¥À¡¼Åú¤¨309 310 // Ãíʸ¥¹¥Æ¡¼¥¿¥¹:»ØÄ̵꤬¤±¤ì¤Ð¿·µ¬¼õÉÕ¤ËÀßÄê301 // 受注テーブルに書き込まない列を除去 302 unset($sqlval['mail_flag']); // メルマガチェック 303 unset($sqlval['deliv_check']); // 別のお届け先チェック 304 unset($sqlval['point_check']); // ポイント利用チェック 305 unset($sqlval['member_check']); // 購入時会員チェック 306 unset($sqlval['password']); // ログインパスワード 307 unset($sqlval['reminder']); // リマインダー質問 308 unset($sqlval['reminder_answer']); // リマインダー答え 309 310 // 注文ステータス:指定が無ければ新規受付に設定 311 311 if($sqlval["status"] == ""){ 312 312 $sqlval['status'] = '1'; 313 313 } 314 314 315 // Ê̤ΤªÆÏ¤±Àè¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ÇÛÁ÷Àè¤ËÅÐÏ¿½»½ê¤ò¥³¥Ô¡¼¤¹¤ë¡£315 // 別のお届け先を指定していない場合、配送先に登録住所をコピーする。 316 316 if($arrData["deliv_check"] != "1") { 317 317 $sqlval['deliv_name01'] = $arrData['order_name01']; … … 329 329 } 330 330 331 $order_id = $arrData['order_id']; // ¥ª¡¼¥À¡¼ID332 $sqlval['create_date'] = 'now()'; // ¼õÃíÆü333 334 // ¥¥ã¥ó¥Ú¡¼¥óID331 $order_id = $arrData['order_id']; // オーダーID 332 $sqlval['create_date'] = 'now()'; // 受注日 333 334 // キャンペーンID 335 335 if($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId(); 336 336 337 // ¥²¥Ã¥È¤ÎÃͤò¥¤¥ó¥µ¡¼¥È337 // ゲットの値をインサート 338 338 //$sqlval = lfGetInsParam($sqlval); 339 339 340 // INSERT ¤Î¼Â¹Ô340 // INSERTの実行 341 341 $objQuery->insert("dtb_order", $sqlval); 342 342 343 // ¥á¥ë¥Þ¥¬ÇÛ¿®´õ˾¾ðÊó¤ÎÅÐÏ¿343 // メルマガ配信希望情報の登録 344 344 lfRegistNonCustomer($arrData['order_email'], $arrData['mail_flag'], $objQuery); 345 345 … … 347 347 } 348 348 349 // ¼õÃí¾ÜºÙ¥Æ¡¼¥Ö¥ë¤ØÅÐÏ¿349 // 受注詳細テーブルへ登録 350 350 function lfRegistOrderDetail($objQuery, $order_id, $objCartSess) { 351 // ¥«¡¼¥ÈÆâ¾ðÊó¤Î¼èÆÀ351 // カート内情報の取得 352 352 $arrCart = $objCartSess->getCartList(); 353 353 $max = count($arrCart); 354 354 355 // ´û¤Ë¸ºß¤¹¤ë¾ÜºÙ¥ì¥³¡¼¥É¤ò¾Ã¤·¤Æ¤ª¤¯¡£355 // 既に存在する詳細レコードを消しておく。 356 356 $objQuery->delete("dtb_order_detail", "order_id = $order_id"); 357 357 358 // µ¬³Ê̾°ìÍ÷358 // 規格名一覧 359 359 $arrClassName = sfGetIDValueList("dtb_class", "class_id", "name"); 360 // µ¬³ÊʬÎà̾°ìÍ÷360 // 規格分類名一覧 361 361 $arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name"); 362 362 363 363 for ($i = 0; $i < $max; $i++) { 364 // ¾¦Éʵ¬³Ê¾ðÊó¤Î¼èÆÀ364 // 商品規格情報の取得 365 365 $arrData = sfGetProductsClass($arrCart[$i]['id']); 366 366 367 // ¸ºß¤¹¤ë¾¦ÉʤΤßɽ¼¨¤¹¤ë¡£367 // 存在する商品のみ表示する。 368 368 if($arrData != "") { 369 369 $sqlval['order_id'] = $order_id; … … 379 379 $sqlval['quantity'] = $arrCart[$i]['quantity']; 380 380 lfReduceStock($objQuery, $arrCart[$i]['id'], $arrCart[$i]['quantity']); 381 // INSERT ¤Î¼Â¹Ô381 // INSERTの実行 382 382 $objQuery->insert("dtb_order_detail", $sqlval); 383 383 } else { … … 387 387 } 388 388 389 // ¥¥ã¥ó¥Ú¡¼¥ó¼õÃí¥Æ¡¼¥Ö¥ë¤ØÅÐÏ¿389 // キャンペーン受注テーブルへ登録 390 390 function lfRegistCampaignOrder($objQuery, $objCampaignSess, $order_id) { 391 391 392 // ¼õÃí¥Ç¡¼¥¿¤ò¼èÆÀ392 // 受注データを取得 393 393 $cols = "order_id, campaign_id, customer_id, message, order_name01, order_name02,". 394 394 "order_kana01, order_kana02, order_email, order_tel01, order_tel02, order_tel03,". … … 403 403 $sqlval['create_date'] = 'now()'; 404 404 405 // INSERT ¤Î¼Â¹Ô405 // INSERTの実行 406 406 $objQuery->insert("dtb_campaign_order", $sqlval); 407 407 408 // ¿½¤·¹þ¤ß¿ô¤Î¹¹¿·408 // 申し込み数の更新 409 409 $total_count = $objQuery->get("dtb_campaign", "total_count", "campaign_id = ?", array($sqlval['campaign_id'])); 410 410 $arrCampaign['total_count'] = $total_count += 1; … … 415 415 416 416 417 /* ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Îºï½ü*/417 /* 受注一時テーブルの削除 */ 418 418 function lfDeleteTempOrder($objQuery, $uniqid) { 419 419 $where = "order_temp_id = ?"; … … 423 423 } 424 424 425 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Î½»½ê¤¬ÅÐÏ¿ºÑ¤ß¥Æ¡¼¥Ö¥ë¤È°Û¤Ê¤ë¾ì¹ç¤Ï¡¢Ê̤ΤªÆÏ¤±Àè¤ËÄɲ乤ë425 // 受注一時テーブルの住所が登録済みテーブルと異なる場合は、別のお届け先に追加する 426 426 function lfSetNewAddr($uniqid, $customer_id) { 427 427 $objQuery = new SC_Query(); … … 433 433 $arrRet = $objQuery->select($col, "dtb_order_temp", $where, array($uniqid)); 434 434 435 // Í×ÁÇ̾¤Îdeliv_¤òºï½ü¤¹¤ë¡£435 // 要素名のdeliv_を削除する。 436 436 foreach($arrRet[0] as $key => $val) { 437 437 $keyname = ereg_replace("^deliv_", "", $key); … … 439 439 } 440 440 441 // ²ñ°÷¾ðÊ󥯡¼¥Ö¥ë¤È¤ÎÈæ³Ó441 // 会員情報テーブルとの比較 442 442 $col = "name01,name02,kana01,kana02,tel01,tel02,tel03,zip01,zip02,pref,addr01,addr02"; 443 443 $where = "customer_id = ?"; 444 444 $arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($customer_id)); 445 445 446 // ²ñ°÷¾ðÊó¤Î½»½ê¤È°Û¤Ê¤ë¾ì¹ç446 // 会員情報の住所と異なる場合 447 447 if($arrNew != $arrCustomerAddr[0]) { 448 // Ê̤ΤªÆÏ¤±Àè¥Æ¡¼¥Ö¥ë¤Î½»½ê¤ÈÈæ³Ó¤¹¤ë448 // 別のお届け先テーブルの住所と比較する 449 449 $col = "name01,name02,kana01,kana02,tel01,tel02,tel03,zip01,zip02,pref,addr01,addr02"; 450 450 $where = "customer_id = ?"; … … 453 453 foreach($arrOtherAddr as $arrval) { 454 454 if($arrNew == $arrval) { 455 // ¤¹¤Ç¤ËƱ¤¸½»½ê¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë455 // すでに同じ住所が登録されている 456 456 $find_same = true; 457 457 } … … 463 463 } 464 464 465 // ¿·¤·¤¤¤ªÆÏ¤±À褬ÅÐÏ¿ºÑ¤ß¤Î¤â¤Î¤È°Û¤Ê¤ë¾ì¹ç¤ÏÊ̤ΤªÆÏ¤±Àè¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë465 // 新しいお届け先が登録済みのものと異なる場合は別のお届け先テーブルに登録する 466 466 if($diff) { 467 467 $sqlval = $arrNew; … … 471 471 } 472 472 473 /* ¹ØÆþ¾ðÊó¤ò²ñ°÷¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë*/473 /* 購入情報を会員テーブルに登録する */ 474 474 function lfSetCustomerPurchase($customer_id, $arrData, $objQuery) { 475 475 $col = "first_buy_date, last_buy_date, buy_times, buy_total, point"; … … 486 486 $sqlval['point'] = ($sqlval['point'] + $arrData['add_point'] - $arrData['use_point']); 487 487 488 // ¥Ý¥¤¥ó¥È¤¬ÉÔ¤·¤Æ¤¤¤ë¾ì¹ç488 // ポイントが不足している場合 489 489 if($sqlval['point'] < 0) { 490 490 $objQuery->rollback(); … … 495 495 } 496 496 497 /* Èó²ñ°÷¤Î¥á¥ë¥Þ¥¬¥Æ¡¼¥Ö¥ë¤Ø¤ÎÅÐÏ¿*/497 /* 非会員のメルマガテーブルへの登録 */ 498 498 function lfRegistNonCustomer($email, $mail_flag, $objQuery) { 499 // ²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç499 // 会員のメールアドレスが登録されていない場合 500 500 if(!sfCheckCustomerMailMaga($email)) { 501 501 $where = "email = ?"; … … 509 509 } 510 510 511 // ºß¸Ë¤ò¸º¤é¤¹½èÍý511 // 在庫を減らす処理 512 512 function lfReduceStock($objQuery, $arrID, $quantity) { 513 513 $where = "product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?"; 514 514 $arrRet = $objQuery->select("stock, stock_unlimited", "dtb_products_class", $where, $arrID); 515 515 516 // Çä¤êÀڤ쥨¥é¡¼516 // 売り切れエラー 517 517 if(($arrRet[0]['stock_unlimited'] != '1' && $arrRet[0]['stock'] < $quantity) || $quantity == 0) { 518 518 $objQuery->rollback(); 519 519 sfDispSiteError(SOLD_OUT, "", true); 520 // ̵À©¸Â¤Î¾ì¹ç¡¢ºß¸Ë¤ÏNULL520 // 無制限の場合、在庫はNULL 521 521 } elseif($arrRet[0]['stock_unlimited'] == '1') { 522 522 $sqlval['stock'] = null; 523 523 $objQuery->update("dtb_products_class", $sqlval, $where, $arrID); 524 // ºß¸Ë¤ò¸º¤é¤¹524 // 在庫を減らす 525 525 } else { 526 526 $sqlval['stock'] = ($arrRet[0]['stock'] - $quantity); … … 532 532 } 533 533 534 // GET ¤ÎÃͤò¥¤¥ó¥µ¡¼¥ÈÍѤËÀ°¤¨¤ë534 // GETの値をインサート用に整える 535 535 function lfGetInsParam($sqlVal){ 536 536 537 537 foreach($_GET as $key => $val){ 538 // ¥«¥é¥à¤Î¸ºß¥Á¥§¥Ã¥¯538 // カラムの存在チェック 539 539 if(sfColumnExists("dtb_order", $key)) $sqlVal[$key] = $val; 540 540 }
Note: See TracChangeset
for help on using the changeset viewer.
