彰化一整天的論壇

 找回密碼
 立即註冊
查看: 1014|回復: 71

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

[複製鏈接]
發表於 2019-1-18 16:55:54 | 顯示全部樓層 |閱讀模式
本帖最後由 imingho 於 2019-4-26 20:36 編輯

【Google表單教學】如何讓Google表單送出時會自動寄送購買總金額給購買者
這是網友在我另一篇youtube教學中問的問題,這是可以做到的,只要把我寫好的程式做修改,再設定一些安全性,就可以做到這樣的功能。

autosendmail_form_01.jpg

1.在google回應的試算表中,選【工具】/【指令碼編輯器】
2.貼上程式碼/【儲存】
3.設定觸發條件,【來源】=>【試算表】,【活動類型】=>【提交表單時】
4.執行有錯誤時,可以透過【查看】/【執行記錄】來偵錯

程式碼連結:
http://bestdaylong.com/n/sendmail/

如何利用google表單製作產品訂購單
https://youtu.be/o0sgUZzNcm4
  1. function autoSendmail(data) {
  2.   var subject = "彰化一整天訂購物網 表單自動通知", // 信件標題
  3.       emailTitle = "電子郵件地址", // 表單中收件者 email 這個項目的標題
  4.       namedValues = data.namedValues,
  5.       notifyEmail = namedValues[emailTitle] ? namedValues[emailTitle][0]:"" ,
  6.       html = "";
  7.   
  8.   //設定產品價格
  9.   var price={"羊奶冰棒20枝(全部原味,500元含運費)":500,"羊奶冰棒20枝(全部紅豆,500元含運費)":500,"羊奶冰棒20枝(紅豆原味各半,500元含運費)":500,"雞精原味12包(1660元含運費)":1660,"雞精粉光12包(1960元含運費)":1960,"雞精12包(1960元含運費)":1960,"雞精粉光24包(3600元含運費)":3600,"雞精人參24包(3600元含運費)":3600};

  10.   var money=0;
  11.   
  12.   Object.keys(namedValues).forEach(function(key) {
  13.     if(namedValues[key]!="")//有輸入的資料才顯示
  14.     {
  15.       html+=key+":"+namedValues[key]+"<br/>";
  16.       if(price[key]!=undefined) //有價格才計算
  17.         money+=price[key]*namedValues[key];
  18.     }
  19.    
  20.   });  
  21.   
  22.   html+="您總共購買"+money+"元";
  23.   
  24.             
  25.   MailApp.sendEmail({
  26.     to: notifyEmail,
  27.     subject: subject,
  28.     htmlBody: html
  29.   });
  30.   
  31. }
複製代碼





回復

使用道具 舉報

 樓主| 發表於 2019-4-26 20:39:25 | 顯示全部樓層
若在意顯示順序,要增加一個陣列,儲存欄位順序,程式碼如下
  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={"羊奶冰棒20枝(全部原味,500元含運費)":500,"羊奶冰棒20枝(全部紅豆,500元含運費)":500,"羊奶冰棒20枝(紅豆原味各半,500元含運費)":500,"雞精原味12包(1660元含運費)":1660,"雞精粉光12包(1960元含運費)":1960,"雞精12包(1960元含運費)":1960,"雞精粉光24包(3600元含運費)":3600,"雞精人參24包(3600元含運費)":3600};

  11.   var money=0;
  12.   
  13.   var n=data.values.length;
  14.   
  15.   var fields="";
  16.   
  17.   var field=["時間戳記","電子郵件地址","請問您想購買的產品","羊奶冰棒20枝(全部原味,500元含運費)","羊奶冰棒20枝(全部紅豆,500元含運費)","羊奶冰棒20枝(紅豆原味各半,500元含運費)","雞精原味12包(1660元含運費)","雞精粉光12包(1960元含運費)","雞精12包(1960元含運費)","","雞精粉光24包(3600元含運費)","雞精人參24包(3600元含運費)","指定配送時間","您的姓名","性別","聯絡電話","寄送地址","其他說明"]
  18.   
  19.   var d="";
  20.   
  21.   var i,j;


  22.   
  23.   for (i = 0; i < n; i++) {
  24.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  25.     if(v!="")//有輸入的資料才顯示
  26.     {
  27.       html+=field[i]+":"+v+"<br/>";
  28.       if(price[field[i]]!=undefined) //有價格才計算
  29.         money+=price[field[i]]*v;         
  30.      }
  31.   }
  32.   
  33.   html+="您總共購買"+money+"元"+d;
  34.   
  35.             
  36.   MailApp.sendEmail({
  37.     to: notifyEmail,
  38.     subject: subject,
  39.     htmlBody: html
  40.   });
  41.   
  42. }
