WordPress用絞り込み検索プラグイン »

4月
14
2009
2

「ご注文の確定」でのInternal Server Error 500 が解決。

追記:2010/4/20

いつの時点からか「注文完了時のメールが届かない」とのご報告をいただいたので、再び SMTP → sendmail に設定を戻しました。今度は Internal Server Error 500 は発生せず、メールも無事届いています。

以前「原因不明のInternal Server Errorが「ご注文の確定」ボタンクリックで発生。」という記事を書きましたが、とりあえず解決したのでメモ。

その後、新規インストールを行ってエラーが出なくなったので良かったと思っていたら再発。集中的に調べてみると、原因は「メールの設定」にありました。

結論から書くと、「メール送信 – 接続方法」を、sendmailではなくsmtpにしました。これで解決。トホホ…

解決の糸口の糸口は、こちらのZen Cart本家のフォーラムの書き込みにありました。同じ原因かどうかはわかりませんが、書き込みの中で「メールの送信方法を変えてみろ」とあって気づきました。注文完了時に行われる処理の1つは、注文者と管理者にメールが送信されること。今まではsession関連か共有SSLを使っているからかと思い込み、いずれも簡単には探ることができずに、あても無くさまよっていたのですが。。。

「解決した」といっても、じゃあなぜsendmailだとエラーが出るのかは分かっていません。同じサーバで同じデータベースにある同じバージョンのZen Cart、テンプレートもほぼ同じ(ドメインは別)ショップではまだエラーが出ていないんです。そうすると、それこそ原因はZen Cart側ではなくて、このドメインのsendmailの設定ファイルが壊れた?とかメールサーバ側の問題じゃなかろうか、とすら思えてきます。わかりません。

※メール送信 – 接続方法を「smtp」に変えたら、ページ下部のsmtpアカウント関連の値も設定します。設定しなくてもエラーは出ませんが、メールが送信されません(当たり前か)。

サーバ環境)

  • レンタルサーバ: エックスサーバー X10(サーバ番号: sv67)
  • MySQL: 4.0.27-Max(EUC-JP)
  • ZenCart: 1.3.0.2-l10n-jp-4(EUC-JP)
  • PHP: 4.3.9
  • Apache: 2.0.52
  • OS: Linux
  • CPU: Core2 Duo E6600 ( 2.40GHz )
  • Memory: 4GB
Written by みやざわ in: エラー | タグ: , , ,
4月
14
2009
2

phpMyAdminでインポート時にエラー。

今、ordersテーブルの情報を古いデータベースから新しいデータベースにインポートしようとしたらエラーが出てインポートできなかったの確認してみると不思議な現象が。

事業所’」 …事業所+シングルクォート

であるべきの顧客情報の住所の一部が↓

事業洲」 …事業洲(シングルクォートなし)

になっていてシンタックスエラー。文字が置き換わり、シングルクォートが欠けている。原因は不明。エディタで検索置換をかけて問題解決。

サーバ環境)

  • エックスサーバー
  • MySQL: 4.0.27-Max(EUC-JP)
  • ZenCart: 1.3.0.2-l10n-jp-4(EUC-JP)
  • PHP: 4.3.9
  • テキストエディタ: mi 2.1.6(MacOS X)
4月
07
2009
2

注文完了時のメール文面をカスタマイズ。

メモ。

■編集するファイル

includes>classes>order.php

■編集方法(文言の追加) 

887行目 send_order_email内、「$email_order」という変数が各所でドットで継承するかたちで出てくるので、任意の場所に、下記のように記述。

$email_order .= “○○○○”;

「.=」としないとそれまでの値を上書きしてしまうので注意。

■例:「お支払い方法」セクションの後に挿入

981行目、$html_msg['PAYMENT_METHOD_FOOTER']……. の次の行あたりに挿入。

Written by みやざわ in: ZenCart カスタマイズ | タグ:

Powered by WordPress | Aeros Theme | TheBuckmaker.com WordPress Themes