XREAサーバでのオープンソースによる運用・カスタマイズのマニュアル的ブログ。
メモ代わり、備忘録なので、詳しくは解説してないかもw
最近オープンソース以外の備忘録も書いてます。
トップページ > oscommerce(alter版)
お客様からの、HPからの問い合わせメールのヘッダ不具合を修正しました。
件名の長さから本文に余計なヘッダが付加されるようですので
contact_us.php の件名を短くすることで修正できました。
./includes/languages/japanese/contact_us.php の16行目
define('EMAIL_SUBJECT', STORE_NAME . ' への問い合わせ');
を
define('EMAIL_SUBJECT', 'お問い合わせ');
に変更
デフォルトでは銀行振り込みしかなく、送金先に2つ以上の銀行や郵便局(ぱるる)を用意している場合、お客様に改めて送金先金融機関を聞かなければなりません。
そこで注文時に送金先金融機関を選択出来るようにしました。
このブログ内のスクリプト記載で、
フォントの関係で「¥(円マーク)」の表記が「\(バックスラッシュ)」
になってしまっていますが、
エディタで編集するときには¥(これは全角ですが、ホントは半角です)となります。
「\(バックスラッシュ)」と見えていてもコピペは問題ありません。
(ブラウザでそれぞれ見え方も違うので「¥(円マーク)」のまま見えてる方もいらっしゃると思いますが念のため)
会員登録したお客さんがログインし、TOPページに戻るとログインしているのに
パンくずリストからTOPページに戻ると
「ログインするにはこちらから~」
のゲストTOPページが表示される不具合を修正しました。
./includes/application_top.php の496行目
$breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);
を$breadcrumb->add(HEADER_TITLE_TOP, tep_href_link(FILENAME_DEFAULT));
に修正
登録した商品の商品オプションを設定する際、
商品を選び、オプションを選択ところで、プルダウンメニューが、商品名順にならぶので、登録がしずらい。
そこで、プルダウンメニューを、登録した商品順に並ばせることで、スムーズにオプションを登録できるようにしました。
./admin/products_attirbutes.php の745行目
$products = tep_db_query("select p.products_id, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.products_id = p.products_id and pd.language_id = '" . $languages_id . "' order by pd.products_name");
を
$products = tep_db_query("select p.products_id, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.products_id = p.products_id and pd.language_id = '" . $languages_id . "' order by p.products_id desc");
に修正
商品管理で商品オプションの削除処理をした後、まれに、「商品属性」の<ID>が若い方から表示されなくなるエラーを修正しました。
./product_info.php の307行目付近
$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . $languages_id . "'");
を
$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . $languages_id . "' order by pa.products_attributes_id asc");
に変更
会員登録の際、必須の項目が多すぎると登録が面倒とお客さんが遠のく可能性があります。
そこで生年月日の入力を必須項目から外しました。
1..create_account_process.php の78行目から
if (ACCOUNT_DOB == 'true') {
を削除しました。
if (checkdate(substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 0, 4))) {
$entry_date_of_birth_error = false;
} else {
$error = true;
$entry_date_of_birth_error = true;
$messageStack->add('error', ENTRY_DATE_OF_BIRTH_ERROR);
}
}
自動送信のメールはほとんどバグが・・・
会員さんがパスワードを忘れてしまった時の再発行メールのヘッダがおかしく、
「○○様」とお客さんの名前が表示されない不具合を修正しました。
1.password_forgotten.php の26行目
$output = '' . "\n\n" . EMAIL_PASSWORD_REMINDER_BODY;
を
$output = tep_get_fullname($check_customer['customers_firstname'],$check_customer['customers_lastname']). EMAIL_GREET . "\n\n" . EMAIL_PASSWORD_REMINDER_BODY;
に修正
http://open.netdrive.in/2006/10/post_38.phpで修正した項目が完全ではありませんでした。
管理画面から顧客にメール送信した際、
「○○EMAIL_GREET」と表示されていたのを修正。
./admin/includes/languages/japanese/mail.php の適当な箇所に
define('EMAIL_GREET', ' 様 ');
を追加しました。
会員登録が完了したときに自動で送るメールのヘッダがおかしいバグを修正。
原因はよく分からないけど、改行が影響を及ぼしていそうだったので、
件名を短くしたら直りました。
./includes/languages/japanese/create_account_process.php の17行目
define('EMAIL_SUBJECT', STORE_NAME . 'への会員登録ありがとうございます');
を
define('EMAIL_SUBJECT', '会員登録ありがとうございます');
に変更
メールプログラムのエラーが多い・・・。
独自にいじりすぎたかな(笑)
注文管理からのステータス更新で配信されるメールのお客様名が正常に表示されないバグを修正しました。
./admin/orders.php の67行目35文字目くらいの
'<!--name-->' . "\n\n"
を
$check_status['customers_name']. EMAIL_GREET . "\n\n"
に修正しました。
会員登録完了のメールでは本文冒頭で正常に「○○様」と記載されているが、
注文完了の通知メールでの本文では「<!--name-->」と帰される不具合を修正しました。
1../checkout_process.php の387行目401行目
$email_order = '<!--name-->' . "\n\n" .
をそれぞれ
$email_order = tep_get_fullname($order->customer['firstname'],$order->customer['lastname']). EMAIL_GREET . "\n\n" .
に修正
2../includes/languages/japanese/checkout_process.php の適当な箇所(19行目あたり)に
define('EMAIL_GREET', ' 様 ');
を追加
3../admin/includes/classes/email.php の487行目
TEXT_KEISYOU_SAMA,'JIS','EUC')) . '" <' . $to_addr . '>')
を
EMAIL_GREET,'JIS','EUC')) . '" <' . $to_addr . '>')
に変更
(独自改造ですので不具合あればコメント下さい)
商品ページ下部に
「このページは 0000年0月0日 ○曜日 にカタログに登録されました。」
という記載を消去しました。
./product_info.php の491行目から497行目まで以下のようにコメントアウト
/*
if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {
$this->smarty_obj->assign('date_available',sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])));
} else {
$this->smarty_obj->assign('date_added',sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])));
}
*/
メインカテゴリ以下のサブカテゴリを表示したときにページ上部にそのサブカテゴリの画像が表示されます。
またその画像の下にもサブカテゴリ名が表示されますが、サブカテゴリ画像内にそのカテゴリ名を記載しているため、画像下に表示されるサブカテゴリ名の文字を消去しました。
./index.php の105行目
echo ' <td align="center" class="smallText" style="width: ' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br>' . $categories['categories_name'] . '</a></td>' . "\n";
を
echo ' <td align="center" class="smallText" style="width: ' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '</a></td>' . "\n";
に変更
カテゴリを表示した際、カテゴリタイトルの右に表示される小さな画像を消去しました。
1../index.php 72行目
<td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . $category['categories_image'], $category['categories_name'], HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
の前後にコメントアウトを追加
<!-- <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . $category['categories_image'], $category['categories_name'], HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td> //-->
2../index.php 306行目
<td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, $heading_title, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
の前後にコメントアウトを追加
<!-- <td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, $heading_title, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td> //-->
※その他のページでも(ご利用方法やお問い合わせなど)該当箇所でコメントアウトし画像を消しました。
XREAでのSSL設定は苦戦しますが、
(管理画面はログイン後SSLが使えなかった)
admin/includes/configure.php 14行目に
define('HTTP_SERVER', 'https://ss1.xrea.com/ご自身のURL');
define('HTTP_CATALOG_SERVER', 'http://ご自身のURL');
define('HTTPS_CATALOG_SERVER', 'https://ss1.xrea.com/ご自身のURL');
define('ENABLE_SSL_CATALOG', true); // secure webserver for catalog module
と記述変更することでSSLを使えるようになりました。
カレンダーBOXの下に
「赤の日はメールの返信をお休みさせていただきます。」
の言葉を書き足しました。
使用しているテンプレートが、
./templates/default2
ですので
./templates/default2/column_left.html の137行目の後ろに
<tr>
<td>赤の日はメールの返信をお休みさせていただきます。</td>
</tr>
を追加しました。
(文字コードの都合で文字化けする可能性がありますのでTerapadでの編集を推奨)
会員登録途中や買い物後の自動返信メールのプログラムを読み込む際エラーバグが出るのを修正しました。
./includes/languages/japanese/address_book_process.php
の適当な箇所に
define('HEADING_TITLE', 'アドレス帳');
を追加
./account_password.phpの33行目
ENTRY_PASSWORD_CURRENT_ERROR
を
ENTRY_PASSWORD_ERROR
に修正
フッター部分でリクエスト数の後ろに表示されるサイトの開設日を削除しました。
1../includes/footer.php の17、18行目
$footer_requests = $counter_now . ' ' . FOOTER_TEXT_REQUESTS_SINCE . $counter_startdate_formatted
. (defined('FOOTER_TEXT_REQUESTS_SINCE_ADD') ? FOOTER_TEXT_REQUESTS_SINCE_ADD : '');
を
$footer_requests = $counter_now . ' ' . FOOTER_TEXT_REQUESTS_SINCE ;
に変更
2../includes/languages/japanese.php の70行目
define('FOOTER_TEXT_REQUESTS_SINCE', 'リクエスト ('); // 'requests since'
を
define('FOOTER_TEXT_REQUESTS_SINCE', 'リクエスト'); // 'requests since'
に変更
商品の登録画面で、一度登録した商品の画像を削除することができない。
./admin/categories.php: 225行目
unset($sub_num);
の前に、
unset($sub);
を追加。
管理メニューの注文管理で注文内容を編集した際に、内消費税とポイントの表示がおかしくなる。
edit_orders_1.2.lzhをダウンロードし、
./admin/edit_orders.php
と差し替える。
レビューの画面を開いたときなど、ブラウザの一番上の部分のtitleが「%sのレビュー」等と表示される
1../product_reviews_info.php: 31行目
$subtitle = HEADING_TITLE;
を以下に変更
$subtitle = sprintf(HEADING_TITLE, $reviews['products_name']);
2../tell_a_friend.php: 34行目
$subtitle = HEADING_TITLE;
を以下に変更
$subtitle = sprintf(HEADING_TITLE,$product_info['products_name']);
3../tell_a_friend.php: 61行目
$product_info = tep_db_fetch_array($product_info_query);
を切り取って26行目
$valid_product = (tep_db_num_rows($product_info_query) > 0);
の下に貼り付け(挿入)
管理画面で、レビューの点数マーク(★)が正しく表示されない。
1../admin/includes/application_top.php: の最終行の?>の前の行あたりに、以下を追加。
define('DIR_WS_TEMPLATES', '../templates/' . TEMPLATE . '/');
2../admin/reviews.php: 153行目、225行目、262行目あたりの3箇所で、以下のような部分を探し、
<?php echo tep_image(DIR_WS_CATALOG . DIR_WS_INCLUDES . TEMPLATE . '/' . DIR_WS_IMAGES . 'stars_' .
以下に置き換える。
<?php echo tep_image(DIR_WS_TEMPLATES . '/' . DIR_WS_IMAGES . 'stars_' .
(262行目はDIR_WS_CATALOG . DIR_WS_INCLUDES . TEMPLATE . '/' . DIR_WS_IMAGES . 'stars_' .部分)
会員登録などをする際に、すでに同じメールアドレスにて会員登録が行われていた場合、ログインを促すメッセージが表示されますが、そのログインのリンクが正しく動作しません。
hhtp://ご自身のURL
でカートのTOPページにしていたら
トップ<<カタログ<<カテゴリ
のカタログは不要になります。
よってこのカタログの表示を削除します。
全額をポイントで支払う場合の不具合の修正
1../includes/classes/order_total.php 208行目あたり
if ($order->info['total'] - $total_deductions <= 0 ) {
を以下に変更する。
if (($order->info['total'] == $order->info['subtotal'] or USE_POINTS_FOR_SHIPPING == "true")
and $order->info['total'] - $total_deductions <= 0 ) {
2../includes/modules/order_total/ot_redemptions.php 32行目あたり
$order_total = $this->get_order_total();
を以下に変更する。
if(USE_POINTS_FOR_SHIPPING == "true"){ $order_total = $order->info['total']; }
else { $order_total = $order->info['subtotal']; }
ポイントの取消しを行うと、キャンセルした理由を書き込めるが、ポイント履歴に反映されない
./admin/points_pending.php: 47行目あたり
$cancel_reason = tep_db_prepare_input($HTTP_GET_VARS['cancel_reason']);
を以下に変更する。
$cancel_reason = tep_db_prepare_input($HTTP_POST_VARS['cancel_reason']);
マイページのポイント履歴での注文番号表示の不具合を修正
./includes/modules/order_total/ot_redemptions.php: 109行目を以下に変更
$gv_ins = tep_db_query("insert into customer_points_redeemed values (null,
$customer_id, $points_spent, now(), '$insert_id')");
($insert_idの前後に'をつける)
フィールド属性の不備を修正
XREAのメニューのデータベースからPhpMyAdminにログインし該当データベースを選択し、
customer_points_redeemed テーブルの構造をクリックし、
order_idのフィールド属性をint(11)からvarchar(18)に変更します。
(タブからvarcharを選択し長さに18と記載し変更)
ポイントシステムを使用した際に送料・手数料なども含めた支払い総額に対してポイントが算出されてしまう。
以下を修正することで、商品代金の合計に対し算出するようになります。
osCommerce通常版のインストールと同じです。
http://open.netdrive.in/2006/08/oscommerce.php#moreを参考にしてください。
注意する点はalter版にはテンプレートが標準で組み込まれていますので、
/templates/default/smarty/templates_c
/templates/default2/smarty/templates_c
/templates/default3/smarty/templates_c
の属性を「777」に変更が必要です。
グリニッジ有限会社様がosCommerceを独自にカスタマイズし公開しているものです。
基本的なカスタマイズやosCommerce標準では搭載されていないポイントシステムが実装されているので初期カスタマイズを飛ばしたい方やポイントシステムを利用したい方にはオススメです。
こちらからデモショップ閲覧、ダウンロード可能です。
当方では「osCommerce2.2MS1j-alter 10/03版」をダウンロードしてみました。
(バグもあるようですので修正も必要です→修正部分も出来る限りこちらで公開しようと思います)