複製代碼
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-4-26 20:40:09 | 顯示全部樓層
imingho 發表於 2019-4-26 20:39
若在意顯示順序,要增加一個陣列,儲存欄位順序,程式碼如下

若有免運費,程式碼如下
  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={"羊奶冰棒20枝(全部原味,500元含運費)":500,"羊奶冰棒20枝(全部紅豆,500元含運費)":500,"羊奶冰棒20枝(紅豆原味各半,500元含運費)":500,"雞精原味12包(1660元含運費)":1660,"雞精粉光12包(1960元含運費)":1960,"雞精12包(1960元含運費)":1960,"雞精粉光24包(3600元含運費)":3600,"雞精人參24包(3600元含運費)":3600};

  11.   var money=0;
  12.   
  13.   var free_shipping_money=3000; //設定免運費金額
  14.   
  15.   var freight=150;//設定運費金額
  16.   
  17.   var n=data.values.length;
  18.   
  19.   var fields="";
  20.   
  21.   var field=["時間戳記","電子郵件地址","請問您想購買的產品","羊奶冰棒20枝(全部原味,500元含運費)","羊奶冰棒20枝(全部紅豆,500元含運費)","羊奶冰棒20枝(紅豆原味各半,500元含運費)","雞精原味12包(1660元含運費)","雞精粉光12包(1960元含運費)","雞精12包(1960元含運費)","","雞精粉光24包(3600元含運費)","雞精人參24包(3600元含運費)","指定配送時間","您的姓名","性別","聯絡電話","寄送地址","其他說明"]
  22.   
  23.   var d="";
  24.   
  25.   var i,j;
  26.   
  27.   
  28.   for (i = 0; i < n; i++) {
  29.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  30.     if(v!="")//有輸入的資料才顯示
  31.     {
  32.       html+=field[i]+":"+v+"<br/>";
  33.       if(price[field[i]]!=undefined) //有價格才計算
  34.         money+=price[field[i]]*v;         
  35.      }
  36.   }
  37.   
  38.   html+="您購買"+money+"元<br/>";
  39.   if(money<free_shipping_money)
  40.   {
  41.     money+=freight
  42.     html+="運費:"+freight+"元<br/>";
  43.   }
  44.   else
  45.   {
  46.     html+="運費:免費(滿"+free_shipping_money+"元)<br/>";
  47.   }
  48.    
  49.   html+="總費用為"+money+"元<br/>";

  50.   html+="-----轉帳匯款資訊------------<br/>";
  51.   html+="銀行名稱:兆豐國際商業銀行(代碼:017)<br/>";
  52.   html+="分行名稱:竹北分行<br/>";
  53.   html+="戶名:彰化一整天<br/>";
  54.   html+="帳號:000-00-000000<br/>";
  55.             
  56.   MailApp.sendEmail({
  57.     to: notifyEmail,
  58.     subject: subject,
  59.     htmlBody: html
  60.   });
  61.   
  62. }
  63. function test()
  64. {
  65.     var sheet =SpreadsheetApp.getActiveSheet();
  66.    
  67.     Logger.log(sheet.getSheetValues(1,1,1,1));   
  68.   
  69. }
複製代碼
回復 支持 反對

使用道具 舉報

發表於 2019-4-27 12:10:14 | 顯示全部樓層
本帖最後由 imingho 於 2019-4-27 12:34 編輯

蔡老師您好,

我在您的YOUTUB 如何讓Google表單送出時會自動寄送購買總金額給購買者影片中提問 .

試著填寫訂購單,回傳的email金額卻是0,實在非常納悶,因為價錢也填上去了.不知原因中.....



