2007年01月13日

ゲスト購入フロー

(お詫び)前回の商品一覧の件

全商品の一覧は、
index.php?main_page=products_all
でアクセスできました。

普通にありました。無いみたいなこと書いてしまって申し訳ありません。

ゲスト購入フロー

で、今回の本題。

Zen Cart でのゲスト購入って、何度かフォーラムなどでも話題になっているのですが、 これといった具体的な情報があまり無いような。

参考

http://www.zen-cart.jp/bbs/viewtopic.php?p=8205
Zen Cart.JP コミュニティ掲示板「登録せずに買い物を進めるには」

アカウント作成の画面で会員登録するかしないかを選択
 ↓
会員登録しない場合は、ゲスト用の一時的なcustomers_idを発行する
 ↓
そのcustomers_idで一時的にログインした状態にする
 ↓
顧客情報は、データベースに保存せずセッションで持ちまわる
 ↓
カートの中身もデータベースに保存せずセッションで持ちまわる
 ↓
注文完了時に注文データのみをデータベースに保存する

通常の登録フローを通しつつ、途中で会員DBに登録しないやり方。

その下にもう一つ。。。

仕様---------------------------------
ログインページの登録フォームを削除して、ボタンを3つ設ける(会員ログイン、新規登録、臨時購入)。
新規登録からの流れは、現状のままの流れを保っています。

臨時購入の方は、その通常の新規登録からで使用するファイル類を丸ごとコピーして、別ファイルとし、 完全に独立させて購入終了まで導くようにしました。


必要な手順---------------------------
1、現状で使用している新規登録から購入終了までに使用しているファイル類をコピーして別名にしておく(これらのファイルをカスタマイズする)

2、臨時購入する際の登録フォームからパスワード欄を削除。

3、パスワードは、 includes/modules/pages/create_account_g/header_php.phpのコピーしたファイルの方の中でランダムな数字を割り当て、 同時にE-MailアドレスはE-Mailのデータベースに保存させず、前述のランダムな数字などを使うようにする。 必要なら本来のE-Mailアドレスはファーストネームの部分のテーブルに保存しておく。
$_SESSIONの一つに独自の項目を一つ作る例えば$_SESSION['guest_buy'] = 1;(重要!) 登録完了のメールを送信する部分をコメントアウト!

4、臨時購入の際のファイル類ののリダイレクト先を調整する。

5、購入完了時に、請求明細が送られないようにし、ログアウトするようにする。

6、3で作った独自の$_SESSION項目を使って、アカウント情報やレビューへの制限。その他必要に応じ。 ボタンを非表示にするなど対策をする。

通常の購入フローを丸ごとコピーしちゃって、不要な部分(登録完了メール、パスワードの登録)を削除してしまう方法。

どちらにしても大幅なカスタマイズなので、気合入れてかからないといけないです。

具体的なカスタマイズ方法・・・

 

ゲスト購入フローの続きを読む

MonotaROブランド ショップ

2007年01月11日

商品一覧、ゲスト購入、ポイントモジュール

Zen Cart のカスタマイズ。

なんとか、デザインと基本フローの調整が完了。

細かいところでツッコミどころが、まだありますが、その辺は、おいおいつぶして行きたい。

で、残った案件が表題の3点。

商品一覧・・・

もともと、大規模なショッピングサイトに対応できる Zen Cart が、カテゴリー、サブカテゴリーで、商品を分類しているのに、 なぜか無かった全商品の一覧モジュール。

これって、カテゴリー一覧と同じようにして、カテゴリー番号のSQLを外しちゃえば、いいのかな?そう思うと、簡単そうだな。

ゲスト購入・・・

購入後のアフターサポートが受けられたり、買い物の履歴が残せたり、次の買い物で、面倒な住所入力が省けたりと、便利な会員登録システム。

ですが、買い物にいちいち登録したくない、次買うかどうか分からないし、個人情報をいろんなサイトに登録するのに抵抗があるとか。

