彰化一整天的論壇

 找回密碼
 立即註冊
樓主: imingho

【Google表單教學】如何讓Google表單送出時會自動寄送購買...

  [複製鏈接]
發表於 2021-7-19 22:14:07 來自手機 | 顯示全部樓層
本帖最後由 xtl 於 2021-7-19 22:25 編輯

老師 您好
想請問
1、是否能做到在客人填寫表單的「(a)手機號碼」、「(b)手機號碼再次輸入」,在客人填寫(b)時能驗證他是否寫得跟(a)一樣呢?
2、也想請問在google表單中單選方格,是否能做到依據下拉選單選取的門市,限制各單選方格的選取次數呢?(等於可不同門市,不同庫存)

百忙之中,麻煩您了,謝謝
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-7-20 09:33:03 | 顯示全部樓層
xtl 發表於 2021-7-19 22:14
老師 您好
想請問
1、是否能做到在客人填寫表單的「(a)手機號碼」、「(b)手機號碼再次輸入」,在客人填寫( ...

xtl您好,
    您所填的這二個問題是目前google表單沒有辦法做到的。
回復 支持 反對

使用道具 舉報

發表於 2021-7-20 15:16:19 | 顯示全部樓層
老師您好:
有個問題請教,我已經建立好程式碼,也可以使用,但我是利用共用方式建立程式碼,但原檔案的擁有者,卻無法開啟指令碼編輯器。網頁顯示“很抱歉,目前無法開啟這個檔案”,嘗試移除共用者,也會遇到同樣的情形。請問可以如何解決?謝謝您!
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-7-20 16:15:17 | 顯示全部樓層
bsccmj 發表於 2021-7-20 15:16
老師您好:
有個問題請教,我已經建立好程式碼,也可以使用,但我是利用共用方式建立程式碼,但原檔案的擁 ...

建議您重新建立一份新的表單再將程式碼複製貼上試看看。
回復 支持 反對

使用道具 舉報

發表於 2021-7-21 14:56:38 | 顯示全部樓層
imingho 發表於 2021-7-20 16:15
建議您重新建立一份新的表單再將程式碼複製貼上試看看。

好的!謝謝!
回復 支持 反對

使用道具 舉報

發表於 2021-7-31 08:11:20 | 顯示全部樓層
本帖最後由 pi5mi4 於 2021-7-31 10:51 編輯
imingho 發表於 2020-12-27 21:53
請參考.
彰化一整天代賣商品(運費依購買金額變化)
http://discuz.bestdaylong.com/forum.php?mod=viewthr ...

老師您好:
請教您,我原先運費計算是由購買金額決定
總金額1000以下$160元
總金額3000以下$225元
總金額6000以下$290元
總金額6000以上$450元
本月推出新產品,假設為"蛋捲",推銷期間此項新品設定免運費,請問老師如何增加一段程式來滿足此需求,
感謝您.
  1. function autoSendmail(data) {
  2.   var subject = "三明治自己來 六月訂購單", // 信件標題
  3.       emailTitle = "電子郵件地址 ", // 表單中收件者 email 這個項目的標題
  4.       namedValues = data.namedValues,
  5.       values=data.values,      
  6.       notifyEmail = namedValues[emailTitle] ? namedValues[emailTitle][0]:"" ,
  7.       html = "";
  8.   
  9.   //設定產品價格
  10.   var price={"車輪餅$75":75,"鴛鴦奶茶$75":75,"味噌豆腐$75":75,"花生糖糕$75":75,"黑森林$80":80,"包餡一組$370":370,"坦都里烤雞$85":85,"杏桃蛋糕$90":90,"庫克先生$85":85,"辣鮪魚起司$85":85,"巴巴蘭姆$90":90,"夾心一組$430":430,"熱情盛夏$90":90,"芋頭肉鬆$70":70,"綠茶巧克力$70":70,"烤起司乳酪$70":70,"司康一組$200":200,"肉慾卷$85":85};
  11.   
  12.   var money=0;  
  13.   
  14.   var freight_all=0;  //總運費
  15.   
  16.   var pickup;//取貨方式
  17.   
  18.   pickup=namedValues["取貨方式"] ? namedValues["取貨方式"][0]:"" ;
  19.   
  20.   var n=data.values.length;
  21.   
  22.   var fields="";
  23.   
  24.   var field=["時間戳記","電子郵件地址","車輪餅$75","鴛鴦奶茶$75","味噌豆腐$75","花生糖糕$75","黑森林$80","包餡一組$370","坦都里烤雞$85","杏桃蛋糕$90","庫克先生$85","辣鮪魚起司$85","巴巴蘭姆$90","夾心一組$430","熱情盛夏$90","芋頭肉鬆$70","綠茶巧克力$70","烤起司乳酪$70","司康一組$200","肉慾卷$85","取貨方式","宅配到貨日期","宅配到貨時段","冷凍宅配地址","台中面交日期","姓名","電話","備註:","訂購IG帳號"];
  25.      
  26.   var i,j;
  27.    
  28.   //顯示欄位名稱
  29.   show_field(namedValues);
  30.   
  31.   for (i = 0; i < n; i++) {
  32.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  33.     if(v!="")//有輸入的資料才顯示
  34.     {
  35.       html+=field[i]+":"+v+"<br/>";
  36.       if(price[field[i]]!=undefined) //有價格才計算
  37.       {
  38.         money+=price[field[i]]*Number(v);
  39.         
  40.       }
  41.      }
  42.   }
  43.   
  44.   html+="您購買"+money+"元<br/>";
  45.   if(pickup=="冷凍宅配")
  46.   
  47.   //計算個別運費
  48.   
  49.   if(money<=1000) //購買金額1000元以內
  50.   {
  51.     freight_all=160;
  52.   }
  53.   else if(money<=3000)//購買金額1001元到3000元
  54.   {
  55.     freight_all=225;
  56.   }
  57.   else if(money<=6000)//購買金額3001元到6000元
  58.   {
  59.     freight_all=290;
  60.   }
  61.   else //其它運費
  62.   {
  63.      freight_all=450;
  64.   }
  65. if(pickup=="自取")  
  66.   {
  67.                 html+="運費:免費(自取)<br/>";
  68.   }
  69.   

  70.   money+=freight_all;
  71.   html+="運費:"+freight_all+"元<br/>";
  72.   
  73.   
  74.   html+="總費用為"+money+"元<br/>";
  75.          
  76.   html+="</dvi><div style="color:blue">" ;  

  77.   html+="------------轉帳匯款資訊------------<br/>";
  78.   html+="匯款帳戶:XXX<br/>";
  79.   html+="銀行代號:(808)玉山銀行<br/>";
  80.   html+="帳號:0222-XXX-00161<br/>";
  81.   html+="請於下單後三日內完成匯款~有困難的話可以跟我說<br/>";
  82.   html+="記得完成匯款後,請由IG私訊以下資訊給我<br/>";
  83.   html+="匯款人姓名:<br/>";
  84.   html+="銀行:<br/>";
  85.   html+="帳號末五碼:<br/>";
  86.   html+="匯款金額:<br/>";
  87.   html+="謝謝您的訂購,未來也請多多指教!:<br/>";
  88.             
  89. MailApp.sendEmail({
  90.     to: notifyEmail,
  91.     bcc:"XXX@gmail.com", //副件附本寄給您的email
  92.     subject: subject,
  93.     htmlBody: html
  94.   });
  95.   
  96.    //將總金額回填儲存格
  97.   var sheet =SpreadsheetApp.getActiveSheet();
  98.   var LastRow=sheet.getActiveCell().getLastRow(); //取得最後一列
  99.   sheet.getRange("AD"+LastRow).setValue(money);//將資料寫到AD欄的最後一筆
  100.   
  101.   
  102. }

  103. function show_field(namedValues)
  104. {
  105.   fields="";
  106.   Object.keys(namedValues).forEach(function(key) {
  107.     if(namedValues[key]!="")//有輸入的資料才顯示
  108.     {
  109.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  110.     }
  111.    
  112.   });  
  113.   Logger.log(fields);
  114.   
  115. }
複製代碼


回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-7-31 11:21:08 | 顯示全部樓層
本帖最後由 imingho 於 2021-7-31 11:24 編輯
pi5mi4 發表於 2021-7-31 08:11
老師您好:
請教您,我原先運費計算是由購買金額決定
總金額1000以下$160元

您新產品可以設一個變數單獨讀取例如.
例如:
在原本的.
  1.   var pickup;//取貨方式
  2.   
  3.   pickup=namedValues["取貨方式"] ? namedValues["取貨方式"][0]:"" ;
複製代碼

之後加上
  1.   var NewProduct;//新產品
  2.   
  3.   NewProduct=namedValues["新產品"] ? namedValues["新產品"][0]:"" ;
複製代碼


再利用這個欄位去判斷是否免運費.
回復 支持 1 反對 0

使用道具 舉報

發表於 2021-7-31 14:53:29 | 顯示全部樓層
imingho 發表於 2021-7-31 11:21
您新產品可以設一個變數單獨讀取例如.
例如:
在原本的.

老師您好:
加入一個變數單獨讀取後,發現新產品還是計算運費,請問關鍵在哪?
  1. function autoSendmail(data) {
  2.   var subject = "三明治自己來 八月訂購單", // 信件標題
  3.       emailTitle = "電子郵件地址 ", // 表單中收件者 email 這個項目的標題
  4.       namedValues = data.namedValues,
  5.       values=data.values,      
  6.       notifyEmail = namedValues[emailTitle] ? namedValues[emailTitle][0]:"" ,
  7.       html = "";
  8.   
  9.   //設定產品價格
  10.   var price={"油蔥香菇$75":75,"肯瓊肉醬$80":80,"蜜汁辣小魚$75":75,"蘋果焦糖$75":75,"梅香芭樂$75":75,"蛋捲$450":450};
  11.   
  12.   var money=0;  
  13.   
  14.   var freight_all=0;  //總運費
  15.   
  16.   var pickup;//取貨方式
  17.   
  18.   pickup=namedValues["取貨方式"] ? namedValues["取貨方式"][0]:"" ;
  19.   
  20.   var NewProduct;//蛋捲$450
  21.   
  22.   NewProduct=namedValues["蛋捲$450"] ? namedValues["蛋捲$450"][0]:"" ;
  23.   
  24.   var n=data.values.length;
  25.   
  26.   var fields="";
  27.   
  28.   var field=["時間戳記","電子郵件地址","油蔥香菇$75","肯瓊肉醬$80","蜜汁辣小魚$75","蘋果焦糖$75","梅香芭樂$75","蛋捲$450","取貨方式","宅配到貨日期","宅配到貨時段","冷凍宅配地址","台中自取日期","姓名","電話"];
  29.      
  30.   var i,j;
  31.    
  32.   //顯示欄位名稱
  33.   show_field(namedValues);
  34.   
  35.   for (i = 0; i < n; i++) {
  36.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  37.     if(v!="")//有輸入的資料才顯示
  38.     {
  39.       html+=field[i]+":"+v+"<br/>";
  40.       if(price[field[i]]!=undefined) //有價格才計算
  41.       {
  42.         money+=price[field[i]]*Number(v);
  43.         
  44.       }
  45.      }
  46.   }
  47.   
  48.   html+="您購買"+money+"元<br/>";
  49.   if(pickup=="冷凍宅配")
  50.   
  51.   //計算個別運費
  52.   
  53.   if(money<=1000) //購買金額1000元以內
  54.   {
  55.     freight_all=160;
  56.   }
  57.   else if(money<=3000)//購買金額1001元到3000元
  58.   {
  59.     freight_all=225;
  60.   }
  61.   else if(money<=6000)//購買金額3001元到6000元
  62.   {
  63.     freight_all=290;
  64.   }
  65.   else //其它運費
  66.   {
  67.      freight_all=450;
  68.   }
  69.   
  70.   if(pickup=="蛋捲$450")
  71.   {
  72.                 html+="運費:免費(蛋捲$450)<br/>";
  73.   }  
  74. if(pickup=="自取")  
  75.   {
  76.                 html+="運費:免費(自取)<br/>";
  77.   }
  78.   

  79.   money+=freight_all;
  80.   html+="運費:"+freight_all+"元<br/>";
  81.   
  82.   
  83.   html+="總費用為"+money+"元<br/>";
  84.          
  85.   html+="</dvi><div style="color:blue">" ;  

  86.   html+="------------轉帳匯款資訊------------<br/>";
  87.   html+="匯款帳戶:XXX<br/>";
  88.   html+="銀行代號:(808)玉山銀行<br/>";
  89.   html+="帳號:0222-XXX-00161<br/>";
  90.   html+="請於下單後三日內完成匯款~有困難的話可以跟我說<br/>";
  91.   html+="記得完成匯款後,請由IG私訊以下資訊給我<br/>";
  92.   html+="匯款人姓名:<br/>";
  93.   html+="銀行:<br/>";
  94.   html+="帳號末五碼:<br/>";
  95.   html+="匯款金額:<br/>";
  96.   html+="謝謝您的訂購,未來也請多多指教!:<br/>";
  97.             
  98. MailApp.sendEmail({
  99.     to: notifyEmail,
  100.     subject: subject,
  101.     htmlBody: html
  102.   });
  103.   
  104.    //將總金額回填儲存格
  105.   var sheet =SpreadsheetApp.getActiveSheet();
  106.   var LastRow=sheet.getActiveCell().getLastRow(); //取得最後一列
  107.   sheet.getRange("AD"+LastRow).setValue(money);//將資料寫到O欄的最後一筆
  108.   
  109.   
  110. }

  111. function show_field(namedValues)
  112. {
  113.   fields="";
  114.   Object.keys(namedValues).forEach(function(key) {
  115.     if(namedValues[key]!="")//有輸入的資料才顯示
  116.     {
  117.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  118.     }
  119.    
  120.   });  
  121.   Logger.log(fields);
  122.   
  123. }
複製代碼


excel.png
Screenshot_20210731_143118.jpg
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-7-31 15:14:39 | 顯示全部樓層
pi5mi4 發表於 2021-7-31 14:53
老師您好:
加入一個變數單獨讀取後,發現新產品還是計算運費,請問關鍵在哪?

您是有購買新產品,那個新產品不列入運費計算,還是整個免運費。
google_20210731.jpg

1.上面是您二個目前犯的錯誤.

回復 支持 反對

使用道具 舉報

發表於 2021-7-31 18:07:52 | 顯示全部樓層
本帖最後由 pi5mi4 於 2021-7-31 18:11 編輯
imingho 發表於 2021-7-31 15:14
您是有購買新產品,那個新產品不列入運費計算,還是整個免運費。

1.上面是您二個目前犯的錯誤.
老師您好:
按照您指示修改後,自取的部分正常.冷凍宅配則出現異常
  1. function autoSendmail(data) {
  2.   var subject = "三明治自己來 八月訂購單", // 信件標題
  3.       emailTitle = "電子郵件地址 ", // 表單中收件者 email 這個項目的標題
  4.       namedValues = data.namedValues,
  5.       values=data.values,      
  6.       notifyEmail = namedValues[emailTitle] ? namedValues[emailTitle][0]:"" ,
  7.       html = "";
  8.   
  9.   //設定產品價格
  10.   var price={"油蔥香菇$75":75,"肯瓊肉醬$80":80,"蜜汁辣小魚$75":75,"蘋果焦糖$75":75,"梅香芭樂$75":75,"蛋捲$450":450};
  11.   
  12.   var money=0;  
  13.   
  14.   var freight_all=0;  //總運費
  15.   
  16.   var pickup;//取貨方式
  17.   
  18.   pickup=namedValues["取貨方式"] ? namedValues["取貨方式"][0]:"" ;
  19.   
  20.   var NewProduct;//蛋捲$450
  21.   
  22.   NewProduct=namedValues["蛋捲$450"] ? namedValues["蛋捲$450"][0]:"" ;
  23.   
  24.   var n=data.values.length;
  25.   
  26.   var fields="";
  27.   
  28.   var field=["時間戳記","電子郵件地址","油蔥香菇$75","肯瓊肉醬$80","蜜汁辣小魚$75","蘋果焦糖$75","梅香芭樂$75","蛋捲$450","取貨方式","宅配到貨日期","宅配到貨時段","冷凍宅配地址","台中自取日期","姓名","電話"];
  29.      
  30.   var i,j;
  31.    
  32.   //顯示欄位名稱
  33.   show_field(namedValues);
  34.   
  35.   for (i = 0; i < n; i++) {
  36.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  37.     if(v!="")//有輸入的資料才顯示
  38.     {
  39.       html+=field[i]+":"+v+"<br/>";
  40.       if(price[field[i]]!=undefined) //有價格才計算
  41.       {
  42.         money+=price[field[i]]*Number(v);
  43.         
  44.       }
  45.      }
  46.   }
  47.   
  48.   html+="您購買"+money+"元<br/>";
  49.   if(pickup=="冷凍宅配")
  50.    
  51.   {  
  52.   //計算個別運費
  53.   
  54.   if(money<=1000) //購買金額1000元以內
  55.   {
  56.     freight_all=160;
  57.   }
  58.   else if(money<=3000)//購買金額1001元到3000元
  59.   {
  60.     freight_all=225;
  61.   }
  62.   else if(money<=6000)//購買金額3001元到6000元
  63.   {
  64.     freight_all=290;
  65.   }
  66.   else //其它運費
  67.   {
  68.      freight_all=450;
  69.   }
  70.   if(蛋捲$450=="蛋捲$450")
  71.   {
  72.                 html+="運費:免費(蛋捲$450)<br/>";
  73.   }  
  74.   if(pickup=="自取")  
  75.   {
  76.                 html+="運費:免費(自取)<br/>";
  77.   }
  78.   }
  79.   money+=freight_all;
  80.   html+="運費:"+freight_all+"元<br/>";
  81.   
  82.   
  83.   html+="總費用為"+money+"元<br/>";
  84.          
  85.   html+="</dvi><div style="color:blue">" ;  

  86.   html+="------------轉帳匯款資訊------------<br/>";
  87.   html+="匯款帳戶:張禹婕<br/>";
  88.   html+="銀行代號:(808)玉山銀行<br/>";
  89.   html+="帳號:0222-9792-00161<br/>";
  90.   html+="請於下單後三日內完成匯款~有困難的話可以跟我說<br/>";
  91.   html+="記得完成匯款後,請由IG私訊以下資訊給我<br/>";
  92.   html+="匯款人姓名:<br/>";
  93.   html+="銀行:<br/>";
  94.   html+="帳號末五碼:<br/>";
  95.   html+="匯款金額:<br/>";
  96.   html+="謝謝您的訂購,未來也請多多指教!:<br/>";
  97.             
  98. MailApp.sendEmail({
  99.     to: notifyEmail,
  100.     subject: subject,
  101.     htmlBody: html
  102.   });
  103.   
  104.    //將總金額回填儲存格
  105.   var sheet =SpreadsheetApp.getActiveSheet();
  106.   var LastRow=sheet.getActiveCell().getLastRow(); //取得最後一列
  107.   sheet.getRange("Z"+LastRow).setValue(money);//將資料寫到Z欄的最後一筆
  108.   
  109.   
  110. }

  111. function show_field(namedValues)
  112. {
  113.   fields="";
  114.   Object.keys(namedValues).forEach(function(key) {
  115.     if(namedValues[key]!="")//有輸入的資料才顯示
  116.     {
  117.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  118.     }
  119.    
  120.   });  
  121.   Logger.log(fields);
  122.   
  123. }
複製代碼


執行項目.png
IMG_20210731_180052.jpg
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)

GMT+8, 2021-9-20 09:31 , Processed in 0.145943 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表