彰化一整天的論壇

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

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

[複製鏈接]
發表於 2019-5-18 22:30:33 | 顯示全部樓層
謝謝您的回覆,後來這個問題我解決了~已經可以自動回覆了,超感謝您的分享。另外有幾點想詢問您:(1)在自動回覆的e-mail內容要加字,程式的寫法是什麼?(例如在email最後加上「請於OO日內完成匯款,以利後續作業」(2)在自動回覆的e-mail內容中,在每個品項間加上空行(因為現在看起來有點擠),程式的寫法是什麼?(3)如果不同的訂購人(表單固定的選擇題選項),可以有不同的計算方式嗎?(例如訂購人A是VIP,某幾個品項的金額可以打8折,某幾項依原價)以上。不好意思,只有接觸過Fortran程式語言,這個真的不是專業,希望不麻煩的話有空能回覆,萬分感激。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-5-19 09:26:31 | 顯示全部樓層
本帖最後由 imingho 於 2019-5-20 13:30 編輯
inchen 發表於 2019-5-18 22:30
謝謝您的回覆,後來這個問題我解決了~已經可以自動回覆了,超感謝您的分享。另外有幾點想詢問您:(1)在 ...

您好,

(1).您可以在最後的html加上您的訊息.
  1.   html+="總費用為"+money+"元<br/>";

  2.   html+="請於OO日內完成匯款,以利後續作業</br/>";
複製代碼


(2)可以在後面多加一個<br/>(HTML的換行)
  1.       html+=field[i]+":"+v+"<br/><br/>";
複製代碼


(3)您可以用if來判斷3-1先讀取店家名稱
  1. ShopName = namedValues["店家"] ? namedValues["店家"][0]:"" ;
複製代碼
3-2再依店家名稱做打折



  1.      if(v!="")//有輸入的資料才顯示
  2.     {
  3.       html+=field[i]+":"+v+"<br/>";
  4.       if(price[field[i]]!=undefined) //有價格才計算
  5.             if(ShopName=="A店家")  //某店家打折
  6.                         money+=price[field[i]]*v*0.9;         
  7.                 else
  8.                         money+=price[field[i]]*v;         
  9.                
  10.      }
複製代碼





回復 支持 反對

使用道具 舉報

發表於 2019-5-20 01:16:23 | 顯示全部樓層
您好,感謝您的回覆,關於不同消費者不同折扣的問題,我想換個方式詢問,如果我想在回覆的email寫,「嗨!A店妳好」(表單固定的選擇題選項例如A店、B店、C店),我目前的寫法是依照原文修改(如下)
  for (i = 0; i < n; i++) {
    v= nameShop[shop[i]] ? nameShop[shop[i]][0]:"" ;
    if(v!="")//有輸入的資料才顯示
    {
      html+="嗨!"+shop[i]+"你好"
     }
  }
結果執行顯示錯誤訊息(抱歉其實我不是很能理解其中的寫法意義)。
我希望知道正確的寫法後,我就能推敲折數的寫法了,
不好意思,先感謝您的耐心回應。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-5-20 08:36:21 | 顯示全部樓層
inchen 發表於 2019-5-20 01:16
您好,感謝您的回覆,關於不同消費者不同折扣的問題,我想換個方式詢問,如果我想在回覆的email寫,「嗨!A ...
  1. for (i = 0; i < n; i++) {
  2.     v= nameShop[shop[i]] ? nameShop[shop[i]][0]:"" ;
  3.     if(v!="")//有輸入的資料才顯示
  4.     {
  5.       html+="嗨!"+v+"你好"
  6.      }
  7.   }
複製代碼
v是輸入的結果,您若要顯示值,就要用v,還有您可以張貼錯誤的語法。google的語法跟javascript很像,

回復 支持 反對

使用道具 舉報

發表於 2019-5-20 12:29:59 | 顯示全部樓層
您好,感謝您的回覆,我是要顯示選單項目(例如:A店,選擇題選項,不是數量),假設我的選單項目的變數是shop,請問nameShop(如同之前的namedValues)意義是什麼呢?因為我目前按照您的寫法執行記錄顯示:
[19-05-20 12:22:06:651 HKT] Starting execution
[19-05-20 12:22:06:673 HKT] Execution failed: TypeError: 無法讀取 undefined 的「A店」屬性。 (line 48, file "程式碼") [0.002 seconds total runtime]
不好意思,勞煩您抽空解惑,感激不盡。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-5-20 13:22:00 | 顯示全部樓層
inchen 發表於 2019-5-20 12:29
您好,感謝您的回覆,我是要顯示選單項目(例如:A店,選擇題選項,不是數量),假設我的選單項目的變數是s ...

請用#20的回覆內容,將執行結果貼給我看.
http://discuz.bestdaylong.com/fo ... 43750&fromuid=2
,還有您要張貼所有的程式碼,我才會知道您是那出了問題。
程式碼,請用代碼方式張貼。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-5-20 13:22:02 | 顯示全部樓層
inchen 發表於 2019-5-20 12:29
您好,感謝您的回覆,我是要顯示選單項目(例如:A店,選擇題選項,不是數量),假設我的選單項目的變數是s ...

請用#20的回覆內容,將執行結果貼給我看.
http://discuz.bestdaylong.com/fo ... 43750&fromuid=2
,還有您要張貼所有的程式碼,我才會知道您是那出了問題。
程式碼,請用代碼方式張貼。
回復 支持 反對

使用道具 舉報

發表於 2019-5-20 14:41:43 | 顯示全部樓層
本帖最後由 inchen 於 2019-5-20 14:43 編輯
  1. function autoSendmail(data) {
  2.   var subject = "【叫貨用表單】自動回覆", // 信件標題
  3.       emailTitle = "電子郵件地址(將自動回覆訂購總金額)", // 表單中收件者 email 這個項目的標題
  4.       namedValues = data.namedValues,
  5.       nameShop = data.nameShop,
  6.       values=data.values,      
  7.       notifyEmail = namedValues[emailTitle] ? namedValues[emailTitle][0]:"" ,
  8.       html = "";
  9.   
  10.   //設定產品價格
  11.   var price1={"義式耶加雪菲(單位:公斤)":1200,"義式綜合All Pass(單位:公斤)":1200,"日曬耶加雪菲(單位:半磅)":600,"肯亞K72(單位:半磅)":600,"藝伎(單位:半磅)":1450,"阿基里斯(單位:半磅)":400,"林東之金(單位:半磅)":480,"綠寶石曼巴(單位:半磅)":450,"期間限定:橡木桶(單位:半磅)":1000,};

  12.   var price2={"水滴型名片(單位:張)(5元/張)":5,"12oz 外帶牛皮色雙層杯+蓋(一條共25個杯,單位:條)(100元/條)":100,"8oz 外帶牛皮色雙層杯+蓋(一條共25個杯,單位:條)(100元/條)":100," V01圓錐咖啡濾紙1-2人 100入/包(單位:包)(110元/包)":110,
  13.              "壓克力咖啡烘焙篩粉模具(訂製)(單位:個)(60元/個)":60,"Tiamo 雙層玻璃杯 360cc 2入(單位:盒)(640元/盒)":640,"Tiamo 速顯電子式溫度計(HK0442)(單位:支)(700元/支)":700,"Tiamo 108雙嘴有柄量杯 90ml 紅色字體(單位:個)(160元/個)":160,"Tiamo 2880 電子數位計時器(單位:台)(250元/台)":250};
  14.   
  15.   var money1=0; //設定咖啡豆金額
  16.   
  17.   var money2=0; //設定消耗品及器具免運費金額
  18.   
  19.   var moneytotal=0

  20.   var free_shipping_money1=10000; //設定咖啡豆免運費金額
  21.   
  22.   var free_shipping_money2=3000; //設定消耗品及器具免運費金額
  23.   
  24.   var freight1=0;//設定咖啡豆運費金額
  25.   
  26.   var freight2=0;//設定消耗品及器具運費金額
  27.    
  28.   var freight=0;//設定總運費金額
  29.   
  30.   var n=data.values.length;
  31.   
  32.   var fields="";
  33.   
  34.   var field=["時間戳記",
  35.              "義式耶加雪菲(單位:公斤)","義式綜合All Pass(單位:公斤)","日曬耶加雪菲(單位:半磅)","肯亞K72(單位:半磅)","藝伎(單位:半磅)","阿基里斯(單位:半磅)","林東之金(單位:半磅)","綠寶石曼巴(單位:半磅)","期間限定:橡木桶(單位:半磅)",
  36.              "水滴型名片(單位:張)(5元/張)","12oz 外帶牛皮色雙層杯+蓋(一條共25個杯,單位:條)(100元/條)","8oz 外帶牛皮色雙層杯+蓋(一條共25個杯,單位:條)(100元/條)"," V01圓錐咖啡濾紙1-2人 100入/包(單位:包)(110元/包)",
  37.              "壓克力咖啡烘焙篩粉模具(訂製)(單位:個)(60元/個)","Tiamo 雙層玻璃杯 360cc 2入(單位:盒)(640元/盒)","Tiamo 速顯電子式溫度計(HK0442)(單位:支)(700元/支)","Tiamo 108雙嘴有柄量杯 90ml 紅色字體(單位:個)(160元/個)","Tiamo 2880 電子數位計時器(單位:台)(250元/台)"]
  38.   
  39.   var shop=["A店","B店","C店"]
  40.             
  41.   var d="";
  42.   
  43.   var i,j;

  44.   
  45.   html+="【本月叫貨品項及數量】請務必再次核對:<br/><br/>";
  46.   
  47.   for (i = 0; i < n; i++) {
  48.     v= nameShop[shop[i]] ? nameShop[shop[i]][0]:"" ;
  49.     if(v!="")//有輸入的資料才顯示
  50.     {
  51.       html+="嗨!"+v+"你好"
  52.      }
  53.   }
  54.   
  55.   for (i = 0; i < n; i++) {
  56.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  57.     if(v!="")//有輸入的資料才顯示
  58.     {
  59.       html+=field[i]+":"+v+"<br/><br/>";
  60.       if(price1[field[i]]!=undefined) //有價格才計算
  61.         money1+=price1[field[i]]*v;  
  62.       if(price2[field[i]]!=undefined) //有價格才計算
  63.         money2+=price2[field[i]]*v;   
  64.      }
  65.   }
  66.   
  67.   
  68.   html+="<br/><br/>";

  69.   if(money1!=0&&money1<free_shipping_money1)
  70.   {
  71.     html+="---咖啡豆---<br/><br/>";
  72.     html+="■ 咖啡豆金額為:"+money1+"元(運費另計)<br/><br/>";
  73.     html+="■ 運費:貨到付款(未滿免運10000門檻)<br/><br/>";
  74.     freight1=1
  75.   }

  76.   if(money1==0)
  77.   {
  78.     html+="---咖啡豆---<br/><br/>";
  79.     html+="■ 咖啡豆金額為:"+money1+"元<br/><br/>";
  80.     html+="■ 運費:0元<br/><br/>";
  81.     freight1=0
  82.    }
  83.     if(money1!=0&&money1>=free_shipping_money1)
  84.   {
  85.     html+="---咖啡豆---<br/><br/>";
  86.     html+="■ 咖啡豆金額為:"+money1+"元<br/><br/>";
  87.     html+="■ 運費:免運費(滿"+free_shipping_money1+"元免運費)<br/><br/>";
  88.     freight1=0
  89.    }
  90.   
  91.   if(money2!=0&&money2<free_shipping_money2)
  92.   {
  93.     html+="---消耗品及器具---<br/><br/>";
  94.     html+="■ 消耗品及器具金額為:"+money2+"元(運費另計)<br/><br/>";
  95.     html+="■ 運費:貨到付款(未滿免運10000門檻)<br/><br/>";
  96.     freight2=1
  97.   }

  98.   if(money2==0)
  99.   {
  100.     html+="---消耗品及器具---<br/><br/>";
  101.     html+="■ 消耗品及器具金額為:"+money2+"元<br/><br/>";
  102.     html+="■ 運費:0元<br/><br/>";
  103.     freight2=0
  104.    }
  105.     if(money2!=0&&money2>=free_shipping_money2)
  106.   {
  107.     html+="---消耗品及器具---<br/><br/>";
  108.     html+="■ 消耗品及器具金額為:"+money2+"元<br/><br/>";
  109.     html+="■ 運費:免運費(滿"+free_shipping_money2+"元免運費)<br/><br/>";
  110.     freight2=0
  111.    }
  112.   
  113.     html+="-----------------------------------------------------<br/><br/>";
  114.    
  115.   moneytotal+=money1+money2

  116.    if(freight1!=0||freight2!=0)
  117.   {
  118.     html+="☺ 總結本月叫貨總金額為:"+moneytotal+"元(運費另計)<br/><br/>";
  119.    }
  120.   else
  121.   {
  122.     html+="☺ 總結本月叫貨總金額為:"+moneytotal+"元(免運)<br/><br/>";
  123.    }  
  124.   

  125.   html+="【提醒】請於每月9日前完成匯款,以利後續作業♡<br/><br/>";

  126.   html+="-----------------轉帳匯款資訊-----------------<br/>";
  127.   html+="銀行名稱:華南商業銀行(代碼:008)<br/>";
  128.   html+="分行名稱:<br/>";
  129.   html+="戶名:<br/>";
  130.   html+="帳號:<br/>";
  131.   html+="-----------------------------------------------------<br/>";
  132.   
  133.             
  134.   MailApp.sendEmail({
  135.     to: notifyEmail,
  136.     subject: subject,
  137.     htmlBody: html
  138.   });
  139.   
  140. }
複製代碼

您好,不知道這樣有沒有符合您所說的樣子。
再次感謝。
未命名.jpg
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-5-20 15:13:01 | 顯示全部樓層
本帖最後由 imingho 於 2019-5-20 15:29 編輯
inchen 發表於 2019-5-20 14:41
您好,不知道這樣有沒有符合您所說的樣子。
再次感謝。

您好,
    您第5行的.
  1. nameShop = data.nameShop,
複製代碼

這是那裡看到的寫法.我應該沒有用寫到這樣的語法.
  1. namedValues = data.namedValues,
複製代碼
您看到 data.namedValues,是因為傳進來的變數是data,namedValues最取得輸入的欄位及結果.


還有我請您看的那一篇有加一個.
  1. function show_field(namedValues)
  2. {
  3.   fields="";
  4.   Object.keys(namedValues).forEach(function(key) {
  5.     if(namedValues[key]!="")//有輸入的資料才顯示
  6.     {
  7.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  8.     }
  9.    
  10.   });  
  11.   Logger.log(fields);
  12.   
  13. }
複製代碼
可以顯示輸入的欄位名稱及內容,這個您加入執行後再抓畫面給我.
還有#35樓的折扣我有加上範例,您再參考看看.



回復 支持 反對

使用道具 舉報

發表於 2019-5-20 15:31:43 | 顯示全部樓層
本帖最後由 inchen 於 2019-5-20 15:37 編輯

請問您是指這樣嗎?我依據您#20的那一篇寫法,把
  1.   function show_field(namedValues)
  2. {
  3.   fields="";
  4.   Object.keys(namedValues).forEach(function(key) {
  5.     if(namedValues[key]!="")//有輸入的資料才顯示
  6.     {
  7.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  8.     }
  9.    
  10.   });  
  11.   Logger.log(fields);
  12.   
  13. }
複製代碼

加到最後。

  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 price1={"義式耶加雪菲(單位:公斤)":1200,"義式綜合All Pass(單位:公斤)":1200,"日曬耶加雪菲(單位:半磅)":600,"肯亞K72(單位:半磅)":600,"藝伎(單位:半磅)":1450,"阿基里斯(單位:半磅)":400,"林東之金(單位:半磅)":480,"綠寶石曼巴(單位:半磅)":450,"期間限定:橡木桶(單位:半磅)":1000,};

  11.   var price2={"水滴型名片(單位:張)(5元/張)":5,"12oz 外帶牛皮色雙層杯+蓋(一條共25個杯,單位:條)(100元/條)":100,"8oz 外帶牛皮色雙層杯+蓋(一條共25個杯,單位:條)(100元/條)":100," V01圓錐咖啡濾紙1-2人 100入/包(單位:包)(110元/包)":110,
  12.              "壓克力咖啡烘焙篩粉模具(訂製)(單位:個)(60元/個)":60,"Tiamo 雙層玻璃杯 360cc 2入(單位:盒)(640元/盒)":640,"Tiamo 速顯電子式溫度計(HK0442)(單位:支)(700元/支)":700,"Tiamo 108雙嘴有柄量杯 90ml 紅色字體(單位:個)(160元/個)":160,"Tiamo 2880 電子數位計時器(單位:台)(250元/台)":250};
  13.   
  14.   var money1=0; //設定咖啡豆金額
  15.   
  16.   var money2=0; //設定消耗品及器具免運費金額
  17.   
  18.   var moneytotal=0

  19.   var free_shipping_money1=10000; //設定咖啡豆免運費金額
  20.   
  21.   var free_shipping_money2=3000; //設定消耗品及器具免運費金額
  22.   
  23.   var freight1=0;//設定咖啡豆運費金額
  24.   
  25.   var freight2=0;//設定消耗品及器具運費金額
  26.    
  27.   var freight=0;//設定總運費金額
  28.   
  29.   var n=data.values.length;
  30.   
  31.   var fields="";
  32.   
  33.   var field=["時間戳記",
  34.              "義式耶加雪菲(單位:公斤)","義式綜合All Pass(單位:公斤)","日曬耶加雪菲(單位:半磅)","肯亞K72(單位:半磅)","藝伎(單位:半磅)","阿基里斯(單位:半磅)","林東之金(單位:半磅)","綠寶石曼巴(單位:半磅)","期間限定:橡木桶(單位:半磅)",
  35.              "水滴型名片(單位:張)(5元/張)","12oz 外帶牛皮色雙層杯+蓋(一條共25個杯,單位:條)(100元/條)","8oz 外帶牛皮色雙層杯+蓋(一條共25個杯,單位:條)(100元/條)"," V01圓錐咖啡濾紙1-2人 100入/包(單位:包)(110元/包)",
  36.              "壓克力咖啡烘焙篩粉模具(訂製)(單位:個)(60元/個)","Tiamo 雙層玻璃杯 360cc 2入(單位:盒)(640元/盒)","Tiamo 速顯電子式溫度計(HK0442)(單位:支)(700元/支)","Tiamo 108雙嘴有柄量杯 90ml 紅色字體(單位:個)(160元/個)","Tiamo 2880 電子數位計時器(單位:台)(250元/台)"]
  37.   
  38.   var shop=["A店","B店","C店"]
  39.             
  40.   var d="";
  41.   
  42.   var i,j;

  43.   
  44.   html+="【本月叫貨品項及數量】請務必再次核對:<br/><br/>";
  45.   

  46.   
  47.   for (i = 0; i < n; i++) {
  48.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  49.     if(v!="")//有輸入的資料才顯示
  50.     {
  51.       html+=field[i]+":"+v+"<br/><br/>";
  52.       if(price1[field[i]]!=undefined) //有價格才計算
  53.         money1+=price1[field[i]]*v;  
  54.       if(price2[field[i]]!=undefined) //有價格才計算
  55.         money2+=price2[field[i]]*v;   
  56.      }
  57.   }
  58.   
  59.   
  60.   html+="<br/><br/>";

  61.   if(money1!=0&&money1<free_shipping_money1)
  62.   {
  63.     html+="---咖啡豆---<br/><br/>";
  64.     html+="■ 咖啡豆金額為:"+money1+"元(運費另計)<br/><br/>";
  65.     html+="■ 運費:貨到付款(未滿免運10000門檻)<br/><br/>";
  66.     freight1=1
  67.   }

  68.   if(money1==0)
  69.   {
  70.     html+="---咖啡豆---<br/><br/>";
  71.     html+="■ 咖啡豆金額為:"+money1+"元<br/><br/>";
  72.     html+="■ 運費:0元<br/><br/>";
  73.     freight1=0
  74.    }
  75.     if(money1!=0&&money1>=free_shipping_money1)
  76.   {
  77.     html+="---咖啡豆---<br/><br/>";
  78.     html+="■ 咖啡豆金額為:"+money1+"元<br/><br/>";
  79.     html+="■ 運費:免運費(滿"+free_shipping_money1+"元免運費)<br/><br/>";
  80.     freight1=0
  81.    }
  82.   
  83.   if(money2!=0&&money2<free_shipping_money2)
  84.   {
  85.     html+="---消耗品及器具---<br/><br/>";
  86.     html+="■ 消耗品及器具金額為:"+money2+"元(運費另計)<br/><br/>";
  87.     html+="■ 運費:貨到付款(未滿免運10000門檻)<br/><br/>";
  88.     freight2=1
  89.   }

  90.   if(money2==0)
  91.   {
  92.     html+="---消耗品及器具---<br/><br/>";
  93.     html+="■ 消耗品及器具金額為:"+money2+"元<br/><br/>";
  94.     html+="■ 運費:0元<br/><br/>";
  95.     freight2=0
  96.    }
  97.     if(money2!=0&&money2>=free_shipping_money2)
  98.   {
  99.     html+="---消耗品及器具---<br/><br/>";
  100.     html+="■ 消耗品及器具金額為:"+money2+"元<br/><br/>";
  101.     html+="■ 運費:免運費(滿"+free_shipping_money2+"元免運費)<br/><br/>";
  102.     freight2=0
  103.    }
  104.   
  105.     html+="-----------------------------------------------------<br/><br/>";
  106.    
  107.   moneytotal+=money1+money2

  108.    if(freight1!=0||freight2!=0)
  109.   {
  110.     html+="☺ 總結本月叫貨總金額為:"+moneytotal+"元(運費另計)<br/><br/>";
  111.    }
  112.   else
  113.   {
  114.     html+="☺ 總結本月叫貨總金額為:"+moneytotal+"元(免運)<br/><br/>";
  115.    }  
  116.   

  117.   html+="【提醒】請於每月9日前完成匯款,以利後續作業♡<br/><br/>";

  118.   html+="-----------------轉帳匯款資訊-----------------<br/>";
  119.   html+="銀行名稱:華南商業銀行(代碼:008)<br/>";
  120.   html+="分行名稱:<br/>";
  121.   html+="戶名:<br/>";
  122.   html+="帳號:<br/>";
  123.   html+="-----------------------------------------------------<br/>";
  124.   

  125.   
  126.   MailApp.sendEmail({
  127.     to: notifyEmail,
  128.     subject: subject,
  129.     htmlBody: html
  130.   });
  131.   
  132. }


  133.   function show_field(namedValues)
  134. {
  135.   fields="";
  136.   Object.keys(namedValues).forEach(function(key) {
  137.     if(namedValues[key]!="")//有輸入的資料才顯示
  138.     {
  139.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  140.     }
  141.    
  142.   });  
  143.   Logger.log(fields);
  144.   
  145. }
複製代碼
2.jpg
回復 支持 反對

使用道具 舉報

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

本版積分規則

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

GMT+8, 2019-12-10 00:03 , Processed in 0.137162 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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