Home

ajiblo

設立から3年を迎えることができました

先日、会社を設立してから3年の日を迎えました。
会社を設立したその「8月27日」という言葉はこの3年間で自分にとって誕生日と同じくらい思い入れが強い日になりました。
この日を迎えることができて、家族を始め仲間やお客さんには本当に感謝しております。

3年前は文字通り裸一貫になり、登記の手続きなど、手がかかる作業にも心を躍らせていました。
自宅で登記をしようと思うと大家からストップがかかり、知り合いの制作会社さんにお願いして、登記のために住所を貸していただけることに。あのときのご恩はやっぱり忘れられないものです。
当時からむやみに資本を集めず、「できること」に一つ一つ取り組むことで、少しずつその「できること」の幅を増やしてきたつもりです。
そして「まずは3年やってみよう」という気持ちをずっと持っていました。
会社の目標や個人の目標とは少し違う類のものかと思いますのが、この「3年持続させたい」という気持ちはなんなんでしょうね。経営の教科書とかだったら「企業の目的は持続させることだ!」とか言われるんでしょうけど、まぁそんなことは抜きにして3年間はやってみたいと考えてました。
また、当時は3年経ったら30歳を超えているんだから、いっぱしのものになっているんだろう。こんな事ができるようになっているんだろう。とか甘いことを考えていたけど、自分が思い描いていたイメージとは大きく異なっていますね。
当時と比較しても、まだ何も成していないし、目標も同じものが自分の中に存在する。
だから、現実に目を向けて何を目的としてどこに歩いていきたいのかということを、もう一度見直してまた前に進んでいきたいと思います。
企業は創業から5年間で半分が倒産するといわれています。
そういう意味でも、まだまだ危機に直面することが簡単に予測できるし、それを乗り越えるためにまた、皆に協力を仰がないといけないなと思っております。
通り一遍ですが、時代の流れを正確に読み取り、指針を定め、どういう努力をしていくのか明示していく経営をしていかなければいけないなと肝に銘じておきますので、また仲間と一緒に次の目標に向かっていきたいと思います。

juitterの日付フォーマットを変更する

こんにちは、山本です。

最近流行に流行っている「twitter」ですが、
その「twitter」をホームページに表示させる「juitter」という便利なjavascriptがあります。

juitter
http://juitter.com/

アジケで運営しているマイボトルパークでも使用していて非常に便利なJSです!

 
ただ1つ問題があってデフォルトだと日付の表示がおかしいのです。
以下のような表示になってしまいます。

Fri, 02 Jul 2010 09:09:49 +0000

 
なので今回はその修正方法を。

やり方は簡単でjquery.juitter.jsを2箇所修正するだけです。

