CS-Cart用アドオン いくつか出来上がってきてます

ひとまず速報的に。

  • ショップ側ソート順拡張アドオン:ショップ側商品一覧の「ソート順」に「登録日順」を追加する
  • 詳細検索結果の拡張アドオン:新着商品、全商品を詳細検索の検索結果として一覧表示する
  • 管理側受注一覧検索拡張アドオン:受注一覧の詳細検索に「支払方法」を追加する
  • 受注商品のソート順指定アドオン:納品書や配送表等で受注商品の並び順をコントロールする

個々のネーミングは未定です。。

リリースタイミングも未定です。

先日告知した「日付オプション追加アドオンの機能追加」と同時にリリースしようかなと思ってます。

CS-Cart 日付オプション追加アドオンの拡張

先日リリースした日付オプション追加アドオンですが、必要に迫られていくつか機能拡張しました。

基本機能は下記の通りです。

  • オプションに日付を追加
  • 入力にカレンダーからの選択機能を追加
  • 携帯対応(通常のテキストフィールド)

これに下記の機能を追加しました。

  • 入力文字列の正規表現バリデート(デフォルトで持っている機能を当該アドオンでも利用するようにしただけですが。)
  • 特定の日付指定に対応(カンマ区切りで複数指定可 ex 2012/03/15,2012/03/30)
  • 日付範囲の指定に対応(入力可能な日付範囲を指定 ex 2012/04/01%%2012/05/26)
  • 当日より前の日付の指定禁止に対応(当日以降の日付選択のみに)
  • 携帯アドオンに完全対応(日付をセレクトボックスで生成 指定日も範囲も当日以降の日付表示も対応)

指定範囲を外れた入力に対してはPHP側でチェックします。
正規表現をうまく使えばデフォルトのバリデーションでチェックできます。
(上記画像の正規表現項目に設定してあるのは日付フォーマットのチェック用です)

これらの設定は商品の編集画面のオプションタブで行います。
携帯アドオンをご利用の場合には携帯用言語に切り替えてそちらでも設定する必要がありますので注意が必要です。

性質上「特定の日付指定」と「日付範囲の指定」は排他関係にありますが、それぞれの設定項目の入力制限は実装していませんので設定時にはどちらか片方のみにするようにしてください。(アップデートのリリース時には対応するかもしれませんが未定です)

このアドオンは某サイトのチケット販売でご利用頂いています。
(公開が可能であればご紹介させていただきますが現段階では導入サイトは非公開です)

ちなみに、CS-Cartでは jQuery UI のDatepicker が採用されています。

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 メールテンプレート拡張アドオン

過去記事でも開発中とご報告したCS-Cart用アドオン「メールテンプレート拡張アドオン」をアップデートしました。
昨日CS-Cartのフォーラムでも質問があり回答してありますが、このアドオンは下記の機能を実現するものです。

ーーーーーーーーーーーーーーーーーー

デフォルトのメールテンプレートアドオンを拡張します。(受注メール、自動返信メール、ステータス変更通知メールが対象になります)

 

機能その1:
メールテンプレート「注文内容」に商品型番を表示します。

書式を4パターンから選択できます。

  1. デフォルト(数量 × 商品名 = 小計 改行 オプション)
  2. 商品名 (商品型番) x 数量 = 小計 改行 オプション
  3. 連番 商品名 (商品型番) x 数量 = 小計 改行 オプション
  4. 連番 商品名 (商品型番) 改行 オプション 改行 数量 × 単価 = 小計

 

機能その2:
注文の支払方法「銀行振込」の時、注文内容テンプレート中の「支払方法」の内容を拡張します。

ーー下記が追加されますーー
商品代金は以下の口座へお振込みください。
~以下支払方法の編集画面、詳細設定に記載した内容~
~/br/を除去した値~
ーーここまでーー

 

CS-Cartバージョン
CS-Cart日本語版 v2.1.4-jp-2 および CS-Cart日本語版 v2.2.1-jp-1以降

ーーーーーーーーーーーーーーーーーー
管理画面、支払方法>支払方法の編集>詳細設定の画面

機能その2で挿入する文字列(銀行の口座情報)はこの画面に入力した文字列です。
メールテンプレート拡張アドオン用に文字列を新たに設定するものではなく、デフォルトで用意されている機能を最大限に流用しますので設定は非常に簡単です。

 

 

 

 

送信されるメールはこのようになります。

  • 注文商品の表示内容と順序:連番 商品名 (商品型番) 改行 オプション 改行 数量 × 単価 = 小計
  • 口座情報を注文内容テンプレートに追加する:追加する

と設定した場合に送られるメール本文です。
(住所氏名等が記載されてますがオフィスの所在地なので気にしないでください。)

 

 

 

 

 

 

 

下記はデフォルトのメールです。

 

価格は10,500円(税込)です。

ご購入はあんどぷらすのサイト もしくはCS-Cartマーケットプレイス から。