人それぞれですが、やっぱりゲスト購入は、あった方がいい。個人情報の登録がいやだとか、そんな理由で購入機会を損しているのは、 もったいないですね。

ポイントモジュール・・・

今時のショッピングカートには、定番のポイントシステムですが、Zen Cart には、付いていません。

その代わり(?)ギフト券とか、あります。

買い物の度に、ポイントが貯まるって、リピート獲得に必要なファクタだなあと思うので、導入したい。

でもこれってフリーのモジュールが見つからないし、一から作って管理するのもどうかと思うわけで、すでに運用実績のある開発屋さんから、 買ったほうがいいのかな?

MonotaROブランド ショップ

2007年01月09日

リダイレクト(まとめ)

PHPで301リダイレクトを行う方法 ⇒サイト移転時の301リダイレクト処理の具体例:phpspot開発日誌

<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.to-url.com/" );
?>

PHPの場合、header("Location: ?"); のようにやりがちですが、 これだと302リダイレクトになってしまいます。
移転の場合は必ず、header( "HTTP/1.1 301 Moved Permanently" ); を入れて301レスポンスとしましょう。

.htaccess で301リダイレクトを行う方法

特定ページのみの場合は次のようにします。

redirect 301 /old/old.html http://www.yahoo.co.jp

上記は、/old/old.html にアクセスした場合、www.yahoo.co.jp に301リダイレクトされます。

サイトのドメイン移転をした場合は次のように記述します。

RewriteEngine On
RewriteCond %{http_host} ^www.from-url.com
RewriteRule ^(.*) http://www.to-url.com/$1 [R=301,L]

上記は、www.from-url.com → www.to-url.com に移転した場合の例です。
(mod_rewriteがサーバにインストールされている必要があります)

 

以下は、MovableTypeで全部のページをリダイレクトしたいときのhtaccessの生成方法

.htaccess 用テンプレート作成 ⇒小粋空間: .htaccessによるリダイレクト

管理メニューの「テンプレート」→「インデックス」で「テンプレートを新規作成」をクリックし、次ページで下記を設定します。

リダイレクト(まとめ)の続きを読む

MonotaROブランド ショップ

2007年01月05日

sideboxメニュー インフォメーションの追加

sideboxインフォメーションのメニューを追加したり、削除したり。

デフォルトのインフォメーションには、

  • 配送と返品について
  • プライバシーポリシー
  • ご利用規約
  • お問い合わせ
  • サイトマップ
  • ギフト券よくある質問
  • 割引クーポン
  • ニュースレター登録解除

などのメニューがあるんですが、最後の方のギフト券とか、ニュースレターの解除とか、とりあえず最初のうちは、 いらないようなメニューがあるので、この辺は、サクっと消してしまいたい。

§変更する箇所

includes/modules/sideboxes/information.php

↑上のinformation.phpを編集すればいいんですが、ここはキチンとオーバーライドして編集しましょう。

sideboxメニュー インフォメーションの追加の続きを読む

MonotaROブランド ショップ

2007年01月04日

後でやっておくだろうメモ

http://gato.intaa.net/

ZenCart URL書き換えパッチ日本語版

多分、やる。きっとやるだろうURLの書き換え。

メモ↓XOOPSテンプレート
http://hello.oceannet.jp/
OCEAN-NET

MonotaROブランド ショップ

2007年01月03日

オーバーライド

相変わらず、わかりづらいので、もう一度おさらい。

Languagesのオーバーライド

includes/languages/japanese.php をオーバーライドする場合は、
includes/languages/custom ディレクトリを作って、customディレクトリ内にjapanese.phpをコピー。
includes/languages/custom/japanese.php

includes/languages/japanese.php
 ↓オーバーライド↓
includes/languages/custom/japanese.php

Languages/japanese内のphpのオーバーライド

includes/languages/japanese/customディレクトリを作って、
customディレクトリ内にオーバーライドするphpをコピー。

includes/languages/japanese/index.php
 ↓オーバーライド↓
includes/languages/japanese/custom/index.php

