CS-Cart 注文単位でのメッセージ送受信機能

コメントとレビュー」アドオン導入時、注文に関する「メッセージの送受信機能」が利用できるようになる。
参照 http://manual.cs-cart.jp/?page_id=431 (中段)

管理画面 注文内容の確認>アドオンタブ>コメントとレビュー >メッセージ項目を有効に。
(注文単位なので、注文ごとにメッセージ機能を有効にする必要がある。)

アドオンタブの右側にメッセージタブが現れるのでクリック。以降、メッセージ送信と閲覧はこの画面で行う。

管理側
130802-0002
130802-0003

ショップフロントでは、マイアカウント>注文 から個々の注文に入ってメッセージタブの中でやり取りする。

ショップフロント
130802-0005

履歴は時系列で管理画面、ショップフロントのマイページで確認可能。
また、メッセージへの返信機能はないため毎回新規メッセージを送信する形をとる。

メッセージ内容はメールでも送信される。

CS-Cart インストールしてまず行うべき設定

CS-Cart初期設定

基本的にはオンラインマニュアルを見ればほぼ書いてある。
が、一通りの設定すべき項目をまとめて記述しておく。

基本設定

  • 会社概要 > 全部
  • Eメール > 全部
  • 全般 > デフォルト住所

一般設定

  • アドオン > 日本語版アドオン > Eメール > SMTPサーバーのポート番号

デザイン

  • ロケーションタブ「トップページ」の歯車アイコンクリック > 「ページタイトル」
    (他のロケーションも必要に応じて設定。トップページ以外のカテゴリ、商品、ページの個々のコンテンツでも指定可能)

支払い方法
配送方法

  • 必要に応じて。

 

CS-Cartはインストール時の設定項目は少なめ。その代わりインストール後に設定する項目は多め。
上記の設定項目は最低限の項目であり、利用機能が多ければ当然のことながら設定項目は相応に増える。

いずれ「目的別設定マニュアル」も作る必要があると感じている。

CS-Cart アドオンの構成

まず、アドオンには決められた作法があります。

ディレクトリ構成、ファイル構成、それらの名称が下記のように定められています。

 

ディレクトリ構成

/addons/[アドオン名]
アドオンのPHPファイルを格納するディレクトリ

/var/skins_repository/base/customer/addons/[アドオン名]
ショップフロント側で使用するアドオン用スキンファイルを格納するディレクトリ

/var/skins_repository/base/admin/addons/[アドオン名]
管理者用パネル側で使用するアドオン用スキンファイルを格納するディレクトリ

/var/skins_repository/base/mail/addons/[アドオン名]
アドオン用Eメールテンプレートを格納するディレクトリ

※ /addons/[アドオン名] 以外のディレクトリはアドオンの構成上必要な場合のみ作成(下位階層も同様)

ファイル構成

/addons/[アドオン名]のディレクトリに配置するファイルは下記の通り。

addon.xml
アドオンの設定ファイル。アドオンのインストールやアンインストールに必要。

func.php
アドオンのコントローラー内で使用する関数を定義するファイル。

init.php
アドオンで使用するフックを登録するファイル。

config.php
アドオンで使用する定数や各種設定値を登録するファイル。

/controllers
アドオンで使用するコントローラーおよびCS-Cart標準コントローラーのプレコントローラーおよびポストコントローラーを格納するディレクトリ。

/schemas
管理者用パネル内のメニューや管理者に付与する権限など、既存のスキーマを拡張するファイルを格納するディレクトリ。

 

全てのアドオンは上記のような構成で成り立っています。

上記のディレクトリ構成を見ると分かりますが、/var/skins_repository/以下に置くディレクトリの下位階層について触れていません。(テンプレートでの表示側ですね)

これらは必要に応じてと書いていますが、おおざっぱに言うとCS-Cart本体のディレクトリ構成に準じた命名規則と配置で設置します。
admin側、customer側、mail以下ではその構成が異なりますが多くのアドオンは下記のようなディレクトリを持っています。
(一部CS-Cart本体に無いディレクトリ名を使っている物もあります。が理由が無い限りCS-Cart本体のディレクトリ構成に則った方が良いと思います。)

