# CS-Cart開発者向け注意事項

CS-Cartをカスタマイズする場合は下記のルールに従って進めてください。CS-Cartスタンダード版とCS-Cartマーケットプレイス版の使用やアップグレードが容易になります。

## コアファイルの変更は行わないでください

CS-Cartスタンダード版とCS-Cartマーケットプレイス版はソースコードが暗号化されていないオープンソースソフトウェアです。ですので、CS-Cartをダウンロードしてアーカイブを開くと、全てのファイルは暗号化されていません。デフォルトでCS-Cartスタンダード版またはCS-Cartマーケットプレイス版に含まれるすべてのファイルは、コアファイルと呼ばれます。ファイルを変更することで、システムをニーズに合わせて変更できますが、この方法は使わないでください。\
代わりに、CS-Cartは様々なカスタマイズ方法を提供しています。（例：アドオン）

{% hint style="success" %}
例外

コアファイルの変更については、いくつかの例外があります。たとえば、CS-Cartスタンダード版またはCS-cartマーケットプレイス版をインストールした直後は、セキュリティ上の理由からadmin.phpの名前を変更することをお勧めします。
{% endhint %}

## コアファイルを変更すべきでない理由

{% hint style="info" %}
アドバイス

コアファイルを変更すると、アドオンの互換性に問題が生じる可能性があります。他にも、アップグレード時に変更箇所が失われてバグを引き起こすなどの可能性もあります。変更箇所を元に戻すには、膨大なプロセスが必要となります。
{% endhint %}

変更したコアファイルをCS-Cartスタンダード版またはCS-Cartマーケットプレイス版の新しいバージョンにアップグレードする場合は、次の２点に注意してください。

* コアファイルは上書きされ、変更（カスタマイズ箇所）は失われます。
* いくつかのファイルはご自身が変更したものに変更されます。バグが発生する可能性がありますが、コアファイルの変更を元に戻すことで直せます。

アップグレードしなくても問題が発生する可能性があります。例として、コアファイルを変更してサードパーティのアドオンが適切に動作しない（デフォルトのCS-Cartスタンダード版では動作する）場合を仮定してみます。

通常、まず初めに他のアドオンを無効にして、それらが原因でないことを確認します。ただし、コアファイルを直接変更していた場合は、念のためにそれも元に戻してください。特にデフォルトコードの一部が削除または置換された場合、大変手間がかかります。

## コアファイルが変更されているかを確認するには

CS-Cartスタンダード版とCS-Cartマーケットプレイス版の4.4.1以降ではコアファイルの変更の有無を監視し、通知するFile Changes Detectorを導入しました。管理画面を開くと、コアファイルが変更されたかどうかを確認できます。

* 管理画面→ファイルの変更を検出。
* 変更されたコアファイルのスキャンをクリックします。

画像

下記は、管理画面にログインする度にコアファイルの変更の有無を自動的にチェックできるようにする設定の手順です。

* 基本設定→全般をクリック
* \[ コアファイルの変更を監視する]がオンになっていることを確認
* 右上の【保存】ボタンをクリック

これで、コアファイルがデフォルトと異なる場合には、管理画面を開くと次の通知が表示されるようになります。

{% hint style="warning" %}
注意

一部のコアファイルが変更されています。この変更は \[CS-Cart] のアップグレードの際に削除される可能性があります。
{% endhint %}

## CS-Cartのコアファイルを直接変更しないカスタマイズ方法

CS-Cartスタンダード版とCS-Cartマーケットプレイス版では、コアファイルを変更せずにカスタマイズする方法を提供しています。

* Hookを利用して、独自のアドオンを作成する。
* デフォルトのテーマを直接変更する代わりに、テーマを複製し、その複製を編集する。

## アドオンとHookを使用する

機能を追加または変更する必要がある場合は、別のアドオンとして作成します。独自のアドオンを作成する場合、Hookを使用して、コアファイルのコードを間接的に追加または変更できます。このアプローチの利点は次のとおりです。

* アドオンのすべてのファイルは、アドオン名のフォルダに個別に保存されます。個別ファイルのみを変更しているため、自身が行った変更を簡単に把握できます。
* アドオンを無効または有効にするだけで、変更を元に戻したり追加したりできます。これは、別のアドオンまたはアップグレードと変更が競合する可能性があると疑われる場合に役立ちます。

## 複製したテーマを編集してください

ストアのデザインを変更する場合でも、デフォルトの「レスポンシブテーマ」は変更せずに、代わりに、別のテーマを作成してください。最も簡単な方法は、現在のアクティブなテーマを複製することです。これは管理画面で直接行うことができます。

* \[ デザイン]→\[テーマ]に移動します。
* 右上隅の歯車ボタンをクリックします。
* 複製したテーマを選択します。

画像

CS-Cart 4.4.1以降、複製したテーマには`manifest.json`ファイル、ロゴ、およびデフォルトスタイルのみが含まれています。残りのデータはmanifest.jsonの中の parent\_theme：で指定されたテーマから自動的に反映されます。

* CSS、メディア、およびテンプレートのフォルダーは実行時、複製したテーマと親テーマに統合されます。
* 複製したテーマにないファイルは、親テーマから取得されます。
* 複製したテーマの専用ファイルは考慮されます。
* 両方のテーマにファイルが存在する場合、複製したテーマのファイルが優先されます。
* テーマのレイアウトとスタイルのフォルダーは併合されません。複製したテーマにレイアウトまたはスタイルがある場合は、それらが使用されます。それ以外の場合、レイアウトとスタイルは親テーマから継承されます。

変更を行う際は、対応するファイルを親テーマから複製したテーマにコピーし、そのファイルを編集してください。

画像
