ショッピングカートプラグインと注文管理プラグイン(正式版)
ようやく正式版を公開できました。それなりに長い道のりだった…。_(:3 」∠ )_
気ままな雑記帳&実験場。好き勝手に色々やっています。
カテゴリー「プログラム」の検索結果は以下のとおりです。
ようやく正式版を公開できました。それなりに長い道のりだった…。_(:3 」∠ )_
とっくにメモしてあると思ったらメモしていなかったので、コピペ&調整で使えるようにメモ。
PHPのデフォルト設定では2M以上のファイルはアップロードできないけど、.htaccess
ファイルを作成して以下の内容を書けば上限を変更できる。php.ini
の編集権限があれば、そちらで設定してもOK。
php_value max_execution_time 600
php_value memory_limit 512M
php_value post_max_size 288M
php_value upload_max_filesize 256M
サイズは upload_max_filesize < post_max_size < memory_limit
となるように設定する。場合によってはApache側の設定も必要。
以下、参考ページ。
ショッピングカートプラグインと注文管理プラグイン(どちらもアルファ版)を公開しました。
一週間ほど様子を見てから、問題なければ正式版として公開したいと思います。
以下、アルファ版に対していただいた意見への返信です。
アマゾンのような、ログインしてカートに入れると保存される機能やレビュー(星)機能もあるといいです!
ログインしてカートに入れると保存される機能は、注文管理プラグインに実装しました。
レビュー投稿は、別プラグインとして作る予定リストに入れておきます。
注文者が配送方法を選ぶ形式の他に、計算表内の最安の配送方法を自動的に選択されて注文の合計金額に反映されるような設定にできるとありがたいです。
あと、送料をサークル側が負担する場合もあるかと思うので、この項目自体を表示・非表示できたほうがいいのかも?とも思いました。
都道府県を選択するまで最終的な送料を決定できないので、最安の自動選択は難しいです。配送方法が固定の場合にいちいち選択しなくてもいいように、一番上の配送方法をデフォルトで選択済みにできるようにしました。
現仕様だと支払い方法は項目が一つでも必須選択項目として出てきています。
選択肢がないならわざわざクリックさせるのもなぁと思うので、これも項目自体、フォームに反映させるかさせないかの選択肢があってほしいです。
配送方法と同じく、一番上の支払い方法をデフォルトで選択済みにできるようにしました。
現状ではファイルアップロードの形式のみですが、URL指定で通常のページ(ページ機能使った小説本文のサンプルとか)を指定できるといいです。
その際はURLを別窓(_blank)指定で開ける選択肢があるといいなと思います。
「オプション」として入力項目を追加できるので、それでサンプルページのURLを掲載する方法を解説したいと思います。
商品一覧ページでも印刷形式(オフセット等)やページ数など詳細を表示されていてほしいです。
でも表示はなるべく簡易にしたい人もいると思うので、これも表示・非表示を選べるといいと思います。
迷ったのですが、デフォルトで商品一覧でもそれらを表示するようにしました。不要な場合、templates/plugins/catalog/default.html
を編集して削除すればOKです。
表示を追加するのは難しいかもしれませんが、削除するなら難しくないかなと思うので。
現状、15禁と18禁の選択のみですが、カテゴリ同様に項目のメンテナンスをしたいです。
視覚的に「全年齢」を項目に入れたかったり、「20禁」もあるかもしれませんし。
files/plugins/catalog_defines/targets.csv
を編集すれば項目を増減できます。データ形式は機能解説の「対象の編集」に記載しました。
該当する商品がない項目は非表示をデフォルトにして欲しいです。
標準機能のカテゴリー一覧などで、該当0でも項目を表示させているのでそちらに合わせて「常に表示」としました。
年齢制限のある作品は、現状、その個別ページを開いた時にtarget画面に自動できりかわり、認証前には一覧には表示されなくなっていると思います。
これを、認証しなくても一覧に表示できるかどうかを選択できるようにはできないでしょうか?
「デフォルトで15禁に認証済み」「デフォルトで18禁に認証済み」のように、訪問者の初期値を設定できるようにしました。設定方法は機能解説の「設定の編集」に記載しました。
初めて注文する人用に通販利用方法が説明してあるページを作成
普通にfreoのページ機能などで作るか、テンプレートを編集して説明を掲載すればいいかなと思うので、未対応です。そういう意味でなければ詳細をお知らせください。
一つのリンク先にサンプル画像を原寸で並べて表示する
templates/plugins/catalog/view.html
を編集すれば可能です。
1種類の商品をn個以上はカートに入れられない
商品登録時、「一度に購入できる最大数」で設定できます。
連絡事項の入力内容に特定の単語が含まれていないと注文完了できない
そのうち機能追加したいと思います。
情報入力画面にチェックボックスを追加(おまけにメッセージカードを付けていいですか?などの希望を取りたいからです)
そのうち機能追加したいと思います。
注文後お礼画面にリダイレクトする
templates/plugins/catalog/order_complete.html
が注文完了画面ですが、これを編集すればリダイレクトさせることも可能です。
入金方法によって内容の違う自動返信メールを送信する
ちょっと無理矢理気味な方法になりますが、注文内容によって送信されるメールの内容の一部を変化させることはできるので、そのうち解説を用意したいと思います。
「商品追加しました」「メールアドレスが届かない方がおられますので~」などの事務連絡用ツイッターをナビゲーションに表示
Twitter公式のウィジェットをテンプレートに埋め込めばOKです。
ショッピングカートプラグインと注文管理プラグイン(どちらもアルファ版)を公開しました。
汎用性は高くしたつもりですが、薄い本とかCDを個人で売ることを主に想定しています。
商品サイズに応じた配送方法を選択してもらうことができたり、配送方法ごとに支払い方法や地域ごとの送料を設定できたり、年齢認証を設けることができたり、印刷用ページをHTMLテンプレートで編集したりブラウザ上で直接いじったり。などなど。
今はまだ仕様変更が容易なので、「こんな風になっていた方がいい」「こんな機能があった方がいい」「これは意味が解らない」とかあれば、教えてもらえると嬉しいです。
3月14日からTwitterのWeb版で改行が反映されるようになったので、その日のうちに縦書でツイートするためのツールを作成してみた。
ねとらぼ、ニコニコ、mixiなどなど、色々なところで紹介されたのでちょっと嬉しい。これまで旬の話題に乗じて何か作ることはほとんど無かったけど、タイミングがいいと一気に広まることがあるのだなぁ…と思ったり。
毎回何か思いつくわけではないけど、またいつか何かあって何か思いついたら作るとします。(`・ω・´)
PHP5.3.9以降では max_input_vars
という設定が設けられており、入力データ数が多すぎる場合は自動的にデータがカットされるようになっています。初期値は 1000
なので、入力欄を1500個並べても、PHP側で受け取れるのは1000個までということです。
この設定は、一例ですが .htaccess
で
php_value max_input_vars 2000
このようにすれば緩和することができます。(この場合、PHP側で受け取れるのは2000個までということです。)
ですがPHPの設定変更を許可されていない環境で、どうしても大量の値を受け取る必要がある時のために、jQueryプラグインでデータをまとめて送れるようにしてみました。
入力欄が大量に並ばない設計にすればいいですが、今更プログラムの設計を変えるのは難しいよ。という場合に。
最近自分用に作ったjQueryプラグイン。
最近いじったjQueryプラグイン。
PHPばかり触っていて、あまりJavaScriptで色々作れず…。_(。゚⊿ 」∠)_
主にfreoのメディア管理機能強化のために色々と調べていたけど、どれも自分の技術で実現可能っぽい。
具体的には、ブラウザ上で画像をトリミングしたり、縮小・反転・回転したり、画像に直接何か書いたり、サイズが違ってもレイアウトが崩れないようにグリッドで並べたり。
Rubyをインストールした際のメモ。
Rubyは色々なパッケージがあるけど RubyInstaller for Windows を使用。(他は試していないけど、多分どれでもいい。)
インストール方法は Windows で Ruby バージョン 1.8.7 あるいは 1.9.2 のインストール (RubyInstaller を使用) を参考にした。
もとからあるXAMPP環境にRubyを追加する。Rubyは C:\ruby
にインストールした。
拡張子 .rb
でRubyを実行させるため、apacheのconfファイルに AddHandler cgi-script .cgi .rb
と書いておいた。
MySQLを使うために、プログラム内に require 'mysql'
と書くと LIBMYSQL.dll
が無いというエラーになった。C:\xampp\mysql\lib\libmysql.dll
を C:\ruby\bin\libmysql.dll
にコピーしたら大丈夫だった。
プログラム内に日本語を書くと invalid multibyte char (UTF-8)
というエラーになる。この場合、Rubyのパスの直後の行に #encoding: utf-8
と書けば大丈夫。(空行を入れずに、パスの直後の行に書く。)
サーバーにアップロードするときは、Rubyファイルはアスキーモードで。
PHP5.2以降で使える ZipArchive でファイルを圧縮&解凍するメモ。
test.txt
と test/test.jpg
を圧縮。圧縮後のファイル名は test.zip
。
<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === true) {
$zip->addFile('test.txt');
$zip->addFile('test/test.jpg');
$zip->close();
} else {
exit('open error.');
}
echo 'complete';
?>
test.zip
を解凍。解凍したファイルは ./extracted/
内に作成。
<?php
$zip = new ZipArchive();
if ($zip->open('./test.zip') === true) {
if ($zip->extractTo('./extracted/') === true) {
$zip->close();
} else {
exit('extract error.');
}
} else {
exit('open error.');
}
echo 'complete';
?>