預約診斷

特斯拉 Roadster 會飛,量產等到 2028 先收訂金:小店做限量預購,Google 表單額滿自動關閉(附程式碼)

特斯拉 Roadster 會飛,量產等到 2028 先收訂金:小店做限量預購,Google 表單額滿自動關閉(附程式碼)

這週「特斯拉會飛」上了新聞。10 月 15 日,特斯拉在德州發表延了好幾年的新款 Roadster。現場這台車靠風扇和冷氣體推進器,在空中懸浮、翻轉,還從好幾台特斯拉的車子上方越過去。

整理幾個重點:

  • 分三個版本:Performance 是上路用,Thrust 是賽道用,Rocket 號稱可以飛,只開放邀請。
  • 官網開放預約,Performance 要付 5 萬美元,Thrust 要 25 萬美元,售價還沒公布。
  • 馬斯克說 2028 年量產。這台車 2017 年第一次發表時就收過訂金,之後量產時間延了好幾次。

這台車到底能不能飛上路,是另一回事。但這場發表會有一件事很值得小店參考:產品還沒做出來,就先把想買的人留下來。

小店也能做的「先收預購」

你不需要一台會飛的車,也可以這樣做:

  • 新品還在打樣,先開放預購登記,看反應決定要做多少。
  • 手工或限量商品,一批只做 30 份,收滿就停。
  • 課程、活動名額有限,額滿就關。

預購最怕的不是沒人填,是收太多做不出來。Google 表單本身沒有「收到第幾筆就自動關閉」的功能,很多人是盯著回覆數,看差不多了再手動關。商品一熱門,一個晚上就可能超收,接下來就是一個一個私訊道歉、退款。

下面用一小段程式解決這件事。

步驟一:做好預購表單

表單的基本做法(題型怎麼選、必填、格式驗證)在這篇有完整教學:Google 表單製作教學。

預購表單建議至少有這幾題:姓名、手機、Email、品項(選擇題)、數量(限制只能填數字)。

表單說明裡要寫清楚:限量幾份、預計什麼時候出貨、怎麼付款、什麼情況可以取消。

步驟二:加上額滿自動關閉

  1. 在表單編輯畫面,點右上角的「⋮」,選「Apps Script」。
  2. 刪掉原本的內容,貼上:
const LIMIT = 30; // 限量幾份

function onFormSubmit(e) {
  const form = FormApp.getActiveForm();
  const count = form.getResponses().length;

  if (count >= LIMIT) {
    form.setAcceptingResponses(false);
    form.setCustomClosedFormMessage(
      '本次限量預購已額滿,謝謝你的支持!下一批開放時會再通知大家。'
    );
  }
}
  1. 把 LIMIT = 30 改成你要的數量,額滿時顯示的文字也改成你自己的。
  2. 左側點時鐘圖示的「觸發條件」→「新增觸發條件」,函式選 onFormSubmit,活動來源選「來自表單」,活動類型選「提交表單時」,儲存並授權。
  3. 測試:先把數字改成 2,自己填兩次,看表單有沒有關閉。測完記得到「回覆」分頁刪掉測試資料,數字改回來,再把「接受回覆」打開。

一筆可以訂好幾份的話

上面的程式是算「幾筆回覆」。如果一個人可以一次訂 3 份,要改成加總「數量」那一題。把程式換成:

const LIMIT = 30;          // 限量幾份
const QTY_TITLE = '數量';  // 數量那一題的題目文字

function onFormSubmit(e) {
  const form = FormApp.getActiveForm();
  let total = 0;

  form.getResponses().forEach(function (r) {
    r.getItemResponses().forEach(function (ir) {
      if (ir.getItem().getTitle() === QTY_TITLE) {
        total += Number(ir.getResponse()) || 0;
      }
    });
  });

  if (total >= LIMIT) {
    form.setAcceptingResponses(false);
    form.setCustomClosedFormMessage(
      '本次限量預購已額滿,謝謝你的支持!下一批開放時會再通知大家。'
    );
  }
}

QTY_TITLE 要和表單上的題目文字一字不差。

這樣做,還有幾個要注意的地方

  • 可能多收幾份。 程式是在有人送出之後才檢查數量,同一時間很多人一起填,表單關閉前還是可能多收幾筆。比較保險的做法是把數字設得比實際能做的少一點,並在表單說明寫「超過數量以填寫時間先後為準」。
  • 付款要另外對。 表單只負責登記,誰付了錢、誰還沒付,還是要另外核對。
  • 想即時知道有人預購。 可以讓每筆新預購自動推播到 LINE,做法在這篇:Google 表單自動推播到 LINE 教學。

預購名單,是你最好的客人名單

預購的人,是還沒看到商品就願意先填資料的人。這份名單用完一次就丟掉很可惜:下一批開放、新品上市,應該先通知他們。

這些都可以用程式接起來:預購表單接上付款狀態、額滿自動關閉、新預購通知到 LINE、名單自動整理進客戶資料,下次開賣前先發給這批人。不用一開始就換系統,從你現在用的 Google 表單和試算表改起就好。

如果你準備做預購,或已經被超收、對帳弄得很累,可以先預約 30 分鐘免費診斷,我們看過你的流程再告訴你哪一段值得自動化。

預約 30 分鐘免費診斷 看自動化服務

常見問題

Q:額滿關閉後,想再開放怎麼辦?

到表單的「回覆」分頁,把「接受回覆」打開。記得同時把程式裡的 LIMIT 調高,不然下一筆送出後又會被關掉。

Q:可以設定時間一到自動開放嗎?

可以。另外寫一個函式呼叫 FormApp.getActiveForm().setAcceptingResponses(true),再新增一個「時間驅動」的觸發條件,選好開放的日期時間就可以。

Q:一定要用程式嗎?

不一定。如果量不大,手動關也可以。程式解決的是「沒人盯著的時候,表單也會自己關」,熱門商品、半夜開賣,或你同時在顧店的時候最有用。

分享文章: