メルカリの売上管理表をスプレッドシートを使って自動で作ろう。

副業

メルカリの売上管理表を手打ちするのが大変だわ。

では売上の一覧作成を自動化してみよう。

メルカリの売上管理表をスプレッドシートで作っている方、品目と価格を手打ちしていくのは手間ですよね。GAS(Google App Script)を使ってgmailと連携させれば自動で売上管理表を作れます。プログラミングが必要なので少し難しいですが、解説していきます。

この記事がお勧めなのはこんな人です。

  • スプレッドシートでメルカリ売上管理表を作っている人
  • メルカリで大量の商品を出品している人
  • プログラミングを使った自動化で楽をしたい人

 

売上の一覧を自動作成する仕組み

メルカリでモノが売れると出品者のメールアドレス宛てに以下のように配送を促すメールが送られます。
売上メールには以下の情報が含まれます。
・品名
・固有の商品ID
・価格

今回はこのメールからGoogle App Scriptを使ってスプレッドシートに情報を抜き出してみましょう。

今回はメルカリに登録しているアドレスがGメールの場合のみ使える方法です。

※Google App Script を有効化する必要があります。

まずはスプレッドシートを起動し、ツールタブからスクリプトエディタを起動します。

App Script のエディターが開き下のような画面が現れます。

google scriptエディタ画面

最初にはmy functionという関数がありますが、使わないので削除してしまいましょう。プロジェクト名「無題のプロジェクト」とスクリプトの名前「コード.gs」は変更する必要はありません。

今からスクリプトをコピーアンドペーストで張り付けていきますが、その前にプログラムの流れを確認します。

プログラムの流れ
  • 受け取ったメールの中からタイトルが「発送をお願いします。」のメールで開封済みのメールを抽出する。
  • 各メールから商品ID,商品名,販売価格のデータを抜き出す。
  • データをスプレッドシートに出力する。
function mercari_summary() {


  // 検索条件に該当するスレッド一覧を取得
  var threads = GmailApp.search('subject:発送をお願いします -label:処理済み');


  // スレッドを一つずつ取り出す
  threads.forEach(function(thread) {
    // スレッド内のメール一覧を取得
    var messages = thread.getMessages();
    
    // メールを一つずつ取り出す
    messages.forEach(function(message) {
      // メール本文を取得
      var plainBody = message.getPlainBody();
      var date =message.getDate();
      
      Logger.log(date);
      // 商品IDを取り出す
      var product_ID = plainBody.match(/商品ID : (.*)/);
      Logger.log(product_ID[1]);


      // 商品名
      var product_name = plainBody.match(/商品名 : (.*)/);
      Logger.log(product_name[1]);


      // 商品価格
      var product_price = plainBody.match(/商品価格 : (.*)/);
      Logger.log(product_price[1]);


      // メール本文が取得できているかログに出力して確認
      Logger.log(plainBody);


      // 書き込むシートを取得
      var sheet = SpreadsheetApp.getActive().getSheetByName('売上リスト');


      // 最終行を取得
      var lastRow = sheet.getLastRow() + 1;


      sheet.getRange(lastRow, 1).setValue(product_ID[1]);
      sheet.getRange(lastRow, 2).setValue(product_name[1]);
      sheet.getRange(lastRow, 3).setValue(product_price[1]);
      sheet.getRange(lastRow, 4).setValue(date);      
      
      


    });
  });
}

ここではシートの名前を’売上リスト’としています。getSheetBynameで取得するシートの名前を書き込みたいシートの名前と一緒にしましょう。

新しく作ったスプレッドシートでGoogle App Scriptを実行するときには承認が必要になります。シート毎に最初の一回だけなので手順を確認していきましょう。

スクリプトの実行ボタン(再生マーク)を押すとまず下のようなポップアップがでます。

GAS承認画面

権限を承認すると以下のような画面がでるので詳細をクリックします。

権限承認画面

詳細をクリックするとおなじみのGoogleログイン画面がでてきます。

googleログイン画面

