「商品インポート」アドオンは、CS-Cartのインポートを便利にしてくれるアドオンです。
商品インポートの各種設定を保存することで、同様の構造のファイルをインポートできるようになります。
古いインポートの課題
CS-Cart に元から用意されていたインポートには以下の問題がありましたが、「商品インポート」アドオンを利用することで、解消が可能です。
問題:サプライヤーから提供されたファイルのフィールド名が、CS-Cart のフィールド名とは異なる場合、ファイル毎にフィールド名を変更する必要がありました。
解決策:商品インポートを使用すると、インポートしたファイルのフィールド名を、CS-Cartの商品プロパティ名と一致させることができます。これにより、サプライヤーから受け取るすべての新しいインポートファイルのフィールド名を変更する必要がなくなります。
問題:インポートされたファイルを調整する必要がある場合がありました。たとえば、サプライヤーよりも高い価格で商品を販売する場合、サプライヤーの価格を一定の割合で引き上げる必要がありますが、以前はインポートしたファイルを編集する必要がありました。
解決策:商品インポートでは、関数(sumやsub、mul、div等)を使用できますので、価格の変更も簡単に行えます。
問題:一部のサプライヤーは、CSVファイルの代わりにXMLファイルを提供していますが、CS-Cart は、以前のバージョンではCSVファイルのみをサポートしていました。
解決策:商品インポートは、XMLファイルとCSVファイルの両方をサポートします。
問題:サプライヤーから提供されたCSVファイルには、同じ名前の複数のフィールドが含まれている可能性があります。その場合、フィールドのデータは正しくインポートされず、ファイルを編集する必要がありました。
解決策:商品インポートを使用すると、CS-Cart の商品プロパティをこれらの繰り返しフィールド(またはXMLノード)のそれぞれに割り当てることができます。これにより、1商品につき複数の画像をインポートすることができます。
問題:サプライヤーはインポートされたファイルを定期的に提供してきますが、特定の時間間隔でインポートを自動的に実行することができませんでした。
解決策:インポートプリセットを作成すると、cronジョブにコマンドを追加することでインポートを自動化できるようになります。インポートを実行するためのコマンドは、「ファイル」タブに表示されます。
「商品インポート」アドオンでのインポート
商品のインポートを行うには、管理画面の上部メニューから「一般設定 > インポート >商品[[アドオン]」をクリックして行います。
ファイル

最初は、新たなインポートプリセットを追加することが必要です。
インポートプリセットを追加するには、「 商品インポートの追加」の「ファイル」タブで、基本設定を行います。
基本設定
- ファイル:登録するファイルの場所
- ローカル
- サーバ
- URL
- 名前:必須項目:インポートプリセットの名前。ファイルを選択した場合には、ファイル名が自動で入ります。
- 画像用ディレクトリ:画像保存用のディレクトリ。
インポートするファイル(CSVまたはXML形式)を選択し、プリセットの名前を入力します(後で他のプリセットの中から見つけるために使用します)。
XMLファイルをアップロードする場合は、フィールドに同じ名前のXMLターゲットノードも指定する必要があります。
XMLファイルの構造は複雑ですが、すべての情報をインポートする必要はありません。
XML例
<?xml version="1.0"?>
<data>
<address>NY, Green Street</address>
<working_hours>9 am - 5 pm</working_hours>
<products>
<product>
<sku>D00014MK1P</sku>
<item>65" Class (64.5" Diag.) LED 8000 Series Smart TV</item>
<in_stock>Yes</in_stock>
<price>500</price>
</product>
<product>
<sku>K01502P8VF</sku>
<item>Wildwood City Classic</item>
<in_stock>Yes</in_stock>
<price>300</price>
</product>
</products>
</data>
上の例では、正しい値のXMLターゲットノードは、data/products/product
で、1つの商品に関する情報を含むXMLノードへのフルパスです。
設定ができたら、右上の「登録」ボタンをクリックして登録を完了します。

インポートプリセットを作成すると、「ファイル」タブcronジョブにコマンドを追加することでインポートを自動化できるようになります。インポートを実行するためのコマンドは、「ファイル」タブに表示されます。
フィールドマッピング
「フィールドマッピング」タブに切り替えます。
フィールドマッピングでは、インポートされたファイルをCS-Cartにどのようにインポートするかを設定します。