/var/skins_repository/base/admin/addons/[アドオン名]以下

  • common_templates
  • hooks
  • views

/var/skins_repository/base/customer/addons/[アドオン名]以下

  • blocks
  • hooks
  • views

/var/skins_repository/base/mail/addons/[アドオン名]以下

  • hooks

 

まずはアドオンがどういった構成で成り立っているのか上記を念頭においてください。

 

下記は実際のアドオンの構成例です。

CS-Cart アドオン開発リファレンス

これ需要あるかなー。

飯のタネなんでこういうことを明文化するのは賛否ありそうなんだけど「CS-Cart利用者」を増やす為には「採用サイトを増やす」ことと同じくらい、いや普及フェーズにおいてはそれ以上に「CS-Cartをプロモーション」する必要がある。

その為には「CS-Cartってなんぞや」ということを紹介していかなきゃいけない。

機能紹介はうちのサイトでもそのうち拡充するとして、今現在あんどぷらすにしか出来ないことをやるべきなんじゃないかと。

そのひとつが「アドオン」に関すること。

アドオンの受託開発は勿論業務として行っているんだけど、もっと多くの優秀な人たちにアドオン開発に参加してもらいたい。
世のPGとか俺より遥かに優秀な人たちばかりなので参入されるのは脅威でもあるんだけど。

そんなわけで「アドオンの作り方」的な記事を書いていこうと思う。
本当はCS-Cartそのものの動作について触れるべきなんだけどそこは最大限省略。

 

CS-Cartではアドオンと呼んでいるけど、ZenCartではモジュール、WordPressではプラグイン。色々呼び名はあるけどまぁ似たようなもの。

WordPressでは管理画面からプラグインを探してオンラインでインストールできちゃう。アップデートも管理画面からポチってやるだけで終わる。基本的にはどのプラグインも共通の作法に則って作られてるからできる芸当。
良い仕組みだよね。

ZenCartはFTPアップロードしてモジュールごとの仕様でインストール方法が異なる。ものによっては手動でSQLを走らせる必要がある。

CS-CartはアドオンのファイルをFTPでアップロードする必要はあるけど本体へのインストール、アンインストールは管理画面からポチっとすれば終わる。XOOPSみたいな感じ。

 

WordPress優位かな。現状は。
でもいずれCS-CartもWordPress的になると思うよ。いつになるか分かんないけどw

 

アドオンの構成

