2015年8月13日木曜日

【ECCUBE3】複数の規格がある商品をcsvで登録する。

ECCUBE2系の頃から規格が複数ある商品をcsvで登録するにはカスタマイズが必要でした。
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で複数の規格が一回で登録可能になります。




Related Posts:

  • 【ECCUBE3】複数の規格がある商品をcsvで登録する。ECCUBE2系の頃から規格が複数ある商品をcsvで登録するにはカスタマイズが必要でした。 EC CUBE3系も同様なので、商品登録csvの「規格分類1(ID)」セルにカンマ区切りで規格分類IDを入力すると登録できる仕様にしてみましょう。 ※「規格分類2(ID)」には手を加えないので、「規格分類1(… Read More
  • 【ECCUBE3 プラグイン】最近購入された商品 【ECCUBE3 プラグイン】最近購入された商品 ECCUBE3の商品詳細画面に最近購入された商品を追加します。 ソースはGithubにupしています。 こちらから How to install Githubページの右下の「Download ZIP」からZIPファイルをダウンロード E… Read More
  • swift MapView PolyLine上を移動するアニメーションMapViewに描画したPolyLine上を移動するアニメーションを作りたくて試行錯誤。 アニメーションを使うというより、座標がわかっているので、ピンを座標に沿って移動していけば良いという事に辿り着く。 ずっとアニメーションで検索してたから結論になかなか辿り着けなかった。。。 stackoverf… Read More
  • 【ECCUBE3 プラグイン】新着商品 【ECCUBE3 プラグイン】新着商品 ECCUBE3のトップページに新商品を追加します。 ソースはGithubにupしています。 こちらから How to install Githubページの右下の「Download ZIP」からZIPファイルをダウンロード ECCUBE3管理画面オ… Read More
  • Gmailに来た作業依頼メールをTrelloの新規カードとして追加する。今日はTrelloの新しい発見。 Trello・・・TODOリストですね。 細かい使い方は省略して、今日はタイトル通り、特定のメールアドレスに作業依頼が来るので、Gmailに来た作業依頼メールをTrelloに新規カードとして追加する。という事をします。 Trelloボードにメンバー追加してカード… Read More

0 コメント:

コメントを投稿