EC-CUBE2.12:ajaxzip3住所自動入力(郵便番号DB登録・メンテナンス不要)

下記スクリプトを使用しています。
http://code.google.com/p/ajaxzip3/

○ 管理画面でも自動入力ができる。
○ https://接続も自動で切り替わる。

こちらで確認できます。

1 管理画面とフロントページで利用するので、下記ファイルに同様の記述を行う。
■data/Smarty/templates/admin/main_frame.tpl
■data/Smarty/templates/default/site_frame.tpl
■data/Smarty/templates/default/popup_header.tpl
■data/Smarty/templates/sphone/site_frame.tpl

<!--ajaxzip3住所自動入力-->
<!--{if ($smarty.server.HTTPS != "") && ($smarty.server.HTTPS != "off")}-->
<script type="text/javascript" src="https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3-https.js"></script>
<!--{else}-->
<script type="text/javascript" src="http://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js"></script>
<!--{/if}-->

2 郵便番号入力箇所があるページを修正する。

修正内容は次の通り
●郵便番号の2つある入力ボックスのうち、2番目の入力ボックスに下記を追加する。
onKeyUp=”AjaxZip3.zip2addr(‘zip01′,’zip02′,’pref’,’addr01′,’addr02′);”
※zip01等の値は、ファイルによって異なる。
入力ボタンを削除し、 (入力後、住所自動表示)を記述。

【▼変更前】


郵便番号 *

background-color: ;” /> – background-color: ;” />
*

background-color: ;” /> – background-color: ;onKeyUp=”AjaxZip3.zip2addr(‘zip01′,’zip02′,’pref’,’addr01′,’addr02′);” />
 (入力後、住所自動表示)

(1)管理画面

 SHOPマスター ■data/Smarty/templates/admin/basis/index.tpl

〒 <input type="text" name="zip01" value="<!--{$arrForm.zip01|h}-->" maxlength="3" size="6" class="box6" style="<!--{if $arrErr.zip01 != ""}-->background-color: <!--{$smarty.const.ERR_COLOR}-->;<!--{/if}-->" /> - <input type="text" name="zip02" value="<!--{$arrForm.zip02|h}-->" maxlength="4"    size="6" class="box6" style="<!--{if $arrErr.zip02 != ""}-->background-color: <!--{$smarty.const.ERR_COLOR}-->;<!--{/if}-->" onKeyUp="AjaxZip3.zip2addr('zip01','zip02','pref','addr01','addr02');" />&nbsp;<span style="font-size:90%;">(入力後、住所自動表示)</span>

 特定商取引法 ■data/Smarty/templates/admin/basis/tradelaw.tpl

〒
<input type="text" name="<!--{$arrForm[$key1].keyname}-->" value="<!--{$arrForm[$key1].value|h}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->"    size="6" class="box6" />
-
<input type="text"    name="<!--{$arrForm[$key2].keyname}-->" value="<!--{$arrForm[$key2].value|h}-->" maxlength="<!--{$arrForm[$key2].length}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->"    size="6"  class="box6" onKeyUp="AjaxZip3.zip2addr('law_zip01','law_zip02','law_pref','law_addr01','law_addr02');" />&nbsp;<span style="font-size:90%;">(入力後、住所自動表示)

 会員登録 ■data/Smarty/templates/admin/customer/edit.tpl

〒 <input type="text" name="zip01" value="<!--{$arrForm.zip01|h}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" size="6" class="box6" maxlength="3" <!--{if $arrErr.zip01 != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> /> - <input type="text" name="zip02" value="<!--{$arrForm.zip02|h}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" size="6" class="box6" maxlength="4" <!--{if $arrErr.zip02 != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> onKeyUp="AjaxZip3.zip2addr('zip01','zip02','pref','addr01','addr02');" />&nbsp;<span style="font-size:90%;">(入力後、住所自動表示)</span>

 受注登録 ■data/Smarty/templates/admin/order/edit.tpl

〒
<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|h}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" size="6" class="box6" />
-
<input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2].value|h}-->" maxlength="<!--{$arrForm[$key2].length}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->" size="6" class="box6" onKeyUp="AjaxZip3.zip2addr('order_zip01','order_zip02','order_pref','order_addr01','order_addr02');" />&nbsp;<span style="font-size:90%;">(入力後、住所自動表示)</span>

(2)フロントページ

【PC用】

 お問い合わせ ■data/Smarty/templates/default/contact/index.tpl

