Google Sheets連携の設定方法

毎月の棚卸し結果を、スプレッドシートの「棚卸し履歴」シートへ追記するための設定です。

棚卸しツールに戻る

設定手順

  1. 1
    Googleスプレッドシートを作成

    月次の在庫結果を貯めたいスプレッドシートを開きます。シート名は自動で「棚卸し履歴」が作成されます。

  2. 2
    拡張機能 → Apps Scriptを開く

    Apps Scriptエディタに移動し、下のコードを貼り付けて保存します。

  3. 3
    デプロイ → 新しいデプロイ

    種類は「ウェブアプリ」。実行ユーザーは「自分」、アクセスできるユーザーは社内運用なら「全員」または運用に合わせた権限を選びます。

  4. 4
    ウェブアプリURLをツールに保存

    発行されたURLを棚卸しツールの「Google Sheets連携URL」に貼り付けて保存します。

  5. 5
    毎月「スプレッドシートに追加」を押す

    現在表示中の絞り込み結果が、スプレッドシートへ追記されます。

Apps Scriptコード

const SHEET_NAME = "棚卸し履歴";

const HEADERS = [
  "追加日時",
  "対象日",
  "アカウント",
  "SKU",
  "ASIN",
  "FNSKU",
  "親ASIN",
  "商品名",
  "短縮名/表示名",
  "ステータス",
  "終了在庫",
  "原価",
  "在庫金額",
  "開始在庫",
  "入庫",
  "発送",
  "返品",
  "調整"
];

function doPost(e) {
  const payload = JSON.parse(e.postData.contents || "{}");
  const rows = Array.isArray(payload.rows) ? payload.rows : [];
  const sheet = getOrCreateSheet_();

  if (sheet.getLastRow() === 0) {
    sheet.appendRow(HEADERS);
  }

  if (rows.length > 0) {
    sheet.getRange(sheet.getLastRow() + 1, 1, rows.length, HEADERS.length).setValues(
      rows.map((row) => [
        row.exportedAt || "",
        row.targetDate || "",
        row.account || "",
        row.sku || "",
        row.asin || "",
        row.fnsku || "",
        row.parentAsin || "",
        row.productName || "",
        row.displayName || "",
        row.status || "",
        row.ending || 0,
        row.cost || 0,
        row.inventoryValue || 0,
        row.starting || 0,
        row.receipts || 0,
        row.shipments || 0,
        row.returns || 0,
        row.adjustments || 0
      ])
    );
  }

  return ContentService
    .createTextOutput(JSON.stringify({ ok: true, appended: rows.length }))
    .setMimeType(ContentService.MimeType.JSON);
}

function getOrCreateSheet_() {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  return spreadsheet.getSheetByName(SHEET_NAME) || spreadsheet.insertSheet(SHEET_NAME);
}