テキストファイルから商品をインポートする
手動で商品を追加するのは、ストアに商品が数点しかない場合は許容できます。しかし、数百、あるいは数千の商品がある場合はどうなるでしょうか?この方法は時間がかかり、大規模なストアにはあまり効率的ではありません。10,000 の商品があり、1 つの商品を挿入するのに約 5 分かかるとすると、プロセスを完了するのに約 5 か月の労働月がかかることになります。また、遅いインターネット接続やコマンドエラーなどの問題にも直面するでしょう。だからこそ、最善の解決策はテキストファイルから商品をインポートすることです。3 つのファイルタイプから商品をインポートできます:カンマ区切り値、セミコロン区切り値、タブ区切り値です。カンマ区切り値ファイル(CSV)は、テーブルやリストの内容を保存します。CSV ファイル形式は、テーブルの行を、フィールドをカンマで区切ったテキスト行として表します。例えば、次のテーブルがあるとします:

これがこのテーブルの CSV 表現です:
"Name","Category","SKU","Price"
"iPod Nano","iPods",100001,"199.99"
"iPod Classic","iPods",100002,"249.99"
"iPod Shuffle","iPods",100003,"79.99"
SSV ファイルはカンマの代わりにセミコロンを使い、TSV(Tab Separated Values)はタブ文字を使います。この例では CSV ファイルを使いますが、プロセスは他のファイルタイプでも同じです。
CSV ファイルを Ubercart にインポートする前に、まず Node import モジュールをインストールする必要があります。方法は次のとおりです:
1. http://drupal.org/project/node_import にアクセスし、Node import モジュールをダウンロードします。Drupal 6.x 用の最新バージョンを選びます。また、Node import が依存するモジュール――Date と Advanced help――もダウンロードする必要があります。Date API モジュールを http://drupal.org/project/date から、Advanced help を http://drupal.org/project/advanced_help からダウンロードします。
2. これらのファイルを展開し、sites/all/modules フォルダーにコピーします。
3. modules ページに移動し、Date、Advanced help、Node import を有効にします。
4. コンテンツインポートページは Administer | Content management | Import content で利用できます。

このページには 3 つのタブがあります:
- List は、作成されたすべてのインポートとアップロードされたファイルを表示します。まだ何も作成していないので、リストは空です。
- New import はインポートウィザードを開きます。これについてはすぐに戻ります。
- Settings は設定ページを開きます。
インポートを開始する前に、Settings をクリックして設定ページを表示します。

- Import directory:FTP またはインポートウィザードを使って CSV ファイルをアップロードできる場所。
- FTP 経由でファイルをアップロードしたい場合は、Allow FTP uploads をチェックします。
- セキュリティのため、FTP アップロードを許可する場合は、次のフィールドで owner ファイルも設定します。そうしないと、アップロードされたファイルが匿名ユーザーを含む誰にでもアクセス可能になります。
- Allowed extensions は、許可されるファイルタイプを定義します。それ以外はすべて無視されます。
あなたのストアでは何も変更する必要はないので、Save configuration をクリックして前のページに戻ります。インポートウィザードを探る前に、CSV ファイルとインポートに必要な正しい構造を詳しく見ていきましょう。
CSV ファイルを作成する最も簡単な方法は、Microsoft Excel や OpenOffice などの表計算エディターを使うことです。これらのアプリはデフォルト形式でファイルを保存しますが、簡単に CSV としてエクスポートできます。スプレッドシートにデータを入力するのは、Ubercart で直接作業するよりもはるかに速いです。もちろん、最大の利点は、すでに別のアプリケーションにデータベースがある場合、それを CSV に変換して Ubercart にインポートできることです。
スプレッドシートでは、各行が商品を表し、各列が商品プロパティを表します。新しい商品をどう作成したか覚えていますか?そのフォームの各フィールドごとに個別の列が必要です。ストアではすべてのフィールドが必要なわけではないので、最も重要なものだけを使います。例えば、私はこのテーブルを作成しました:

