ブログショップつくりで困ること。
今回、知り合いのホームページをWordPressで作っているが、そこでいくつかの商品を販売するコーナーを設けたいと考え、ショップ機能を持たせようとしている。
ショッピングカートと呼ばれるものの構造は大雑把に言って2つある。
ひとつはホームページ内にタグを貼り付け、「カートに入れる」などのボタンをクリックすると商品がカートに入り、購入金額が合算されるタイプ。これはすでにホームページがある場合やデザイン的に自由度の高い場合などに重宝する。
もうひとつはショッピングカート自体が独立していて、販売コーナーもしくは販売サイトを作成するものだ。ホームページの中には販売コーナーへの誘導ボタンを配置することになる。これが発展するとosCommerceやEC-Cube等のようなショップサイト自体を構築できるツールとなる。
2つ目のタイプのような独立型の場合にはブログと連携させて作る場合にも、独立しているのだからそれぞれに作ればいいだけで、後はリンクボタンをつければいいだけだ。問題は前者のタイプで、タグから吐き出されたショッピングデータを受け渡す場合にはちょっと厄介な点がある。WordPressを利用して試したことがある方なら経験しているだろうが、国内のCGIを利用して作ると文字エンコードの問題が出てくる。これが案外厄介だ。
WordPressはご存知の通りUTF-8、そして国内のショッピングカートCGIはSJISがほとんど。当然ながらエンコードの異なるテキストデータを渡すと文字化けしてしまう。文字化けしたのでは商品名が正しく表示されないし、とても使えない。問題解決のためのネタがネット上にないかと思い探して見ると、あるにはあるが今利用しようと言うショッピングカートのものではないので、説明に準じてやってみても結局は解決できなかった。
そこでCGIではなくPHPで作られたショッピングカートなら比較的簡単に文字エンコードを変更できるかもしれないと思いPHPのショッピングカートを探しまくって、ようやく見つけ出し何とかそれらしく動くまでに変更できたようだ。どこかまだ文字化けする可能性があるので、もう少しテストしてみる必要はあるようだ。
もちろん、WordPress用のショッピングカートも数点あるが、チェックして見ればわかるとおり、商習慣の違いでカスタマイズが必要だ。それに、使い勝手のよさそうなものが現時点ではみつからない。せっかく使えそうな「WP-e-commerce」というプラグインがあるが、PayPalしか使えないようだ。それ以外の支払いの場合には有料版を購入する必要がある。(※これって基本的に有料版を売るためのテスト版って言うことなのか。)
今回、PHPのショッピングカートを利用したが、国内で配布されているショッピングカートの多くはやはりCGIがほとんどだ。選択肢から考えてなんとかCGIを生かす方法も考えておきたい。
そこでUTF-8であるWordPressからSJISのCGIに文字データを渡しているから問題が生じるのであって、WordPressがSJISなら問題は起こらない。とは言ってもWordPressをSJISにかえるわけには行かないのでWordPressの一部だけがSJISになればいいと考えた。ショッピングコーナーとなるページだけをArtisteerでHTML出力してそのページだけをSJISにしてしまう。サイト全体のデザインは統一することができるので、これはひとつの方法だ。(※もちろんこんな方法で作る意味があるかどうかは不明だが、、、。)まあ、こんな方法でCGIを生かす方法もないことはない。
できれば今後、PHPでショッピングカートを作る方はぜひ文字エンコードをUTF-8で作って欲しいと思っている。