111行目に5行ほど追加

				success: function(json){
					if(e==1) $("#"+contDiv).html("");
					$.each(json.results,function(i,item) {
						var d=new Date(item.created_at);
						var tweetdate=d.toLocaleDateString();
						var t=new Date(item.created_at);
						var tweettime=t.toLocaleTimeString().substr(0,5);
						var timestamp=""+tweetdate+" at "+tweettime+"";
						if(e==1 || (i<numMSG && item.id>ultID)){
							if(i==0){
								tultID = item.id;
								$("<ul></ul>")
									.attr('id', 'twittList'+ultID)
									.attr('class','twittList')

次に124,125行目にある「item.created_at」を「timestamp」に変更します。

								if(fromID=="image") mHTML="<a href='http://www.twitter.com/"+item.from_user+"'><img src='"+item.profile_image_url+"' alt='"+item.from_user+"' class='juitterAvatar' /></a> "+$.Juitter.textFormat(tweet)+" -| <span class='time'>"+timestamp+"</span> |- <a href='" + link + "' class='JRM' "+openLink+">"+readMore+"</a>";
								else mHTML="<a href='http://www.twitter.com/"+item.from_user+"'>@"+item.from_user+":</a> "+$.Juitter.textFormat(tweet)+" -| <span class='time'>"+timestamp+"</span> |-  <a href='" + link + "' "+openLink+">"+readMore+"</a>";

 
これだけです!

 
是非juitterを導入するのと同時にやってみてください!
では!

山本

 
参考:
JavaScript + Ajax 実践サンプル集 – jQueryのJuitterプラグインでTwitterを検索して表示する
twitterをJavaScriptで表示する「Juitter」|skuare.net

医療・病院専門の写真素材、フォトストックサイト「メディピクス」を公開しました。

こんにちは梅本です。
2010年6月18日(金)に医療・病院専門の写真素材サイト「メディピクス」を公開しましたので報告します。

リンク : http://www.medicalimage.jp/

medipics

■サイト概要
メディピクスは医療・病院関連の写真素材のみを取り扱うフォトストックサイトです。サイト名の由来は medical(医療)、picture(写真)の2つを合わせて medipics(メディピクス)というタイトルにしました。

■制作の経緯
創業当初から撮影等のお手伝いをしていただいているカメラマンの宮家さんと、「写真素材を提供するサイトとか作ってみたいですね」と言ってたのですが、そのまま話は流れておりました。

そして、時間が経ち半年くらい前に病院関連のサイトの仕事を2つほど担当させていただいた時に、制作側としては少し困った事がありました。
どちらのお仕事も「写真素材や撮影予算はないのですが、よろしくお願いします」ということで写真素材がなかったのです。

WEBを制作している人たちだとおわかりだと思いますが、デザインを作るにあたって素材がないというのは非常に難しい状況だと思います。
その時はなんとか仕事を完成させたのですが、ふと医療系の素材サイトってどうかな?と社内で話したところ、担当者が「やりたい」ということでスタートしたプロジェクトです。
なので、僕は判断はするけど、基本的には任せるというスタンスでできたサイトです。

価格や著作権に関して、非常にわかりやすい体系だと思うので、病院関連のサイトとか広告物を制作する時は結構お役に立てるサイトなんじゃないかな?と思いますので、制作者の人たちのお役に立てれば嬉しいなと思っております。

■制作内容
・デザイン
今回のサイトでは、医療・病院という商品写真の特徴である「暖かさ」を、サイトの雰囲気からも感じてもらえるように意識してデザインしました。また商品一覧ページでは、ユーザーのウィンドウサイズに合わせて、一度に閲覧できる商品数が変えられるようにリキッドレイアウトにしました。また、お気に入り機能を有効に使っていただくため一覧ページのフッターに常に表示するなどユーザーの使いやすいよう意識しております。

・機能
写真素材の販売ということでダウンロード商品が登録できるようカスタマイズしました。また複数の写真を見比べられるように詳細ページをポップアップ表示にしたりその他細かいカスタマイズを行っております。

カスタマイズは弊社のシステムディレクター山本が担当しました。
一時期ブログの記事がEC-CUBE ばかりになったのはそのせいです(笑

■Staff Credit

・ディレクター : 山本
・システム構築 : 山本
・情報設計   : 森
・デザイン&コーディング : 神田
・アシスタント : 丹下
・アシスタント : 木根
・写真素材撮影 : 宮家さん

リンク : 医療・病院専門の写真素材、フォトストックサイト「メディピクス」

EC-CUBE ポイント利用分も考えた金額を表示させる

こんにちは、山本です。

今日は普段『銀行の入金を確認している人』に朗報のカスタマイズかと。

ECサイトを運用する上で、入金確認をする人は
おそらくステータスを変更する画面を多用するかと思います。

「新規受付」「入金待ち」「入金済み」などのステータスですね。

管理画面では「受注管理」の「ステータス管理」なのですが・・・

ここの「購入金額」の値、ポイント分を考えていません。

つまりポイントを利用しているお客様は、ポイント利用分が引かれていない金額が表示されるので、
銀行に入金があった際に若干金額に誤差が生じてしまいます。

するとこのお客様はポイントを利用したのか、ということを
いちいち確認しなくてはいけません。

 
そこでちょっとしたカスタマイズを。

eccube-2.4.3/data/Smarty/templates/default/admin/order/status.tpl
128行目を以下に変更するだけ(total→payment_total)

	<!--{assign var=payment_id value=`$arrStatus[cnt].payment_id`}-->
	<td align="center"><!--{$arrPayment[$payment_id]|escape}--></td>
	<td align="right"><!--{$arrStatus[cnt].payment_total|number_format}--></td>
	<td align="center"><!--{if $arrStatus[cnt].status eq 5}--><!--{$arrStatus[cnt].commit_date|sfDispDBDate:false}--><!--{else}-->未発送<!--{/if}--></td>
	<td align="center"><!--{$arrORDERSTATUS[$status]}--></td>

これだけで、ポイントを引いた金額になります!

 
細かいことですが、普段EC-CUBEのサイトを運用している人にとっては
微妙な確認作業などが心理的に負担になったりします。

このようなカスタマイズは実際に運用してみないとわからない部分ですよね。

アジケはマイボトルパークを実際に運用しているので、
結構このような管理画面のカスタマイズもしています。

サイトができて終わりでなくて、やはり運用も大切ですからね!

簡単ですので是非お試しあれ!

では!

山本


アジケのECサイト構築サービス:
アパレル企業の"思い"をあと押しする、アパレル専門のECサイト構築サービス
リアル店舗とEC店舗をつなぐバランソ(balanco)ポイントシステム

MTでカスタムフィールドの種類を変更する方法

こんにちは、森です

以前、Movable Typeのカスタマイズをしているとき、カスタムフィールドの種類を変更したい、ということがありました。カスタムフィールドを作成しなおせば良いのですが、既にデータが入っていたりすると面倒です。

そこで、データベースを直接いじることで、カスタムフィールドの種類を変更しました。

まず、phpmyadminなどでデータベースにアクセスし、mt_field のテーブルを表示します。mt_fieldは以下のような構造になっています。

field_basename ベースネーム
field_blog_id ブログのID
field_default 既定値
field_description 説明
field_name 名前
field_obj_type システムオブジェクト
field_options オプション値
field_required 必須?
field_tag テンプレートタグ
field_type 種類

カスタムフィールドの種類を変更するには「field_type」を変更すれば良いのです。

field_typeに入る値は以下の通りです。

text テキスト
textarea テキスト複数行
checkbox チェックボックス
url URL
datetime 日付と時刻
select ドロップダウン
radio ラジオボタン
embed 埋め込みオブジェクト
asset アイテム
asset.audio オーディオ
asset.video ビデオ
asset.image 画像

ただし、種類を変更したフィールドに入力していた値が、消えてしまう場合もあります。
「テキスト」から「URL」など、データ型が違う種類に変更すると消えてしまうようです。
しかしその場合は、すぐに「テキスト」に戻せば、入力していた値も戻ります。

使えるシーンは限られてしまいますが、
テキスト⇔テキスト複数行 といった変更の際には使える方法です。

EC-CUBEの売上集計でキャンセルや削除した受注も集計されてしまう

こんにちは、山本です。

EC-CUBEで売上集計というのがあるのですが
これキャンセルや削除した受注情報も集計されてしまいます。

なので今日はそれの修正方法を。

売上集計がリアルタイム集計かバッチモード集計かによって方法が異なります。

 
1.リアルタイム集計の場合
デフォルトではリアルタイム集計になっています。
特にソースを修正する必要はなくて以下のデータベースの中身を消すだけです。

dtb_bat_order_daily
dtb_bat_order_daily_age
dtb_bat_order_daily_hour

データベースが「MySQL」の場合は「phpMyAdmin」を
「PostgreSQL」の場合は「phpPgAdmin」を使った方が便利だと思います。

アジケは基本的に「PostgreSQL」なので、「phpPgAdmin」で・・・

簡単ですね!

 
2.バッチモード集計
次にバッチモード集計の場合ですが
どのようにバッチモード集計の設定をしたかによってやり方が異なります。

私は以下のサイトを参考にバッチモードの設定をしたので
今回はそのやり方でバッチモード設定した場合のやり方を説明します。
(といってもほとんど同じ流れだと思います。)

売上集計をバッチモード(DAILY_BATCH_MODE=true)でやるようにしたらサクサク動くようになった

簡単に流れを説明すると・・・

Cron(毎日朝の4時など)

集計プログラム(独自で作成)

data/class/batchSC_Batch_Daily.phpの「lfStartDailyTotal」の関数を実行

このようになります。

ここでlfStartDailyTotalの関数を呼び出す際に
「いつからいつまでの集計をするという期間」を設定するのですが
それをキャンセルや削除した受注日付まで含めればOKです。

つまり・・・

例えば、5月5日に受注があったけれども5月10日にキャンセルした受注情報があったとします。
で、今日が5月20日だとしたら、15日前(5月5日)まで集計するようにすればOKです!

 
EC-CUBEは細かいバグのようなものがたくさんありますが
少し調べれば結構簡単に修正できるので是非試してください。

では!

山本


アジケのECサイト構築サービス:
アパレル企業の"思い"をあと押しする、アパレル専門のECサイト構築サービス
リアル店舗とEC店舗をつなぐバランソ(balanco)ポイントシステム

EC-CUBEの受注管理で受注情報詳細を簡単に見る方法

こんにちは、山本です。

今日もEC-CUBEの小ネタカスタマイズを。

管理画面の受注管理で受注情報を検索した際に
このお客様どんな商品頼まれたのかなぁと詳細情報を見たいけれども、
わざわざ「編集」ボタンを押さなくてはいけなくてちょっと不便ですよね。

そこで調べていたらとても簡単な方法でできました。

同じ受注管理の「ステータス管理」で、「注文番号」をクリックすると詳細情報がポップアップで表示されますよね。
それをまんまパクりました。

eccube-2.4.3/data/Smarty/templates/default/admin/order/index.tpl

                        <tr bgcolor="<!--{$arrORDERSTATUS_COLOR[$status]}-->" class="fs12n">
                            <td align="center"><!--{$arrResults[cnt].create_date|sfDispDBDate}--></td>
                            <td align="center"><!--{$arrResults[cnt].order_id}--></td>
                            <td><!--{$arrResults[cnt].order_name01|escape}--> <!--{$arrResults[cnt].order_name02|escape}--></td>
                            <!--{assign var=payment_id value="`$arrResults[cnt].payment_id`"}-->

441行目を以下に変更するだけ

                        <tr bgcolor="<!--{$arrORDERSTATUS_COLOR[$status]}-->" class="fs12n">
                            <td align="center"><!--{$arrResults[cnt].create_date|sfDispDBDate}--></td>
                            <td align="center"><a onclick="fnOpenWindow('./edit.php?order_id=<!--{$arrResults[cnt].order_id}-->','order_disp','800','900'); return false;" href="/admin/order/status.php"><!--{$arrResults[cnt].order_id}--></a></td>
                            <td><!--{$arrResults[cnt].order_name01|escape}--> <!--{$arrResults[cnt].order_name02|escape}--></td>
                            <!--{assign var=payment_id value="`$arrResults[cnt].payment_id`"}-->

 
 
これで「注文番号」がリンクになったので、
それをクリックすると商品詳細情報がポップアップで表示されます!

 
簡単なカスタマイズで、地味に便利になりますので
是非お試しください。

では!

山本


アジケのECサイト構築サービス:
アパレル企業の"思い"をあと押しする、アパレル専門のECサイト構築サービス
リアル店舗とEC店舗をつなぐバランソ(balanco)ポイントシステム

twitterのbotを作る方法(EasyBotter)

こんにちは、山本です。

アジケでは10%時間というのがあって、
10%の時間は自分の好きなことを自由にやっていい! という制度があります。
Googleさんの20%ルールと一緒ですね!)

で、その時間にやってみたのがtwitterのbot作成です。

最近はやりに流行っているtwitterですが、
やっておいて損はないだろうということで作ってみました。

で、いろいろ調べてみたのですが
結局以下のサイトで公開しているプログラムを利用させてもらい
簡単にbotを作成することができました。


プログラミングができなくても作れるTwitter botの作り方 (EasyBotter)

PHPがベースになっているプログラムですが、
名前にあるように、本当にプログラミングができない人でも可能なぐらい簡単なものです。

PHPがいじれる人は、いろいろ自分でカスタマイズすることも可能ですし、
そんなに複雑なことをやるということでなければ、十分に使えるプログラムかと思います。

で、今回は少し設定に迷った認証について書こうかと思います。

■Twitterの認証

twitterのapiを利用するのに認証があるのですが
基本以下の3つのようです。

1.Basic
2.OAuth
3.xAuth

今回のプログラムで利用したのは2の「OAuth認証」です。

ちなみに1のBasic認証は、セキュリティ面で弱いために
2010年6月末で終了となるそうです。
Twitter、BASIC認証を6月末に終了 OAuthとxAuthのみに – ITmedia News

で、その「OAuth認証」をするために以下のことをやる必要があります。

■OAuth認証の設定方法

1.bot用アカウント作成
2.Twitterアプリケーションの登録
3.EasyBotterのsetting.phpに登録

1.bot用アカウント作成
まずbotを使用するアカウントを作成します。
特に普通に作成して問題ありません。

2.Twitterアプリケーションの登録
次に「Twitterアプリケーション」というものに登録します。

まずTwitterアプリケーションにアクセスします。

「新しいアプリケーションを追加」をクリック


以下の項目を入力します。
※あとで全部変更可能です。

アプリケーション名 ※必須 このアプリケーション名が「○○で」と表示される名前になります。
すでに使われている名前だと「has already been taken」と怒られます。
アプリケーションの説明 ※必須 10文字以上入力
アプリケーションのウェブサイトURL ※必須
所属会社/団体 適当に。
アプリケーションの種類 「クライアントアプリケーション」を選びます。
コールバックURL 今回は特に設定必要ないです。
Default Access type 「Read & Write」を選びます。
アプリケーションのアイコン 適当に。


規約に同意するかどうか聞かれるので「I Accept」をクリック

これでOKです。

ここで、重要なのは以下の項目の値なのでメモっておいてください。

Consumer key
Consumer secret

あと先ほどの画面の右上に「My Access Token」というリンク先があるのでそれをクリックします。


ここでは以下の値をメモしてください。
Access Token (oauth_token)
Access Token Secret (oauth_token_secret)

さて、これで準備はできました。

3.EasyBotterのsetting.phpに設定
あとはEasyBotterのsetting.phpに先ほどメモった値を設定するだけです。

■テスト

これで実際に動かしてみると・・・

できましたね!
先ほど設定した「アプリケーション名」、ここでは「アジケ事務所」が表示されているのがわかるかと思います。

このプログラムEasyBotterではいろいろな設定ができるので
是非いろいろ試してTwitterBotで遊んでみてください。

では!

山本

参考サイト:
プログラミングができなくても作れるTwitter botの作り方 – setting.phpの編集
PHP+OAuthでTwitter – SDN Project

追伸:
私個人で作成したbotが岡本太郎名言botです。

EC-CUBEの受注情報の検索結果の項目を変更する方法

こんにちは、山本です。

今回は実際にお客様から要望があったEC-CUBEのカスタマイズなのですが
非常に簡単なので紹介します。

管理画面の『受注情報』にて受注情報の検索結果の項目を変更する方法です。
お客様から『お届け指定日』を表示させたいとのご要望があったので調べてみるとあっさりできました。

 
デフォルトだとこのような項目ですが・・・

このようにしました。

つまり、

受注日 注文番号 顧客名 支払方法 購入金額(円) 全商品発送日 対応状況 帳票 編集  メール  削除

この『削除』の項目を削除して『お届け予定日』を追加しただけです。

項目を削除するのは簡単だと思ったのですが、
追加ができるのかなぁということで、テンプレートを見てみると・・・

eccube-2.4.3/data/Smarty/templates/default/order/index.tpl

                        <!--{section name=cnt loop=$arrResults}-->
                        <!--{assign var=status value="`$arrResults[cnt].status`"}-->
                        <tr bgcolor="<!--{$arrORDERSTATUS_COLOR[$status]}-->" class="fs12n">
                            <td align="center"><!--{$arrResults[cnt].create_date|sfDispDBDate}--></td>
                            <td align="center"><!--{$arrResults[cnt].order_id}--></td>
                            <td><!--{$arrResults[cnt].order_name01|escape}--> <!--{$arrResults[cnt].order_name02|escape}--></td>
                            <!--{assign var=payment_id value="`$arrResults[cnt].payment_id`"}-->
                            <td align="center"><!--{$arrPayment[$payment_id]}--></td>
                            <td align="right"><!--{$arrResults[cnt].total|number_format}--></td>
                            <td align="center"><!--{$arrResults[cnt].commit_date|sfDispDBDate|default:"未発送"}--></td>
                            <td align="center"><!--{$arrORDERSTATUS[$status]}--></td>
                            <td align="center"><a href="./" onClick="fnOpenPdfSettingPage('pdf.php?order_id=<!--{$arrResults[cnt].order_id}-->','pdf_input','500','650'); return false;"><span class="icon_class">帳票</span></a><input type="checkbox" name="pdf_order_id[]" value="<!--{$arrResults[cnt].order_id}-->" >
                            </td>
                            <td align="center"><a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="fnChangeAction('<!--{$smarty.const.URL_ORDER_EDIT}-->'); fnModeSubmit('pre_edit', 'order_id', '<!--{$arrResults[cnt].order_id}-->'); return false;"><span class="icon_edit">編集</span></a></td>
                            <td align="center"><a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="fnChangeAction('<!--{$smarty.const.URL_ORDER_MAIL}-->'); fnModeSubmit('pre_edit', 'order_id', '<!--{$arrResults[cnt].order_id}-->'); return false;"><span class="icon_mail">通知</span></a></td>
                            <td align="center"><a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="fnModeSubmit('delete_order', 'order_id', <!--{$arrResults[cnt].order_id}-->); return false;"><span class="icon_delete">削除</span></a></td>
                        </tr>
                        <!--{/section}-->

うーん、ごちゃごちゃしてよくわかりませんが、
どうやらこの$arrResultsという変数にいろいろ値が入っているようです。

じゃあその$arrResultsという変数には
どんな値が入っているのかなぁと思って調べてみると・・・

‘order_id’ => ‘161′,
‘order_temp_id’ => ‘4bf4af8ba77a0R3np2zqf’,
‘customer_id’ => ‘68′,
‘message’ => NULL,
‘order_name01′ => ‘山本’,
‘order_name02′ => ‘光彰’,
‘order_kana01′ => ‘ヤマモト’,
‘order_kana02′ => ‘ミツアキ’,
‘order_email’ => ‘info@ajike.co.jp’,
‘order_tel01′ => ‘03′,
‘order_tel02′ => ‘1234′,
‘order_tel03′ => ‘3456′,
‘order_fax01′ => NULL,
‘order_fax02′ => NULL,
‘order_fax03′ => NULL,
‘order_zip01′ => ‘112′,
‘order_zip02′ => ‘1234′,
‘order_pref’ => ‘2′,
‘order_addr01′ => ‘てすと’,
‘order_addr02′ => ‘123′,
‘order_sex’ => ‘1′,
‘order_birth’ => NULL,
‘order_job’ => NULL,
‘deliv_name01′ => ‘山本’,
‘deliv_name02′ => ‘光彰’,
‘deliv_kana01′ => ‘ヤマモト’,
‘deliv_kana02′ => ‘ミツアキ’,
‘deliv_tel01′ => ‘03′,
‘deliv_tel02′ => ‘1234′,
‘deliv_tel03′ => ‘3456′,
‘deliv_fax01′ => NULL,
‘deliv_fax02′ => NULL,
‘deliv_fax03′ => NULL,
‘deliv_zip01′ => ‘112′,
‘deliv_zip02′ => ‘1234′,
‘deliv_pref’ => ‘2′,
‘deliv_addr01′ => ‘てすと’,
‘deliv_addr02′ => ‘123′,
’subtotal’ => ‘3255′,
‘discount’ => NULL,
‘deliv_fee’ => ‘500′,
‘charge’ => ‘0′,
‘use_point’ => NULL,
‘add_point’ => ‘32′,
‘birth_point’ => ‘0′,
‘tax’ => NULL,
‘total’ => ‘3755′,
‘payment_total’ => ‘3755′,
‘payment_id’ => ‘3′,
‘payment_method’ => ‘銀行振込’,
‘deliv_id’ => ‘0′,
‘deliv_time_id’ => ‘0′,
‘deliv_time’ => NULL,
‘deliv_no’ => NULL,
‘note’ => NULL,
’status’ => ‘1′,
‘create_date’ => ‘2010-05-20 12:42:14.75875′,
‘loan_result’ => NULL,
‘credit_result’ => NULL,
‘credit_msg’ => NULL,
‘update_date’ => ‘2010-05-20 12:42:11.329291′,
‘commit_date’ => NULL,
‘del_flg’ => ‘0′,
‘deliv_date’ => NULL,
‘conveni_data’ => NULL,
‘cell01′ => NULL,
‘cell02′ => NULL,
‘cell03′ => NULL,
‘memo01′ => NULL,
‘memo02′ => NULL,
‘memo03′ => NULL,
‘memo04′ => NULL,
‘memo05′ => NULL,
‘memo06′ => NULL,
‘memo07′ => NULL,
‘memo08′ => NULL,
‘memo09′ => NULL,
‘memo10′ => NULL,
‘campaign_id’ => NULL,

うわぁ~多いな!ってdtb_orderのデータベースまんまですね。
なので、ここにある項目なら全部使えそうです。

よって・・・

eccube-2.4.3/data/Smarty/templates/default/order/index.tpl

                        <tr bgcolor="#636469" align="center" class="fs12n">
                            <td width="100"><span class="white">受注日</span></td>
                            <td width="65"><span class="white">注文番号</span></td>
                            <td width="110"><span class="white">顧客名</span></td>
                            <td width="90"><span class="white">支払方法</span></td>
                            <td width="70"><span class="white">購入金額(円)</span></td>
                            <td width="75"><span class="white">発送日</span></td>
                            <td width="85"><span class="white">お届け指定日</span></td>
                            <td width="75"><span class="white">対応状況</span></td>
                            <td width="45"><span class="white">帳票</span><br />
                            <input type="button" name="btn01" value="全て選択" onclick="fnBoxChecked(true);"> <input type="button" name="btn01" value="全て解除" onclick="fnBoxChecked(false);"></td>
                            <td width="45"><span class="white">編集</span></td>
                            <td width="45"><span class="white">メール</span></td>
                            <!--<td width="45"><span class="white">削除</span></td>-->
                        </tr>

                        <!--{section name=cnt loop=$arrResults}-->
                        <!--{assign var=status value="`$arrResults[cnt].status`"}-->
                        <tr bgcolor="<!--{$arrORDERSTATUS_COLOR[$status]}-->" class="fs12n">
                            <td align="center"><!--{$arrResults[cnt].create_date|sfDispDBDate}--></td>
                            <td align="center"><!--{$arrResults[cnt].order_id}--></td>
                            <td><!--{$arrResults[cnt].order_name01|escape}--> <!--{$arrResults[cnt].order_name02|escape}--></td>
                            <!--{assign var=payment_id value="`$arrResults[cnt].payment_id`"}-->
                            <td align="center"><!--{$arrPayment[$payment_id]}--></td>
                            <td align="right"><!--{$arrResults[cnt].total|number_format}--></td>
                            <td align="center"><!--{$arrResults[cnt].commit_date|sfDispDBDate|default:"未発送"}--></td>
                            <td align="center"><!--{$arrResults[cnt].deliv_date}--></td>
                            <td align="center"><!--{$arrORDERSTATUS[$status]}--></td>
                            <td align="center"><a href="./" onClick="fnOpenPdfSettingPage('pdf.php?order_id=<!--{$arrResults[cnt].order_id}-->','pdf_input','500','650'); return false;"><span class="icon_class">帳票</span></a><input type="checkbox" name="pdf_order_id[]" value="<!--{$arrResults[cnt].order_id}-->" >
                            </td>
                            <td align="center"><a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="fnChangeAction('<!--{$smarty.const.URL_ORDER_EDIT}-->'); fnModeSubmit('pre_edit', 'order_id', '<!--{$arrResults[cnt].order_id}-->'); return false;"><span class="icon_edit">編集</span></a></td>
                            <td align="center"><a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="fnChangeAction('<!--{$smarty.const.URL_ORDER_MAIL}-->'); fnModeSubmit('pre_edit', 'order_id', '<!--{$arrResults[cnt].order_id}-->'); return false;"><span class="icon_mail">通知</span></a></td>
                            <!--<td align="center"><a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="fnModeSubmit('delete_order', 'order_id', <!--{$arrResults[cnt].order_id}-->); return false;"><span class="icon_delete">削除</span></a></td>-->
                        </tr>

429と448行目に『お届け予定日』であるdeliv_dateを追加
『削除』435と454行目をコメントアウト

これだけです!

管理画面もちょっとしたことで非常に見やすく、使いやすくなりますからね。

簡単なので、是非やってみてください。

では!

山本


アジケのECサイト構築サービス:
アパレル企業の"思い"をあと押しする、アパレル専門のECサイト構築サービス
リアル店舗とEC店舗をつなぐバランソ(balanco)ポイントシステム

EC-CUBEでログインしているかログインしていないかを判断する方法

こんにちは、山本です。

EC-CUBEでログインしているかしていないかの判定をしたいときが
あると思いますが、今日はそのやり方を。

例えば・・・

・会員の人にだけ値段を表示させたい
・ログインしている時は「○○さん、こんにちは」のように名前を表示させたい

などなどいろいろ需要があるかと思います。

例えば、アジケ運営サイトのマイボトルパークでは
ヘッダーの部分で使用しています。

ログインしていない時

ログインしている時

 
このように使い分けができれば、お客様も使いやすくて
非常に便利ですよね。
 
 
で、さっそくそのやり方ですが、ここでは2つ紹介します。

まず1つめのやり方ですが、
PHPとテンプレート(xxx.tpl)の2つのファイルを弄ります。

 
PHP側でログイン判定、

// ログイン判定
$objCustomer = new SC_Customer();
if($objCustomer->isLoginSuccess()) {
	$this->tpl_login = true;
}

テンプレート(xxx.tpl)側で、

<!--{if $tpl_login}-->
 ログインしている時の処理
<!--{else}-->
 ログインしていない時の処理
<!--{/if}-->

これだけです。

これは「isLoginSuccess」という関数を利用してログイン判定をしているのですが、
せっかくのでその関数も見ておくと勉強になるかと思います。

 
eccube-2.4.3/data/class/SC_Customer.php

    // ログインに成功しているか判定する。
    function isLoginSuccess($dont_check_email_mobile = false) {
        // ログイン時のメールアドレスとDBのメールアドレスが一致している場合
        if(isset($_SESSION['customer']['customer_id'])
            && SC_Utils_Ex::sfIsInt($_SESSION['customer']['customer_id'])) {

            $objQuery = new SC_Query();
            $email = $objQuery->get("dtb_customer", "email", "customer_id = ?", array($_SESSION['customer']['customer_id']));
            if($email == $_SESSION['customer']['email']) {
                // モバイルサイトの場合は携帯のメールアドレスが登録されていることもチェックする。
                // ただし $dont_check_email_mobile が true の場合はチェックしない。
                if (defined('MOBILE_SITE') && !$dont_check_email_mobile) {
                    $email_mobile = $objQuery->get("dtb_customer", "email_mobile", "customer_id = ?", array($_SESSION['customer']['customer_id']));
                    return isset($email_mobile);
                }
                return true;
            }
        }
        return false;
    }

 
 
きちんとデーターベースまで見て判定しているのがわかりますね。

 
で、2つ目のやり方ですが、
テンプレート(xxx.tpl)の中で以下のようにします。

<!--{if $smarty.session.customer|@count > 0}-->
 ログインしている時の処理
<!--{else}-->
 ログインしていない時の処理
<!--{/if}-->

たったこれだけです。

が、実はこのやり方、セッション変数を見ているだけなので
厳密なログイン判定とは少し異なっています。

あまりお勧めはできないのですが
1つ目のやり方ができない!という人は2つ目の方法でやってみてください。
 

ちなみに・・・
上記で使用されているセッション変数『customer』には何が入っているのか?
と思って調べてみました。

Array (
[customer_id] => 1
[name01] => 山本
[name02] => 光彰
[kana01] => ヤマモト
[kana02] => ミツアキ
[zip01] => 151
[zip02] => 0062
[pref] => 1
[addr01] => 東京都渋谷区元代々木町21-9
[addr02] => シルエット元代々木203号室
[email] => info@ajike.co.jp
[email_mobile] =>
[tel01] => 03
[tel02] => 1234
[tel03] => 1234
[fax01] =>
[fax02] =>
[fax03] =>
[sex] => 1
[job] =>
[birth] =>
[password] => fc5ecab977b4af13927700492952f7b7cebxxxxx
[reminder] => 1
[reminder_answer] => xxxx
[secret_key] => r4b946dca68bc3xxxxxxx
[first_buy_date] => 2010-03-08 12:24:30.261447
[last_buy_date] => 2010-05-19 12:33:03.059411
[buy_times] => 5
[buy_total] => 117456
[point] =>
[note] =>
[status] => 2
[create_date] => 2010-03-08 12:23:54.589482
[update_date] => 2010-03-08 12:23:54.589482
[del_flg] => 0
[cell01] =>
[cell02] =>
[cell03] =>
[mobile_phone_id] =>
[mailmaga_flg] => 1 )
 

なるほど~お客様情報がたんまり入ってるのですね。。。
 
以上、是非参考にして、やってみてください。

では!

山本


アジケのECサイト構築サービス:
アパレル企業の"思い"をあと押しする、アパレル専門のECサイト構築サービス
リアル店舗とEC店舗をつなぐバランソ(balanco)ポイントシステム

Home

Search
Feeds
Meta

Return to page top