eccube

帳票のデータをいじる。。。

EC-Cubeで作成する帳票(PDF)のデータは、以下のphpを書き換えることで可能です。

/data/class/SC_Fpdf.php

例えば、サイトをオープンしたての頃は注文番号がひと桁とかになってしまうので、めちゃくちゃ『売れていない』お店みたいで恥ずかしいです。
いろいろと出来るのですが、とりあえず

$this->lfText(144, 131, $this->arrDisp['order_id'], 10); //注文番号

$this->lfText(144, 131, time() . $this->arrDisp['order_id'], 10); //注文番号

に変更して(タイムスタンプを先頭につけてみたりして)カモフラージュするのも一つの手ですね。

帳票に載るデータは

$this->arrDisp['*******']

で取得できるので(何が取得できるのか知りたい場合はクラスファイルを読むか、あるいはデータをvar_dump()してみるのもアリです)、色々な条件によって値を変えるというのもいいかもしれません。

情報の出力は

$this->lfText(125, 85, $text, 8);

こんな形で出力されるのですが、

$this->lfText(“左からの位置”, “上からの位置”, “出力する内容”, “フォントサイズ”);

という形になっているので、お好みで表示位置を変更することもできます。

弊社の場合、ポイント制度の使用がスタートしていないので『値引き』に関するデータを出力しないようにしています。

ロゴ画像も

//ロゴ画像
$logo_file = PDF_IMG_DIR . ‘logo.png’;
$this->pdf->Image($logo_file, 124, 46, 40);

ここのデータを差し替えるか、もしくはロゴ画像そのものを差し替えるかして変更してしまいましょう。
簡単なのはロゴ画像を変更することですが、画像を大きく使いたかったりする場合もあるでしょうし、位置を変えたい場合もあるでしょう。

そんな時はやっぱり「SC_Fpdf.php」のソースを弄ってしまうのが一番です。

$this->pdf->Image()

これで画像を埋め込むことが出来ますから、一つだけではなくいくつもの画像を使用することも可能です。

eccube

EC-CUBEカスタマイズ

EC-CUBEのカスタマイズは、本当に難しい。

少し前に、EC-CUBEのカスタマイズが終わって一息。(いや、終わってないかも…)
自分が勤めている会社のECサイトなんですが。
なんと、オリジナルのデータベースとEC-Cubeのデータベースを混在させて、運営させちゃってますwww

EC-Cubeの表示機能は一切無視(笑)。
パラメータさえPOST出来れば、フルFLASHのサイトでもEC-Cubeが使えます。
さらに言ってしまうと、多数のECサイトを運営する場合でも、たった一つのEC-Cubeを動かすだけで何個ものサイトが運営出来ちゃいます。

ハッキリ言って、EC-Cubeのカスタマイズをしていて一番ネックなのは表示まわりの自由度の低さだったりしちゃいます。
個人的にはフルFLASHでグリグリのサイトとか好きなんですけど、そういうサイトって、なかなかカート処理を組み込むのが難しい…。

でも、表示機能の部分を切り分けて使うのであれば、EC-Cubeでも充分いけます。
要は、カート処理まわりのプログラムにパラメータさえ渡せればいいわけで。

EC-Cubeって使い方によっては、便利なアプリケーションだと思います。

「EC-Cubeってどうよ?」

なんて批判めいた話もチラホラ聞くけど、そういったことが言えるのは、ゴリゴリに使い倒してから…(r

まあ、僕を含めてEC-Cubeをゴリゴリに使い倒している事例は現在のWeb上には存在しないわけで、少なくとも技術的な視点でEC-Cubeを批判的に語れる人も存在しないのかな。

ただ、確かにDBの設計については「ひでぇな(笑)」ってなるかもです。

—————[ ここからカスタマイズメモ ]————-

今回は、「MediaBox」を使ってみることに。
mediaboxAdvanced mediaboxAdvanced

カートボタンを押すと、「mediabox」が立ち上がるようにするには、以下の部分をいじる。

data/class/pages/products/LC_Page_Products_Detail.php

$this->sendRedirect…

print <<< EOF <script>parent.Mediabox.open(‘http://サイトURL/cart/index.php’, ”, ‘mediabox[90% 90%]‘);</script>
EOF;

という感じでmediaboxを呼び出すスクリプトに変更。

つまり、カートボタンを押してカート処理をして最終的にリロードする処理をmediaboxを呼び出す処理に。

そうそう…MediaBoxの
overlay = new Element…..
の部分をしっかり処理しておかないと、カート処理中にうっかり画面を閉じてしまう人がいると思うので、処理を忘れないようにしましょう。

僕は(”click”, previous)に変えてしまってます(笑)。

Web関係の時事ネタやプログラム関係をあれこれメモって後で使うためのネタ帳。