2007年10月28日

後払い導入

決済代行処理による「後払い」の導入しました。

長かった。。チョイ疲れ。。だいたい思っていた形での導入が済みました。
でもね、あまり表に出ないところで超苦労しているわけですが。。文字通り「裏」での作業苦労ですので、全くもって。。誰にも伝わらない。。つらい。。

安全用品 通販

加盟申請なんかはスンナリでしたからOK。

システムを「後払い」が使えるようにに改造。。っていうか、利用条件が多少多いのが改造を難しくしてんだよな。
 ・モバイルでは使えない
 ・指定運送会社以外は使えない
 ・5万円以内でしか使えない

。。ということで、プログラムのいたるところに判定の細工を。。もう、オリジナルからだいぶ改造してしまって。。オリジナルのバージョンアップが出来ない状態に。。独自βがどんどん。。

えっと、大まかなトコだけ覚え書きしとこ。

・離島チェックのため「性別」項目を「離島チェック」に移行利用。。離島運賃や支払い方法選択の際に判定利用。
・支払い方法選択の際に金額上限設定(オリジナル機能)と設定地域除外(改造機能)、モバイルメールアドレス除外(改造機能)。<非会員は一時受注テーブルから判定条件を別読み込みし、なんとか。。会員は配送先選択のさいの一時受注テーブル反映がいまいちだったのでオンクリックとケースを追加。。会員-別配送先のテーブル「dtb_other_deliv」に離島チェック用項目追加。>
・モバイルサイトからの特定支払い方法利用不可。
利用ガイド改造

2007年10月20日

undisclosed-recipients:対策

GC_Sendmail.php 改造してちゃんとメールは送れるようになりましたが。。

宛先TOが上手く表示できないときがある。。それが「undisclosed-recipients:」です。

Re: AUTH_Login 対応 GC_Sendmail

$this->header['TO'] = implode(', ', $this->to);

が上手くいっていないわけだろうから。。色々試行錯誤してみたが。。

2箇所ある上記の部分を//でキャンセルするなり、削除するなり。。で、
function setTo($to, $to_name = "") {} の

$this->to[md5($to)] = $this->getISO2022Name($to, $to_name);
$this->header['TO'] = implode(', ', $this->to);// ここに追加

これで、「undisclosed-recipients:」(メールクライアントによっては TO の内容が表示されない)対策はできる様な気がします。。たぶん。

お問い合わせの際に表示されるToが少し気になるけどね。

2007年10月19日

GC_Sendmail改造

OP25Bのあほー!。。っと。

どうも、メール送れないことがあるのは、このOP25Bのせいだということで。。
自サーバからのメールをプロバイダのメールサーバを経由するようにする必要がある。

AUTH_Login 対応 GC_Sendmail

こちらを利用させてもらうことにした。。が、なかなか上手くいかねぇ。。ムズッ!

この改造だけで数日費やしたな。

GC_Sendmailの方で試してるとラチがアカンから、もっと簡単なphp書いて動きを確認してみた。。
ポートの情報を追加してあげないといけない事は分かりました。

