コンテンツへスキップ

最近メルカリで不用物を整理しています
初めて数ヶ月も経ち、そろそろ売り上げを確認したかったのですが、
メルカリって売り上げの合計がありません。
なので、自分でデータベースの練習がてらにソフト作成したかったのですが、
APIがないためどうしようかと思っていたところすでに便利なサイトがありました。

◾️メルカリの売上管理表をスプレッドシートを使って自動で作ろう。
https://intellectual-productivity.com/how-to-mercari-summary-automate

ただ、合計値がわからないので、chatgptに相談しつつ以下のようなコードにして
合計値と手数料-10%を引いた額が出力されるようにしました

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();

      var product_ID = plainBody.match(/商品ID : (.*)/);
      var product_name = plainBody.match(/商品名 : (.*)/);
      var product_price = plainBody.match(/商品価格 : (.*)/);

      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);
    });
  });

  // ▼▼ 合計と90%の計算 ▼▼
  var sheet = SpreadsheetApp.getActive().getSheetByName('売上リスト');
  var data = sheet.getRange(2, 3, sheet.getLastRow() - 1).getValues();  // C列のデータ(2行目〜)

  var sum = 0;
  data.forEach(function(row) {
    var val = row[0];
    if (typeof val === 'string') {
      val = val.replace(/[円,]/g, ''); // 円とカンマを除去
    }
    var num = parseFloat(val);
    if (!isNaN(num)) {
      sum += num;
    }
  });

// 合計と90%の表示(F1, G1, F2, G2)
sheet.getRange(1, 6).setValue('合計');
sheet.getRange(1, 7).setValue(sum);
sheet.getRange(2, 6).setValue('90%');
sheet.getRange(2, 7).setValue(sum * 0.9);

// スタイル設定(F1:G2)
var range = sheet.getRange('F1:G2');
range.setFontWeight('bold');             // 太字
range.setBackground('#d9ead3');          // 薄緑色の背景
range.setFontColor('#000000');           // 文字色を黒に
range.setHorizontalAlignment('right');   // 右寄せ
}

結果として以下のようになります

90%の部分を手数料込みと変換してもいいかもですね。小数点も切り捨てていいかも