feat: implement periodic shopify sales sync

- automated sales check (default 10 mins)

- manual reconciliation menu

- updates 'status' and 'shopify_status' in sheet

- updated docs
This commit is contained in:
2025-12-24 22:08:12 -07:00
parent 418123d742
commit 2d43c07546
9 changed files with 208 additions and 2 deletions

View File

@ -17,4 +17,35 @@ export function reinstallTriggers() {
.timeBased()
.everyMinutes(1)
.create()
installSalesSyncTrigger()
}
import { Config } from "./config"
export function installSalesSyncTrigger() {
const config = new Config()
// Valid minute intervals for Apps Script
const valid = [1, 5, 10, 15, 30]
let freq = config.salesSyncFrequency || 10
if (valid.indexOf(freq) === -1) {
console.warn(`Invalid frequency ${freq}. Must be 1, 5, 10, 15, 30. Defaulting to 10.`)
freq = 10
}
// Delete existing 'checkRecentSales' triggers to avoid duplicates
const triggers = ScriptApp.getProjectTriggers()
for (const t of triggers) {
if (t.getHandlerFunction() === "checkRecentSales") {
ScriptApp.deleteTrigger(t)
}
}
ScriptApp.newTrigger("checkRecentSales")
.timeBased()
.everyMinutes(freq)
.create()
console.log(`Installed 'checkRecentSales' trigger running every ${freq} minutes.`)
}