しかし、GC_Sendmail.phpに適用すると真っ白になるんだよなぁ。。しかも、サイト全部(爆

どうも、PEAR.php読み込みで変なことになってるらしいことは分かったのですが。。

色々試して、パスをセットしてやるのに php.inc やら .htaccess やら。。結局直接GC_Sendmail.phpに

set_include_path('/xxx/data/module' . PATH_SEPARATOR . get_include_path());

することでなんとか動きました。やれやれ、どうにかメール送信支障なくいけそうです。
受注メールとか届かないショップなんてダメダメですからね。

「undisclosed-recipients:」 を何とかしたいなぁ。。

2007年10月18日

コンビニ後払い

お客様からのお支払い方法が「銀行振り込み(先振込み)」しか設定できていません。。

逆の立場だったら。。よっぽど購入意識(安いっ!。。とか)がないと食指は動かないよなぁ。。

っということで、お支払い方法の追加導入をずっと検討しておりました。
まぁ、システムの改造はその布石。 合計金額に応じた手数料

コンビニ後払い。。っといってもコンビニだけじゃなく、銀行でも郵便局でも振り込みできるんですがね。。ようは、「お手軽に」という意味の「コンビに後払い」。お客様は、商品が届いてから商品代金を最寄の場所で支払い振込みすればいいわけです。

コンビに後払い決済代行 ネットプロテクションズさん

もうひとつ、キャッチボールさん。。とかいうところも行っているようですが。。決済代行会社が回収や未払いのリスクを背負ってくれるシステム。当然利用客の与信審査や利用限度はあるものの決行アリじゃね??

店舗側は、決済代行手数料ってところでしょうが、ココは零細ゆえお客様に一部負担していただこう。ウン。

安全用品 通販

2007年10月02日

合計金額に応じた手数料

現在、支払い方法が前払い銀行振り込みだけですので。。もう少しお客様が安心できるように。。ということで、コンビニ後払いなどの導入が出来ないか検討しています。

しかし、決済代行になるわけで代行手数料が結構きつい。。そこは手数料負担をしてもらうことにすると、システムがきつい。。

EC-CUBEの合計金額に応じた手数料計算
こちらのエントリーのようなシステムにしたいっ!!
(`o´)ゞ 改造、カスタマイズいきますっ!!

正直、今までの中でも一、二を争うくらいスマートじゃないソースです。。(爆
かなり適当。
一応出来上がりは。。基本手数料+(小計+送料)*加算手数料率。。です。

■<DATAベース>以下のSQLをDBに対して実行(下二つは。。不要?!かも)
「加算手数料率」のテーブル追加。

ALTER TABLE dtb_payment ADD (
charge_rate numeric
);

ALTER TABLE dtb_order ADD (
charge_rate numeric
);

ALTER TABLE dtb_order_temp ADD (
charge_rate numeric
);

<追記>小数点以下が必要な場合MySQLデータベースでは decimal(10,2) など。。

◇管理画面◇

■</html/admin/basis/payment.php>

$col = "payment_id, payment_method, charge, rule, upper_rule, note, deliv_id, fix, charge_flg, charge_rate";

■</data/Smarty/templates/admin/basis/payment.tpl>

<td width="60">手数料(%)</td>

<!--{if !$arrPaymentListFree[cnt].charge_rate}-->
<td align="center">-</td>
<!--{else}-->
<td align="right"><!--{$arrPaymentListFree[cnt].charge_rate|escape|number_format}--></td>
<!--{/if}-->

■</html/admin/basis/payment_input.php>

$objFormParam->addParam("加算手数料率", "charge_rate", PERCENTAGE_LEN PRICE_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));

■</data/Smarty/templates/admin/basis/payment_input.tpl>

<tr class="fs12n">
  <td width="100" bgcolor="#f0f0f0">加算手数料率</td>
  <td width="340" bgcolor="#ffffff">
  <!--{if $charge_flg == 2}-->
  設定できません
  <!--{else}-->
  <!--{assign var=key value="charge_rate"}-->
  <span class="red12"><!--{$arrErr[$key]}--></span>
  <input type="text" name="<!--{$arrForm[$key].keyname}-->" value="<!--{$arrForm[$key].value|escape}-->" size="10" class="box10" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" />
   %
  <!--{/if}-->
  </td>
</tr>

合計金額に応じた手数料:管理画面1 合計金額に応じた手数料:管理画面2

◇フロント・ショッピング◇
■</html/shopping/payment.php>
順番変えて「売り切れチェック」の前にデータ取得を。
で、ファンクションの中で手数料計算。。
。。文字列のまま計算してしまってます。。いいのか??(爆

// 店舗情報の取得-0:順序格上
$arrInfo = $objSiteInfo->data;
// 購入金額の取得-0:順序格上
$total_pretax = $objCartSess->getAllProductsTotal($arrInfo);
// 送料の取得-0:追加
$arrData = sfGetOrderTemp($uniqid);
$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo, $objCustomer, $objCampaignSess);
$deliv_fee = $arrData['deliv_fee'];

/* 支払い方法文字列の取得 */
function lfGetPaymentInfo($payment_id) {
  global $total_pretax; //小計参照取得
  global $deliv_fee; //送料参照取得
  $objQuery = new SC_Query();
  $where = "payment_id = ?";
  $arrRet = $objQuery->select("payment_method, charge, charge_rate", "dtb_payment", $where, array($payment_id));
  $arrRet[0]['charge'] = $arrRet[0]['charge']+ceil(($total_pretax+$deliv_fee)*$arrRet[0]['charge_rate']/100); //基本手数料+<切上:(小計+送料)*加算手数料率>
  if($arrRet[0]['charge'] == "") {
   $arrRet[0]['charge'] = '0'; //NULLの時はゼロ
  }
  return (array($arrRet[0]['payment_method'], $arrRet[0]['charge']));
}

送料に手数料を掛けたくない場合は、取得部分や計算部分変数を消す。。
固定手数料の場合は、率をゼロ。 変動のみ手数料は逆に固定手数料をゼロ。

金額いくらからいくらは300円。いくらからいくらは500円みたいな段階式は。。考えてない(爆

合計金額に応じた手数料 買い物中 計算結果

なんとか。。動いてはいるようだ。。っていうか、ホントはもっとスマートに出来るんぢゃね??
数日間の試行錯誤のし過ぎで、頭がくらくらします。。カテゴリのリスト表示はまだ完璧に出来ていないことを考えると、動いているだけマシ?! スマートなイイ方法あったら教えて~っ!!

余談)試行錯誤で支払い方法復活させたり削除したり。。面倒なので管理画面から行えるようにした(W

改造は自己責任で。。

カラーコーン通販-安全コム

</html/shopping/payment.php ※※追記>
手数料「0」の時NULLになるようなので条件文追加


<小数点以下設定のため多少改造>

管理ページでの受注管理検索

管理ページの受注管理で顧客名(名字、名前等)で検索しても検索結果がでないようですので。。

/html/admin/order/index.php

をチト改造。

ECサイト商品の検索

と同様に、「ILIKE」を「LIKE」に変更しました。。OK!
同様場所がたくさんありそうだな。。全部一括返還してもいいかもしんない。

2007年09月19日

ボタン押したくなる?

「赤い」色ってのは、マーケティング的効果?購買の心理的効果??から言うと購買欲をそそる色。。らしい?! 基本、興奮色・高揚色ですよね。

「買う」「カートに入れる」系のボタンは「赤い」ボタンが多くないですか??

消費者心理とマーケティング-店舗の雰囲気No8

寒色(青など)の環境は暖色(赤など)よりも商品の購買意図が高まった。
寒色(青など)の環境は暖色(赤など)よりも使用しようとする金額が高かった。
暖色(赤など)を使った商品は寒色(青など)を使った商品よりも最新の製品とより見られた。

こういう統計?もあるらしい。。 さて。。デザインや配色で購買欲をおこさせる事が出来るか??
安い商品群を高級、高性能に見せる手はここらへんですね。。

安全保安用品通販-安全コム

たぶん。。赤いボタンはコレだな。

暖色はエンドなど戦略的な位置に効果的に使用する
暖色は心理効果として(寒色よりも)自分に近くに感じさせる効果があります(Diamond & Diamond, 2004)。そのため、主通路のマグネット部分やエンドなどに暖色を使用することで顧客を呼び込む効果があります。

衝動買いは覚醒度と関連があると言われます。そのため衝動的にものを買わせたい場合などは効果的だと思います。

2007年09月12日

バーチャルホストとSSL。。覚書

ひとつのサーバで複数のWebサイトを運用する。。場合、っというか、現在やっておりますが。。

「バーチャルホスト機能」を利用して同一サーバで複数サイトを運用する。

バーチャルホストの方法にも「名前ベース・ネームベース」と「IPベース」がありますが。。ってかあるそうですが、現在は「ネームベースバーチャルホスト」で複数サイトを運用しています。

此処に来て、ちょっと弱点が出てきておりましてSSLを導入する際「IPベースバーチャルホスト」でないとすんなり行かないようです。。

同一サーバで複数SSL導入サイト(ECサイトなど)を運用する。。場合は、「IPベースバーチャルホスト」。。ということになります。

切替作業するか?!。。出来るかな。脳ミソとろけそうです。

バーチャルホストによる複数サイトの同時運用
Redhat Linuxで1枚のNICに複数のIPアドレスを割り当てる
1枚のNICに複数のIPアドレスを割り当てたい

SSLの必要性?

ショッピングサイトを運営していて。。SSL(ざっくりいうと暗号化通信)って、必須のようになってますが、気にしているユーザ(買い手)さんはどれくらいの割合なんでしょうか。。??

SSLじゃないとインターネット通販なんか使わない!って方もいるでしょうが、SSL。。鍵マークが出るのさえ知らない。。って方もいるでしょうし。。知らないうちに、ちゃんとしてるってのが一番ではあるんでしょうが。。

名前や住所情報でもとか。。クレジットカード番号は絶対必要だろ!とか。。

プライベートレベルでのSSLの導入自体はそう難しくありません。。が!!SSL証明書がネックになるんですよね。

関係者の間?!では「オレオレ認証」とか「オレオレ証明」っていうらしいですけど、「オレオレ」じゃぁあんまり信頼性・信憑性がないっていうことになります。。
そういうSSL「https://~」にアクセスすると、ブラウザが「このサイト信頼性は?だけど見る??」って警告が出ます。
ブラウザには、あらかじめ「ココのSSL証明書は信頼できる」ってのが入っているわけです。

そんな警告が出る「プライベートSSL」は、逆に導入しない方がいいな。。ヨケイな疑心をいだかせそう。

何故そんなにプライベートなSSL証明書とメジャーなSSL証明書とで悩むかというと。。メジャーな証明書は「高い」んですよ!!信頼を買うってお金がかかるなぁ↓↓

2007年08月24日

EC-CUBE モバイルサイトの画像

EC-CUBEのモバイルサイトを精査しているとき画像が表示されずに??でした。。

携帯サイトをPCで確認するようにユーザーエージェントを偽装してPCで確認すると一応問題ないのに。。何故??

原因は「.htaccess」でした。。直リンを禁止するために自サイトリファラを含んでいないとアクセス禁止にしていた画像ファイル。。この設定がモバイルサイトには問題なようです。

モバイルでのアクセスはリファラを吐かない??

直リンを禁止とモバイルサイトの画像表示。。このジレンマさ

<Files ~ "\.(gif|jpe?g)$">
SetEnvIf REFERER "anzen.dyndns.biz" read_ok
SetEnvIf User-Agent "DoCoMo/" read_ok
SetEnvIf User-Agent "UP.Browser/" read_ok
SetEnvIf User-Agent "SoftBank/" read_ok
SetEnvIf User-Agent "J-PHONE/" read_ok
order deny,allow
deny from all
allow from env=read_ok
</Files>

こうすることで両方一応解決。。携帯のユーザーエージェント選別足りるかな??

<参考>
モバイル機器についてのユーザーエージェント

2007年08月23日

モバイルサイト・携帯サイトの確認?!

今頃確認かよっ!って感じですが。。 【安全コム】 のモバイルサイトの確認。。

しかし、ホントに携帯でチマチマやるのはアホらしい。。PCで何とかモバイルサイトの確認できないだろうか。。

携帯サイトをPCで確認する!! → Firefox の User Agent Switcher アドオンを使用する

まぁ、IPでも携帯かどうか判断している場合は、ダメだということですが。。ユーザーエージェント(大雑把にいうと、どんな環境・ブラウザを使用しているかの値)を偽装してあげるとPCでもモバイルサイトが見れる。。

ちゃんとPCサイトとmobileサイトを見せ分けているサイトの場合ですがね。。

携帯のサイトをパソコンでアクセスする
Firefox + user agent switcher編

で。。確認しようとすると「ページのリダイレクト設定が正しくありません」「このアドレスへのリクエストに対するサーバのリダイレクト設定がループしています。」
とでる。。orz

見れない(泣

モバイルをみようとしてredirect loop リダイレクト ループ

こちらを参考にサーバの「php.ini」を編集。。権限の関係で少し面倒だが、終了!

。。。見れない(泣 真っ白!

モバイル版が見れません!

こちらを参考に。。フォルダのパーミッション設定。。画像も見れなかったので画像フォルダの権限・パーミッションも見直し。。

。。とりあえず見れたっポイ?! 【安全コム モバイルサイト】

まだまだ調整必要箇所てんこもりっ!!  。。でも、モバイルサイトで安全用品購入する人とか、いるかなぁ。。

2007年05月16日

ページタイトルとdescriptionの改善

商品一覧や商品詳細のページのタイトルや meta name="description" の部分をもう少し改良することにしました。

\html\products\list.php

// カテゴリ名の取得
$objPage->list_category_name = $conn->getOne("SELECT category_name FROM dtb_category WHERE category_id = ?",array($objPage->category_id));

商品一覧表示時のカテゴリ名を取得しておく。。

\data\Smarty\templates\site_frame.tpl

<!--{if $arrProduct.main_comment}-->
<meta name="description" content="<!--{$tpl_subtitle|escape}-->-<!--{$tpl_title|escape}-->-<!--{$arrProduct.main_comment|escape}-->" />
<!--{elseif $list_category_name}-->
<meta name="description" content="<!--{$tpl_subtitle}--><!--{if $list_category_name != $tpl_subtitle}-->-<!--{$list_category_name|escape}--><!--{/if}-->の<!--{$tpl_title|escape}-->です。<!--{$tpl_linemax}-->件の商品がございます。" />
<!--{else}-->
<meta name="description" content="【<!--{$arrSiteInfo.shop_name}-->】-<!--{$tpl_title|escape}-->-<!--{$arrPageLayout.description|escape}-->" />
<!--{/if}-->

<!--{if $category_name}-->
<title><!--{$tpl_title|escape}-->≪<!--{$category_name|escape}-->≪<!--{$tpl_subtitle}-->≪【<!--{$arrSiteInfo.shop_name}-->】</title>
<!--{else}-->
<title><!--{if $list_category_name}-->≪<!--{$tpl_subtitle}--><!--{if $list_category_name != $tpl_subtitle}-->-<!--{$list_category_name|escape}--><!--{/if}-->≫<!--{/if}-->-<!--{$tpl_title|escape}-->-【<!--{$arrSiteInfo.shop_name}-->】</title>
<!--{/if}-->

安全保安用品通販-安全コム

2007年05月10日

商品詳細にパンくずリスト

ずっとブロックで作ろうと考えていた「パンくずリスト」。。そんな面倒なことをするよりも、単純に各商品の商品詳細ページで表示してあげたほうが分かりやすいのかもしれない。。

\html\products\detail.php

// パンくずリスト用
$objPage->arrProduct["parent_category_id"] = lfGetParentCategoryID($objPage->arrProduct["category_id"]);
$objPage->arrProduct["root_category_id"] = lfGetRootCategoryID($objPage->arrProduct["category_id"]);

$objPage->category_id = sfGetCategoryId($tmp_id, "");
$objPage->category_name = $conn->getOne("SELECT category_name FROM dtb_category WHERE category_id = ?",array($objPage->category_id));

$objPage->parent_category_id = lfGetParentCategoryID($objPage->arrProduct["category_id"]);
$objPage->parent_category_name = $conn->getOne("SELECT category_name FROM dtb_category WHERE category_id = ?",array($objPage->parent_category_id));

$objPage->root_category_id = lfGetRootCategoryID($objPage->arrProduct["category_id"]);
$objPage->root_category_name = $conn->getOne("SELECT category_name FROM dtb_category WHERE category_id = ?",array($objPage->root_category_id));
/* 親カテゴリの取得 */
function lfGetParentCategoryID($category_id) {
$objQuery = new SC_Query();
$parent_category_id = $objQuery->get("dtb_category", "parent_category_id", "category_id = ?", array($category_id));
if($parent_category_id < 1) {
return $category_id;
}
return $parent_category_id;
}

/* ルートカテゴリの取得 */
function lfGetRootCategoryID($category_id) {
$objQuery = new SC_Query();
do{
$parent_category_id = $objQuery->get("dtb_category", "parent_category_id", "category_id = ?", array($category_id));
if($parent_category_id > 0) {
$category_id = $parent_category_id;
}
}while($parent_category_id > 1);
return $category_id;
}


テンプレートの適当な場所に追加

<div class="fs14">
<a href="<!--{$smarty.const.SITE_URL}-->">HOME</a>
<!--{if $arrProduct.root_category_id != $arrProduct.parent_category_id}-->
≫<a href="<!--{$smarty.const.URL_DIR}-->products/category_<!--{$arrProduct.root_category_id}-->.html" title="<!--{$root_category_name}-->"><!--{$root_category_name}--></a>
<!--{/if}-->
<!--{if $arrProduct.parent_category_id != $arrProduct.category_id}-->
≫<a href="<!--{$smarty.const.URL_DIR}-->products/category_<!--{$arrProduct.parent_category_id}-->.html" title="<!--{$root_category_name}-->@<!--{$parent_category_name}-->"><!--{$parent_category_name}--></a>
<!--{/if}-->
≫<a href="<!--{$smarty.const.URL_DIR}-->products/category_<!--{$arrProduct.category_id}-->.html" title="<!--{$root_category_name}-->@<!--{$parent_category_name}-->@<!--{$category_name}-->"><!--{$category_name}--></a>
</div>

まぁ。。。覚書程度

安全保安用品通販-安全コム

2007年05月07日

サムネイル一覧で選んでいただく

デフォルトである商品一覧のページでもまだまだパッと見て商品を選ぶほどではないので、もっと一覧できるようにサムネイルだけの商品一覧ページを作ってみました。

「ページ詳細設定」 で新規ページを追加することになりますが、ただ追加するだけでは商品データなどをデータベースから引っ張ってくる作業をして出来上がるようなページは作れません。

つくった ~.php を編集してあげないとダメです。
「list.php」をベースに編集してやりました。サムネイル一覧のページにはカゴをつけないのでセレクトのあたりはスッキリさせたつもりですが。。ホントはもっと絞れるのかも。

しかし、困ったのは 管理ページ上でテンプレートを編集、保存すると。。phpの方もリセット、保存されてしまいました。。

●どうも、ある程度出来上がった後になって試行錯誤やってみると。。「dtb_pagelayout」の「edit_flg」を1→2に変更してやるとphpの上書きリセットはなくなるようです。

サムネイル一覧のページのサイドにつける「商品カテゴリー」ブロックは、サムネイル一覧系のページでリンク統一したかったので、「サムネイル一覧用の商品カテゴリーブロック」を別に用意しました。

こちらも、単純に新規ブロックを追加するだけでうまくいくわけではなく、関連させるphpを作って追加したテンプレートとリンクさせてやらないとあきません。
「dtb_bloc」の「php_path」にphpのパスを記述しておきます。

ブロックの作り方は結構ずっと悩んでいましたが、ある程度判明したので「パンくずリスト」でも作ってみようかな。。

安全保安用品通販-安全コム

2007年05月03日

オーダーメールテンプレート追加

EC-CUBEのオーダー関連メールテンプレート追加。。

デフォルトでは「注文受付メール」「注文キャンセル受付メール」「取り寄せ確認メール」のテンプレートが用意されます。。中身は空白のテンプレもありますが(W

しかし、運用にあたりメールのテンプレートが足りません。。ので、ずっと追加したいと思っていましたが方法を探り中でした。

EC-CUBEのメールテンプレート追加

こちらに紹介してありました。
■「/data/conf/conf.php」の編集。。
 「// メールテンプレートの種類」 と 「// 各テンプレートのパス」 の編集と追加。

■無いテンプレートを指定した場合は、「/data/Smarty/templates/mail_templates/」に作成して保存。

自分の場合。。
「注文受付メール」
「注文キャンセル受付メール」
「取り寄せ確認メール」
「注文確定振込依頼メール」(追加)
「配送連絡メール」(追加)

です。4は別テンプレが使っている風だったので、5と6に追加しておきました。

流れは、「注文受付メール(自動)」→「注文確定振込依頼メール」→「配送連絡メール」ですね。
手配に少し時間がかかる場合は「支払い確認メール」なんてのがあってもイイですね。

注文受付時のテンプレートは「送料手数料」と「合計」を省いたものを別に用意してそちらに切り替えました。。確定時に正式に連絡という形にしておきたかったからです。

出来れば、メール送付の先も設定できれば用途が増えるんですがね。。
「お客様」「自分」「仕入先」。。などなど

安全保安用品通販-安全コム

2007年04月12日

急場しのぎ

いろいろいじっているEC-CUBE。。商品一覧表示のテンプレをいじったのが影響したのか。。「詳細はこちら」のオンマウス画像変換が上手くいっていない。

<!--{$name}-->

detail<!--{$id}-->

にして、とりあえず凌いでみる

別件で、カテゴリーや商品詳細ページの静的表示もやってみた。
こちらは結構すんなりといったなぁ

安全保安用品通販-安全コム

2007年04月11日

メールアドレスのエンコード

「当サイトについて」と「特定商取引法に関する法律」には、メールアドレスが表示されます。。最低限のメールアドレス収集ロボット対策しておきましょう。

「mailto:」が無いテンプレもありますので、それもついでに修正。。

data/Smarty/templates/abouts/index.tpl

<a href="mailto:<!--{$arrSiteInfo.email02|escape}-->"><!--{$arrSiteInfo.email02|escape}--></a>
 ↓
<a href="mailto:<!--{$arrSiteInfo.email02|escape:'hex'}-->"><!--{$arrSiteInfo.email02|escape:'hexentity'}--></a>

data/Smarty/templates/order/index.tpl

<a href="<!--{$arrRet.law_email}-->"><!--{$arrRet.law_email}--></a>
 ↓
<a href="mailto:<!--{$arrRet.law_email|escape:'hex'}-->"><!--{$arrRet.law_email|escape:'hexentity'}--></a>

どれくらい効果があるかは。。不明(爆

安全保安用品通販-安全コム

2007年04月07日

ECサイト商品の検索

EC-CUBEで構築したECサイトで試しに商品検索してみる。。??出来ない??何故??

デモサイトではきちんとできる。。商品キーワードでも、商品名でも、その一部でも検索すればちゃんと。。しかし、自分のサイトは検索結果が表示されない。
試しに商品名を空白で検索すると。。ALL検索はヒットする。。何故??

/html/products/list.php

あたりか、データベースがおかしいのかな??
同じ状態が管理機能のほうでも。。商品マスタで商品名検索するとヒットしない。。その他の条件や、商品名空白はヒットする。。

色々調べていて。。 MySQL の where が怪しい。。ということで、「/html/products/list.php」の

// 商品名をwhere文に
      ・
      ・
$where .= " AND ( name ILIKE ? OR comment3 ILIKE ?) ";

この「ILIKE」を「LIKE」に変更。。出来たっ!!検索結果がちゃんとでる♪。。
管理機能の管理マスタのほうも同様に。。「/html/admin/products/index.php」の

case 'search_name': // 商品名
$where .= " AND name ILIKE ?";
$view_where .= " AND name ILIKE ?";

「ILIKE」を「LIKE」に変更。。出来たっ!!

安全保安用品通販-安全コム

2007年04月06日

商品登録での画像アップロード

EC-CUBEをインストールしてみて、管理機能で商品を登録する際。。また、登録商品を編集する場合。。の商品画像に関して。。

・登録済みの商品を検索すると。。商品画像サムネイルが表示されない!
・商品登録しようと画像をアップロードしようとボタンを押すと画面真っ白で止まる!

こういう障害がでました。。解決策!GD2ライブラリを有効。。ってかインストールする。。しとけよ(爆

あんまりよく分かっていませんが。。

 # yum install php-gd

サーバシステムは、PHP4.4.x以上(GD2、FREETYPE2ライブラリを有効にしておくことを推奨します)。。となっていますので、守りましょう解説は。。

これで、とりあえず商品画像サムネと画像アップロードのエラーは回避できました♪

安全保安用品通販-安全コム

2007年04月05日

EC-CUBEをインストール。。するまで

EC-CUBEでシステム構築中に色々壁にぶち当たりましたが。。まずは。。サーバ環境。。

EC-CUBEがインストールされるサーバには、以下の環境が既にインストールされている必要があります。

WEBサーバ(Apacheを推奨)

PHP4.4.x以上(GD2、FREETYPE2ライブラリを有効にしておくことを推奨します)※注1

PostgresSQL7.4.x以上

MySQL4.1、MySQL5.0

。。。こう書いてあると悩んじゃいますよねぇ。。「PostgresSQL」も「MySQL」も入ってないとまずいのか??。。違います、データベースとしてどちらかを使いますので片方あればよいです。

ということで、


WEBサーバ(Apacheを推奨)

PHP4.4.x以上(GD2、FREETYPE2ライブラリを有効にしておくことを推奨します)※注1

PostgresSQL7.4.x以上 もしくは、 MySQL4.1、MySQL5.0

という条件になります。
ちなみに、サクラのレンタルにインストールしようかとも思いましたが。。サクラのMySQLは4.0.?。。だったかな??条件に外れるのでとりあえず保留。。自宅サーバを使ってみることに。。

自宅サーバは CentOS4.4。。こちらはMySQLはイイんですがPHPが4.3。。あっちがよければ、こっちがみたいな。。(爆

ということで、えぇ~ぃ、しゃらくせぇ!PHPのバージョンアップだ!!。。ムズっ!

「yum」を使って簡単に済ませるためPHP4.4は諦め、すっ飛ばしてPHP5だっ!!

CentOS4.4にPHP5をインストールする件
CentOSでPHP5

これで、サクッとPHP5。。そしてMySQLも5に。。
Php version 5.1.6
MySQL version 5.0.27

これでEC-CUBEいっちゃいますか??。。サックリ インストールしましたが。。商品登録の画像アップロードが出来ねぇ~っ!! 画像アップロードしようとすると画面が白くなり止っちゃいます(泣

安全保安用品通販-安全コム

2007年04月04日

EC-CUBEに触れてみる

ちょっと色々ありまして。。更新サボってしまいました。。過去エントリーボチボチあげましょう(W
ショッピングサイトが出来ないかということで「EC-CUBE」というシステム?にたどりつき。。構築奮闘中!!

かなりヘビーです。XOOPSのときと比べて。。どっちがどうかな。。

ECサイトとは。。
電子商取引、EC、エレクトロニックコマース。。インターネットなどのネットワークを利用して、契約や決済などを行なう取引形態。

まぁ、簡単にいうと「インターネットでの通信販売」やその「通販サイト」のことです。

無料のオープンソースでECサイト構築。。EC-CUBE

すんなり導入はなかなか出来ず。。気になった点を、エントリーしておきましょう。。

安全保安用品通販-安全コム