<input type="text" name="zip01" class="box60" value="<!--{$arrForm.zip01.value|h|default:$arrData.zip01|h}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" style="<!--{$arrErr.zip01|sfGetErrorColor}-->; ime-mode: disabled;" />&nbsp;-&nbsp;
<input type="text" name="zip02" class="box60" value="<!--{$arrForm.zip02.value|h|default:$arrData.zip02|h}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" style="<!--{$arrErr.zip02|sfGetErrorColor}-->; ime-mode: disabled;" onKeyUp="AjaxZip3.zip2addr('zip01','zip02','pref','addr01','addr02');" />&nbsp;(入力後、住所自動表示)</span>
<a href="http://search.post.japanpost.jp/zipcode/" target="_blank"><span class="mini">郵便番号検索</span></a>

 会員登録・新しいお届け先 ■data/Smarty/templates/default/frontparts/form_personal_input.tpl

<p class="top">〒&nbsp;<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1]|h}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: disabled;" class="box60" />&nbsp;-&nbsp;<input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2]|h}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: disabled;" class="box60" onKeyUp="AjaxZip3.zip2addr('zip01','zip02','pref','addr01','addr02');" />&nbsp;(入力後、住所自動表示)</span>
<a href="http://search.post.japanpost.jp/zipcode/" target="_blank"><span class="mini">郵便番号検索</span></a>

 会員登録せずに購入 ■data/Smarty/templates/default/shopping/nonmember_input.tpl お客様情報入力
1カ所目

<p class="top">〒&nbsp;<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|h}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: disabled;"    />&nbsp;-&nbsp;    <input type="text"    name="<!--{$key2}-->" value="<!--{$arrForm[$key2].value|h}-->" maxlength="<!--{$arrForm[$key2].length}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: disabled;" onKeyUp="AjaxZip3.zip2addr('order_zip01','order_zip02','order_pref','order_addr01','order_addr02');" />
<a href="http://search.post.japanpost.jp/zipcode/" target="_blank"><span>郵便番号検索</span></a></p>

<p class="zipimg">&nbsp;(入力後、住所自動表示)</span></p>

2カ所目

<p class="top">〒&nbsp;<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|h}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: disabled;" class="box60" />&nbsp;-&nbsp;    <input type="text"    name="<!--{$key2}-->" value="<!--{$arrForm[$key2].value|h}-->" maxlength="<!--{$arrForm[$key2].length}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: disabled;" class="box60" onKeyUp="AjaxZip3.zip2addr('shipping_zip01','shipping_zip02','shipping_pref','shipping_addr01','shipping_addr02');" />
<a href="http://search.post.japanpost.jp/zipcode/" target="_blank"><span class="mini">郵便番号検索</span></a></p>

<p class="zipimg">&nbsp;(入力後、住所自動表示)</span></p>

【スマホ用】

 お問い合わせ ■data/Smarty/templates/sphone/contact/index.tpl

<dt>郵便番号</dt>
<dd>
<!--{assign var=key1 value="`$prefix`zip01"}-->
<!--{assign var=key2 value="`$prefix`zip02"}-->
<!--{assign var=key3 value="`$prefix`pref"}-->
<!--{assign var=key4 value="`$prefix`addr01"}-->
<span class="attention"><!--{$arrErr.zip01}--><!--{$arrErr.zip02}--></span>
<p>
<input type="tel" name="zip01"
value="<!--{$arrForm.zip01.value|default:$arrData.zip01|h}-->"
max="<!--{$smarty.const.ZIP01_LEN}-->"
style="<!--{$arrErr.zip01|sfGetErrorColor}-->; ime-mode: disabled;" class="boxShort text data-role-none" />&nbsp;-&nbsp;<input type="tel" name="zip02"
value="<!--{$arrForm.zip02.value|default:$arrData.zip02|h}-->"
max="<!--{$smarty.const.ZIP02_LEN}-->"
style="<!--{$arrErr.zip02|sfGetErrorColor}-->; ime-mode: disabled; class="boxShort text data-role-none"" onKeyUp="AjaxZip3.zip2addr('zip01','zip02','pref','addr01','addr02');" />&nbsp;&nbsp;<a href="http://search.post.japanpost.jp/zipcode/" target="_blank" rel="external"><span class="fn">郵便番号検索</span></a>
</p>
</dd>

  会員登録・新しいお届け先追加 ■data/Smarty/templates/sphone/frontparts/form_personal_input.tpl

