商品登録CSVで EC-Cube 2.13.1 EC-CUBE 商品規格一括 登録 Eccube 2.12.6
商品登録CSVでEC-Cube 2.13.1で EC-CUBE 商品規格一括 登録
EC-Cube 2.13.1で EC-CUBE 商品規格一括 登録下記は、EC-CUBEを新規インストールした状態での説明になります。
1、dtb_csvの下記を変更 >>no=3 parent_classcategory_id → classcategory_id1 親規格分類ID → 規格分類ID1 >>no=4 classcategory_id → classcategory_id2 規格分類ID → 規格分類ID2
2、data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php の lfCheckErrorDetail() {…} に下記を追加する。
===▼追加=== // 規格分類ID1の存在チェック if (!$this->lfIsDbRecordMulti('dtb_classcategory', 'classcategory_id', 'classcategory_id1', $item, ',')) { $arrErr['classcategory_id1'] = '※ 指定の規格分類ID1は、登録されていません。'; } // 規格分類ID2の存在チェック if (!$this->lfIsDbRecordMulti('dtb_classcategory', 'classcategory_id', 'classcategory_id2', $item, ',')) { $arrErr['classcategory_id2'] = '※ 指定の規格分類ID2は、登録されていません。'; } // 商品ID、規格分類ID1、規格分類ID2の組合せチェック if ($item['product_class_id'] == '') { if ($this->objDb->sfIsRecord('dtb_products_class', 'product_id, classcategory_id1, classcategory_id2' , array($item['product_id'], $item['classcategory_id1'], $item['classcategory_id2'])) ) { $arrErr['classcategory_id'] = '※ 指定の商品ID、規格分類ID1、規格分類ID2の組合せは既に登録されています。'; } } ===▲追加===
3、管理画面で規格分類IDが確認できるように、data/Smarty/templates/admin/products/classcategory.tpl を変更 <!–{ 規格名 }–><!–{$arrClassCat[cnt].name|h}–> ↓ <!–{ 規格分類ID }–><!–{$arrClassCat[cnt].classcategory_id|h}–>: <!–{ 規格名 }–><!–{$arrClassCat[cnt].name|h}–>
4、テーブルを空にする DELETE FROM dtb_category_count; DELETE FROM dtb_category_total_count; DELETE FROM dtb_product_categories; DELETE FROM dtb_product_status; DELETE FROM dtb_products; DELETE FROM dtb_products_class; DELETE FROM dtb_recommend_products; SELECT SETVAL (‘dtb_products_class_product_class_id_seq’, ‘1’, false); SELECT SETVAL (‘dtb_products_product_id_seq’, ‘1’, false);
5、商品管理>カテゴリ登録でカテゴリを登録 テストはデフォルトのまま実施
6、商品管理>規格管理で規格を登録 テストはデフォルトのまま実施 注)dtb_classcategory の classcategory_id =0 は削除しない。
7、商品管理>商品マスターのCSVダウンロードを実施 データが空のファイルが作成される。
8、ダウンロードしたファイルに商品データを登録 ※下記必須。 商品ID: 規格違いの商品は同じにする。 商品規格ID: 新規登録(空)、更新時は必須 規格分類ID1: 規格無の時は「0」 規格分類ID2: 規格無の時は「0」 商品名: 規格違いの商品は同じにする。 表示ステータス(公開・非公開): 規格違いの商品は同じにする。(1 or 2) 一覧-メインコメント: 規格違いの商品は同じにする。 詳細-メインコメント: 規格違いの商品は同じにする。 削除フラグ: 規格毎に指定。(0 or 1) 販売価格: 規格毎に指定。 カテゴリID: 規格違いの商品は同じにする。
【規格無しの場合】 規格分類ID1: 0 規格分類ID2: 0 削除フラグ: 0
【規格有りの場合】 規格分類ID1: 0 規格分類ID2: 0 削除フラグ: 1 と、規格の組み合せ。(無い組み合せは登録しなくてもいいが、商品管理>商品登録(商品規格)で更新すると登録されます。) (組み合せ1)バニラ × S 規格分類ID1: 1 規格分類ID2: 6 削除フラグ: 0 (組み合せ2)バニラ × M 規格分類ID1: 1 規格分類ID2: 5 削除フラグ: 0 (組み合せ3)バニラ × L 規格分類ID1: 1 規格分類ID2: 4 削除フラグ: 0 ...
上の方法でEccube2.12.6成功。在庫連動型受注キャンセルプラグインを無料でダウンロードして、一緒に在庫楽に管理でき。
[EC-CUBE] 2.13 商品登録CSVで規格も新規登録する
phpMyAdmin等で、データベースにアクセスし「dtb_csv」の下記を変更
no=3 parent_classcategory_id → classcategory_id1 親規格分類ID → 規格分類ID1 no=4 classcategory_id → classcategory_id2 規格分類ID → 規格分類ID2
上記の変更は手動で変更するよりSQLを実行すると早かったです
1 2 | UPDATE dtb_csv SET col = "classcategory_id1", disp_name = "規格分類ID1" WHERE no = 3; UPDATE dtb_csv SET col = "classcategory_id2", disp_name = "規格分類ID2" WHERE no = 4; |
data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_UploadCSV_Ex.phpに追記(EC-CUBE本体)
(1)data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php のlfCheckErrorDetail() {~}を コピーして LC_Page_Admin_Products_UploadCSV_Ex.phpの{~}の最後に追記します。1 2 3 4 | class LC_Page_Admin_Products_UploadCSV_Ex extends LC_Page_Admin_Products_UploadCSV { ~ (ココに追記) } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // 規格分類ID1の存在チェック if (!$this->lfIsDbRecordMulti('dtb_classcategory', 'classcategory_id', 'classcategory_id1', $item, ',')) { $arrErr['classcategory_id1'] = '※ 指定の規格分類ID1は、登録されていません。'; } // 規格分類ID2の存在チェック if (!$this->lfIsDbRecordMulti('dtb_classcategory', 'classcategory_id', 'classcategory_id2', $item, ',')) { $arrErr['classcategory_id2'] = '※ 指定の規格分類ID2は、登録されていません。'; } // 商品ID、規格分類ID1、規格分類ID2の組合せチェック if ($item['product_class_id'] == '') { if ($this->objDb->sfIsRecord('dtb_products_class', 'product_id, classcategory_id1, classcategory_id2' , array($item['product_id'], $item['classcategory_id1'], $item['classcategory_id2'])) ) { $arrErr['classcategory_id'] = '※ 指定の商品ID、規格分類ID1、規格分類ID2の組合せは既に登録されています。'; } } |
1 2 3 4 | public function lfCheckErrorDetail($item, $arrErr) { ~ (ココに追記) } |
data/Smarty/templates/admin/products/classcategory.tpl 修正(EC-CUBE本体)
管理画面で規格分類IDが確認できるように、規格名を表示する部分の前にIDを表示するよう変更する。1 | <!--{* 規格分類ID *}--><!--{$arrClassCat[cnt].classcategory_id|h}-->: <!--{* 規格名 *}--><!--{$arrClassCat[cnt].name|h}--> |
下記のテーブルを修正(データベース)
- dtb_productsを空に
- dtb_products_classを空に
- dtb_product_categoriesを空に
- dtb_product_statusを空に
- dtb_products_class_product_class_id_seqを開いて「sequence」の値を「1」に
- dtb_products_product_id_seqを開いて「sequence」の値を「1」に
SQLを実行する方が早かったです(上記の変更)
1 2 3 4 5 6 7 8 | DELETE FROM dtb_products; DELETE FROM dtb_products_class; UPDATE dtb_products_class_product_class_id_seq SET sequence = 0; ALTER TABLE dtb_products_class_product_class_id_seq AUTO_INCREMENT = 1; UPDATE dtb_products_product_id_seq SET sequence = 0; ALTER TABLE dtb_products_product_id_seq AUTO_INCREMENT = 1; DELETE FROM dtb_product_categories; DELETE FROM dtb_product_status; |
あとは、管理画面からカテゴリー登録と規格登録をして準備Okです。(管理画面)
- 管理画面の商品カテゴリーでカテゴリを登録
- 管理画面の規格管理で規格を登録
- 商品マスターで [CSVダウンロード] して、データが空のファイルをダウンロード
- ダウンロードしたCSVファイルに、下記表を参考に商品データを登録
- 商品登録CSVで作成したCSVファイルをアップロード
必須項目一覧 | |
---|---|
商品ID | 規格違いの商品は同じに |
商品規格ID | 新規登録(空)、更新時は必須 |
規格分類ID1 | 規格なしの時は「0」 |
規格分類ID2 | 規格なしの時は「0」 |
商品名 | 規格違いの商品は同じに |
表示ステータス(公開・非公開) | 規格違いの商品は同じに(1 or 2) |
一覧-メインコメント | 規格違いの商品は同じに |
詳細-メインコメント | 規格違いの商品は同じに |
削除フラグ | 規格毎に指定/(1 or 0) |
販売価格 | 規格毎に指定 |
カテゴリID | 規格違いの商品は同じにする。 ダブルクオーテーションで括れば複数指定可 |