<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.8.6" -->
<rss version="0.92">
<channel>
	<title>【ZenCart】カスタマイズメモ</title>
	<link>http://zencart.memoblog.net</link>
	<description>ZenCartの設置やカスタマイズ、使い方、制作方法etc.</description>
	<lastBuildDate>Fri, 29 Oct 2010 07:44:46 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>代引手数料を購入金額によって変更。</title>
		<description>「代引手数料を合計に加算させたいですが。。。。」 Zen-Cart.jp コミュニティ掲示板より

例）
購入金額30,000円未満　＝代引手数料　420円
購入金額30,000円以上　＝代引手数料　630円

■修正ファイル
/includes/modules/order_total/ot_cod_fee.php

■修正箇所
60〜61行目

コメントアウト→　//if ($cod_zones[$i] == $order-&#62;delivery['country']['iso_code_2']) {
追記→　if ($cod_zones[$i] &#62;= $order-&#62;info['total']) { //注文合計から算出

■管理画面での設定

	モジュール＞注文合計＞代金引換手数料（モジュールをインストール）
	COD Fee for FLAT にて
29999:420,99999999:630,
	更新

以上

■解説

通常、国番号を入れる部分（コロンの前半）を、購入金額の設定欄として応用。

■バージョン

Zen Cart 1.3.0.2-l10n-jp-3 </description>
		<link>http://zencart.memoblog.net/2010/10/29/%e4%bb%a3%e5%bc%95%e6%89%8b%e6%95%b0%e6%96%99%e3%82%92%e8%b3%bc%e5%85%a5%e9%87%91%e9%a1%8d%e3%81%ab%e3%82%88%e3%81%a3%e3%81%a6%e5%a4%89%e6%9b%b4%e3%80%82/</link>
			</item>
	<item>
		<title>「ご注文の確定」でのInternal Server Error 500 が解決。</title>
		<description>追記：2010/4/20

いつの時点からか「注文完了時のメールが届かない」とのご報告をいただいたので、再び SMTP → sendmail に設定を戻しました。今度は Internal Server Error 500 は発生せず、メールも無事届いています。

---

以前「原因不明のInternal Server Errorが「ご注文の確定」ボタンクリックで発生。」という記事を書きましたが、とりあえず解決したのでメモ。

その後、新規インストールを行ってエラーが出なくなったので良かったと思っていたら再発。集中的に調べてみると、原因は「メールの設定」にありました。

結論から書くと、「メール送信 - 接続方法」を、sendmailではなくsmtpにしました。これで解決。トホホ…

解決の糸口の糸口は、こちらのZen Cart本家のフォーラムの書き込みにありました。同じ原因かどうかはわかりませんが、書き込みの中で「メールの送信方法を変えてみろ」とあって気づきました。注文完了時に行われる処理の１つは、注文者と管理者にメールが送信されること。今までは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
 </description>
		<link>http://zencart.memoblog.net/2009/04/14/%e3%80%8c%e3%81%94%e6%b3%a8%e6%96%87%e3%81%ae%e7%a2%ba%e5%ae%9a%e3%80%8d%e3%81%a7%e3%81%aeinternal-server-error-500-%e3%81%8c%e8%a7%a3%e6%b1%ba%e3%80%82/</link>
			</item>
	<item>
		<title>phpMyAdminでインポート時にエラー。</title>
		<description>今、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）
 </description>
		<link>http://zencart.memoblog.net/2009/04/14/phpmyadmin%e3%81%a7%e3%82%a4%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%88%e6%99%82%e3%81%ab%e3%82%a8%e3%83%a9%e3%83%bc%e3%80%82/</link>
			</item>
	<item>
		<title>注文完了時のメール文面をカスタマイズ。</title>
		<description>メモ。

■編集するファイル

includes&#62;classes&#62;order.php

■編集方法（文言の追加） 

887行目 send_order_email内、「$email_order」という変数が各所でドットで継承するかたちで出てくるので、任意の場所に、下記のように記述。

$email_order .= "○○○○";

「.=」としないとそれまでの値を上書きしてしまうので注意。

■例：「お支払い方法」セクションの後に挿入

981行目、$html_msg['PAYMENT_METHOD_FOOTER']....... の次の行あたりに挿入。 </description>
		<link>http://zencart.memoblog.net/2009/04/07/%e6%b3%a8%e6%96%87%e5%ae%8c%e4%ba%86%e6%99%82%e3%81%ae%e3%83%a1%e3%83%bc%e3%83%ab%e6%96%87%e9%9d%a2%e3%82%92%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%9e%e3%82%a4%e3%82%ba%e3%80%82/</link>
			</item>
	<item>
		<title>ページによって＜title＞を変える。</title>
		<description>■編集するファイル
includes/modules/meta_tags.php
■商品個別ページの&#60;title&#62;をつくっている場所
256行目
define('META_TAG_TITLE', str_replace('"','',$review_on . $meta_products_name . $meta_products_price . PRIMARY_SECTION . TITLE . SITE_TAGLINE));

	str_replace('"',''　＝その後のセクションでつくられた文字列中のダブルクォーテーションを削除(空白に置換)
	$review_on　＝不明
	$meta_products_name　＝商品名
	$meta_products_price　＝価格
	PRIMARY_SECTION　＝languages/Japanease/meta_tag.phpで定義した接続詞
	TITLE　＝同上、定義したサイト名
	SITE_TAGLINE　＝同上、定義したサイトの説明（タグライン）

私の考えでは、タグラインは商品個別ページに入ったらSEO的には邪魔なので削除しました。長くなりすぎるし。

define('META_TAG_TITLE', str_replace('"','',$review_on . $meta_products_name . $meta_products_price . PRIMARY_SECTION . TITLE));

なお、商品名の後につく [モデル] は、246行目、$meta_products_nameに代入しているところで、

. ' [' . $product_info_metatags-&#62;fields['products_model'] . ']'

この部分をコメントアウトしてやれば良い。

/*. ' [' . $product_info_metatags-&#62;fields['products_model'] . ']'*/

---

商品個別ページ以外のカテゴリ等の場合もこのファイル内に同様のパターンで記述されています。（switch case 形式で） </description>
		<link>http://zencart.memoblog.net/2009/02/13/%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e3%82%88%e3%81%a3%e3%81%a6%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%80%82/</link>
			</item>
	<item>
		<title>meta descriptionに勝手に?挿入されている→「おめでとうございます！&#8230;インストールに成功しました」</title>
		<description>headのmeta description内に、セットアップが完了した時のメッセージがいまだに残ったままだった！

「おめでとうございます!オンラインショップ構築ソフトZen Cart 日本語版のインストールに成功しました。」

少々あせって探して触っていると、とりあえず、下記の作業で除去できました。

includes/modules/meta_tags.php の 138行目（define('META_TAG_DESCRIPTION...の行）

. str_replace(array("'",'"'),'',strip_tags(HEADING_TITLE))

↑この部分をごっそり削除する。

何だろ、このわけわからなさ汗；

#meta keywordsにも同じメッセージが入ってるのでこれから作業

【追記】

meta keywords はそのすぐ下の139行目でした。同じ内容。下記を削除。弊害があるかどうかは今の段階では分からない。

 . ',' . str_replace(array("'",'"'),'',strip_tags(HEADING_TITLE)) </description>
		<link>http://zencart.memoblog.net/2009/02/13/meta-description%e3%81%ab%e5%8b%9d%e6%89%8b%e3%81%ab%e6%8c%bf%e5%85%a5%e3%81%95%e3%82%8c%e3%81%a6%e3%81%84%e3%82%8b%e2%86%92%e3%80%8c%e3%81%8a%e3%82%81%e3%81%a7%e3%81%a8%e3%81%86%e3%81%94%e3%81%96/</link>
			</item>
	<item>
		<title>原因不明のInternal Server Errorが「ご注文の確定」ボタンクリックで発生。</title>
		<description>Internal Server Errorが発生。以前は問題なく注文完了していたのが、注文プロセス最後の「ご注文の確定」ボタンをクリックすると、エラー。

実際のところ、注文は完了していて、顧客と管理者にもご注文確認メールは届き、管理画面にも新しい注文としてエントリーされている。

	管理画面の「セッション管理の設定」をいろいろ変えてみたが変化なし（すべての組み合わせは試せていない）。
	ブラウザのキャッシュを空にして再起動は何度も試すが変化なし。
	WindowsのInternetExploror、MacのSafari、Firefox 3でも同様。
	データベースのsessionテーブルの中身を削除したが変化なし。
	原因となりそうなテンプレート（tpl_checkout_confirmation_default.php、tpl_checkout_success_default.php、tpl_time_out_default.php）を入れ替えたが変化なし。
	.htaccess、php.iniともに特に変わった記述なし。
	SSL（共有SSL）を使わない設定にしても変化なし。
	同じサーバ上、同じデータベースに同じバージョンのZenCartが稼働しており、こちらは問題なし。
	Googleで検索してもほとんど情報なし。ZenCart本家のBBSで、DBを入れ直したら来た、という書き込みあり（古いスレッドだが）

ここまでくると、再インストールするしかないのだろうか。しかし原因が分かっていないのはスッキリしないし、再発防止もできない。

サーバ情報）

	Zen Cart: 1.3.0.2-l10n-jp-3

	PHP バージョン: 4.3.9 (Zendのバージョン: 1.3.0)
	MySQL: 4.0.27-Max
	HTTP サーバ: Apache/2.0.52 (Red Hat)

	サーバOS: Linux 2.6.9-78.0.8.ELsmp 
 </description>
		<link>http://zencart.memoblog.net/2008/12/09/%e5%8e%9f%e5%9b%a0%e4%b8%8d%e6%98%8e%e3%81%aeinternal-server-error%e3%81%8c%e3%80%8c%e3%81%94%e6%b3%a8%e6%96%87%e3%81%ae%e7%a2%ba%e5%ae%9a%e3%80%8d%e3%83%9c%e3%82%bf%e3%83%b3%e3%82%af%e3%83%aa/</link>
			</item>
	<item>
		<title>PHP5に移行してログイン出来なくなったら。</title>
		<description>以前はログインできていたZenCartの管理画面に、以下のようなエラーが出てログインできなくなった。
Fatal error: Call to a member function Execute() on a non-object in /○○○○/public_html/zencart/includes/functions/strict_sessions.php on line 66

考えられる要因は、使用しているレンタルサーバがPHP4 → PHP5 に強制的に切り替わったこと。
上記エラーで調べたところ下記の対処法を発見。

includes/functions/strict_sessions.php の55行目
---

【修正前】
function _sess_write($key, $val) {
global $db;
global $SESS_LIFE

【修正後】
function _sess_write($key, $val) {
// The following is only to work around a PHP 5.2.0 bug:
global $db; if (!is_object($db)) {
//PHP 5.2.0 bug workaround …
$db = new queryFactory();
$db-&#62;connect(DB_SERVER, ...</description>
		<link>http://zencart.memoblog.net/2008/11/26/php5%e3%81%ab%e7%a7%bb%e8%a1%8c%e3%81%97%e3%81%a6%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e5%87%ba%e6%9d%a5%e3%81%aa%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%82%89%e3%80%82/</link>
			</item>
	<item>
		<title>注文確認メールに挿入されるcopyrightを変更。</title>
		<description>includes/languages/japanese/email_extras.php

をコピーして

includes/languages/japanese/テンプレート名のフォルダ/email_extras.php

に移動する。

29行目「EMAIL_FOOTER_COPYRIGHT」の項目を書き換える。ソース上の改行はそのまま反映される。 </description>
		<link>http://zencart.memoblog.net/2008/11/19/%e6%b3%a8%e6%96%87%e7%a2%ba%e8%aa%8d%e3%83%a1%e3%83%bc%e3%83%ab%e3%81%ab%e6%8c%bf%e5%85%a5%e3%81%95%e3%82%8c%e3%82%8bcopyright%e3%82%92%e5%a4%89%e6%9b%b4%e3%80%82/</link>
			</item>
	<item>
		<title>合計から消費税の表示を消すには。</title>
		<description>ZenCart管理画面 &#62; 地域・税率設定 &#62; 税率設定

にて、税率を 0% にすると、カートの合計欄から消費税の設定が消える。

これをしないと、商品登録で「消費税なし」にしても、消費税が追加されてしまう。 </description>
		<link>http://zencart.memoblog.net/2008/11/19/%e5%90%88%e8%a8%88%e3%81%8b%e3%82%89%e6%b6%88%e8%b2%bb%e7%a8%8e%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%92%e6%b6%88%e3%81%99%e3%81%ab%e3%81%af%e3%80%82/</link>
			</item>
</channel>
</rss>

