バージョン選択

フォーラム

メニュー

オンライン状況

54 人のユーザが現在オンラインです。 (45 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 54
もっと...

サイト内検索

機能要望 > フロント機能 > 携帯からの非会員購入

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sumida
投稿日時: 2013/7/12 21:08
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
携帯からの非会員購入
チケット http://svn.ec-cube.net/open_trac/ticket/2205 にある携帯での非会員購入をやってみました。
私もほしいと思っていたのと、PC、スマホで動作している機能なので、ロジック部分はすでに存在している訳で。

ただし、「注文する」をクリック後、携帯製造番号を要求され、
その後、非会員の購入を選択できるので、ちょっと「?」です。
既存会員の携帯(携帯製造番号登録済み)からは、非会員で購入できません。

data/class/page/shopping/LC_Page_Shopping.php


            // お客様情報登録
            case 'nonmember_confirm':
                $this->tpl_mainpage = $nonmember_mainpage;
                $this->tpl_title = $nonmember_title;
                $this->lfInitParam($objFormParam);
                $objFormParam->setParam($_POST);
// added
            if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) {
                // 携帯:住所自動入力(お客様)
                if (isset($_POST['submit_address_order'])) {
                    // 入力エラーチェック
                    $this->arrErr = $this->lfCheckErrorOrder($_POST);
                    // 入力エラーの場合は終了
                    if (count($this->arrErr) == 0) {
                        // 郵便番号検索文作成
                        $zipcode = $_POST['order_zip01'] . $_POST['order_zip02'];

                        // 郵便番号検索
                        $arrAdsList = SC_Utils_Ex::sfGetAddress($zipcode);

                        // 郵便番号が発見された場合
                        if (!empty($arrAdsList)) {
                            $data['order_pref'] = $arrAdsList[0]['state'];
                            $data['order_addr01'] = $arrAdsList[0]['city']. $arrAdsList[0]['town'];
                            $objFormParam->setParam($data);

                            // 該当無し
                        } else {
                            $this->arrErr['order_zip01'] = '※該当する住所が見つかりませんでした。<br>';
                        }
                    }
                    break;
                }
                // 携帯:住所自動入力(お届け先)
                if (isset($_POST['submit_address_shipping'])) {
                    // 入力エラーチェック
                    $this->arrErr = $this->lfCheckErrorShipping($_POST);
                    // 入力エラーの場合は終了
                    if (count($this->arrErr) == 0) {
                        // 郵便番号検索文作成
                        $zipcode = $_POST['shipping_zip01'] . $_POST['shipping_zip02'];

                        // 郵便番号検索
                        $arrAdsList = SC_Utils_Ex::sfGetAddress($zipcode);

                        // 郵便番号が発見された場合
                        if (!empty($arrAdsList)) {
                            $data['shipping_pref'] = $arrAdsList[0]['state'];
                            $data['shipping_addr01'] = $arrAdsList[0]['city']. $arrAdsList[0]['town'];
                            $objFormParam->setParam($data);

                            // 該当無し
                        } else {
                            $this->arrErr['shipping_zip01'] = '※該当する住所が見つかりませんでした。<br>';
                        }
                    }
                    break;
                }
            }
// added
                $this->arrErr = $this->lfCheckError($objFormParam);

                if (SC_Utils_Ex::isBlank($this->arrErr)) {
// added
                  // 携帯:複数のお届け先
                  if ((SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) && isset($_POST['several'])) {

                    $this->lfRegistData($this->tpl_uniqid, $objPurchase, $objCustomer, $objFormParam, true);

                    $objSiteSess->setRegistFlag();

                    SC_Response_Ex::sendRedirect(MULTIPLE_URLPATH);
                    SC_Response_Ex::actionExit();

                  } else {
// added
                    $this->lfRegistData($this->tpl_uniqid, $objPurchase, $objCustomer, $objFormParam);

                    $arrParams = $objFormParam->getHashArray();
                    $shipping_id = $arrParams['deliv_check'] == '1' ? 1 : 0;
                    $objPurchase->setShipmentItemTempForSole($objCartSess, $shipping_id);

                    $objSiteSess->setRegistFlag();


                    SC_Response_Ex::sendRedirect(SHOPPING_PAYMENT_URLPATH);
                    SC_Response_Ex::actionExit();
// added
                  }
// added
                }
                break;


