2010/01/22

oscommerceにAjaxZip2を実装

通販で住所を登録するのが面倒なので、郵便番号を入力すると
住所が自動で入力されるAjaxZip2を実装してみる。

ダウンロードはこちら

で肝心のoscommerceで住所を入力するところといえば
../catalog/create_account.phpなのですが
項目のモジュールは../catalog/includes/account_details.phpですね

まずはこの二つのファイルをバックアップ
ダウンロードしたファイルを/catalogにアップロード
簡単な所から書き換えるとcreate_account.phpのhead内に以下を追記

<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>
<script>AjaxZip2.JSONDATA = 'ajaxzip2/data';</script>


次は../includes/modules/account_details.phpの145行目あたりに
// postcode
if ($is_read_only == true) {
$a_value = $account['entry_postcode'];
} elseif ($error) {
if ($entry_post_code_error == true) {
$a_value = tep_draw_input_field('postcode') . ' ' . ENTRY_POST_CODE_ERROR;
} else {
$a_value = $postcode . tep_draw_hidden_field('postcode');
}
} else {
$a_value = tep_draw_input_field('postcode', $account['entry_postcode']) . ' ' . ENTRY_POST_CODE_TEXT;
こんなところがあるので
$a_value = tep_draw_input_field('postcode', $account['entry_postcode']) . ' ' . ENTRY_POST_CODE_TEXT;
コレにkawa.netさんのマニュアルのようになる風に書き換え
$a_value = tep_draw_input_field('postcode', $account['entry_postcode'],'onKeyUp="AjaxZip2.zip2addr(this,\'state\',\'city\',null,\'addr\',\'street_address\');"') . ' ' . ENTRY_POST_CODE_TEXT;
この二つのファイルをアップロードして完了!(5分かからんな)