インターネット、WEBサイトの設置運用サービス

2019/06

17

HOME > ソリューション > osCommerce > 変更・注意事項

osCommerce V2.3.4.1 JP 変更・注意事項

osCommerce V2.3.4.1 を日本語仕様にするために変更した内容

日本語表記用ファイルの追加

英語表記用言語ファイルから日本語に翻訳したファイルを作成しています。

  • フロント画面用日本語言語ファイルディレクトリ:catalog/includes/languages/japanese
  • 管理画面用日本語言語ファイルディレクトリ:catalog/admin/includes/languages/japanese

コンフィグファイルの日本語化

言語用ファイル以外に、項目名、コメントなどをデータベースのテーブルに収録している部分が多数存在します。

慣れた方ならデータベースを開いて書き換えることもできますが、不用意に変更すると意図しない事態になることもあります。

  • 英語表記の項目名やコメントはインストールプログラム内のデータベース作成SQLファイル内に所蔵されているため、このSQLファイルを日本語に翻訳しています。

    データベーステーブル名:configrations  configration_group

    データベース内の日本語化はインストールと同時に行われることになります。(外国人スタッフには管理画面は使いづらいかも?)
    言語ファイルの表示は英語、日本語と切り換えて表示されますが、データベース内の言語表記は日本語に変換されているため英語表記は失われることになります。
  • 日本語言語ファイルはシステム内の言語ファイル管理機能から自由に編集・変更可能です。
    業種や取り扱い商品により呼称や単位など多種存在するため適時変更してご利用ください。

 

地域データの追加

日本の都道府県名を追加登録しています。(47件)

  • インストールプログラムのテーブル作成SQLファイルを利用しているためシステム設定で追加する必要はありません。
    (公式サイトの標準インストールプログラムには日本の都道府県は存在しないため、追加登録が必要です)

日本式氏名・住所・時間表記に変更

アカウント登録の際、氏名、住所など、日本式表示と英語では表現方法、順序が異なるため、日本式に本体プログラムを変更しています。

  • 住所の登録項目は管理メニューから表示、非表示の設定があるため、設定内容に応じて変化します。
  • 変更プログラム名は整理後、追加掲載します。

 

関係ファイル:

  •  catalog/admin/customers.php
  • catalog/admin/modules/dashbord/d_customers.php
  • catalog/admin/includes/modules/dashboard/d_orders.php
  • catalog/admin/stats_customers.php
  • catalog/acount_edit.php
  • catalog/addresss_book.php
  • catalog/address_book_process
  • catalog/advancnced_search_result.php
  • catalog/checkout_shipping_address.php
  • catalog/creat_account.php
  • catalog/creat_acount_saccess.php
  • catalog/includes/modules/address_book_details.php
  • catalog/includes/modules/checkouto_new_address.php
  • catalog/product_reviews_write.php

表示結果:

  • 性別: ENTRY_GENDER
  • 氏名【姓): ENTRY_LAST_NAME
  • 氏名(名前): ENTRY_FIRST_NAME
  • 会社名: ENTRY_COMPANY
  • 郵便番号: ENTRY_POST_CODE
  • 都道府県名: ENTRY_STATE
  • 市区名: ENTRY_CITY
  • 町名番地: ENTRY_STREET_ADDRESS
  • 建物名・部屋番号: ENTRY_SUBURB
  • 国名: ENTRY_COUNTRY

元に戻す場合は公式サイトからダウンロードしたプログラムと差し替えることで元に戻すことが可能です。

 

日付時間のフォーマットの変更

日付、時間の表記方法を日本式に変更しています。

フロント(WEB catalog)、バックヤード(管理 admin)のそれぞれに japanese.php があり、このファイル中でパラメータの記述部分があります。これを書き換えることで表示方法を変更できます。

japanese.php の先頭部分あたり

setlocale(LC_TIME, 'ja_JP.UTF-8');
define('DATE_FORMAT_SHORT', '%Y/%m/%d'); // this is used for strftime()
define('DATE_FORMAT_LONG', '%Y,%m %d %A'); // this is used for strftime() %Y:年 4桁の数字。 %m:月 2桁の数字 先頭にゼロをつける。 %d:日 2桁の数字。
define('DATE_FORMAT', 'Y/m/d'); // this is used for date()
define('PHP_DATE_TIME_FORMAT', 'Y/m/d H:i:s'); // this is used for date() H:時 2桁の数字 24時間単位。 i:分 2桁の数字 先頭にゼロをつける。 s:秒 2桁の数字 先頭にゼロをつける。
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S'); // H M S の大文字 2桁の数字 24 時間単位。 小文字は12時間単位。
define('JQUERY_DATEPICKER_I18N_CODE', ''); // leave empty for en_US; see http://jqueryui.com/demos/datepicker/#localization
define('JQUERY_DATEPICKER_FORMAT', 'yy/mm/dd'); // see http://docs.jquery.com/UI/Datepicker/formatDate
////PHPの日付の取り扱い詳細はこちらを参照:https://www.php.net/manual/ja/function.date.php


