見出し画像

ファッションECモール営業担当が画像URLダウンロードツール作った話

なぜこのツールを作ったか?

現在通販専業のいわゆる #D2C ブランドは複数展開していることが多い、
その中で楽天出店率はかなり高く、
既存の出店データを利用できれば効率的に出店できると考えたためサポートツールを作成しました!

ECモールは楽天RMScsvデータを転用し出店可能なモールが多い
Yahoo Shoppingもストアコンバーターというサービスがあるし、
ファッションECモールの中にはcsvをそのまま流用できるサイトもあります...!

新規モール出店で必ずといっていいほど問題になるのが画像編集について...
一括編集ができないケースが多くリソースが足りないのでモールを広げたいが広げられない...といった問題
画像管理が細かくできていないケースが多く、
既存出店モールからのデータ転用のニーズは高いと思われます

またモールごとに画像サイズの指定もあるので
画像データのリサイズも必要、その際はフリーソフトで直感的につかえる
 XnConvert をおすすめしています!
(リサイズツールの方がニーズありそうなので使い方は別noteでまとめてみます)

◎ツールについて

・できること
 ・楽天RMScsvデータから画像データDownload
 ・画像URLファイル名のリネーム

①下記EXCELファイルをGoogleスプレッドシートで開く


②楽天RMScsvデータをダウンロード

 ・楽天RMScsvデータ取得方法
  ・利用csv `dl-item___________.csv`

③変換シートに貼り付け

 ・dl-item貼り付けタブに`dl-item___________.csv`を貼り付け

④GASで画像ダウンロード

 ・マイドライブに保存用のフォルダ作成

01_画像フォルダ作成


 ・ツールからスクリプトエディタ選択

02_スクリプトエディタ展開


⑤script貼り付け

03_スクリプト貼り付け

/*
A列に入力された画像URLリストを元に画像をダウンロードしてGoogle Driveに保存する
Google Driveに保存する際にファイル名は、B列に入力された"ファイル名"で保存する
*/
function downloadImages() {
 //現在のスプレッドシートを取得
 var aBook = SpreadsheetApp.getActiveSpreadsheet();
 
 //"image"シートを取得。*スプレッドシートのシート名をあらかじめ"image"にしておく
 var aSheet = aBook.getSheetByName("image");
 
 //"imege"シートの最終行を取得
 var lastRow = aSheet.getDataRange().getLastRow();
 
 
 var errors = new Array();
 
 for (i = 2; i <= lastRow; i++) {
   // シートA列から1行ずつ画像URLを取得
   var url = aSheet.getRange(i,1).getValues();
   
   // シートB列から1行ずつファイル名を取得
   var fileName = aSheet.getRange(i,2).getValues();
       
   // 画像データを取得
   try {
     var response = UrlFetchApp.fetch(url);
     
     var fileBlob = response.getBlob().setName(fileName);
     
     // 取得した画像をGoogle Driveにアップロード
     var file = DriveApp.createFile(fileBlob);
     
     // 予めGoogle Driveに作っておいた画像フォルダの情報を取得
     var folders = DriveApp.getFoldersByName("画像フォルダ");
     while(folders.hasNext()) {
       var folder = folders.next();
       if(folder.getName() == "画像フォルダ"){
         break;
       }
     }
     
     // ルートディレクトリに画像が保存されているので画像フォルダにコピー
     file.makeCopy(file.getName(), folder);
     
     // ルートディレクトリの画像を削除
     file.setTrashed(true);
     
   } catch (ex) {
     var message = ""
     message += "\\n対象ファイル名: " + fileName;
     message += "\\nFile: " + ex.fileName + "(" + ex.lineNumber + ")";
     message += "\\nエラーメッセージ: " + ex.message;
     errors.push(message)
   }
 }
 
 if(errors.length > 0) {
   msg = errors.join("\\n\\n")
   Browser.msgBox("対象ファイルの取込みに失敗しました。\\n" + msg);
 } else {
   Browser.msgBox("処理終了");
 }
}

⑥プロジェクト承認

 ・無料アカウントだと承認画面が出る
画像8


 ・メッセージダイアログ(安全ではないページ)に移動して承認
  ・GSuite使ってたらでません

スクリーンショット 2020-06-01 13.12.43

⑦承認を許可

 ・アカウント承認

06_アカウント承認①

07_アカウント承認②

⑧関数実行

 ・マイドライブに予め作成した画像フォルダに格納される

08_実行


・使い方メモと注意
GASの実行時間が最大6分なので一括Downloadできるのが1000~1200枚程度です!!トリガー設定などで変更も可能かと思います、、

A列の画像URLについては、公開されているものであればDownload可能
画像URLをcsvでDownload可能なshopifyなどのカートシステムのデータ、
また画像URLの生成ルールがわかっていればSpreadsheetでURLを作成し
その他サイトデータからも画像Download可能できます!

#gas #GoogleSpreadsheet #D2C #営業  


この記事が気に入ったらサポートをしてみませんか?