彰化一整天的論壇

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

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

[複製鏈接]
 樓主| 發表於 2019-5-20 16:03:11 | 顯示全部樓層
inchen 發表於 2019-5-20 15:31
請問您是指這樣嗎?我依據您#20的那一篇寫法,把
加到最後。

程式中,還要加入呼叫
28行加入
  1.   //顯示欄位名稱
  2.   show_field(namedValues);
複製代碼

回復 支持 反對

使用道具 舉報

發表於 2019-5-20 16:39:15 | 顯示全部樓層
您好,抱歉上面(#40)可忽略,
目前修改為以下:

  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.       ShopName = data.namedValues,
  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.   ShopName = namedValues["A店","B店","C店"] ? namedValues["A店","B店","C店"][0]:"" ;
  46.   
  47.   for (i = 0; i < n; i++) {
  48.     v= namedValues[shop[i]] ? namedValues[shop[i]][0]:"" ;
  49.     if(v!="")//有輸入的資料才顯示
  50.     {
  51.       html+="嗨!"+shop[i]+"你好!<br/><br/>";
  52.      }
  53.   }
  54.                
  55.   
  56.   html+="【本月叫貨品項及數量】請務必再次核對:<br/><br/>";
  57.   
  58.   for (i = 0; i < n; i++) {
  59.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  60.     if(v!="")//有輸入的資料才顯示
  61.     {
  62.       html+=field[i]+":"+v+"<br/><br/>";
  63.       if(price1[field[i]]!=undefined) //有價格才計算
  64.         if(ShopName=="A店","C店")  //某店家打折
  65.            money1+=(price1[field[i]]*v)*0.8;         
  66.            else
  67.            money1+=price1[field[i]]*v;
  68.       if(price2[field[i]]!=undefined) //有價格才計算
  69.         money2+=price2[field[i]]*v;   
  70.      }
  71.   }
  72.   
  73.   
  74.   html+="<br/><br/>";

  75.   if(money1!=0&&money1<free_shipping_money1)
  76.   {
  77.     html+="---咖啡豆---<br/><br/>";
  78.     html+="■ 咖啡豆金額為:"+money1+"元(運費另計)<br/><br/>";
  79.     html+="■ 運費:貨到付款(未滿免運10000門檻)<br/><br/>";
  80.     freight1=1
  81.   }

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

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

  122.    if(freight1!=0||freight2!=0)
  123.   {
  124.     html+="☻ 總結本月叫貨總金額為:"+moneytotal+"元(運費另計)<br/><br/>";
  125.    }
  126.   else
  127.   {
  128.     html+="☻ 總結本月叫貨總金額為:"+moneytotal+"元(免運)<br/><br/>";
  129.    }  
  130.   

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

  132.   html+="-----------------轉帳匯款資訊-----------------<br/>";
  133.   html+="銀行名稱:華南商業銀行(代碼:008)<br/>";
  134.   html+="分行名稱:<br/>";
  135.   html+="戶名:<br/>";
  136.   html+="帳號:<br/>";
  137.   html+="-----------------------------------------------------<br/>";
  138.   
  139.             
  140.   MailApp.sendEmail({
  141.     to: notifyEmail,
  142.     subject: subject,
  143.     htmlBody: html
  144.   });
  145.   
  146. }

  147.   function show_field(namedValues)
  148. {
  149.   fields="";
  150.   Object.keys(namedValues).forEach(function(key) {
  151.     if(namedValues[key]!="")//有輸入的資料才顯示
  152.     {
  153.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  154.     }
  155.    
  156.   });  
  157.   Logger.log(fields);
  158.   
  159. }
複製代碼


將折扣的部分也加入了,目前程式是沒問題的(也可自動回覆信件),只是信件內容仍是沒有出現(如圖片所示),我對於宣告變數這部分或是一些寫法不是非常清楚,有勞您撥冗回覆,感激不盡。
3.jpg
回復 支持 反對

使用道具 舉報

