Zen Cartで商品の一括インポートやエクスポートをする際には Easypopulate というモジュールを利用する方法が一般的です。
Easypopulate の弱点として、一括インポート登録時に Easypopulate の形式に合うように整形してからアップロードする必要がある、という点が挙げられます。商品重量など「うちのショップには必要ないけれど...」と思いつつ空欄の列を用意することになるわけです。
商品データの管理をZen Cart内で完結している場合はよいですが、別のシステムなどから抽出した商品データをZen Cartへインポートする際に Easypopulate 形式に合わせる必要がある、というのはやや手間に感じることが多いものです。
Zen Cartハイエンド版のモジュール「product_csv」では、このインポート・エクスポートの形式の指定ができます。
▲「商品マスタ」の現在設定されているフォーマットの一覧
(※図版はクリックで拡大します)
product_csvで インポート・エクスポートができるタイプとしては、Easypopulate と同じく「商品マスタ」「カテゴリマスタ」「オプションマスタ」の3種類があります。
「商品マスタ」タイプのインポート・エクスポート形式を複数用意することもできます。例えば、「在庫同期用」として 「商品型番,在庫,表示非表示フラグ」だけのCSV形式 をインポート・エクスポートしたい、といった使い方も可能です。
インポート・エクスポートする時は、タイプを指定して該当CSVのダウンロード・アップロードをします。
▲商品CSVのダウンロードを「在庫同期用」にした状態
(※図版はクリックで拡大します)
「在庫同期用」として「商品型番,在庫,表示非表示フラグ」だけのCSV形式をあらかじめ作っておいたけど、これに対して 価格も変更できるようにしたい とします。そのような場合は、「在庫同期用」のCSV定義を変更することで対応できます。
↓このような形式になっているので 商品タイプ,在庫数,型番,表示非表示フラグ,無視 ↓このように型番の後ろに「価格」を追加してみました 商品タイプ,在庫数,型番,価格,表示非表示フラグ,無視
▲第4カラムの価格のプルダウンを「価格」に変更、第5・第6カラムも変更して【更新】ボタンクリック。
(※図版はクリックで拡大します)
これで、商品エクスポートの際に「在庫同期用」を指定してダウンロードしてみると、ちゃんと価格がダウンロードできるようになっています。また、同様にインポートも可能になります。
ちょっと複雑な要件のECサイトでは、Zen Cartの商品カラムにはない項目を追加する場合があります。
例えば、 書籍販売サイトで、商品の「ISBN」を、productsテーブルに「products_isbn」として追加したとします。
上記の定義方法のステップ1、ステップ2のやり方で、ISBNを追加したCSVをアップロードしてもプルダウンには「ISBN」という項目がありません。
このプルダウンを管理している設定ファイルにISBNを追加する必要があります。
includes/addon_modules/product_csv/languages/japanese.php より、
$GLOBALS['MODULE_PRODUCT_CSV_COLUMNS'] = array(
array('type_id'=>'1',
'column_id'=>'1001',
'name'=>'商品タイプ',
'validate'=>'validateProductTypeExists',
'dbtable'=>'product_types',
'dbcolumn'=>'type_handler'),
array('type_id'=>'1',
'column_id'=>'1002',
'name'=>'在庫数',
'validate'=>'validateIsSignedFloat',
'dbtable'=>'products',
'dbcolumn'=>'products_quantity'),
:(略)
array('type_id'=>'1', // ←タイプ
'column_id'=>'1025', // ←カラムID(他と被らないこと)
'name'=>'ISBN', // ←インポート・エクスポート時の表示名
'validate'=>'validateIsSignedInt', // ←インポート時の入力チェック
'dbtable'=>'products', // ←テーブル名
'dbcolumn'=>'products_isbn'), // ←カラム名
※記述後に追加モジュールの管理からproduct_csvの再インストールが必要です。
これにより、商品カラムに追加したISBNもプルダウンから選択してインポート・エクスポートできるようになります。
▲ISBNがプルダウンから選択できるようになった。
(※図版はクリックで拡大します)