ファッション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で画像ダウンロード
・マイドライブに保存用のフォルダ作成
・ツールからスクリプトエディタ選択
⑤script貼り付け
/*
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("処理終了");
}
}
⑥プロジェクト承認
・無料アカウントだと承認画面が出る
・メッセージダイアログ(安全ではないページ)に移動して承認
・GSuite使ってたらでません
⑦承認を許可
・アカウント承認
⑧関数実行
・マイドライブに予め作成した画像フォルダに格納される
・使い方メモと注意
GASの実行時間が最大6分なので一括Downloadできるのが1000~1200枚程度です!!トリガー設定などで変更も可能かと思います、、
A列の画像URLについては、公開されているものであればDownload可能
画像URLをcsvでDownload可能なshopifyなどのカートシステムのデータ、
また画像URLの生成ルールがわかっていればSpreadsheetでURLを作成し
その他サイトデータからも画像Download可能できます!
#gas #GoogleSpreadsheet #D2C #営業