下面照片是我按照您的解說做的.


  1. function autoSendmail(data) {
  2.   var subject = "Backhaus 德式烘焙坊 麵包訂購單 表單自動通知", // 信件標題
  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={"國王 Spelt 古麥麵包":280,"國王 Kristi 鄉村麵包":40,"國王 Semmel小餐包":30,"國王 Brezel 鄉村麵包":40};
  11.             
  12.   var money=0;
  13.   
  14.   var free_shipping_money=2000; //設定免運費金額
  15.   
  16.   var freight=170;//設定運費金額
  17.   
  18.   var n=data.values.length;
  19.   
  20.   var fields="";
  21.   
  22.   var field=["時間戳記","電子郵件地址","訂購產品","國王 Spelt 古麥麵包","國王 Kristi 鄉村麵包","國王 Semmel小餐包","國王 Brezel 鄉村麵包"]
  23.   
  24.   var d="";
  25.   
  26.   var i,j;
  27.   
  28.   
  29.   for (i = 0; i < n; i++) {
  30.     v= namedValues[field] ? namedValues[field][0]:"" ;
  31.     if(v!="")//有輸入的資料才顯示
  32.    
  33.      { html+=field+":"+v+"";

  34.       if(price[field]!=undefined) //有價格才計算
  35.         money+=price[field]*v;         
  36.      }
  37.   }
  38.   
  39.   html+="您購買"+money+"元<br/>";

  40.   if(money<free_shipping_money)

  41.   {

  42.     money+=freight

  43.     html+="運費:"+freight+"元<br/>";

  44.   }

  45.   else

  46.   {

  47.     html+="運費:免費(滿"+free_shipping_money+"元)<br/>";

  48.   }

  49.   html+="總費用為"+money+"元<br/>";

  50.   html+="-----轉帳匯款資訊------------<br/>";
  51.   html+="銀行名稱:永豐銀行 (代碼:807)<br/>";
  52.   html+="分行名稱:竹科分行<br/>";
  53.   html+="戶名:xxxx股份有限公司<br/>";
  54.   html+="帳號:0000000000000<br/>";
  55.             
  56.   MailApp.sendEmail({
  57.     to: notifyEmail,
  58.     bcc:"backhaus2017@gmail.com",  //副件附本寄給您的email
  59.     subject: subject,
  60.     htmlBody: html
  61.   });
  62.   
  63. }
  64. function test()
  65. {
  66.     var sheet =SpreadsheetApp.getActiveSheet();
  67.    
  68.     Logger.log(sheet.getSheetValues(1,1,1,1));   
  69.   
  70. }
複製代碼



對電腦google表單還是新手學習中,謝謝老師細心及耐心的講解.

[img]C:\Users\user\Desktop\Backhaus[img]C:\Users\user\Desktop\BackhausC:\Users\user\Desktop\Backhaus[/img][/img]
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-4-27 12:32:25 | 顯示全部樓層
本帖最後由 imingho 於 2019-4-27 12:38 編輯
erinlin23 發表於 2019-4-27 12:10
蔡老師您好,

我在您的YOUTUB 如何讓Google表單送出時會自動寄送購買總金額給購買者影片中提問 .

您好,
     麻煩您上傳email上的內容如下圖。
google_form_email_01.jpg

1.麻煩上傳email內容,裡面個資請去除。


google_form_email_02.jpg

2.程式碼請用這個張貼


上傳圖片請參考






回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-4-27 12:43:39 | 顯示全部樓層
erinlin23 發表於 2019-4-27 12:10
蔡老師您好,

我在您的YOUTUB 如何讓Google表單送出時會自動寄送購買總金額給購買者影片中提問 .

您將32列的空白列去除,再試看看。
google_form_email_03.jpg

1.這列去除再試看看

回復 支持 反對

使用道具 舉報

發表於 2019-4-27 13:11:08 | 顯示全部樓層
老師,您好
我去除32列後,從新下單.回覆金額還是0元.
請問我只有放幾樣產品,並沒有像您把羊乳冰棒跟雞精分兩大類有關嗎?
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-4-27 13:17:48 | 顯示全部樓層
erinlin23 發表於 2019-4-27 13:11
老師,您好
我去除32列後,從新下單.回覆金額還是0元.
請問我只有放幾樣產品,並沒有像您把羊乳冰棒跟雞精分兩 ...

分類沒有影響,請問其他項目的選項結果有出現在mail中嗎?
回復 支持 反對

使用道具 舉報

發表於 2019-4-27 13:51:55 | 顯示全部樓層
imingho 發表於 2019-4-27 13:17
分類沒有影響,請問其他項目的選項結果有出現在mail中嗎?

老師,您好

您說對了! 其他項目的選項結果沒有出現在mail中

時間戳記:2019/4/27 下午 1:01:49電子郵件地址:xxxxx@gmail.com您購買0元
運費:170元
總費用為170元
-----轉帳匯款資訊------------


抱歉讓您等回覆了,系統要我等1800秒後才能再回覆.
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-4-27 14:14:15 | 顯示全部樓層
erinlin23 發表於 2019-4-27 13:51
老師,您好

您說對了! 其他項目的選項結果沒有出現在mail中

麻煩您確認您的欄位是否跟試算表中的欄位名稱一模一樣。
google_form_email_04.jpg

1.請確認是否名稱都相同

回復 支持 反對

使用道具 舉報

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

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

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

GMT+8, 2019-7-21 12:24 , Processed in 0.137625 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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