2013年9月26日
Zen Cartハイエンド版のモジュール:product_csvで商品データの一括インポート・一括エクスポートをする
Zen Cartで商品の一括インポートやエクスポートをする際には Easypopulate というモジュールを利用する方法が一般的です。
Easypopulate の弱点として、一括インポート登録時に Easypopulate の形式に合うように整形してからアップロードする必要がある、という点が挙げられます。商品重量など「うちのショップには必要ないけれど...」と思いつつ空欄の列を用意することになるわけです。
商品データの管理をZen Cart内で完結している場合はよいですが、別のシステムなどから抽出した商品データをZen Cartへインポートする際に Easypopulate 形式に合わせる必要がある、というのはやや手間に感じることが多いものです。
Zen Cartハイエンド版のモジュール「product_csv」では、このインポート・エクスポートの形式の指定ができます。
▲「商品マスタ」の現在設定されているフォーマットの一覧
(※図版はクリックで拡大します)
商品CSVのタイプ
product_csvで インポート・エクスポートができるタイプとしては、Easypopulate と同じく「商品マスタ」「カテゴリマスタ」「オプションマスタ」の3種類があります。
- 商品マスタ ...商品データの定義
- カテゴリマスタ ...カテゴリの定義、およびカテゴリと商品の紐付け
- オプションマスタ ...オプションの定義、および商品との紐付け
「商品マスタ」タイプのインポート・エクスポート形式を複数用意することもできます。例えば、「在庫同期用」として 「商品型番,在庫,表示非表示フラグ」だけのCSV形式 をインポート・エクスポートしたい、といった使い方も可能です。
インポート・エクスポートする時は、タイプを指定して該当CSVのダウンロード・アップロードをします。
▲商品CSVのダウンロードを「在庫同期用」にした状態
(※図版はクリックで拡大します)
定義方法
「在庫同期用」として「商品型番,在庫,表示非表示フラグ」だけのCSV形式をあらかじめ作っておいたけど、これに対して 価格も変更できるようにしたい とします。そのような場合は、「在庫同期用」のCSV定義を変更することで対応できます。
- ステップ1:まずは先程の「商品CSVのダウンロード」からCSVをダウンロードしてきます。
↓このような形式になっているので 商品タイプ,在庫数,型番,表示非表示フラグ,無視 ↓このように型番の後ろに「価格」を追加してみました 商品タイプ,在庫数,型番,価格,表示非表示フラグ,無視
- ステップ2:商品CSVの定義から上記のCSVをアップロードします。
↓すると下記のようにアップしたCSV形式と、Zen Cartハイエンドの商品データとの紐付けができるようになります。
▲第4カラムの価格のプルダウンを「価格」に変更、第5・第6カラムも変更して【更新】ボタンクリック。
(※図版はクリックで拡大します)
これで、商品エクスポートの際に「在庫同期用」を指定してダウンロードしてみると、ちゃんと価格がダウンロードできるようになっています。また、同様にインポートも可能になります。
商品データのカスタマイズをproduct_csvに反映させるには
ちょっと複雑な要件の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がプルダウンから選択できるようになった。
(※図版はクリックで拡大します)
カテゴリー: Zen Cart(オンラインショップ構築)
タグ: addon_modules , オンラインショップ , ECサイト , Zen Cart , ZHE
Zen Cart ハイエンド版 のブログ記事をもっと見る
- Zen Cart:Google Chrome SameSite Cookie対応について
- Zen Cartハイエンド版の機能拡張:退会機能
- Zen Cartハイエンド版のモジュール:かんたん顧客管理機能でより詳細な絞り込みを
- Zen Cartハイエンド版のモジュール:point_basedeでポイント管理を行う
- Zen Cartハイエンド版のモジュール:social_buttonsによりコンテンツを共有する
- Zen Cartハイエンド版のモジュール:am_ajax_addressで郵便番号による住所自動入力をサポート
- Zen Cartハイエンド版のモジュール:product_csvで商品データの一括インポート・一括エクスポートをする
- Zen Cartハイエンド版のモジュール:email_templateで会員登録や注文時のメールの内容を変更する
- Zen Cartハイエンド版のモジュール:easy_adminで管理画面のメニューを自由にカスタマイズする
- Zen Cartハイエンド版の特徴(2):addon_modulesで画面ブロックの柔軟なレイアウトを
- Zen Cartハイエンド版の特徴(1):addon_modulesによる機能追加
- Zen Cart ハイエンド版:連載スタートにあたって(ポイント制, ゲスト購入, スマートフォン対応...)
Zen Cart ハイエンド版 のデモサイトを見る
« 前の記事:NGO、NPOや震災被災企業・団体の方へ:弊社MTプラグインがすべて「無償」になりました
» 次の記事:【重要なお知らせ】MTプラグインA-Form・A-Member・A-Reserveの脆弱性について(2013年10月11日 三版)
アークウェブの本
Zen Cartによるオンラインショップ構築・運用テクニック―オープンソース徹底活用
内容充実のZen Cart公式本(v1.3対応)がついに発表です。アークウェブのスタッフをはじめZen-Cart.JPの中心メンバーが共著で執筆しました。続きを読む
新着はてブ
カテゴリー
- Shopify(ショピファイ)オンラインショップ構築
- NGO・NPO向け情報
- スマートフォン
- だれもが使えるウェブコンクール
- mixiアプリ
- OpenSocial (システム開発)
- アークウェブのCSR
- A-Form, A-Member, A-Reserve(MTプラグイン)
- Ruby on Rails(システム開発)
- necoったー
- Miqqle
- WebSig24/7
- ecoったー
- ビッグイシュー(The Big Issue)
- CSR(企業の社会的責任)
- マッシュアップ
- RIA (システム開発)
- セキュリティ(システム開発)
- 唐松(アクセス解析)
- Ajax (システム開発)
- テスト(システム開発)
- データベース
- PukiWiki
- Web 2.0
- SEO・サーチエンジン最適化
- XP・アジャイル(システム開発)
- Web・ITニュースクリップ
- Webアクセシビリティ
- Webデザイン
- SEM・サーチエンジン広告
- Webユーザビリティ
- CMS・MovableType
- Zen Cart(オンラインショップ構築)
- Snippy(SNS・ソーシャルブックマーク)
- アークウェブ
- オープンソース
- CMS(コンテンツマネジメント・システム)
- Webマーケティング
- AMP
- SNS