ども、umasoです。

Thank Uは、EC-CUBE正規インテグレートパートナー(シルバー)です。
シルバーパートナーは、300社あるパートナーの中でも上位20社に位置する超優良パートナーです。
Thank UのECサイト構築サービスについてはこちらをご覧下さい→http://thank-u.net/?page_id=40

EC-CUBEカスタマイズに際して、知っておくべきことがあります。
前回はデザインカスタマイズ時に際して、最低限知っておくべきことを書きましたが、本日はPHPカスタマイズ時にの注意点を書きます。

PHPソースは、data/classフォルダとdata/class_extendsフォルダに格納されています。
data/class_extendsのPHPソースを見れば分かりますが、data/classフォルダのPHPを親クラスとして呼び出しているだけです。
実際の処理は、data/classフォルダのPHPで記述されています。

じゃあ、カスタマイズする際はdata/classのソースを変更すればいいかと言うとそうではありません。
EC-CUBEアップデート時には、data/classのPHPが変更されていて、data/classが上書きされてしまいますので、data/classのソースを変更していた場合、変更箇所がすべて上書きされてなくなってしまいます。
これでは、せっかく苦労してカスタマイズしたものが水の泡になってしまいます。

PHPをカスタマイズする際には、data/class_extendsのソースを変更します。
data/classのロジックをdata/class_extendsのソースへコピーし、カスタマイズします。
data/classとdata/class_extendsに同じfunctionがあった場合、data/class_extendsの内容が優先されます。

あんまり大したことではないのですが、上記に気をつけていればEC-CUBEアップデート時にカスタマイズした箇所が上書きされてしまうことはありません。
と言っても、アップデート前は必ず影響調査して下さい。
data/class_extendsの内容が優先されるということは、せっかくアップデートで機能が追加になっても、機能しないということです。

カスタマイズは、ただ機能を実現すれば良いというものではなく、今後のことをしっかり考慮した上でソースを修正するべきですし、カスタマイズした後も色々と手が掛かります。
カスタマイズした際は、詳細をドキュメントで残す、またはソース内にコメントとして残して置くことをオススメします。