彰化一整天的論壇

 找回密碼
 立即註冊
查看: 912|回復: 3

【Google表單教學】表單送出時自動寄送購買總金額給購買...

[複製鏈接]
發表於 2019-12-17 17:52:48 | 顯示全部樓層 |閱讀模式
本帖最後由 imingho 於 2019-12-20 16:25 編輯

這個版本是修改過的,之前的是有數量可以選取,這次網友的問題是無數量的版本,就是每個人只能選一個,這次說明要如何修改及使用。

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

程式碼連結:http://discuz.bestdaylong.com/thread-38694-1-1.html

網友問題:http://discuz.bestdaylong.com/thread-38379-11-1.html



  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包(1500元)":1500,"雞精粉光12包(1800元)":1800,"雞精原味12包(1800元)":1800,"雞精粉光24包(3600元)":3600,"雞精人參24包(3600元)":3600,"是(加60元運費差額)":60};

  11.   var money=0;
  12.   
  13.   var free_shipping_money=3000; //設定免運費金額
  14.   
  15.   var freight=160;//設定運費金額
  16.   
  17.   var n=data.values.length;
  18.   
  19.   var fields="";
  20.   
  21.   var field=["時間戳記","電子郵件地址","請問您想購買的產品","羊奶冰棒","香純滴雞精","是否加禮盒","指定配送時間","您的姓名","性別","聯絡電話","寄送地址","其他說明"]
  22.   
  23.   var field_color={"羊奶冰棒":"#ff0000","香純滴雞精":"#00ff00"}; //設定產品字型顏色
  24.   
  25.   var d="";
  26.   
  27.   var i,j;
  28.   
  29.   
  30.   html="<img src='http://bestdaylong.com/images/sheep_ice.jpg'><br/>";  //設定Logo圖片
  31.   
  32.   html+="<div style=\"color:black\">";
  33.   for (i = 0; i < n; i++) {
  34.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  35.     if(v!="")//有輸入的資料才顯示
  36.     {
  37.       if(field_color[field[i]]!=undefined) //有顏色再設定
  38.          html+="<font color="+field_color[field[i]]+">"+field[i]+"</font>"+":"+v+"<br/>";
  39.       else
  40.          html+=field[i]+":"+v+"<br/>";
  41.       if(price[v]!=undefined) //選項有價格才加入費用
  42.         money+=price[v];         
  43.      }
  44.   }
  45.   
  46.   html+="您購買"+money+"元<br/>";
  47.   
  48.   //判斷只有滴雞精才要算運貨
  49.   var shop_kind=namedValues["請問您想購買的產品"] ? namedValues["請問您想購買的產品"][0]:""; //設定免運商品
  50.   
  51.   if(shop_kind=="滴雞精")
  52.   {
  53.     if(money<free_shipping_money)
  54.     {
  55.       money+=freight
  56.       html+="運費:"+freight+"元<br/>";
  57.     }
  58.     else
  59.     {
  60.       html+="運費:免費(滿"+free_shipping_money+"元)<br/>";
  61.     }
  62.   }
  63.    
  64.   html+="總費用為"+money+"元<br/>";
  65.   
  66.   html+="</dvi><div style=\"color:purple\">" ;
  67.   
  68.   
  69.   html+="-----轉帳匯款資訊------------<br/>";
  70.   html+="銀行名稱:兆豐國際商業銀行(代碼:017)<br/>";
  71.   html+="分行名稱:竹北分行<br/>";
  72.   html+="戶名:彰化一整天<br/>";
  73.   html+="帳號:000-00-000000<br/>";
  74.   
  75.   html+="</div>";
  76.             
  77.   MailApp.sendEmail({
  78.     to: notifyEmail,
  79.     subject: subject,
  80.     htmlBody: html
  81.   });
  82.   
  83.   //將總金額回填儲存格
  84.   var sheet =SpreadsheetApp.getActiveSheet();
  85.   var LastRow=sheet.getActiveCell().getLastRow(); //取得最後一列
  86.   sheet.getRange("M"+LastRow).setValue(money);//將資料寫到M欄的最後一筆
  87.   
  88. }
  89. function test()
  90. {
  91.     var sheet =SpreadsheetApp.getActiveSheet();
  92.    
  93.     Logger.log(sheet.getSheetValues(1,1,1,1));   
  94.   sheet.getActiveCell().getLastRow();
  95.   
  96. }
複製代碼



回復

使用道具 舉報

發表於 2020-6-20 20:21:07 | 顯示全部樓層
蔡老師,你好

我今天遇上幾個難題,希望老師可以指導一下

1)運費會按4個不同地區而有所不同,請問這個程式應該如何寫?
2)禮盒會有額外收費,哪應該寫在什麼地方呢?
3)我按老師影片上說的,總金額在表格上寫上我表格的名字,[color=DarkOrange]sheet.getRange("M"+LastRow).setValue(money);//將資料寫到M欄的最後一筆
我的是在表格的W上,就改了sheet.getRange("W"+LastRow).setValue(money);//將資料寫到M欄的最後一筆
但並沒有成功,這個試了無數次
4)最後,我試用別的帳戶去預訂,最後的結果,並沒有出現老師你教學時所出現的訂單,而是出現下方這些文字
Your script, 港xxxxx菜, has recently failed to finish successfully. A summary of the failure(s) is shown below. To configure the triggers for this script, or change your setting for receiving future failure notifications, click here.

The script is used by the document 港xxxx菜(回應).

Start        Function        Error Message        Trigger        End
6/20/20 2:34 PM        autoSendmail        Exception: Failed to send email: no recipient        formSubmit        6/20/20 2:34 PM


希望老師可以抽空解答一下我的疑難,謝謝

回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-6-20 20:40:12 | 顯示全部樓層
陈雪 發表於 2020-6-20 20:21
蔡老師,你好

我今天遇上幾個難題,希望老師可以指導一下

您好,
    先回答您第一個問題,
1.您可以參考
http://discuz.bestdaylong.com/fo ... &extra=page%3D1
彰化一整天代賣商品(有自取及宅配)
將地區的欄位抓出來各別判斷。
  1.   var pickup;//取貨方式
  2.   
  3.   pickup=namedValues["取貨方式"] ? namedValues["取貨方式"][0]:"" ;
複製代碼


您要貼程式碼,請參考底下這篇。
http://discuz.bestdaylong.com/fo ... &extra=page%3D1
如何在discuz張貼程式碼
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-6-20 20:42:33 | 顯示全部樓層
陈雪 發表於 2020-6-20 20:21
蔡老師,你好

我今天遇上幾個難題,希望老師可以指導一下

請參考
【Google表單教學】Google表單發問要點
http://discuz.bestdaylong.com/fo ... 38791&fromuid=2
(出處: 彰化一整天的論壇)
回復 支持 反對

使用道具 舉報

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

本版積分規則

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

GMT+8, 2020-7-15 09:38 , Processed in 0.148244 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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