質問 > その他 > すごく初歩的な事だと思うのですが。。。 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yamagata78 |
投稿日時: 2019/12/8 18:52
対応状況: −−−
|
半人前 登録日: 2019/11/25 居住地: 投稿: 29 |
すごく初歩的な事だと思うのですが。。。 ▼環境
[EC-CUBE] 新規インストール 3.0.18 [OS] Linux [PHP] 7.2.25 [データベース] MySQL 10.3.20-MariaDB [WEBサーバ] Apache [ブラウザ] IE11,クローム最新,FireFOX最新 [導入プラグインの有無] 最近チェックした商品 注文ステータス一括変更プラグイン 売上ランキング 売上集計プラグイン 新着商品ブロックプラグイン [カスタマイズの有無] csvで規格も登録 参考→http://ohtacky.blogspot.com/2015/08/eccube3csv.html 検索範囲追加 参考→http://ohtacky.blogspot.com/2016/04/eccube-3.html 現在全ての商品に規格としてオプションを設けており、オプションを選択すると商品代金に+100円上乗せされるようになっています。 オプションを規格1として扱い[なし][あり+100円]とお客様に選択してもらえるようにしております。 現在全ての商品にこのオプションを取り付けているのですが、価格が+100円される為、PHPMyAdminから使用しているDBの"dtb_product_class"へアクセスし、[検索]から[class_category_id1]が[8]であり、尚且つ[price02]がXXX円のものを抽出し、手動で[price02]列に+100円した金額を手入力していっております。 一度の入荷が100種類に及ぶこともあるのでかなり手間を取られているのですが、何かいい方法ございませんでしょうか? あまり詳しくないもので申し訳ございませんが、よいお知恵をお借りできましたら大変助かります。 宜しくご指導下さいませ。 |
468 |
投稿日時: 2019/12/9 11:43
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: すごく初歩的な事だと思うのですが。。。 CSVをインポートするカスタマイズにさらに手を加えるのが良いのではないでしょうか?
foreach ($c_list as $row['規格分類1(ID)']) { の箇所から規格分類分だけループしていると思いますので (必ず[あり+100円]のclass_category_id1は8でしょうか?) その{の下に if ($row['規格分類1(ID)'] == 8) { $row['販売価格'] += 100; } のようにclass_category_id1が8の時は販売価格に100円加算するような処理を追記すれば良いかと思います。
|
yamagata78 |
投稿日時: 2019/12/10 21:46
対応状況: −−−
|
半人前 登録日: 2019/11/25 居住地: 投稿: 29 |
Re: すごく初歩的な事だと思うのですが。。。 すみません、子どもが熱を出しており中々見れませんでした。
以下の様にすると良いのでしょうか? 【変更後】 src/Eccube/controller/Admin/Product/CsvImportController.php 213行明付近 // 商品規格が存在しなければ新規登録 // 20191128 修正 $ProductClasses = $Product->getProductClasses(); if ($ProductClasses->count() < 1) { //複数規格登録の追加 $classcategory_id1 = $row['規格分類1(ID)']; $c_list = explode(",",$classcategory_id1); foreach ($c_list as $row['規格分類1(ID)']) { if ($row['規格分類1(ID)'] == 8) { $row['販売価格'] += 100; } // 規格分類1(ID)がセットされていると規格なし商品、規格あり商品を作成 $ProductClassOrg = $this->createProductClass($row, $Product, $app, $data); if ($BaseInfo->getOptionProductDeliveryFee() == Constant::ENABLED) { if ($row['送料'] != '') { $deliveryFee = str_replace(',', '', $row['送料']); if (preg_match('/^\d+$/', $deliveryFee) && $deliveryFee >= 0) { $ProductClassOrg->setDeliveryFee($deliveryFee); } else { $this->addErrors(($data->key() + 1) . '行目の送料は0以上の数値を設定してください。'); } } } ご指導よろしくお願い致します。 +100円のclass_category_id1は8固定となっております。 |
468 |
投稿日時: 2019/12/11 8:23
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: すごく初歩的な事だと思うのですが。。。 ソースの記述は問題無いかと思いますが
CSV上で規格分類IDのセルはどのように入力されていますか? 例えば「1,8」と「8,1」が混在したりするのでしょうか? カンマ区切りで規格の数だけIDを入力されているのではないかと思うのですが 必ず最後が「8」になるような形であれば問題無いかと思います。 もし、8が最後でない場合はもう少しコードに手を加えなければいけないと思います。
|
yamagata78 |
投稿日時: 2019/12/12 12:12
対応状況: −−−
|
半人前 登録日: 2019/11/25 居住地: 投稿: 29 |
Re: すごく初歩的な事だと思うのですが。。。 丁寧なご指導ありがとうございます。
CSVではN行に規格分類1(ID)を入力しておりまして、入力内容は7,8となっております。 ※7が通常の商品で8が+100円のオプション付き商品。 早速ファイルを修正し明日の新商品入荷日に効果を試してみたいと思います。 明日にはまたご報告できると思います。 お力添えいただきまして誠にありがとうございます。 今後共よろしくお願い致します。 |
yamagata78 |
投稿日時: 2019/12/13 12:53
対応状況: 解決済
|
半人前 登録日: 2019/11/25 居住地: 投稿: 29 |
Re: すごく初歩的な事だと思うのですが。。。 ご報告です。
本日無事にCSVを使って規格1の値段(+100円)の方まで無事にインポートすることができました! 購入テストも問題なく終わりました! 本当にありがとうございます! 丁寧にご指導頂きまして感謝の言葉もございません! あ〜っ!これであのPHPMyAdminの作業から解放されます! ありがとうございました! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |