おつかれさまです、alumini_alumiです。

 
震災の余震も続き、被災地の方々を始め関東の皆様も
今までと違う毎日を過ごされているかと思います。
 
私は今すぐできる事が思いつけずにいるので、まずは節電と
今までと同じ毎日になるよう心がけてます。
後、携帯の充電はこまめに。
 
今回は、自分が最初に書いたエントリの某CMSのカスタマイズについて触れたいと思います。
 

 

ECサイトでは、ロット単位で購入させたいという要件も結構あるかと思います。

 

具体的な例ですと、

『1袋30本入のうま○棒を3袋買った場合、お客様の元に何本届くかをお伝えしたい』

の、何本届くかを実装したいというものです。

 

※EC-CUBEのデフォルトでは、入数のような概念はないのでカスタマイズせねばなりません。

 

ECサイトの簡単な購入までの遷移を考えると、ロット数を表示・実装する箇所はたくさん出てきてしまいました。

今回でいうと、「商品」と「カート」と「決済」と「メール」の表記や、ロジックを改修することが想定されます。

 

が!

今回のCMSの場合、カートの内容はセッションに保持されているので、ロット数という概念をどこで拾うかによって

改修範囲もレベルも変わってきます。

 

カート周りは不勉強なので細かなことは省きますが、ECサイトはモノが買えることが一番の肝なので

カート周りを勉強することはそのCMSをとても良く知る必要があり、そしてとても大変だということが理解できました。

 

肝の部分まで触らざるをえないので、できれば(ニーズも多いと思うし)デフォルトの機能で実装されないかな、と思ってます。

 

 

 

よく知る、という部分をもう一個だけ書きたいと思います。

同CMSの商品周りについてです。

商品マスタに前準備なしにカラムを追加すると、とたんにエラーでサイトが動かなくなってしまいます。

というか、動かなくなってしまって焦りました。

 

ポイントはviewテーブルでした。

元々EC-CUBEはPostgreSQLで作ったものに、if文豊かにMySQLが入っているように見えます。

 

具体的なソースコードやファイル名は載せませんが、

「商品マスタのSELECT文呼ばれたら、viewテーブルを参照する」関数の中で

「ただし、MySQLではviewは使われていないので、ここでSELECT文つくり直して、本当の商品マスタ参照する」

となってました。

 

MySQLとしか仲良くしたことがないレベルの私には、viewテーブルの考えがなくて、30分位涙目になりながら

動くように改修できました。

※対応方法としては、「ここでSELECT文つくり直して」の部分にカラム名を追記する程度でした。

 

所感ですが、「なんで関数の中でSELECT文作り直した」と作った方に聞きたいです。

 

人の作ったモノ、作りたいものには意味があると思うので、その意味を汲みとった実装を行いたいと思います。

 

 

 
Recent Comment
Categories
Writer
  • hidetarou
  • acha_maro
  • gazza069
  • sin_ya
  • yossy222
  • marionnettezero
  • TUYO
  • shiovo
  • yani_arcana
  • momiji0510
  • keiko_www
  • toma_max
  • kyonmaru
  • __senta
  • kenzo
  • t_suzuki
  • hikari_f
  • macchii
  • mashu