Googleアカウントを使ってGASにスクリプトの実行を承認すると実行結果は以下のようになります。1列目に固有のID,2列目に品目の名前、3列目に売却価格、4列目に売却日が記載されました。

メルカリの売上リスト

例で出したのは2品目でしたが100品目近くになると手打ちしていくのが難しくなります。比較的簡単なスクリプトでこの手間を減らすことができます。

まとめ
  • メルカリの売上一覧表を自動で作成するスクリプトを書きました。
  • グーグルのスプレッドシートを利用するので無料で利用できます。
  • 少しだけプログラミング言語GAS(google app script)の知識が必要です。

お読みいただきありがとうございました。

プログラムの流れ
  • 受け取ったメールの中からタイトルが「発送をお願いします。」のメールで開封済みのメールを抽出する。
  • 各メールから商品ID,商品名,販売価格のデータを抜き出す。
  • データをスプレッドシートに出力する。
function mercari_summary() {


  // 検索条件に該当するスレッド一覧を取得
  var threads = GmailApp.search('subject:発送をお願いします -label:処理済み');


  // スレッドを一つずつ取り出す
  threads.forEach(function(thread) {
    // スレッド内のメール一覧を取得
    var messages = thread.getMessages();
    
    // メールを一つずつ取り出す
    messages.forEach(function(message) {
      // メール本文を取得
      var plainBody = message.getPlainBody();
      var date =message.getDate();
      
      Logger.log(date);
      // 商品IDを取り出す
      var product_ID = plainBody.match(/商品ID : (.*)/);
      Logger.log(product_ID[1]);


      // 商品名
      var product_name = plainBody.match(/商品名 : (.*)/);
      Logger.log(product_name[1]);


      // 商品価格
      var product_price = plainBody.match(/商品価格 : (.*)/);
      Logger.log(product_price[1]);


      // メール本文が取得できているかログに出力して確認
      Logger.log(plainBody);


      // 書き込むシートを取得
      var sheet = SpreadsheetApp.getActive().getSheetByName('売上リスト');


      // 最終行を取得
      var lastRow = sheet.getLastRow() + 1;


      sheet.getRange(lastRow, 1).setValue(product_ID[1]);
      sheet.getRange(lastRow, 2).setValue(product_name[1]);
      sheet.getRange(lastRow, 3).setValue(product_price[1]);
      sheet.getRange(lastRow, 4).setValue(date);      
      
      


    });
  });
}

ここではシートの名前を’売上リスト’としています。getSheetBynameで取得するシートの名前を書き込みたいシートの名前と一緒にしましょう。

新しく作ったスプレッドシートでGoogle App Scriptを実行するときには承認が必要になります。シート毎に最初の一回だけなので手順を確認していきましょう。

スクリプトの実行ボタン(再生マーク)を押すとまず下のようなポップアップがでます。

GAS承認画面

権限を承認すると以下のような画面がでるので詳細をクリックします。

権限承認画面

詳細をクリックするとおなじみのGoogleログイン画面がでてきます。

googleログイン画面

Googleアカウントを使ってGASにスクリプトの実行を承認すると実行結果は以下のようになります。1列目に固有のID,2列目に品目の名前、3列目に売却価格、4列目に売却日が記載されました。

メルカリの売上リスト

例で出したのは2品目でしたが100品目近くになると手打ちしていくのが難しくなります。比較的簡単なスクリプトでこの手間を減らすことができます。

まとめ

お読みいただきありがとうございました。

プログラムの流れ
  • 受け取ったメールの中からタイトルが「発送をお願いします。」のメールで開封済みのメールを抽出する。
  • 各メールから商品ID,商品名,販売価格のデータを抜き出す。
  • データをスプレッドシートに出力する。