// Return date in raw format
// $date should be in format mm/dd/yyyy
// raw date is in format YYYYMMDD, or DDMMYYYY
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 3, 2) . substr($date, 0, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 0, 2) . substr($date, 3, 2);
}
}

// Global entries for the <html> tag
define('HTML_PARAMS','dir="ltr" lang="ja_JP.UTF-8"');

関係ファイル:

  • catalog/includes/languages/japanese.php
  • catalog/adomin/includes/languages/japanese.php

誕生日入力時の jQuery のアラートを解除するための変更

 jQueryを利用したカレンダー日付の入力では表示日付は 2019/10/15 のように表示されていますが、入力値チェックは 10/15/2019 形式で行われるためアラートエラーが表示されます。アラートを解除するため以下のプログラムを変更します。

 これで表示形式の 2019/10/15 のフォーマットによるチェックが行われるためアラートが表示されなくなります。

  • catalog/creat_account.php
    htmlエディタまたはテキストエディタで acount_edit.php ファイルを開きます。
    310行目

    <td class="fieldValue"><?php echo tep_draw_input_field('dob', '', 'id="dob"') . '&nbsp;' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?><script type="text/javascript">$('#dob').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script></td>

    以下のように変更します。

    <td class="fieldValue"><?php echo tep_draw_input_field('dob', '', 'id="dob"') . '&nbsp;' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?><script type="text/javascript">$('#dob').datepicker({ altFormat: "yy-mm-dd", changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script></td>

  • catalog/acount_edit.php
htmlエディタまたはテキストエディタで acount_edit.php ファイルを開きます。
180行目

<td class="fieldValue"><?php echo tep_draw_input_field('dob', tep_date_short($account['customers_dob']), 'id="dob"') . '&nbsp;' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?><script type="text/javascript">$('#dob').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script></td>

以下のように変更します。

<td class="fieldValue"><?php echo tep_draw_input_field('dob', tep_date_short($account['customers_dob']), 'id="dob"') . '&nbsp;' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?><script type="text/javascript">$('#dob').datepicker({ altFormat: "yy-mm-dd", changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script></td>

  • catalog/admin/customers.php
 htmlエディタまたはテキストエディタで acount_edit.php ファイルを開きます。
425行目

<script type="text/javascript">$('#customers_dob').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script>


以下のように変更します。

<script type="text/javascript">$('#customers_dob').datepicker({ altFormat: "yy-mm-dd" , changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script>


データベーステーブルの変更

  • データベース address_format のレコード番号5番に日本式フォーマットを登録
    address_format varchar(128) $lastname$firstname$cr$postcode$cr$state$cr$city$cr$streets$cr

    チェックアウト処理のデフォルトアドレスの表示形式に影響します。

  • 国の設定からアドレスのフォーマット番号を選択できます。 

 

管理画面 ヘッダーリンクに target="_blank " を追加

  • 管理画面からフロントページを開く場合、新たなタブで開くように変更 

注意事項:

本来、公開するべきではないのかもしれませんが、公開することで多くの方による手直しが入ることを期待しています。

osCmmerceにおいてはすでにV2.4Bataも公開されていますが安定版供給までには相当の時間がかかるものと思われます。

レガシーと言われるようになったV2.2をご利用の方もいる現状を考えると現在のバージョンが最も移行しやすいバージョンではないでしょうか?

そんな思いから今回の日本語化を進めてきました。ご協力いただける方は是非よろしくお願い申し上げます。

  • 配送モジュール関連プログラムソースをまとめたものをダウンロードできます。

    ダウンロード:配送、支払い、注文合計関連ファイル (佐川急便の料金テーブルを修正しました 2018/12/12)
    ディレクトリ別に収録されています。解凍ファイル丸ごとアップロードすれば関連ディレクトリに配置されます。

  • 配送:佐川、ヤマト、西濃、ゆうパック

    支払い方法:銀行振り込み、COD(代引き)、佐川代引き、ヤマト代引き、郵便振替
    注文合計:COD佐川、CODヤマト、配送料、小計、合計 

  • 配送モジュール 佐川、ヤマト、西濃、ゆうパック、日通(ゆうパックと統合のため廃止予定)
    v2.2用のプログラムを流用しています。

  • 代引き料金が支払合計金額に反映されません。(修正作業中)

  • 佐川、ヤマトで代引き料金自動計算をしようとした場合注文を確定できません。(修正作業中)
    代引き自動以外の支払い方法を選択した場合は問題なく注文確定します。

  • 配送元、配送先地域コードは注文データから自動取得しています。 

  • 配送料金について:

    サイズ、重量、地域間距離による料金の算出は問題ありません。
    佐川、ヤマトについては標準料金を設定しています。西濃は仮の定額一律料金を設定しています。
    (料金テーブルを変更すれば自在に計算します)

実際の運用に際しては販売者と配送業者間の取引内容などにより配送料金変更が考えられます。この場合は料金テーブルの変更が必要です。

配送料金の算定基準については 配送モジュール ページをご参照ください。