發表於 2019-5-21 00:49:35 | 顯示全部樓層
您好,我終於理解寫出店名的寫法了,真的很感謝您的回應(前面幾個寫法請忽略)。
關於折扣部份,實際測試過發現一個問題:即便是設定了A店、C店有折扣,但是我點選B店,也是有折扣的,
不知道是我哪裡出了什麼問題?目前的寫法如下:
  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.       ShopName = data.namedValues,
  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.   var price3={" “};
  15.   
  16.   var money1=0; //設定咖啡豆金額
  17.   var money2=0; //設定消耗品及器具免運費金額
  18.   var money3=0; //設定食品原料免運費金額
  19.   var moneytotal=0

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

  54.   html+="【本月叫貨品項及數量】請務必再次核對:<br/><br/>";
  55.   
  56.   for (i = 0; i < n; i++) {
  57.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  58.     if(v!="")//有輸入的資料才顯示
  59.     {
  60.       html+=field[i]+":"+v+"<br/><br/>";
  61.       if(price1[field[i]]!=undefined) //有價格才計算
  62.         if(ShopName=="A店"||"C店")  //某店家打折
  63.            money1+=(price1[field[i]]*v)*0.8;         
  64.            else
  65.            money1+=price1[field[i]]*v;
  66.       if(price2[field[i]]!=undefined) //有價格才計算
  67.         money2+=price2[field[i]]*v;   
  68.       if(price3[field[i]]!=undefined) //有價格才計算
  69.         money3+=price3[field[i]]*v;   
  70.      }
  71.   }
  72.   
  73.   
  74.   html+="<br/><br/>";

  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=1
  81.   }

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

  104.   if(money2==0)
  105.   {
  106.     html+="---消耗品及器具---<br/><br/>";
  107.     html+="☐ 消耗品及器具金額為:"+money2+"元<br/><br/>";
  108.     html+="☐ 運費:0元<br/><br/>";
  109.     freight2=0
  110.    }
  111.     if(money2!=0&&money2>=free_shipping_money2)
  112.   {
  113.     html+="---消耗品及器具---<br/><br/>";
  114.     html+="☐ 消耗品及器具金額為:"+money2+"元<br/><br/>";
  115.     html+="☐ 運費:免運費(滿"+free_shipping_money2+"元免運費)<br/><br/>";
  116.     freight2=0
  117.    }
  118.   
  119.   if(money3!=0&&money3<free_shipping_money3)
  120.   {
  121.     html+="---食品原料---<br/><br/>";
  122.     html+="☐ 食品原料金額為:"+money3+"元(運費另計)<br/><br/>";
  123.     html+="☐ 運費:貨到付款(未滿免運"+free_shipping_money3+"門檻)<br/><br/>";
  124.     freight3=1
  125.   }

  126.   if(money3==0)
  127.   {
  128.     html+="---食品原料---<br/><br/>";
  129.     html+="☐ 食品原料金額為:"+money3+"元<br/><br/>";
  130.     html+="☐ 運費:0元<br/><br/>";
  131.     freight3=0
  132.    }
  133.     if(money3!=0&&money3>=free_shipping_money3)
  134.   {
  135.     html+="---食品原料---<br/><br/>";
  136.     html+="☐ 食品原料金額為:"+money3+"元<br/><br/>";
  137.     html+="☐ 運費:免運費(滿"+free_shipping_money3+"元免運費)<br/><br/>";
  138.     freight3=0
  139.    }
  140.   
  141.     html+="---------------------------------------------------------------------<br/>";
  142.    
  143.   moneytotal+=money1+money2+money3   //總結

  144.    if(freight1!=0||freight2!=0||freight3!=0)
  145.   {
  146.     html+="■ 總結本月"+ShopName+"叫貨總金額為:"+moneytotal+"元(運費另計)<br/><br/>";
  147.    }
  148.   else
  149.   {
  150.     html+="■ 總結本月"+ShopName+"叫貨總金額為:"+moneytotal+"元(免運)<br/><br/>";
  151.    }  

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

  153.   html+="-------------------------轉帳匯款資訊--------------------------<br/>";
  154.   html+="銀行名稱:華南商業銀行(代碼:008)<br/>";
  155.   html+="分行名稱: <br/>";
  156.   html+="戶名: <br/>";
  157.   html+="帳號: <br/>";
  158.   html+="---------------------------------------------------------------------<br/>";
  159.   
  160.             
  161.   MailApp.sendEmail({
  162.     to: notifyEmail,
  163.     subject: subject,
  164.     htmlBody: html
  165.   });
  166.   
  167. }


  168.   function show_field(namedValues)
  169. {
  170.   fields="";
  171.   Object.keys(namedValues).forEach(function(key) {
  172.     if(namedValues[key]!="")//有輸入的資料才顯示
  173.     {
  174.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  175.     }
  176.    
  177.   });  
  178.   Logger.log(fields);
  179.   
  180. }   
  181.   
複製代碼