function mercari_summary() {


  // 検索条件に該当するスレッド一覧を取得
  var threads = GmailApp.search('subject:発送をお願いします -label:処理済み');


  // スレッドを一つずつ取り出す
  threads.forEach(function(thread) {
    // スレッド内のメール一覧を取得
    var messages = thread.getMessages();
    
    // メールを一つずつ取り出す
    messages.forEach(function(message) {
      // メール本文を取得
      var plainBody = message.getPlainBody();
      var date =message.getDate();
      
      Logger.log(date);
      // 商品IDを取り出す
      var product_ID = plainBody.match(/商品ID : (.*)/);
      Logger.log(product_ID[1]);


      // 商品名
      var product_name = plainBody.match(/商品名 : (.*)/);
      Logger.log(product_name[1]);


      // 商品価格
      var product_price = plainBody.match(/商品価格 : (.*)/);
      Logger.log(product_price[1]);


      // メール本文が取得できているかログに出力して確認
      Logger.log(plainBody);


      // 書き込むシートを取得
      var sheet = SpreadsheetApp.getActive().getSheetByName('売上リスト');


      // 最終行を取得
      var lastRow = sheet.getLastRow() + 1;


      sheet.getRange(lastRow, 1).setValue(product_ID[1]);
      sheet.getRange(lastRow, 2).setValue(product_name[1]);
      sheet.getRange(lastRow, 3).setValue(product_price[1]);
      sheet.getRange(lastRow, 4).setValue(date);      
      
      


    });
  });
}

ここではシートの名前を’売上リスト’としています。getSheetBynameで取得するシートの名前を書き込みたいシートの名前と一緒にしましょう。

新しく作ったスプレッドシートでGoogle App Scriptを実行するときには承認が必要になります。シート毎に最初の一回だけなので手順を確認していきましょう。

スクリプトの実行ボタン(再生マーク)を押すとまず下のようなポップアップがでます。

GAS承認画面

権限を承認すると以下のような画面がでるので詳細をクリックします。

権限承認画面

詳細をクリックするとおなじみのGoogleログイン画面がでてきます。

googleログイン画面

Googleアカウントを使ってGASにスクリプトの実行を承認すると実行結果は以下のようになります。1列目に固有のID,2列目に品目の名前、3列目に売却価格、4列目に売却日が記載されました。

メルカリの売上リスト

例で出したのは2品目でしたが100品目近くになると手打ちしていくのが難しくなります。比較的簡単なスクリプトでこの手間を減らすことができます。

まとめ

お読みいただきありがとうございました。

プログラムの流れ
  • 受け取ったメールの中からタイトルが「発送をお願いします。」のメールで開封済みのメールを抽出する。
  • 各メールから商品ID,商品名,販売価格のデータを抜き出す。
  • データをスプレッドシートに出力する。
function mercari_summary() {


  // 検索条件に該当するスレッド一覧を取得
  var threads = GmailApp.search('subject:発送をお願いします -label:処理済み');


  // スレッドを一つずつ取り出す
  threads.forEach(function(thread) {
    // スレッド内のメール一覧を取得
    var messages = thread.getMessages();
    
    // メールを一つずつ取り出す
    messages.forEach(function(message) {
      // メール本文を取得
      var plainBody = message.getPlainBody();
      var date =message.getDate();
      
      Logger.log(date);
      // 商品IDを取り出す
      var product_ID = plainBody.match(/商品ID : (.*)/);
      Logger.log(product_ID[1]);


      // 商品名
      var product_name = plainBody.match(/商品名 : (.*)/);
      Logger.log(product_name[1]);


      // 商品価格
      var product_price = plainBody.match(/商品価格 : (.*)/);
      Logger.log(product_price[1]);


      // メール本文が取得できているかログに出力して確認
      Logger.log(plainBody);


      // 書き込むシートを取得
      var sheet = SpreadsheetApp.getActive().getSheetByName('売上リスト');


      // 最終行を取得
      var lastRow = sheet.getLastRow() + 1;


      sheet.getRange(lastRow, 1).setValue(product_ID[1]);
      sheet.getRange(lastRow, 2).setValue(product_name[1]);
      sheet.getRange(lastRow, 3).setValue(product_price[1]);
      sheet.getRange(lastRow, 4).setValue(date);      
      
      


    });
  });
}