テーブルを CSV 形式で保存します。

テーブルには 6 つの列があります:SKU、name、description、category、price、images。あなたのアプリで同様の構造を作成し、ファイルを CSV として保存できます。最後のステップは、商品画像をサーバーにアップロードすることです。FTP アプリを使って、すべてのファイルを sites/default/files にアップロードします。テーブルでわかるように、これらの画像を他と区別するために import という名前の新しいフォルダーを使います。デフォルトでは、画像は sites/default/files のルートに入ります。files 内の products フォルダーに画像を追加する場合は、image path 列を変更して接頭辞 /products/036.jpg を使います。
CSV ファイルが保存され画像がアップロードされたら、Ubercart に戻って New import をクリックして開始します。

導入ページには、この手順に関する情報が表示され、メインボタンが表示されます。ざっと読んで Next をクリックします。
1. 最初のページで、サイトにインポートしたいコンテンツタイプを選びます。Product を選んで Next をクリックします。

2. 2 番目のページで、CSV ファイルを選択してアップロードする必要があります。ファイルをアップロードしていれば、リストに表示されます。使いたいファイルを選択します。新しいファイルをアップロードするには、Browse をクリックし、ファイルを選択してアップロードします。アップロードして選択したら、Next をクリックします。

3. 3 番目のページでは、基本的なファイル設定を行えます。まず、最初の行に列名が含まれているかどうかを選びます。この場合は含まれているので、チェックしたままにします。次に、ファイル形式を選択します――CSV を作ったので、何も変更する必要はありません。下部には、最初の 4 行のサンプルデータが表示されます。
Microsoft Excel は通常セミコロンで CSV を保存し、OpenOffice はカンマを使います。
Next をクリックします。
次のようなエラーが表示されることがあります:
Fatal error: Call to undefined function uc_product_node_is_product() in uc_product.inc on line 15
その場合は、Ubercart フォーラムで解決策を確認してください:
http://www.ubercart.org/forum/bug_reports/12843/csv_import_step_3
node_import\supported\ubercart\uc_product.inc の 15 行目で:
次を
uc_product_node_is_product($node_type)
次に置き換えます
uc_product_is_product($node_type)

4. 4 番目のページで、ファイルの列を商品フィールドにマッチさせます。推奨されるヘッダーを使った場合、インポートモジュールがフィールドを自動的にマッチさせるはずです。それでも、100% の正確さを確認するために各項目をチェックしてください。何かおかしければ、ドロップダウンから別の列を選択します。準備ができたら、下にスクロールして Next をクリックします。

5. 5 番目のページでは、いくつかの詳細オプションを設定できます。変更せずにおいて構いません。Next をクリックします。

6. 6 番目のページでは、デフォルト値が表示されます。これらは、CSV にフィールドが欠けているときに使われます。商品フィールドがない場合は、デフォルト値を設定できます。Next をクリックします。

7. 7 番目のページでは、インポートバッチを確認できます。エラーがないか、クエリを慎重に検査してください。すべて問題なければ、Next をクリックします。
時々、エンコーディングの問題に直面することがあります。インポートファイルは UTF-8 エンコーディングでなければなりません。MS Excel はデフォルトで CSV ファイルを ANSI で保存します。これが文字化けを引き起こすことがあります:

すべて問題なく、問題がなければ、価格表をアップロードできます。

8. さて、8 番目のページに進みます。これはインポート前の最後のステップです。主要な設定といくつかのデータサンプルを確認できます。Start import をクリックして進みます。完了すると、インポートされた行とエラーを示すレポートが表示されます。CSV ファイルがもう必要なければ、Delete をクリックしてサーバーから削除するのが最善です。

商品のインポートが完了したので、エラーレポートを表示できます:

成功です!インポート中にエラーがよく発生しますが、心配いりません――よくあることで、多くはフォーラムで議論されています。ですから、少し Google の助けを借りれば、解決策を見つけられます。
さて、カタログへ――ほら:
