彰化一整天的論壇

 找回密碼
 立即註冊
查看: 180|回復: 0

【Google表單教學】要如何讓購買產品時有滿5送1或滿4送1

[複製鏈接]
發表於 2020-6-25 15:41:32 | 顯示全部樓層 |閱讀模式
本帖最後由 imingho 於 2020-6-25 15:48 編輯

網友反應,若有些產品有些要促銷,例如買5送1或是買4送1的話,程式要如何寫,我寫了一個副程式來解決這個問題,並做了一個簡單的範例,有興趣的人可以參考看看。
form_buy_send_01.jpg


  1. function bestdaylong_google_form(data) {
  2.   //程式碼:http://discuz.bestdaylong.com/thread-38914-1-1.html
  3.   var subject = "彰化一整天訂購物網 表單自動通知", // 信件標題
  4.       emailTitle = "電子郵件地址", // 表單中收件者 email 這個項目的標題
  5.       namedValues = data.namedValues,
  6.       values=data.values,      
  7.       notifyEmail = namedValues[emailTitle] ? namedValues[emailTitle][0]:"" ,
  8.       html = "";
  9.   
  10.   //設定產品價格
  11.   var price={"螢光筆(毎支NT30元)滿5送1 [0.5黃]":30,"螢光筆(毎支NT30元)滿5送1 [0.5綠]":30,"螢光筆(毎支NT30元)滿5送1 [0.5紅]":30,"原子筆(毎支NT10元)(滿4送1) [0.5藍]":10,"原子筆(毎支NT10元)(滿4送1) [0.5紅]":10,"原子筆(毎支NT10元)(滿4送1) [0.5綠]":10,"麥克筆每支50元":50};
  12.   var money=0;
  13.   
  14.   var n=data.values.length;
  15.   
  16.   var fields="";
  17.   
  18.   var field=["時間戳記","電子郵件地址","螢光筆(毎支NT30元)滿5送1 [0.5黃]","螢光筆(毎支NT30元)滿5送1 [0.5綠]","螢光筆(毎支NT30元)滿5送1 [0.5紅]","原子筆(毎支NT10元)(滿4送1) [0.5藍]","原子筆(毎支NT10元)(滿4送1) [0.5紅]","原子筆(毎支NT10元)(滿4送1) [0.5綠]","麥克筆每支50元"];
  19.   var i;
  20.   
  21.   var v;


  22.   
  23.   for (i = 0; i < n; i++) {
  24.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  25.     if(v!="")//有輸入的資料才顯示
  26.     {
  27.       
  28.       if(price[field[i]]!=undefined) //有價格才計算
  29.       {
  30.         v=multi_num(v);
  31.         if(field[i].indexOf("滿5送1")>0)
  32.           money+=price[field[i]]*(v-buyMSendFreeN(v,5,1));
  33.         else if(field[i].indexOf("滿4送1")>0)
  34.           money+=price[field[i]]*(v-buyMSendFreeN(v,4,1));
  35.         else
  36.           money+=price[field[i]]*v;
  37.         html+=field[i]+":"+v+".<br/>";
  38.       }
  39.       else
  40.         html+=field[i]+":"+v+"<br/>";
  41.      }
  42.   }
  43.   
  44.   
  45.   
  46.   html+="您總共購買"+money+"元<br/>";
  47.   
  48.             
  49.   MailApp.sendEmail({
  50.     to: notifyEmail,
  51.     subject: subject,
  52.     htmlBody: html
  53.   });
  54.   
  55. }

  56. function multi_num(p)//多選數量加總
  57. {
  58.   var s=0;
  59.   var i=0;
  60.   pp=p.split(",");
  61.   for(i=0;i<pp.length;i++)
  62.      if(!isNaN(pp[i]))
  63.         s=s+Number(pp[i]);
  64.   return s;
  65. }  

  66. function buyMSendFreeN(p,m,n)//買M送N
  67. {
  68.   return parseInt(p/(m+n),10)*n;
  69. }

  70.   
  71. function test()
  72. {
  73.    //Logger.log(multi_num("1")) ;
  74.   Logger.log(buyMSendFreeN(11,5,1)) ;
  75. }

複製代碼


範例網址: https://forms.gle/QsaexKp7sGHbRjer5
回復

使用道具 舉報

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

本版積分規則

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

GMT+8, 2020-7-12 11:18 , Processed in 0.135855 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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