Languages/japanese/html_includesのオーバーライド

この辺からややこしい。
includes/languages/japanese/html_includes/customディレクトリを作って、
customディレクトリ内にオーバーライドするphpをコピー。

オーバーライドまとめ

オーバーライドしたいphpファイルと同じ階層にcustomディレクトリを作って、 そのcustomディレクトリ内にオーバーライドしたいファイルを入れる。簡単なことなのですが、 元ファイルよりも一つ下の階層に新規ファイルを作るって所がややこしくさせている気がする。

<directory>/hogehoge.php
 ↓オーバーライド↓
<directory>/custom/hogehoge.php ←customディレクトリを作ってその中にファイルをコピー。

※注意※

customディレクトリという名前は、何をつけてもかまわないような説明のページが見受けられるが、本当は、 テンプレート名と合わせておかないと動作しない。
ようするにテンプレート名をまず決めておいて、それと同じ名前のオーバーライドをすれば、Zen-Cartは 「テンプレートと同じ名前のフォルダがあるか確認し、あればその中のファイルでオーバーライドする」って感じみたい。

今日のメモ↓yahooとGoogle用の商品登録用データを吐き出すモジュール

オーバーライドの続きを読む

MonotaROブランド ショップ

2007年01月02日

[解決]文字化け

前回の文字化けの続き

MySQLの文字化けについて、まずZen-Cart内で、「mysql_select_db」を使っているところを検索 (秀丸のGREPを使用)。

query_factory.php というファイルが検索結果に出てきた。
要するに、Zen-Cart内のクエリは、このファイルがまかなっている様子。

さて、本題の文字化け対策、XREAサーバーでは、下記のように「SET NAME ?」を接続毎に実行してあげれば、 文字化けの対策ができると。

http://sb.xrea.com/showpost.php?p=74847&postcount=2
「MySQLの文字コード自動変換」

標準でMySQLに接続した場合、クライアント(SSHやPHPなどのスクリプト側) とサーバーとの間はUJIS(EUC-JP)になります。
これを変更するには、「SET NAMES utf8;」を接続毎に実行していただく必要があります。もし、実行されていない場合は、 行ってみてください。

また、PHP、MySQL、PostgreSQLの標準文字コードをUTF8、MySQL自動変換機能をONにする仕様変更を、 s221以降のPHP5系のサーバーで行う予定です。

該当ファイルの下記部分に1行追加。

/includes/classes/db/mysql/query_factory.php

if ($zf_pconnect != 'false') {
      $this->link = @mysql_connect($zf_host, $zf_user, $zf_password, true);
} else {
    // pconnect disabled ... leaving it as "connect" here instead of "pconnect"
      $this->link = @mysql_connect($zf_host, $zf_user, $zf_password, true);
}
mysql_query("SET NAMES ujis");   // <----- この行を追加!

ファイルを書き換えたら、アップロードして、インストールを一発まわしてみる。

インストール後、管理画面を見ると、文字化け解消!
ただし、DB内のデータは、文字化けたまま格納されているので、それらは、おいおい書き換えていきましょう。

MonotaROブランド ショップ

2007年01月01日

まずは、文字化け。。

いきなり文字化けです。

管理画面の「一般設定」が化けまくり(汗

一般設定って、DBに登録されているらしいので、MySQLを疑う。
多分文字コードの関係。

案の定文字コードがEUCではなくなっている。
エンコードのあたりをいじらないといけないかな?

 

MonotaROブランド ショップ

ZEN CARTセットアップのメモ

ZEN CARTをセットアップしてみる。

コミュニティのドキュメントが、なかなか進まないので、設定とかカスタマイズに不安が残りますが、なんとか悪戦苦闘してみましょうか。

今回使用するのは、以下のとおり

  • XREAサーバー(s238)
  • Zen Cart 1.3.0.2
  • Apache
  • PHP Ver.5.1.6 (Zend 2.1.0)
  • MySQL 5.1.11-beta

 

MonotaROブランド ショップ