<dt>郵便番号&nbsp;<span class="attention">※</span></dt>
<dd>
<!--{assign var=key1 value="`$prefix`zip01"}-->
<!--{assign var=key2 value="`$prefix`zip02"}-->
<!--{assign var=key3 value="`$prefix`pref"}-->
<!--{assign var=key4 value="`$prefix`addr01"}-->
<!--{assign var=key5 value="`$prefix`addr02"}-->
<!--{if $arrErr[$key1] || $arrErr[$key2]}-->
<div class="attention"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></div>
<!--{/if}-->
<p><input type="tel" name="<!--{$key1}-->" value="<!--{$arrForm[$key1]|h}-->" max="<!--{$smarty.const.ZIP01_LEN}-->"  class="boxShort text data-role-none"/>&nbsp;-&nbsp;<input type="tel" name="<!--{$key2}-->" value="<!--{$arrForm[$key2]|h}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" class="boxShort text data-role-none" onKeyUp="AjaxZip3.zip2addr('zip01','zip02','pref','addr01','addr02');" />&nbsp;&nbsp;<a href="http://search.post.japanpost.jp/zipcode/" target="_blank" rel="external"><span class="fn">郵便番号検索</span></a></p>
</dd>

 会員登録せずに購入 ■data/Smarty/templates/sphone/shopping/nonmember_input.tpl お客様情報入力
1カ所目

<dt>郵便番号&nbsp;<span class="attention">※</span></dt>
<dd>
<!--{assign var=key1 value="order_zip01"}-->
<!--{assign var=key2 value="order_zip02"}-->
<span class="attention"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></span>
<p>
<input type="tel" name="<!--{$key1}-->"
value="<!--{$arrForm[$key1].value|h}-->"
max="<!--{$arrForm[$key1].length}-->"
style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" class="boxShort text data-role-none" />&nbsp;-&nbsp;
<input type="tel" name="<!--{$key2}-->"
value="<!--{$arrForm[$key2].value|h}-->"
max="<!--{$arrForm[$key2].length}-->"
style="<!--{$arrErr[$key2]|sfGetErrorColor}-->" class="boxShort text data-role-none" onKeyUp="AjaxZip3.zip2addr('order_zip01','order_zip02','order_pref','order_addr01','order_addr02');" />&nbsp;
<a href="http://search.post.japanpost.jp/zipcode/" target="_blank"><span class="fn">郵便番号検索</span></a>
</p>
</dd>

2カ所目

<dt>郵便番号&nbsp;<span class="attention">※</span></dt>
<dd>
<!--{assign var=key1 value="shipping_zip01"}-->
<!--{assign var=key2 value="shipping_zip02"}-->
<span class="attention"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></span>
<p>
<input type="tel" name="<!--{$key1}-->"
value="<!--{$arrForm[$key1].value|h}-->"
max="<!--{$arrForm[$key1].length}-->"
style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" class="boxShort text data-role-none" />&nbsp;-&nbsp;
<input type="tel" name="<!--{$key2}-->"
value="<!--{$arrForm[$key2].value|h}-->"
max="<!--{$arrForm[$key2].length}-->"
style="<!--{$arrErr[$key2]|sfGetErrorColor}-->" class="boxShort text data-role-none" onKeyUp="AjaxZip3.zip2addr('shipping_zip01','shipping_zip02','shipping_pref','shipping_addr01','shipping_addr02');" />&nbsp;
<a href="http://search.post.japanpost.jp/zipcode/" target="_blank"><span class="fn">郵便番号検索</span></a>
</p>
</dd>

【携帯では、Javascriptが使えないので、住所自動入力を削除】
  会員登録 ■data/Smarty/templates/mobile/entory/index.tpl

<input type="submit" name="submit_address" value="自動住所入力"><br>
郵便番号を入力後、クリックしてください。<br>

  MYページ会員登録内容変更 ■data/Smarty/templates/mobile/mypage/change.tpl

<input type="submit" name="submit_address" value="自動住所入力"><br>
郵便番号を入力後、クリックしてください。<br>

3 管理画面の「基本情報管理>郵便番号DB登録」を表示しない。

■data/Smarty/templates/admin/basis/subnavi.tpl
style=”display:none;”を追加

<li style="display:none;"<!--{if $tpl_subno == 'zip_install'}--> class="on"<!--{/if}--> id="navi-basis-zip"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->basis/zip_install.php"><span>郵便番号DB登録</span></a></li>