再次麻煩您抽空解惑,謝謝。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-5-21 08:31:13 | 顯示全部樓層
本帖最後由 imingho 於 2019-5-21 08:36 編輯
inchen 發表於 2019-5-21 00:49
您好,我終於理解寫出店名的寫法了,真的很感謝您的回應(前面幾個寫法請忽略)。
關於折扣部份,實際測試 ...

您的or的寫法錯了.
  1. if(ShopName=="A店"||"C店")  //某店家打折
複製代碼

非0為真,"C店"這樣法是就是錯誤的.會變成永遠為真.
  1. if(ShopName=="A店" || ShopName=="C店")  //某店家打折
複製代碼

要這樣寫才對。
還有
  1.   ShopName = namedValues["店名"] ? namedValues["店名"][0]:"" ;
  2.   
  3.   for (i = 0; i < n; i++)
  4.     v= namedValues ? namedValues[0]:"" ;
  5.     if(v!="")//有輸入的資料才顯示
  6.     {
  7.       html+="嗨! 「"+ShopName+"」 你好:D<br/><br/>";
  8.      }
複製代碼
這邊只要寫
  1. ShopName = namedValues["店名"] ? namedValues["店名"][0]:"" ;

  2.     if(ShopName !="")//有輸入的資料才顯示
  3.     {
  4.       html+="嗨! 「"+ShopName+"」 你好:D<br/><br/>";
  5.      }
複製代碼
迴圈是因為我用陣列要去讀取欄位,這裡已用namedValues取出店名,就不用再寫迴圈.
回復 支持 反對

使用道具 舉報

發表於 2019-5-21 14:31:08 | 顯示全部樓層
您好,感謝您的回應,目前都能正常運作了
另外有個問題想請教,價格的部分能顯示千分位符號嗎(例如:1,200)?不知道這部分程式是否可以完成?
真的很謝謝您,我會點選廣告的
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-5-21 15:12:29 | 顯示全部樓層
inchen 發表於 2019-5-21 14:31
您好,感謝您的回應,目前都能正常運作了
另外有個問題想請教,價格的部分能顯示千分位符號嗎(例如:1,2 ...

金額,總計,運費加上千位元符號.
google_money_01.jpg

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={"羊奶冰棒20枝(全部原味,500元含運費)":500,"羊奶冰棒20枝(全部紅豆,500元含運費)":500,
  11.              "羊奶冰棒20枝(紅豆原味各半,500元含運費)":500,"雞精原味12包(1660元含運費)":1660,"雞精粉光12包(1960元含運費)":1960,"雞精12包(1960元含運費)":1960,"雞精粉光24包(3600元含運費)":3600,"雞精人參24包(3600元含運費)":3600};
  12.   var money=0;
  13.   
  14.   
  15.   var freight_one=120;//設定數量1個運費金額
  16.   
  17.   var freight_two=130;//設定數量2個運費金額
  18.   
  19.   var freight_all=0;  //總運費
  20.   
  21.   var n=data.values.length;
  22.   
  23.   var fields="";
  24.   
  25.   var field=["時間戳記","電子郵件地址","請問您想購買的產品","羊奶冰棒20枝(全部原味,500元含運費)","羊奶冰棒20枝(全部紅豆,500元含運費)","羊奶冰棒20枝(紅豆原味各半,500元含運費)","雞精原味12包(1660元含運費)","雞精粉光12包(1960元含運費)","雞精12包(1960元含運費)","","雞精粉光24包(3600元含運費)","雞精人參24包(3600元含運費)",
  26.              "指定配送時間","您的姓名","性別","聯絡電話","寄送地址","其他說明"]  ;
  27.   var buy_amount=0;//購買數量
  28.   
  29.   var i,j;
  30.   
  31.   //顯示欄位名稱
  32.   show_field(namedValues);
  33.   
  34.   for (i = 0; i < n; i++) {
  35.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  36.     if(v!="")//有輸入的資料才顯示
  37.     {
  38.       html+=field[i]+":"+v+"<br/>";
  39.       if(price[field[i]]!=undefined) //有價格才計算
  40.       {
  41.         money+=price[field[i]]*v;
  42.         buy_amount+=v;
  43.         
  44.       }
  45.      }
  46.   }
  47.   
  48.   html+="您購買"+formatNumber(money)+"元<br/>";
  49.   
  50.   //計算偶數運費
  51.   freight_all=parseInt(buy_amount/2)*freight_two;
  52.   
  53.   if(buy_amount%2==1)//有奇數數量
  54.   {
  55.     freight_all+=freight_one;
  56.   }

  57.   money+=freight_all;
  58.   html+="運費:"+formatNumber(freight_all)+"元<br/>";
  59.   
  60.   
  61.   html+="總費用為"+formatNumber(money)+"元<br/>";
  62.          

  63.   MailApp.sendEmail({
  64.     to: notifyEmail,
  65.     subject: subject,
  66.     htmlBody: html
  67.   });

  68.   
  69. }
  70. function test()
  71. {
  72.     var sheet =SpreadsheetApp.getActiveSheet();
  73.    
  74.     Logger.log(sheet.getSheetValues(1,1,1,1));   
  75.   
  76. }
  77. function show_field(namedValues)
  78. {
  79.   fields="";
  80.   Object.keys(namedValues).forEach(function(key) {
  81.     if(namedValues[key]!="")//有輸入的資料才顯示
  82.     {
  83.       fields+="["+key+"]:["+namedValues[key]+"]\n";
  84.     }
  85.    
  86.   });  
  87.   Logger.log(fields);
  88.   
  89. }
  90. function formatNumber(num) {
  91.   //千分位符號
  92.   return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
  93. }