ここではシートの名前を’売上リスト’としています。getSheetBynameで取得するシートの名前を書き込みたいシートの名前と一緒にしましょう。

新しく作ったスプレッドシートでGoogle App Scriptを実行するときには承認が必要になります。シート毎に最初の一回だけなので手順を確認していきましょう。

スクリプトの実行ボタン(再生マーク)を押すとまず下のようなポップアップがでます。

GAS承認画面

権限を承認すると以下のような画面がでるので詳細をクリックします。

権限承認画面

詳細をクリックするとおなじみのGoogleログイン画面がでてきます。

googleログイン画面

Googleアカウントを使ってGASにスクリプトの実行を承認すると実行結果は以下のようになります。1列目に固有のID,2列目に品目の名前、3列目に売却価格、4列目に売却日が記載されました。

メルカリの売上リスト

例で出したのは2品目でしたが100品目近くになると手打ちしていくのが難しくなります。比較的簡単なスクリプトでこの手間を減らすことができます。

まとめ

お読みいただきありがとうございました。

プログラムの流れ
  • 受け取ったメールの中からタイトルが「発送をお願いします。」のメールで開封済みのメールを抽出する。
  • 各メールから商品ID,商品名,販売価格のデータを抜き出す。
  • データをスプレッドシートに出力する。
function mercari_summary() {


  // 検索条件に該当するスレッド一覧を取得
  var threads = GmailApp.search('subject:発送をお願いします -label:処理済み');


  // スレッドを一つずつ取り出す
  threads.forEach(function(thread) {
    // スレッド内のメール一覧を取得
    var messages = thread.getMessages();
    
    // メールを一つずつ取り出す
    messages.forEach(function(message) {
      // メール本文を取得
      var plainBody = message.getPlainBody();
      var date =message.getDate();
      
      Logger.log(date);
      // 商品IDを取り出す
      var product_ID = plainBody.match(/商品ID : (.*)/);
      Logger.log(product_ID[1]);


      // 商品名
      var product_name = plainBody.match(/商品名 : (.*)/);
      Logger.log(product_name[1]);


      // 商品価格
      var product_price = plainBody.match(/商品価格 : (.*)/);
      Logger.log(product_price[1]);


      // メール本文が取得できているかログに出力して確認
      Logger.log(plainBody);


      // 書き込むシートを取得
      var sheet = SpreadsheetApp.getActive().getSheetByName('売上リスト');


      // 最終行を取得
      var lastRow = sheet.getLastRow() + 1;


      sheet.getRange(lastRow, 1).setValue(product_ID[1]);
      sheet.getRange(lastRow, 2).setValue(product_name[1]);
      sheet.getRange(lastRow, 3).setValue(product_price[1]);
      sheet.getRange(lastRow, 4).setValue(date);      
      
      


    });
  });
}

ここではシートの名前を’売上リスト’としています。getSheetBynameで取得するシートの名前を書き込みたいシートの名前と一緒にしましょう。

新しく作ったスプレッドシートでGoogle App Scriptを実行するときには承認が必要になります。シート毎に最初の一回だけなので手順を確認していきましょう。

スクリプトの実行ボタン(再生マーク)を押すとまず下のようなポップアップがでます。

GAS承認画面

権限を承認すると以下のような画面がでるので詳細をクリックします。

権限承認画面

詳細をクリックするとおなじみのGoogleログイン画面がでてきます。

googleログイン画面

Googleアカウントを使ってGASにスクリプトの実行を承認すると実行結果は以下のようになります。1列目に固有のID,2列目に品目の名前、3列目に売却価格、4列目に売却日が記載されました。

メルカリの売上リスト

例で出したのは2品目でしたが100品目近くになると手打ちしていくのが難しくなります。比較的簡単なスクリプトでこの手間を減らすことができます。

まとめ

お読みいただきありがとうございました。

コメント

タイトルとURLをコピーしました