- インポートされたファイルのフィールドやXMLノードを、CS-Cartの対応する商品プロパティと一致させます。
- インポートされたデータの例をチェックして、正しいかどうか、インポートされたデータが対応する商品プロパティのフィールド形式に従っていることを確認してください。
- 必要に応じて、関数を追加します。関数は、インポートされたデータを変更するのに役立つもので、「関数一覧」ボタンで用意されている関数とその使用方法を確認できます。
関数の使用例
- 2つのサプライヤーから商品をインポートする場合。
各サプライヤーは、商品ごとに内部で一意のSKU(CS-CartのCODEフィールド)を使用しますが、サプライヤーのいくつかのSKUは重複しています。
また、各サプライヤーは、同じSKUを持つ異なる商品を持っていますが、商品ごとに一意のSKUが必要です。
この場合、サプライヤーごとに異なるインポートプリセットを作成できます。
例えば、サプライヤー1から商品をインポートするときにconcat(SPLR1-, $value)
という関数を追加すると、そのサプライヤのすべてのSKUにSPLR1というプレフィックスが付き、SKUは一意になります。
これは、これらの商品がまだECサイトに登録されていない場合にのみ機能します。そうでない場合には、古い商品は古いSKUのままになり、インポートされた商品のみ新しい商品として作成されます。
- サプライヤーが在庫のある商品の数を提供しない場合。
このファイルには、商品が入手可能な場合は「はい」が含まれ、それ以外の場合は「いいえ」が含まれます。ただし、 CS-Cart では、商品の数量として番号を指定する必要があります。
この場合、フィールドの可用性をcase($value=Yes, 100, $value=No, 0)
という関数で判断して数量を追加できます。
フィールドに「はい」がある場合、CS-Cartは100個のアイテムが在庫にあると想定し、「いいえ」はアイテムを0個を意味します。 - サプライヤーからの商品を10%高い価格で販売しているが、サプライヤーがファイルに価格を記載している場合
この場合、価格のあるフィールドにmul($value, 1.1)
という関数を追加して、インポートされたファイル内のすべての価格を自動的に10%増やすことができます。
フィールドマッピングと関数を設定したら、右上の「保存」ボタンをクリックします。
すべてが適切に実行できたら、インポートされた値が変更されたことがわかります。
基本設定
「基本設定」タブに切り替えます。
基本設定

基本設定には、インポート動作に関連する設定が含まれています。
- テストインポートを実行:ファイルから最初の5つの商品のみをインポートする場合は、この設定を有効にします。これにより、データが正しく構成されているかどうかを確認できます。何か問題が発生した場合に5つの商品を削除や修正する方が、全件インポートをした後に500の商品を処理するよりも簡単です。
- インポート方法:すべての商品をインポートするか、一部の商品のみをインポートするかを選択します。
- 全ての商品をファイルからインポート:新しい商品が作成されますが、商品がすでに存在する場合(存在は商品コードによって決定されます)には更新が行われます。この方法は、商品インポートの標準的な動作です。
- 既存の商品のみ更新:ECサイトに存在しない商品はスキップし、すでに存在する商品のみが更新されます。この方法は、サプライヤーがすべての商品を含むファイルを提供しているが、販売は一部のみとなっている場合に便利です。これにより、インポート後に不要な商品がECサイトに表示されることはありません。
- 新しい商品のみ作成:ECサイトにすでに存在する商品はスキップし、ECサイトに存在しない商品のみがインポートされます。この方法は、インポート後に一部の商品情報(説明、商品名など)を変更する場合に便利です。これにより、そのサプライヤーからデータを再度インポートする必要がある場合でも、変更が失われることはありません。
他のデータを変更せず、既存商品の数量のみを更新する必要がある場合には、別のプリセットを作成し、必要なフィールド(商品コードと数量)のみを用意します。
用意されていないフィールドは無視されます。
- 在庫数をリセット:インポート中にECサイトのすべての商品の数量を0に設定する場合は、この設定を有効にします。インポートされたファイルで数量が指定されている商品のみが、異なる数量になります。
追加設定
追加設定は、デフォルトで非表示になっています。

- インポート前に既存の商品ファイルを削除:この設定を有効にして、ダウンロード可能な商品をインポートすると、既存のファイルが削除されます。設定が無効になっている場合、ダウンロード可能な商品のファイルをインポートしても、既存のファイルは置き換えられず、追加が行われます。
- 既存の追加画像を削除:この設定を有効にすると、商品のすべての追加画像が、インポートされたファイルで指定された画像に置き換えられます。設定が無効になっている場合、商品の追加画像をインポートしても、既存の追加画像は置き換えられず、新しい画像が追加されます。
- 既存画像の削除:この設定を有効にすると、インポートされた商品の既存の添付ファイルは、インポートされたファイルで指定された添付ファイルに置き換えられます。添付ファイルが指定されていない場合、古い添付ファイルは残ります。設定を無効にすると、新しい添付ファイルが追加されます。
全ての設定が完了したら、右上にある「インポート」をクリックします。
設定が適切に行われていて、インポートされたファイルのデータが正しい場合、商品がインポートされます。
インポート完了後、管理画面の上部メニューから「商品 > 商品」をクリックし、最新アップデートを使用して、過去1時間以内に更新されたすべての商品を表示(または「詳細検索」で検索をします)して、更新された商品を確認します。