複製代碼



回復 支持 反對

使用道具 舉報

發表於 2019-5-21 17:23:05 | 顯示全部樓層
感謝您,利用google表單即可回傳總金額,這樣解決了很多的困擾,真的很謝謝您的不吝分享與耐心解答。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-6-11 14:54:06 | 顯示全部樓層
本帖最後由 imingho 於 2019-6-11 14:55 編輯
imingho 發表於 2019-4-26 20:40
若有免運費,程式碼如下

有人問到,若有一件商品有含運費就不算運費的寫法如下.

  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.   var free_shipping_thing=namedValues["含運費商品"] ? namedValues["含運費商品"][0]:""; //設定免運商品
  40.   if(money<free_shipping_money && free_shipping_thing=="") //未達金額且沒有選擇含運費商品則加運費
  41.   {
  42.     money+=freight
  43.     html+="運費:"+freight+"元<br/>";
  44.   }
  45.   else
  46.   {
  47.     html+="運費:免費(滿"+free_shipping_money+"元)<br/>";
  48.   }
  49.    
  50.   html+="總費用為"+money+"元<br/>";

  51.   html+="-----轉帳匯款資訊------------<br/>";
  52.   html+="銀行名稱:兆豐國際商業銀行(代碼:017)<br/>";
  53.   html+="分行名稱:竹北分行<br/>";
  54.   html+="戶名:彰化一整天<br/>";
  55.   html+="帳號:000-00-000000<br/>";
  56.             
  57.   MailApp.sendEmail({
  58.     to: notifyEmail,
  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. }
複製代碼
主要是這二行
  1.   var free_shipping_thing=namedValues["含運費商品"] ? namedValues["含運費商品"][0]:""; //設定免運商品
  2.   if(money<free_shipping_money && free_shipping_thing=="") //未達金額且沒有選擇含運費商品則加運費
複製代碼



回復 支持 反對

使用道具 舉報

發表於 2019-6-11 23:35:04 | 顯示全部樓層
目前卡在我的快選區是使用"選擇題"呈現,而非您例子上的"線性刻度"或"單選方格"
如用選擇題方式作呈現的話excel首欄就會變成"快速選購區(價格含運)"  
故如選擇快選反而會抓不到金額.....

感謝老師您的耐心指導


語法如下:

  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={"快速選購區(價格含運) [試吃組 16杯  $900]":900,"快速選購區(價格含運) [32杯 $1700]":1700,"快速選購區(價格含運) [48杯 $2500]":2500,"快速選購區(價格含運) [64杯 $3200]":3200,"快速選購區(價格含運) [80杯 $3900]":3900,"單點區 (運費另計) [豬肉A款]":90,"單點區 (運費另計) [豬肉B款]":90,"單點區 (運費另計) [ 雞肉A款]":90,"單點區 (運費另計) [ 雞肉B款]":90,"單點區 (運費另計) [牛肉A款]":100,"單點區 (運費另計) [牛肉B款]":100,"單點區 (運費另計) [ 魚肉A款]":100,"單點區 (運費另計) [ 魚肉B款]":100,};
  11.   var money=0;
  12.   
  13.   var free_shipping_money=99999; //設定免運費金額
  14.   
  15.   var freight=160;//設定運費金額
  16.   
  17.   var n=data.values.length;
  18.   
  19.   var fields="";
  20.   
  21.   var field=["時間戳記","電子郵件地址","訂購者姓名","訂購者聯絡電話(09xx-xxx-xxx)","收件者姓名","收件者聯絡電話(09xx-xxx-xxx)","郵遞區號","收件地址","收件時段","試吃組 16杯  $900","32杯 $1700","48杯 $2500","64杯 $3200","80杯 $3900","單點區 (運費另計) [豬肉A款]","單點區 (運費另計) [豬肉B款]","單點區 (運費另計) [ 雞肉A款]","單點區 (運費另計) [ 雞肉B款]","單點區 (運費另計) [牛肉A款]","單點區 (運費另計) [牛肉B款]","單點區 (運費另計) [ 魚肉A款]","單點區 (運費另計) [ 魚肉B款]","其他備註(ex:不吃牛)","付款方式","帳號末五碼"]
  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.     var free_shipping_thing=namedValues["內容由食堂搭配"] ? namedValues["內容由食堂搭配"][0]:""; //設定免運商品
  40.   if(money<free_shipping_money && free_shipping_thing=="") //未達金額且沒有選擇含運費商品則加運費
  41.   {
  42.     money+=freight
  43.     html+="運費:"+freight+"元<br/>";
  44.   }
  45.   else
  46.   {
  47.     html+="運費:免費(滿"+free_shipping_money+"元)<br/>";
  48.   }
  49.    
  50.   html+="總費用為"+money+"元<br/>";
複製代碼
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-6-11 23:46:32 | 顯示全部樓層
本帖最後由 imingho 於 2019-6-12 00:32 編輯
Alice 發表於 2019-6-11 23:35
目前卡在我的快選區是使用"選擇題"呈現,而非您例子上的"線性刻度"或"單選方格"
如用選擇題方式作呈現的話ex ...

您好,
    請用底下程式碼執行看看.price是您輸入後的結果
剩下的請自行修改。
  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={"[試吃組 16杯  $900]":900," [32杯 $1700]":1700," [48杯 $2500]":2500,"[64杯 $3200]":3200,"(價格含運) [80杯 $3900]":3900,"單點區 (運費另計) [豬肉A款]":90,"單點區 (運費另計) [豬肉B款]":90,"單點區 (運費另計) [ 雞肉A款]":90,"單點區 (運費另計) [ 雞肉B款]":90,"單點區 (運費另計) [牛肉A款]":100,"單點區 (運費另計) [牛肉B款]":100,"單點區 (運費另計) [ 魚肉A款]":100,"單點區 (運費另計) [ 魚肉B款]":100,};
  11.   var money=0;
  12.   
  13.   var free_shipping_money=99999; //設定免運費金額
  14.   
  15.   var freight=160;//設定運費金額
  16.   
  17.   var n=data.values.length;
  18.   
  19.   var fields="";
  20.   
  21.   var field=["時間戳記","電子郵件地址","訂購者姓名","訂購者聯絡電話(09xx-xxx-xxx)","收件者姓名","收件者聯絡電話(09xx-xxx-xxx)","郵遞區號","收件地址","收件時段","快速選購區(價格含運)","單點區 (運費另計) [ 雞肉A款]","單點區 (運費另計) [豬肉B款]","單點區 (運費另計) [ 雞肉A款]","單點區 (運費另計) [ 雞肉B款]","單點區 (運費另計) [牛肉A款]","單點區 (運費另計) [牛肉B款]","單點區 (運費另計) [ 魚肉A款]","單點區 (運費另計) [ 魚肉B款]","其他備註(ex:不吃牛)","付款方式","帳號末五碼"]
  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.     var free_shipping_thing=namedValues["快速選購區(價格含運) "] ? namedValues["快速選購區(價格含運) "][0]:""; //設定免運商品
  40.   if(money<free_shipping_money && free_shipping_thing=="") //未達金額且沒有選擇含運費商品則加運費
  41.   {
  42.     money+=freight
  43.     html+="運費:"+freight+"元<br/>";
  44.   }
  45.   else
  46.   {
  47.     html+="運費:免費(滿"+free_shipping_money+"元)<br/>";
  48.   }
  49.    
  50.   html+="總費用為"+money+"元<br/>";
複製代碼
shop_20190611.jpg

1.注意事項

shop_20190611b.jpg

2.欄位請用copy貼上才不會有問題.



回復 支持 反對

使用道具 舉報

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

本版積分規則

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

GMT+8, 2019-12-11 10:58 , Processed in 0.137144 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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