// added
    /**
     * 入力エラーのチェック.
     *
     * @param array $arrRequest リクエスト値($_GET)
     * @return array $arrErr エラーメッセージ配列
     */
    function lfCheckErrorOrder($arrRequest) {
        // パラメーター管理クラス
        $objFormParam = new SC_FormParam_Ex();
        // パラメーター情報の初期化
        $objFormParam->addParam('郵便番号1', 'order_zip01', ZIP01_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('郵便番号2', 'order_zip02', ZIP02_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK'));
        // // リクエスト値をセット
        $arrData['order_zip01'] = $arrRequest['order_zip01'];
        $arrData['order_zip02'] = $arrRequest['order_zip02'];
        $objFormParam->setParam($arrData);
        // エラーチェック
        $arrErr = $objFormParam->checkError();

        return $arrErr;
    }
    function lfCheckErrorShipping($arrRequest) {
        // パラメーター管理クラス
        $objFormParam = new SC_FormParam_Ex();
        // パラメーター情報の初期化
        $objFormParam->addParam('郵便番号1', 'shipping_zip01', ZIP01_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('郵便番号2', 'shipping_zip02', ZIP02_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK'));
        // // リクエスト値をセット
        $arrData['shipping_zip01'] = $arrRequest['shipping_zip01'];
        $arrData['shipping_zip02'] = $arrRequest['shipping_zip02'];
        $objFormParam->setParam($arrData);
        // エラーチェック
        $arrErr = $objFormParam->checkError();

        return $arrErr;
    }
// added

data/Smarty/templates/mobile/shopping/index.tpl

        <!--▼会員登録がお済みでないお客様-->
        ■初めてご注文の方<br>
        (新規ご登録)<br>
        <form name="member_form" id="member_form" method="post" action="<!--{$smarty.const.ROOT_URLPATH}-->entry/kiyaku.php">
            <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->">
            <div align="center"><input type="submit" value="新規登録"></div><br>
        </form>
<!--{* added *}-->
        (会員登録をせずに購入)<br>
        <form name="member_form2" id="member_form2" method="post" action="<!--{$smarty.const.ROOT_URLPATH}-->shopping/index.php">
            <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->">
            <input type="hidden" name="mode" value="nonmember" />
            <div align="center"><input type="submit" value="会員登録をせずに購入"></div><br>
        </form>
<!--{* added *}-->
        <!--▲まだ会員登録されていないお客様-->

新規:data/Smarty/templates/mobile/shopping/nonmember_input.tpl

<!--{strip}-->
    <form name="form1" id="form1" method="post" action="?">
        <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->">
        <input type="hidden" name="mode" value="nonmember_confirm">
        <input type="hidden" name="uniqid" value="<!--{$tpl_uniqid}-->" />
        <font color="#FF0000">*は必須項目です。</font><br>
        <br>

        ●お名前<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.order_name01}--><!--{$arrErr.order_name02}--></font>
        姓(例:渋谷)<br>
        <input type="text" name="order_name01" value="<!--{$arrForm.order_name01.value|h}-->" maxlength="<!--{$arrForm.order_name01.length}-->" istyle="1"><br>

        名(例:花子)<br>
        <input type="text" name="order_name02" value="<!--{$arrForm.order_name02.value|h}-->" maxlength="<!--{$arrForm.order_name02.length}-->" istyle="1"><br>

        ●お名前(フリガナ)<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.order_kana01}--><!--{$arrErr.order_kana02}--></font>
        フリガナ/姓(例:シブヤ)<br>
        <input type="text" name="order_kana01" value="<!--{$arrForm.order_kana01.value|h}-->" maxlength="<!--{$arrForm.order_kana01.length}-->" istyle="2"><br>

        フリガナ/名(例:ハナコ)<br>
        <input type="text" name="order_kana02" value="<!--{$arrForm.order_kana02.value|h}-->" maxlength="<!--{$arrForm.order_kana02.length}-->" istyle="2"><br>

        ●性別<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.order_sex}--></font>
        <input type="radio" name="order_sex" value="1" <!--{if $arrForm.order_sex.value eq 1}-->checked<!--{/if}-->>男性&nbsp;<input type="radio" name="order_sex" value="2" <!--{if $arrForm.order_sex.value eq 2}-->checked<!--{/if}-->>女性<br>

        ●職業<br>
        <font color="#FF0000"><!--{$arrErr.order_job}--></font>
        <select name="job">
            <option value="">選択してください</option>
            <!--{html_options options=$arrJob selected=$arrForm.order_job.value}-->
        </select><br>

        ●生年月日<br>
        <font color="#FF0000"><!--{$arrErr.year}--><!--{$arrErr.month}--><!--{$arrErr.day}--></font>
        <input type="text" name="year" value="<!--{$arrForm.year.value|h}-->" size="4" maxlength="4" istyle="4">年<br>
        <select name="month">
            <!--{html_options options=$arrMonth selected=$arrForm.month.value}-->
        </select>月<br>
        <select name="day">
            <!--{html_options options=$arrDay selected=$arrForm.day.value}-->
        </select>日<br>

        ●郵便番号<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></font>
        <input size="<!--{$arrForm.order_zip01.length+2}-->" type="text" name="order_zip01" value="<!--{if $arrForm.order_zip01.value == ""}--><!--{$arrOtherDeliv.zip01.value|h}--><!--{else}--><!--{$arrForm.order_zip01.value|h}--><!--{/if}-->" maxlength="<!--{$arrForm.order_zip01.length}-->" istyle="4">
        &nbsp;-&nbsp;
        <input size="<!--{$arrForm.order_zip02.length+2}-->" type="text" name="order_zip02" value="<!--{if $arrForm.order_zip02.value == ""}--><!--{$arrOtherDeliv.zip02.value|h}--><!--{else}--><!--{$arrForm.order_zip02.value|h}--><!--{/if}-->" maxlength="<!--{$arrForm.order_zip02.length}-->" istyle="4"><br>
        <input type="submit" name="submit_address_order" value="自動住所入力"><br>
        郵便番号を入力後、クリックしてください。<br>

        ●都道府県<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.order_pref}--></font>
        <select name="order_pref">
            <option value="">都道府県を選択</option>
            <!--{html_options options=$arrPref selected=$arrForm.order_pref.value}-->
        </select><br>

        ●住所1<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.order_addr01}--></font>
        <input type="text" name="order_addr01" value="<!--{$arrForm.order_addr01.value|h}-->" istyle="1"><br>

        ●住所2<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.order_addr02}--></font>
        <input type="text" name="order_addr02" value="<!--{$arrForm.order_addr02.value|h}-->" istyle="1"><br>

        ●電話番号<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.order_tel01}--><!--{$arrErr.order_tel02}--><!--{$arrErr.order_tel03}--></font>
        <input type="text" size="<!--{$arrForm.order_tel01.length+2}-->" name="order_tel01" value="<!--{$arrForm.order_tel01.value|h}-->" maxlength="<!--{$arrForm.order_tel01.length}-->" istyle="4">
        &nbsp;-&nbsp;
        <input type="text" size="<!--{$arrForm.order_tel02.length+2}-->" name="order_tel02" value="<!--{$arrForm.order_tel02.value|h}-->" maxlength="<!--{$arrForm.order_tel02.length}-->" istyle="4">
        &nbsp;-&nbsp;
        <input type="text" size="<!--{$arrForm.order_tel03.length+2}-->" name="order_tel03" value="<!--{$arrForm.order_tel03.value|h}-->" maxlength="<!--{$arrForm.order_tel03.length}-->" istyle="4"><br>

        ●メールアドレス<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.order_email}--></font>
        <input type="text" name="order_email" value="<!--{$arrForm.order_email.value|h}-->" istyle="3">
        <br>
        <font color="#FF0000"><!--{$arrErr.order_email02}--></font>
        <input type="text" name="order_email02" value="<!--{$arrForm.order_email02.value|h}-->" istyle="3" />
        <br>
        <font color="#FF0000">確認のため2度入力してください。</font>
        <br>

        <hr>
        <input type="checkbox" name="deliv_check" value="1" <!--{$arrForm.deliv_check.value|sfGetChecked:1}--> /><font color="#FF0000">お届け先を指定</font><br>
         ※上記に入力された住所と同一の場合は省略可能です。<br>
        
        ○お名前<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.shipping_name01}--><!--{$arrErr.shipping_name02}--></font>
        姓<br>
        <input type="text" name="shipping_name01" value="<!--{$arrForm.shipping_name01.value|h}-->" maxlength="<!--{$arrForm.shipping_name01.length}-->" istyle="1" /><br>

        名<br>
        <input type="text" name="shipping_name02" value="<!--{$arrForm.shipping_name02.value|h}-->" maxlength="<!--{$arrForm.shipping_name02.length}-->" istyle="1" /><br>

        ○お名前(フリガナ)<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.shipping_kana01}--><!--{$arrErr.shipping_kana02}--></font>
        セイ<br>
        <input type="text" name="shipping_kana01" value="<!--{$arrForm.shipping_kana01.value|h}-->" maxlength="<!--{$arrForm.shipping_kana01.length}-->" istyle="2" /><br>

        メイ<br>
        <input type="text" name="$shipping_kana02" value="<!--{$arrForm.shipping_kana02.value|h}-->" maxlength="<!--{$arrForm.shipping_kana02.length}-->" istyle="2" /><br>

        ○郵便番号<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.shipping_zip01}--><!--{$arrErr.shipping_zip02}--></font>
        <input size="<!--{$arrForm.shipping_zip01.length+2}-->" type="text" name="shipping_zip01" value="<!--{$arrForm.shipping_zip01.value|h}-->" maxlength="<!--{$arrForm.shipping_zip01.length}-->" istyle="4" />
        &nbsp;-&nbsp;
        <input size="<!--{$arrForm.shipping_zip02.length+2}-->" type="text" name="shipping_zip02" value="<!--{$arrForm.shipping_zip02.value|h}-->" maxlength="<!--{$arrForm.shipping_zip02.length}-->" istyle="4" /><br> 
        <input type="submit" name="submit_address_shipping" value="自動住所入力"><br>
        郵便番号を入力後、クリックしてください。<br>

        ○都道府県<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.shipping_pref}--></font>
        <select name="shipping_pref">
            <option value="">都道府県を選択</option>
            <!--{html_options options=$arrPref selected=$arrForm.shipping_pref.value}-->
        </select><br>

        ○住所1<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.shipping_addr01}--></font>
        <input type="text" name="shipping_addr01" value="<!--{$arrForm.shipping_addr01.value|h}-->" maxlength="<!--{$arrForm.shipping_addr01.length}-->" istyle="1" /><br />

        ○住所2<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.shipping_addr02}--></font>
        <input type="text" name="shipping_addr02" value="<!--{$arrForm.shipping_addr02.value|h}-->" maxlength="<!--{$arrForm.shipping_addr02.length}-->" istyle="1" /><br />

        ○電話番号<font color="#FF0000"> *</font><br>
        <font color="#FF0000"><!--{$arrErr.shipping_tel01}--><!--{$arrErr.shipping_tel02}--><!--{$arrErr.shipping_tel03}--></font>
        <input type="text" size="<!--{$arrForm.shipping_tel01.length+2}-->" name="shipping_tel01" value="<!--{$arrForm.shipping_tel01.value|h}-->" maxlength="<!--{$arrForm.shipping_tel01.length}-->" istyle="4" />
        &nbsp;-&nbsp;
        <input type="text" size="<!--{$arrForm.shipping_tel02.length+2}-->" name="shipping_tel02" value="<!--{$arrForm.shipping_tel02.value|h}-->" maxlength="<!--{$arrForm.shipping_tel02.length}-->" istyle="4" />
        &nbsp;-&nbsp;
        <input type="text" size="<!--{$arrForm.shipping_tel03.length+2}-->" name="shipping_tel03" value="<!--{$arrForm.shipping_tel03.value|h}-->" maxlength="<!--{$arrForm.shipping_tel03.length}-->" istyle="4" /><br>

        <!--{if $smarty.const.USE_MULTIPLE_SHIPPING !== false}-->

            <div align="left"><input type="submit" name="singular" id="singular" value="上記のお届け先のみに送る"></div>
            <div align="right"><input type="submit" name="several" id="several" value="複数のお届け先に送る"></div>

        <!--{else}-->

            <div align="center"><input type="submit" name="singular" id="singular" value="次へ"></div>

         <!--{/if}-->

    </form>
<!--{/strip}-->
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,902名です
総投稿数は110,006件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.