EC CUBE3系も同様なので、商品登録csvの「規格分類1(ID)」セルにカンマ区切りで規格分類IDを入力すると登録できる仕様にしてみましょう。
※「規格分類2(ID)」には手を加えないので、「規格分類1(ID)」を使用する場合のみのカスタマイズになります。
※規格を複数登録する際、商品コード、値段はcsvに入力した値になります。規格毎に商品コードや値段を別々にしたい場合は考慮してませんのであしからず。
では、カスタマイズしていきましょう。カスタマイズ自体はほんの数行加えるだけです。
下記、csv登録のコントローラーを開きます。
/src/Eccube/Controller/Admin/Product/CsvImportController.php
174行目付近
// 商品規格が存在しなければ新規登録 $ProductClasses = $Product->getProductClasses(); if ($ProductClasses->count() < 1) { // 規格分類1(ID)がセットされていると規格なし商品、規格あり商品を作成 $ProductClassOrg = $this->createProductClass($row, $Product, $app, $data);
を下記の様に追加します。
// 商品規格が存在しなければ新規登録 $ProductClasses = $Product->getProductClasses(); if ($ProductClasses->count() < 1) { //複数規格登録の追加 $classcategory_id1 = $row['規格分類1(ID)']; $c_list = explode(",",$classcategory_id1); foreach ($c_list as $row['規格分類1(ID)']) { // 規格分類1(ID)がセットされていると規格なし商品、規格あり商品を作成 $ProductClassOrg = $this->createProductClass($row, $Product, $app, $data);
233行目付近
} else { if ($row['規格分類2(ID)'] != '') { $this->addErrors(($data->key() + 1) . '行目の規格分類1(ID)が存在しません。'); } }を下記の様に最後に「}」追加します。
} else { if ($row['規格分類2(ID)'] != '') { $this->addErrors(($data->key() + 1) . '行目の規格分類1(ID)が存在しません。'); } } }
内容としては、規格分類1(ID)の中身を「,」で分割し、分割した分だけ規格の登録を行っています。
これで、csvで複数の規格が一回で登録可能になります。
0 コメント:
コメントを投稿