設定手順
-
1
Googleスプレッドシートを作成
月次の在庫結果を貯めたいスプレッドシートを開きます。シート名は自動で「棚卸し履歴」が作成されます。
-
2
拡張機能 → Apps Scriptを開く
Apps Scriptエディタに移動し、下のコードを貼り付けて保存します。
-
3
デプロイ → 新しいデプロイ
種類は「ウェブアプリ」。実行ユーザーは「自分」、アクセスできるユーザーは社内運用なら「全員」または運用に合わせた権限を選びます。
-
4
ウェブアプリURLをツールに保存
発行されたURLを棚卸しツールの「Google Sheets連携URL」に貼り付けて保存します。
-
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);
}