アドオンの仕組み(未

CS-Cart v3に960グリッドシステム

CS-Cart ver3以降が「960GridSystem」を採用するということを少し考えてみる。

CMS採用の大きな理由に、サイトリリースまでの短期化というものがある訳だけど、それ以上に重要なのは「運用のしやすさ」だと思う。

そしてどのCMSを使うのかという選定の部分で重要な指標もいくつかあるんだけど、そのうちのひとつに「自由度」を求める向きが多い。

これはイチからECを始める場合にはさほど重要ではないかもしれないけど、既に他のシステムで運用しているサイトのプラットフォームを変更する場合とか、既にある会社のローカルルールに則したサイトを作る場合などに重要度が増してくる指標。

ぶっちゃけ機能面はなんとかなる。PHPで作られていれば「無ければ作れば良い」。

じゃぁデザインは?まぁこれも「作れば良い」。
とはいえ、デザインにおいての自由度って、最も自由度の高いものは何かと言われれば、CGI式のカート部分をhtmlに埋め込むタイプ。これを採用して好きにデザインするのが一番自由度が高い。

でもこれだと「自由度が高い」=「大変」なんだよね。

それでCMSと呼ばれる仕組みは予めテンプレートを用意してその枠組みの中にテキスト(htmlやCSSのマークアップもね)を流し込むことである種制限を設けた中での自由度を提供している。

この部分のルールってのがCMSごとに異なってる。
プラットフォームを変えるとここへの対処が変わってくるのが「乗り換え障壁」だったりもすると思う。

ZenCartのような完全独自のテンプレート。EC-CUBEやCS-Cartのようなsmarty。
smarty採用のCMSにしても中身を見ると考え方が大きく違ってるはず。

EC-CUBEのテンプレートはsmartyそのものを自分で書かなきゃいけなかったり(新規ブロックの追加)、CS-Cartのそれはロジックが混在してたり(ここは残念なところ)。

そこでCS-Cartのバージョン3。

これは表題の「960 Grid System」というデザインフレームワークを採用するとのこと。

960 Grid Systemってなに?

ここ数年デザインよりもZenCartやらCS-Cartの機能開発案件でデザインの話に疎くなってたんだけど、2008年くらいから提唱されはじめたCSSによるレイアウトをグリッドで行うという発想の代表的な存在。たぶn

ページの幅960pxを基準にして設計するグリッドデザインのことで格子(グリッド)をベースにそこに出来たブロックごとに図版や文字を配置してデザインを行うもの。

あれ?CMSってみんなそんな感じじゃね?
と思っちゃうところかもしれないけど、CS-Cartにおいては基本は5分割のテンプレートです。

  • トップ
  • 左カラム
  • センターカラム
  • 右カラム
  • ボトム

960グリッドシステム採用のバージョン3だともっと細分化して配置できるようです。

CS-Cartでは16分割を採用しているようで、940pxの左右に10px余白、合わせて960px。
グリッドは40px+20pxのグリッド間余白。

デモサイトを少し触ってみたところ、デザインの自由度は格段に向上してる。
かといって自由になった分、自分でやらなきゃいけないことが増えてるということではなくて (もちろん設定できる項目が増える訳なのでその分やることは増えますけど。)、グリッドに配置するブロックパーツがプリセットでたくさん用意されている。
更にそのブロックに入れるテンプレートもプリセットで用意される。

つまり、

  • 最少単位のテンプレートがたくさん用意されてる
  • テンプレートを入れるブロックがたくさん用意されてる
  • ブロックは16分割のグリッド上に自由に配置できる
  • 高さは可変

とこうなるわけです。

こういったフレームワークが採用されます。デザインは格段にやりやすくなりますね。デザイナーさんの腕の見せ所!

 

ただし、懸念はないわけじゃないです。

デザインフレームワークが刷新されるということは、CS-Cartそのもののアップグレードはどうすんの?という問題。
これだけフロント側が変わるんだからちょっと簡単じゃない気がするなーと思っていたらこんな記事がありました。

http://blog.cs-cart.com/2012/02/27/cs-cart-3-upgrade-faq/

Q: After CS-Cart 3 is released, how can I upgrade my CS-Cart to this version?

A: CS-Cart 3 is a major release with many modifications, so the upgrade process will be a bit trickier than it was for previous versions.

Unlike before, it will be impossible to upgrade CS-Cart to version 3 via the Upgrade center in the admin panel. Instead, it will be required to install CS-Cart 3 separately and then transfer the data from CS-Cart 2.2.4 to it.

In order to do it we will provide a special add-on for CS-Cart 2.2.4 that will allow you to pack the whole store database and images into a special archive.

CS-Cart 3 will have a pre-installed Export/Import Stores add-on that will be used for importing store data from such archives.

Also, if both CS-Cart 3 and 2.2.4 are installed on the same server, you will be able to perform data transfer without creating a transition archive: CS-Cart 3 will be able to connect directly to MySQL database of CS-Cart 2.2.4 and gather all data automatically.

バージョン3はたくさん弄ったメジャーバージョンアップだぜ、だからアップデートはこれまでよりも若干トリッキーなんだぜ。
これまでみたいにはいかなくって、バージョン3をインストールしてそこに2.2.4からデータを移さないといけないぜ。
アップデート用アドオンを出すからそれでDBと画像を圧縮して抜き出すぜ。
バージョン3のインポーターを使ってそのデータを取り込むんだぜ。
まぁ同じサーバーにバージョン3と2.2.4がインストールされてれば自動でデータ移行できるけどな!

以上意訳w

あんまり気にすることはなさそうだけどデザインに関してはデータ移行だけでは2.2.4と全く同一にはできないかもね。
再現する作業は必要になりそう。
まだなんとも言えないけど。