1<!DOCTYPE html> 2<html lang="zh-tw" style="height:100%;"> 3 <head> 4
4<script> 5 window.dataLayer = window.dataLayer || []; 6 </script>
6 7 <!-- Google Tag Manager --> 8
8<script>
vendor: 375 bytes, lines 8-12
8(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 9 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 10 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 11 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 12 })(window,document,'script','dataLayer','
12GTM-55MTGXQ
vendor: 3 bytes, line 12
12');
12</script>
12 13
13<script>var google_tag_manager_id = 'GTM-55MTGXQ';</script>
13 14<!-- End Google Tag Manager --> 15 <!-- CYBERBIZ Google Tag Manager --> 16
16<script>
vendor: 345 bytes, lines 16-20
16(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 17 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 18 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 19 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 20 })(window,document,'script','cyb','
20GTM-TXD9LVJ
vendor: 3 bytes, line 20
20');
20</script>
20 21 <!-- End CYBERBIZ Google Tag Manager --> 22 23 <meta charset="utf-8"> 24 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 25 <meta name="viewport" content="width=device-width, initial-scale=1"> 26 <meta property="og:site_name" content="æ±é«å¸«å¥åº·èå/ééªå" /> 27 28 <!-- og tag --> 29 30 <meta property="og:title" content="é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ " /> 31 <meta property="og:url" content="http://www.drfish.com.tw/products/honey" /> 32 <meta property="og:type" content="product" /> 33 <meta property="og:description" content="100%ç´èèï¼éé碳13åä½ç´ 檢é©ãCNSç²ç´èèåå®¶æ¨æºæª¢é©é ç´èªèãéæ¹æª¢é©è¾²è¥ãéé屬çï¼æçµå種æå®³æ±æãæ±é«å¸«æéï¼åå¾å®å¿ï¼" /> 34 35 36 <!-- og image --> 37 38 <meta property="og:image" content="https://cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNTQxLzE2Mjg1Nzg5MjRfNzJjZjk1N2RlZDg2ZDQ1YmVhZGEuanBlZyJdLFsicCIsInRodW1iIiwiMjQweDI0MCJdXQ.jpeg?sha=d3ba8b27f4923371" /> 39 40 41 <title> 42 43 é¾ç¼è/èè/碳13åä½ç´ 檢é©100%ç´è/CNSç²ç´-æ±é«å¸«å¥åº·éªå/ééªå | æ±é«å¸«å¥åº·èå/ééªå 44 45 </title> 46 47 <link rel="shortcut icon" href="//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/img/1630569803_795e377d_favicon.png?1630569803" type="image/x-icon" /> 48 49 <!-- for vendor --> 50 <link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1630569806_3aab29c2_vendor.css?1630569806' rel='stylesheet' type='text/css' media='all' /> 51 52 <!-- for navbar --> 53 <link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1630569806_d71248a2_navbar.css?1630569806' rel='stylesheet' type='text/css' media='all' /> 54 <link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/1630569805_599d700a_navbar.css?1630569805' rel='stylesheet' type='text/css' media='all' /> 55 <link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1630569806_82a1d296_sidebar.css?1630569806' rel='stylesheet' type='text/css' media='all' /> 56 57 <!-- theme assets --> 58 <link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1700451262_ae7d6e87_main.css?1700451262' rel='stylesheet' type='text/css' media='all' /> 59 60 <!-- for vendor --> 61
61<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1630569803_ee70670b_vendor.js?1630569803' type='text/javascript'></script>
61 62 63
63<script> 64 window.sci = "eyJzaG9wX2lkIjoxOTI4Miwic2hvcF9wbGFuIjoibWFzdGVyIiwiZGltX2Fm\nZmlsaWF0ZSI6bnVsbCwiY3VzdG9tZXJfaWQiOm51bGwsImN1c3RvbWVyX25h\nbWUiOm51bGwsInNob3BfbmFtZSI6Iuaxn+mGq+W4q+WBpeW6t+iIluWtkC/p\nrZrpi6rlrZAiLCJzaGFyZV9hdHRyaWJ1dGlvbl9lbmFibGVkIjp0cnVlfQ==\n"; 65 </script>
65 66 67 68<meta name="csrf-param" content="authenticity_token" /> 69<meta name="csrf-token" content="0QrH5T73Ftgef__AIMDUiXXhj64-tKHxvUa67rhVqrbFH1IhYfUrTE68HTRsXkiSgMgiAPF6u_jbrcy0LDTooA" />
70<script>(function () { 71 window.gaConfigurations = {"useProductIdInProductEvents":false}; 72})(); 73</script>
vendor: 1 bytes, line 73
73
74<script>(function () { 75 window.CYBERBIZ_PageContext = {"page_type":"product"}; 76})(); 77</script>
77 78<link href="//cdn1-next.cybassets.com/frontend/shop/quark-3a2e378145f8a165.css" rel="stylesheet" type="text/css" media="all" /> 79
79<script> 80 window.shopScriptHelper = { 81 i18nLocale: "zh-TW", 82 i18nLocaleDefault: "zh-TW", 83 availableCurrencies: [], 84 defaultCurrency: "TWD", 85 currenciesInfo: [{"code":"TWD","money_format":"%u%n","decimal_precision":0,"email":"NT${{amount_no_decimals}}","unit":"","symbol":"NT$","email_unit":"NT${{amount_no_decimals}}","html_unit":"NT${{amount_no_decimals}}","format":"NT${{amount_no_decimals}}","html":"NT${{amount_no_decimals}}","trailing_zeros":false,"name":"æ°å°å¹£ (TWD)"}], 86 vueOverrideTranslations: {"zh-TW":{"vue":{}}}, 87 hasI18nInContextEditing: false, 88 shopMultipleCurrenciesCheckout: false, 89 hasLocalizedShopPriceFormat: false, 90 } 91 </script>
91 92 93 94
94<script 95 src="//cdn1-next.cybassets.com/frontend/shop/tolgeeIntegration-3a2e378145f8a165.js"> 96 </script>
96 97
97<script defer> 98 /* 99 * Enable in-context translation for Liquid part on the page. 100 * This must be executed last to prevent conflicts with other Vue apps. 101 * So put it to `onload`, which will be executed after DOM ready's app mount 102 */ 103 window.onload = function() { 104 if ( 105 window.shopScriptHelper && 106 window.shopScriptHelper.hasI18nInContextEditing 107 ) { 108 window.initTolgeeForLiquid() 109 } 110 } 111 </script>
111 112
113<script> var google_con_event_labels = [{"conversion_id":"350094521","conversion_event":"order_created","conversion_label":"3HrcCNa119kCELmJ-KYB","id":null},{"conversion_id":"350094521","conversion_event":"add_to_cart","conversion_label":"h83pCP6I7doCELmJ-KYB","id":null},{"conversion_id":"350094521","conversion_event":"account_created","conversion_label":"Jnd1COa26vMCELmJ-KYB","id":null}]</script>
vendor: 1 bytes, line 113
113
114<script src="//cdn1-next.cybassets.com/frontend/shop/pageEventHandler-3a2e378145f8a165.js"></script>
vendor: 1 bytes, line 114
114
115<script src="//cdn1-next.cybassets.com/frontend/shop/globalAnalysis-e4c650eb0b.js"></script>
115 116
116<script> 117 window.c12t = {"customer_id":null,"product":{"id":34203541,"name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":545.0,"brand":"æ±é«å¸«å¥åº·èå/ééªå"}}; 118 </script>
118 119 120 <meta name="request-id" content="00E31575C57EAEC06032860BEF5686B4"/> 121 122<link rel="canonical" href="https://www.drfish.com.tw/products/honey"> 123 124
124<script> 125 window.parent.postMessage({ type: 'previewShopInit', currentUrl: window.location.href }, '*'); 126 </script>
126 127
128<script src="//cdn1-next.cybassets.com/frontend/appStoreSDK/main.2798231628aa7fab87a9.js"></script>
vendor: 1 bytes, line 128
128
129<script>window.CYBERBIZ_AppScriptSettings = {"shop_add_ons":"W3sidmVuZG9yX3R5cGUiOiJDWUJFUkJJWiBHb29nbGUgQW5hbHl0aWNzIDQi\nLCJhcHBfaWQiOiJRVWo1WnFvZUlPUjlaM2JaS2trMG44N3l5a0FpOWU0NURE\naDJ0YlFnaUJBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6IkctSDJEODc3U1I2\nSywgRy00QjdSSzdGSFdIIn19LHsidmVuZG9yX3R5cGUiOiJHb29nbGUgQW5h\nbHl0aWNzIDQiLCJhcHBfaWQiOiJSYkpWMTVFcVZWOHJ1Umo3NVlmV3Z1RUlD\nRm90Q0FPZm0xSDZtZ3hyNkZBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6IlVB\nLTc0NjYxNTc3LTHvvIxHLVZTOTY2MldXVzgifX0seyJ2ZW5kb3JfdHlwZSI6\nIkRpZ2l0YWwgSW50ZWxsaWdlbmNlIFRyYWNrZXIiLCJhcHBfaWQiOiIxYjUw\nYTg2ZGMyZDE0MTgzODhmZGVkZjdhMGQ0MzlhZSIsInNldHRpbmdzIjp7fX1d\n"} 130</script>
vendor: 1 bytes, line 130
130
131<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/9d6f4550aad572e9f70abb70ae5a6552482cf617ea5e4d5a32ed4ebbb5d60d54.js"></script>
vendor: 1 bytes, line 131
131
132<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/a810ec58aab67d16f8de1c4adf06fc7cc9f4477ec503b9cb1a998741bc692652.js"></script>
vendor: 1 bytes, line 132
132
133<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/35cd1f36a4a855bacbaa53900f8e17b376d4cab44c73812eef261aef6435163d.js"></script>
vendor: 1 bytes, line 133
133
134<script>window.CYBERBIZ.initializeSDK.initialize();</script>
vendor: 1 bytes, line 134
134
135<script src="//cdn1-next.cybassets.com/frontend/shop/setAffliateCookie-3a2e378145f8a165.js"></script>
vendor: 1 bytes, line 135
135
136<script src="//cdn1-next.cybassets.com/assets/url-share-attribution-087b8170482449a1d92fbb0c92f9ce3ef38a84f35c52016ed831bd3efd8eed8b.js"></script>
136 137 138 139 140 141<meta name="title" content="é¾ç¼è/èè/碳13åä½ç´ 檢é©100%ç´è/CNSç²ç´-æ±é«å¸«å¥åº·éªå/ééªå"> 142<meta property="og:title" content="é¾ç¼è/èè/碳13åä½ç´ 檢é©100%ç´è/CNSç²ç´-æ±é«å¸«å¥åº·éªå/ééªå"> 143<meta name="description" content="100%ç´èèï¼éé碳13åä½ç´ 檢é©ãCNSç²ç´èèåå®¶æ¨æºæª¢é©é ç´èªèãéæ¹æª¢é©è¾²è¥ãéé屬çï¼æçµå種æå®³æ±æãæ±é«å¸«æéï¼åå¾å®å¿ï¼"> 144<meta property="og:description" content="100%ç´èèï¼éé碳13åä½ç´ 檢é©ãCNSç²ç´èèåå®¶æ¨æºæª¢é©é ç´èªèãéæ¹æª¢é©è¾²è¥ãéé屬çï¼æçµå種æå®³æ±æãæ±é«å¸«æéï¼åå¾å®å¿ï¼"> 145<meta name="keywords" content="é¾ç¼è,èè,碳13åä½ç´ ,,è¾²ç¢,çé®®å® é ,çé®®,æ±é«å¸«,å¥åº·éªå,ééªå,é¶æ±¡æéªå"> 146<meta property="og:url" content="https://www.drfish.com.tw/products/honey"> 147<meta property="og:type" content="og:product">
148<script type="application/ld+json">{"@context":"https://schema.org/","@type":"Product","name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","image":"https://cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNTQxLzE2Mjg1Nzg5MjRfNzJjZjk1N2RlZDg2ZDQ1YmVhZGEuanBlZyJdLFsicCIsInRodW1iIiwiNDgweDQ4MCJdXQ.jpeg?sha=ad8e7fdc1393d314","description":"\u003cp\u003e100%ç´èè-éé碳13åä½ç´ 檢é©èªè\u003cbr\u003e\nCNSç²ç´èèåå®¶æ¨æºæª¢é©é ç´èªè\u003cbr\u003e\nå®ç¨æ²æ³¡ãå å
¥ççª©ãæª¸æª¬çé½é常é©å\u003cbr\u003e\nééæª¢é©é
ç®ï¼\nèèç´åº¦åæãéé屬ãé²è
åãè¥ç©æ®çãè¾²è¥æ®ç\n","brand":"æ±é«å¸«å¥åº·èå/ééªå","sku":"W001D35","offers":{"@type":"Offer","url":"https://www.drfish.com.tw/products/honey","priceCurrency":"TWD","price":"545.0","priceValidUntil":"","availability":"InStock"},"productId":34203541}</script>
148 149 150
150<script> 151 document.addEventListener("DOMContentLoaded", function() { 152 gtag('event', 'view_item', {"items":[{"id":38103565,"name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":545.0},{"id":87834214,"name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":5200.0}],"send_to":["cyberbiz","dynamic_remarketing"]}); 153 }) 154 </script>
154 155 156
156<script> 157 document.addEventListener("DOMContentLoaded", function() { 158 gtag('event', 'view_item', {"items":[{"id":"W001D35","name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":545.0},{"id":"W001D35x12","name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":5200.0}],"send_to":["ecommerce","enhanced_ecommerce"]}); 159 }) 160 </script>
160 161 162 163
163<script> 164 document.addEventListener("DOMContentLoaded", function() { 165 try { 166 var productData = [{"id":"W001D35","product_id":34203541,"variant_id":38103565,"sku":"W001D35","name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":545.0,"compare_at_price":null,"currency":"TWD","inventory_quantity_status":"safety","category":null,"categories":["è¾²ç¢,ç±é·TOP,æç®±åªæ ,ç¹ç´ååº,å ¶å®,å ¨é¨å ¶å®é¡,ä¿é·æ´»åå"],"properties":[{"name":"éé","value":"350g"}],"list_name":""},{"id":"W001D35x12","product_id":34203541,"variant_id":87834214,"sku":"W001D35x12","name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":5200.0,"compare_at_price":6540.0,"currency":"TWD","inventory_quantity_status":"safety","category":null,"categories":["è¾²ç¢,ç±é·TOP,æç®±åªæ ,ç¹ç´ååº,å ¶å®,å ¨é¨å ¶å®é¡,ä¿é·æ´»åå"],"properties":[{"name":"éé","value":"ä¸ç®±(12ç¶)~æç®±åªæ ~"}],"list_name":""}]; 167 168 if (document.referrer.indexOf('collection') !== -1 || document.referrer.indexOf('products') !== -1) { 169 for (var i = 0; i < productData.length; i++) { 170 productData[i].list_name = sessionStorage.getItem("viewedCollection"); 171 } 172 } 173 174 window.CYBERBIZ.eventSDK.callEvent("viewItem", productData) 175 176 window.addEventListener("beforeunload", function(event) { 177 var collection = "ç¸éåå"; 178 sessionStorage.setItem("viewedCollection", collection); 179 }); 180 181 } catch (error) { 182 console.error('Exception catched in appMarketViewItemEvent') 183 } 184 }) 185 </script>
185 186 187
188<script src="//cdn1-next.cybassets.com/frontend/shop/gallery-3a2e378145f8a165.js"></script>
188 189 190 <link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1645775902_51baed71_variables.css?1645775902' rel='stylesheet' type='text/css' media='all' /> 191 192 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 74 bytes, lines 192-193
192 193 <script async src="https://www.googletagmanager.com/gtag/js?id=
193G-H2D877SR6K
vendor: 22 bytes, lines 193-194
193"></script> 194
194<script> 195
vendor: 183 bytes, lines 195-200
195window.dataLayer = window.dataLayer || []; 196 function gtag(){dataLayer.push(arguments);} 197 gtag('js', new Date()); 198 199 200 gtag('config', '
200UA-74661577-1
vendor: 27 bytes, line 200
200', {"groups":"ecommerce"});
200gtag('config', 'G-VS9662WWW8', {"groups":"ecommerce"});gtag('config', 'AW-350094521', {"groups":"dynamic_remarketing"});</script>
200 201
201<script> 202 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 203 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 204 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 205 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 206 207 ga('create', '', 'auto', {'name': 'cyberbiz'}); 208 ga('cyberbiz.require', 'displayfeatures'); 209 ga('cyberbiz.set', 'dimension1', '19282'); 210 ga('cyberbiz.require', 'ec'); 211 ga('cyberbiz.send', 'pageview'); 212 </script>
212 213 214
214<script>
vendor: 426 bytes, lines 214-221
214 215 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 216 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 217 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 218 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 219 document,'script','//connect.facebook.net/en_US/fbevents.js'); 220 221 fbq('init', '
221591048695604808
vendor: 38 bytes, lines 221-222
221', {}, {'agent':'plcyberbiz'}); 222
222fbq('track', "PageView", '', { eventID: "PageView_00E31575C57EAEC06032860BEF5686B4" }); 223 var facebook_pixel_id = '591048695604808'</script>
223 224 225 </head> 226 227 <body style="display: flex; flex-direction: column;"><!-- Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 227-228
227 228 <noscript><iframe src="//www.googletagmanager.com/ns.html?id=
228GTM-55MTGXQ
vendor: 105 bytes, lines 228-230
228" 229 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 230
230<!-- End Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 230-232
230 231 <noscript><iframe 232 src="//www.googletagmanager.com/ns.html?id=
232GTM-TXD9LVJ
vendor: 117 bytes, lines 232-238
232" 233 height="0" 234 width="0" 235 style="display:none;visibility:hidden"> 236 </iframe></noscript> 237 238
238<!-- Navigation --> 239
239<script type="text/javascript"> 240 $(document).ready(function() { 241 WebFont.load({ 242 google: { 243 families: [ 'Noto+Sans+TC:100,300,400,500,700,900&display=swap:chinese-traditional' ] 244 } 245 }); 246 }); 247</script>
247 248 249<span class="drawer drawer--left"> 250 <header id="header"> 251 <div class="hidden-md computer_nav"> 252 <div class="header_logo"> 253 <div class="container"> 254 <div class="relative center"> 255 <!-- logo start --> 256 <nav class="logo"> 257 258 <a href="/"> 259 <img src="//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/img/1631881728_42ed4063_navbar_logo.png?1631881728" height="50" width="auto" alt="logo"> 260 </a> 261 262 </nav> 263 <!-- logo end --> 264 <!-- tool-nav start --> 265 <nav class="tool-nav"> 266 <ul class="link_shelf_top"> 267 <!-- member --> 268 269 <li class="customer_account"> 270 <div class="dropdown static"> 271 <a href="javascript:void(0)" data-toggle="dropdown"> 272 <svg class="member-svg" xmlns="http://www.w3.org/2000/svg" height="26" width="20.8" viewBox="0 0 40 50"> 273 <path d="M26.133,22.686c3.417-2.192,5.692-6.016,5.692-10.368C31.825,5.526,26.299,0,19.507,0S7.188,5.526,7.188,12.318c0,4.352,2.275,8.176,5.692,10.368C5.381,25.098,0,31.457,0,38.926v1.627C0,44.659,3.716,48,8.283,48h22.448c4.567,0,8.283-3.341,8.283-7.447v-1.627C39.014,31.457,33.632,25.098,26.133,22.686z M10.188,12.318 C10.188,7.18,14.368,3,19.507,3s9.319,4.18,9.319,9.318c0,5.139-4.181,9.319-9.319,9.319S10.188,17.457,10.188,12.318zM36.014,40.553c0,2.452-2.37,4.447-5.283,4.447H8.283C5.37,45,3,43.005,3,40.553v-1.627c0-7.879,7.405-14.289,16.506-14.289c9.102,0,16.507,6.41,16.507,14.289L36.014,40.553L36.014,40.553z"/> 274 </svg> 275 <span class="text"></span> 276 </a> 277 <div class="dropdown-menu" role="menu"> 278 <ul id="customer-logined-menu" style="display: none"> 279 <li class="button"> 280 <a href="/account/logout" class="btn-logout">æå¡ç»åº</a> 281 </li> 282 <li class="button"> 283 <a href="/account/index" class="btn-orders">è¨å®æ¥è©¢</a> 284 </li> 285 </ul> 286 <ul id="customer-not-login-menu"> 287 <li class="button"> 288 <a href="/account/login" class="btn-login">æå¡ç»å ¥</a> 289 </li> 290 <li class="button"> 291 <a href="/account/signup" class="btn-signin">è¨»åæ°æå¡</a> 292 </li> 293 </ul> 294 </div> 295 </div> 296 </li> 297 298 <!-- for money symbol --> 299 <div id="money-symbol" data-money-symbol="NT${{amount_no_decimals}}" hidden></div> 300 <!-- cart --> 301 302 <li class="cart"> 303 <!--é»è ¦ççè³¼ç©è»é¸å®--> 304 <div class="dropdown static"> 305 <a href="javascript:void(0)" data-toggle="dropdown" class="shopcart"> 306 <svg class="cart-svg" xmlns="http://www.w3.org/2000/svg" height="26" width="32" viewBox="0 0 60 50"> 307 <path d="M53.651,6.955c-0.285-0.343-0.708-0.542-1.154-0.542H13.471L12.3,1.173 308 C12.147,0.487,11.539,0,10.836,0H1.5C0.671,0,0,0.671,0,1.5S0.672,3,1.5,3h8.134l6.593,29.503c0.153,0.686,0.762,1.173,1.464,1.173 309 h27.882c0.828,0,1.5-0.672,1.5-1.5s-0.672-1.5-1.5-1.5h-26.68l-0.336-1.503l30.61-1.59c0.691-0.036,1.269-0.541,1.396-1.222 310 l3.408-18.172C54.054,7.75,53.937,7.298,53.651,6.955z M47.832,24.648l-29.938,1.554l-3.752-16.79h36.547L47.832,24.648z"/> 311 <path d="M27.829,19.456h9.873c0.828,0,1.5-0.671,1.5-1.5s-0.672-1.5-1.5-1.5h-9.873 312 c-0.829,0-1.5,0.671-1.5,1.5S27,19.456,27.829,19.456z"/> 313 <path d="M22.174,36.563c-3.153,0-5.718,2.565-5.718,5.718S19.021,48,22.174,48s5.719-2.565,5.719-5.719 314 C27.893,39.129,25.328,36.563,22.174,36.563z M22.174,45c-1.499,0-2.718-1.22-2.718-2.719s1.219-2.718,2.718-2.718 315 s2.719,1.219,2.719,2.718S23.673,45,22.174,45z"/> 316 <path d="M44.456,36.563c-3.153,0-5.719,2.565-5.719,5.718S41.302,48,44.456,48s5.719-2.565,5.719-5.719 317 C50.175,39.129,47.609,36.563,44.456,36.563z M44.456,45c-1.499,0-2.719-1.22-2.719-2.719s1.22-2.718,2.719-2.718 318 s2.719,1.219,2.719,2.718S45.955,45,44.456,45z"/> 319 </svg>
320 <span class="global-cart-count" style="display: none;">0</span> 321 <span class="global-cart-loading"></span> 322 </a> 323 <div class="dropdown-menu" role="menu"> 324 <div class="cart_list global-cart-item-list custom-scrollbar"> 325 </div> 326 <div class="button"> 327 <a class="btn-checkout" href="/cart">ç«å³çµå¸³</a> 328 </div> 329 </div> 330 </div> 331 </li> 332 333 <!-- search --> 334 335 <li class="search"> 336 <div class="dropdown static"> 337 <a href="javascript:void(0)" data-toggle="dropdown"> 338 <svg class="saerch-svg" xmlns="http://www.w3.org/2000/svg" height="26" width="26" viewBox="0 0 50 50"> 339 <path d="M49.932,45.439l-9.987-9.987c-0.075-0.075-0.168-0.113-0.253-0.168 340 c2.773-3.688,4.419-8.269,4.419-13.229C44.111,9.894,34.217,0,22.056,0C9.894,0,0,9.894,0,22.055C0,34.217,9.894,44.11,22.055,44.11c6.15,0,11.718-2.533,15.722-6.607c0.019,0.021,0.026,0.049,0.046,0.07l9.987,9.987c0.294,0.294,0.678,0.44,1.062,0.44s0.768-0.146,1.061-0.439C50.518,46.975,50.518,46.025,49.932,45.439z M22.056,41.11c-10.507,0-19.055-8.548-19.055-19.055C3,11.548,11.549,3,22.056,3s19.055,8.548,19.055,19.055C41.111,32.562,32.563,41.11,22.056,41.11z"/> 341 </svg> 342 </a> 343 <div class="dropdown-menu" role="menu"> 344 <div class="search-area"> 345 <form action="/search" class="form-inline"> 346 <div class="form-area"> 347 <input class="form-control" type="search" placeholder="è«è¼¸å ¥ç¢åå" aria-label="Search" name="q" value=""> 348 <button class="btn-search" type="submit">æå°</button> 349 </div> 350 </form> 351 <a href="javascript:void(0)" class="close-dropdown"><i class="fa fas fa-times"></i></a> 352 </div> 353 </div> 354 </div> 355 </li> 356 357 </ul> 358</nav> 359 360 <!-- tool-nav end --> 361 </div> 362 </div> 363 </div> 364 <div class="header_nav"> 365 <div class="container"> 366 <div class="relative center"> 367 <!-- main-nav start --> 368 <nav class="main-nav"> 369 <ul class="link_shelf_top"> 370 371 372 <li> 373 <a href="/"> 374 <span class="text">é¦é </span> 375 </a> 376 </li> 377 378 379 380 381 <!-- 顯示äºç¶ --> 382 <li class="dropdown static"> 383 384 <a href="javascript:void(0)" data-toggle="dropdown"> 385 <span class="text">ç·ä¸è³¼ç©</span> 386 </a> 387 388 <div class="dropdown-menu" role="menu" aria-labelledby=""> 389 <div class="static link_shelf_contents custom-scrollbar custom-scrollbar__always-show"> 390 <div class="row"> 391 392 <div class="col-sm-2"> 393 <ul> 394 <li class="title"> 395 396 <a href="javascript:void(0)"> 397 <span class="text">海鮮水ç¢</span> 398 </a> 399 400 </li> 401 402 403 <li> 404 <a href="/collections/å ¨é¨æ°´ç¢"> 405 <span class="text">å ¨é¨æ°´ç¢</span> 406 </a> 407 </li> 408 409 <li> 410 <a href="/collections/éçé"> 411 <span class="text">éçé</span> 412 </a> 413 </li> 414 415 <li> 416 <a href="/collections/餿®é"> 417 <span class="text">餿®é</span> 418 </a> 419 </li> 420 421 <li> 422 <a href="/collections/è¦è²æ°´ç¢">
423 <span class="text">è¦è²æ°´ç¢</span> 424 </a> 425 </li> 426 427 428 </ul> 429 </div> 430 431 <div class="col-sm-2"> 432 <ul> 433 <li class="title"> 434 435 <a href="javascript:void(0)"> 436 <span class="text">èé¡</span> 437 </a> 438 439 </li> 440 441 442 <li> 443 <a href="/collections/å ¨é¨èé¡"> 444 <span class="text">å ¨é¨èé¡</span> 445 </a> 446 </li> 447 448 <li> 449 <a href="/collections/éè"> 450 <span class="text">éè</span> 451 </a> 452 </li> 453 454 <li> 455 <a href="/collections/豬è"> 456 <span class="text">豬è</span> 457 </a> 458 </li> 459 460 <li> 461 <a href="/collections/å°ç£ç"> 462 <span class="text">å°ç£ç</span> 463 </a> 464 </li> 465 466 467 </ul> 468 </div> 469 470 <div class="col-sm-2"> 471 <ul> 472 <li class="title"> 473 474 <a href="javascript:void(0)"> 475 <span class="text">ä¿å¥é£å</span> 476 </a> 477 478 </li> 479 480 481 <li> 482 <a href="/collections/å ¨é¨ä¿å¥é£å"> 483 <span class="text">å ¨é¨ä¿å¥é£å</span> 484 </a> 485 </li> 486 487 <li> 488 <a href="/collections/å婦ä¿å¥"> 489 <span class="text">å婦ä¿å¥</span> 490 </a> 491 </li> 492 493 <li> 494 <a href="/collections/å ¨ç´ é£"> 495 <span class="text">å ¨ç´ é£</span> 496 </a> 497 </li> 498 499 500 </ul> 501 </div> 502 503 <div class="col-sm-2"> 504 <ul> 505 <li class="title"> 506 507 <a href="javascript:void(0)"> 508 <span class="text">å ¶å®</span> 509 </a> 510 511 </li> 512 513 514 <li> 515 <a href="/collections/å ¨é¨å ¶å®é¡"> 516 <span class="text">å ¨é¨å ¶å®é¡</span> 517 </a> 518 </li> 519 520 <li> 521 <a href="/collections/çé£èª¿ç"> 522 <span class="text">çé£/調ç</span> 523 </a> 524 </li> 525 526 <li> 527 <a href="/collections/è¾²ç¢">
528 <span class="text">è¾²ç¢</span> 529 </a> 530 </li> 531 532 <li> 533 <a href="/collections/çæ´»ç¨åå ¶å®"> 534 <span class="text">çæ´»ç¨å/å ¶å®</span> 535 </a> 536 </li> 537 538 539 </ul> 540 </div> 541 542 </div> 543 </div> 544 </div> 545 </li> 546 547 <!-- linklist end --> 548 549 550 551 552 <!-- 顯示äºç¶ --> 553 <li class="dropdown static"> 554 555 <a href="javascript:void(0)" data-toggle="dropdown"> 556 <span class="text">æ´»åå°å</span> 557 </a> 558 559 <div class="dropdown-menu" role="menu" aria-labelledby=""> 560 <div class="static link_shelf_contents custom-scrollbar custom-scrollbar__always-show"> 561 <div class="row"> 562 563 <div class="col-sm-2"> 564 <ul> 565 <li class="title"> 566 567 <a href="/collections/2026å¹´ä¸ç§ç¯æ´»å-æå®ä¿å¥å任鏿æ£"> 568 <span class="text">2026å¹´ä¸ç§ç¯æ´»å-æå®ä¿å¥åä»»é¸4ä»¶79æ</span> 569 </a> 570 571 </li> 572 573 </ul> 574 </div> 575 576 <div class="col-sm-2"> 577 <ul> 578 <li class="title"> 579 580 <a href="/collections/èªæä¹¾è²¨çµ"> 581 <span class="text">2026å¹´ä¸ç§ç¯æ´»å-èªæä¹¾è²¨ä»»é¸3ä»¶88æèµ·</span> 582 </a> 583 584 </li> 585 586 </ul> 587 </div> 588 589 <div class="col-sm-2"> 590 <ul> 591 <li class="title"> 592 593 <a href="/products/honey"> 594 <span class="text">2026å¹´ä¸ç§ç¯æ´»å-èèç®±åºæ´»å79æ</span> 595 </a> 596 597 </li> 598 599 </ul> 600 </div> 601 602 </div> 603 </div> 604 </div> 605 </li> 606 607 <!-- linklist end --> 608 609 610 611 612 <!-- 顯示äºç¶ --> 613 <li class="dropdown static"> 614 615 <a href="javascript:void(0)" data-toggle="dropdown"> 616 <span class="text">éæ¼æå</span> 617 </a> 618 619 <div class="dropdown-menu" role="menu" aria-labelledby=""> 620 <div class="static link_shelf_contents custom-scrollbar custom-scrollbar__always-show"> 621 <div class="row"> 622 623 <div class="col-sm-2"> 624 <ul> 625 <li class="title"> 626 627 <a href="/pages/about-us"> 628 <span class="text">åçç念</span> 629 </a> 630 631 </li> 632 633 </ul> 634 </div> 635 636 <div class="col-sm-2"> 637 <ul> 638 <li class="title"> 639 640 <a href="/pages/æå¡ç¦å©"> 641 <span class="text">æå¡ç¦å©</span> 642 </a> 643 644 </li> 645 646 </ul> 647 </div> 648 649 <div class="col-sm-2"> 650 <ul> 651 <li class="title"> 652 653 <a href="/contact">
654 <span class="text">è¯çµ¡æå</span> 655 </a> 656 657 </li> 658 659 </ul> 660 </div> 661 662 </div> 663 </div> 664 </div> 665 </li> 666 667 <!-- linklist end --> 668 669 670 671 <li> 672 <a href="/pages/é叿é»"> 673 <span class="text">é叿é»</span> 674 </a> 675 </li> 676 677 678 679 680 <!-- 顯示äºç¶ --> 681 <li class="dropdown static"> 682 683 <a href="javascript:void(0)" data-toggle="dropdown"> 684 <span class="text">ææ°æ¶æ¯</span> 685 </a> 686 687 <div class="dropdown-menu" role="menu" aria-labelledby=""> 688 <div class="static link_shelf_contents custom-scrollbar custom-scrollbar__always-show"> 689 <div class="row"> 690 691 <div class="col-sm-2"> 692 <ul> 693 <li class="title"> 694 695 <a href="/blogs/news"> 696 <span class="text">å¥åº·éªåè¨æ¯</span> 697 </a> 698 699 </li> 700 701 </ul> 702 </div> 703 704 <div class="col-sm-2"> 705 <ul> 706 <li class="title"> 707 708 <a href="/blogs/news-20210806172518"> 709 <span class="text">å¥åº·ä¿å¥ç¥è</span> 710 </a> 711 712 </li> 713 714 </ul> 715 </div> 716 717 </div> 718 </div> 719 </div> 720 </li> 721 722 <!-- linklist end --> 723 724 725 </ul> 726</nav> 727
728<script> 729window.addEventListener('load', function() { 730 $('.link_shelf_second > li').mouseenter(function() { 731 $('.clone_shelf_third').remove(); 732 link_list_id = this.dataset['link_list']; 733 link_id = this.dataset['link']; 734 var ll = $("#link_shelf_third--" + link_id)[0]; 735 736 if (ll !== undefined) { 737 var parentNode = $("#dropdown--" + link_list_id)[0]; 738 var llClone = ll.cloneNode(true); 739 llClone.id = "link_shelf_third_clone--" + link_id; 740 llClone.className = llClone.className + ' clone_shelf_third' 741 llClone.style['display'] = 'block'; 742 llClone.style['top'] = this.getBoundingClientRect()['top'] - parentNode.getBoundingClientRect()['top'] - 2 + 'px'; 743 parentNode.appendChild(llClone); 744 } 745 }); 746 747 $('.dropdown-menu').mouseleave(function() { 748 $('.clone_shelf_third').remove(); 749 }); 750}); 751</script>
751 752 753 <!-- main-nav end --> 754 </div> 755 </div> 756 </div> 757 </div> 758 <div class="visible-md relative"> 759 <!-- mobile-nav start --> 760 <nav class="mobile-nav"> 761 <ul> 762 <li class="sidebar-menu-icon drawer-toggle"> 763 <svg class="menu-svg" xmlns="http://www.w3.org/2000/svg" height="26" viewBox="0 0 50 50"> 764 <path d="M51.529,3H1.5C0.672,3,0,2.329,0,1.5S0.672,0,1.5,0h50.029c0.828,0,1.5,0.671,1.5,1.5 765 S52.357,3,51.529,3z"/> 766 <path d="M51.529,24.023H1.5c-0.828,0-1.5-0.672-1.5-1.5s0.672-1.5,1.5-1.5h50.029 767 c0.828,0,1.5,0.672,1.5,1.5S52.357,24.023,51.529,24.023z"/> 768 <path d="M29.101,45.046H1.5c-0.828,0-1.5-0.672-1.5-1.5s0.672-1.5,1.5-1.5h27.601 769 c0.828,0,1.5,0.672,1.5,1.5S29.929,45.046,29.101,45.046z"/> 770 </svg> 771 </li> 772 773 <li class="logo"> 774 <a href="/" class="img-flex d-flex justify-content-start"> 775 <img src="//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/img/1631881728_42ed4063_navbar_logo.png?1631881728" height="50" width="auto" alt="logo"> 776 </a> 777 </li> 778 779 780 <li class="member"> 781 <a id="customer-phone-nav-icon" href="/account/login"> 782 <svg class="member-svg" xmlns="http://www.w3.org/2000/svg" height="26" viewBox="0 0 40 50"> 783 <path d="M26.133,22.686c3.417-2.192,5.692-6.016,5.692-10.368C31.825,5.526,26.299,0,19.507,0S7.188,5.526,7.188,12.318c0,4.352,2.275,8.176,5.692,10.368C5.381,25.098,0,31.457,0,38.926v1.627C0,44.659,3.716,48,8.283,48h22.448c4.567,0,8.283-3.341,8.283-7.447v-1.627C39.014,31.457,33.632,25.098,26.133,22.686z M10.188,12.318 C10.188,7.18,14.368,3,19.507,3s9.319,4.18,9.319,9.318c0,5.139-4.181,9.319-9.319,9.319S10.188,17.457,10.188,12.318zM36.014,40.553c0,2.452-2.37,4.447-5.283,4.447H8.283C5.37,45,3,43.005,3,40.553v-1.627c0-7.879,7.405-14.289,16.506-14.289c9.102,0,16.507,6.41,16.507,14.289L36.014,40.553L36.014,40.553z"/> 784 </svg> 785 </a> 786 </li> 787 788 789 <li class="cart"> 790 <a href="/cart"> 791 <svg class="cart-svg" xmlns="http://www.w3.org/2000/svg" height="26" viewBox="0 0 60 50"> 792 <path d="M53.651,6.955c-0.285-0.343-0.708-0.542-1.154-0.542H13.471L12.3,1.173 793 C12.147,0.487,11.539,0,10.836,0H1.5C0.671,0,0,0.671,0,1.5S0.672,3,1.5,3h8.134l6.593,29.503c0.153,0.686,0.762,1.173,1.464,1.173 794 h27.882c0.828,0,1.5-0.672,1.5-1.5s-0.672-1.5-1.5-1.5h-26.68l-0.336-1.503l30.61-1.59c0.691-0.036,1.269-0.541,1.396-1.222 795 l3.408-18.172C54.054,7.75,53.937,7.298,53.651,6.955z M47.832,24.648l-29.938,1.554l-3.752-16.79h36.547L47.832,24.648z"/> 796 <path d="M27.829,19.456h9.873c0.828,0,1.5-0.671,1.5-1.5s-0.672-1.5-1.5-1.5h-9.873 797 c-0.829,0-1.5,0.671-1.5,1.5S27,19.456,27.829,19.456z"/> 798 <path d="M22.174,36.563c-3.153,0-5.718,2.565-5.718,5.718S19.021,48,22.174,48s5.719-2.565,5.719-5.719 799 C27.893,39.129,25.328,36.563,22.174,36.563z M22.174,45c-1.499,0-2.718-1.22-2.718-2.719s1.219-2.718,2.718-2.718 800 s2.719,1.219,2.719,2.718S23.673,45,22.174,45z"/> 801 <path d="M44.456,36.563c-3.153,0-5.719,2.565-5.719,5.718S41.302,48,44.456,48s5.719-2.565,5.719-5.719 802 C50.175,39.129,47.609,36.563,44.456,36.563z M44.456,45c-1.499,0-2.719-1.22-2.719-2.719s1.22-2.718,2.719-2.718 803 s2.719,1.219,2.719,2.718S45.955,45,44.456,45z"/> 804 </svg> 805 <span class="number global-cart-count" style="display: none;">0</span> 806 </a> 807 </li> 808 809 810 <li class="search"> 811 <div class="dropdown static"> 812 <a href="javascript:void(0)" data-toggle="dropdown"> 813 <svg class="saerch-svg" xmlns="http://www.w3.org/2000/svg" height="26" viewBox="0 0 50 50"> 814 <path d="M49.932,45.439l-9.987-9.987c-0.075-0.075-0.168-0.113-0.253-0.168
815 c2.773-3.688,4.419-8.269,4.419-13.229C44.111,9.894,34.217,0,22.056,0C9.894,0,0,9.894,0,22.055C0,34.217,9.894,44.11,22.055,44.11c6.15,0,11.718-2.533,15.722-6.607c0.019,0.021,0.026,0.049,0.046,0.07l9.987,9.987c0.294,0.294,0.678,0.44,1.062,0.44s0.768-0.146,1.061-0.439C50.518,46.975,50.518,46.025,49.932,45.439z M22.056,41.11c-10.507,0-19.055-8.548-19.055-19.055C3,11.548,11.549,3,22.056,3s19.055,8.548,19.055,19.055C41.111,32.562,32.563,41.11,22.056,41.11z"/> 816 </svg> 817 </a> 818 <div class="dropdown-menu" role="menu"> 819 <div class="search-area"> 820 <form action="/search" class="form-inline"> 821 <div class="form-area"> 822 <input class="form-control" type="search" placeholder="è«è¼¸å ¥ç¢åå" aria-label="Search" name="q" value=""> 823 <button class="btn-search" type="submit">æå°</button> 824 </div> 825 </form> 826 <a href="javascript:void(0)" class="close-dropdown"><i class="fa fas fa-times"></i></a> 827 </div> 828 </div> 829 </div> 830 </li> 831 832 </ul> 833 </nav> 834 <!-- mobile-nav end --> 835 </div> 836 </header> 837 <!-- Sidebar --> 838 <nav class="drawer-nav" role="navigation"> 839 <div class="drawer-menu"> 840 <ul id="index_sidebar_shelf_top" class="sidebar"> 841 842 <li class="logo"> 843 <a href="/"> 844 <img src="//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/img/1630738291_699d35a7_slider_logo.png?1630738291" height="50" width="auto" alt="logo"> 845 </a> 846 <button class="drawer-toggle"></button> 847 </li> 848 849 850 851 852 853 <li><a href="/">é¦é </a></li> 854 855 856 857 858 <li> 859 <button class="linklist bt-toggle " data-toggle="collapse" data-target=".collapse_index_sidebar_2" aria-expanded=" true "> 860 ç·ä¸è³¼ç© 861 </button> 862 <ul id="index_sidebar_shelf_second_2" class="collapse_index_sidebar_2 collapse shelf_second show "> 863 864 865 866 <li> 867 <button class="linklist bt-toggle " data-toggle="collapse" data-target=".collapse_index_sidebar_2_1" aria-expanded=" true "> 868 æµ·é®®æ°´ç¢ 869 </button> 870 <ul class="collapse_index_sidebar_2_1 collapse shelf_third show "> 871 872 <li><a href="/collections/å ¨é¨æ°´ç¢">å ¨é¨æ°´ç¢</a></li> 873 874 <li><a href="/collections/éçé">éçé</a></li> 875 876 <li><a href="/collections/餿®é">餿®é</a></li> 877 878 <li><a href="/collections/è¦è²æ°´ç¢">è¦è²æ°´ç¢</a></li> 879 880 </ul> 881 </li> 882 883 884 885 886 <li> 887 <button class="linklist bt-toggle " data-toggle="collapse" data-target=".collapse_index_sidebar_2_2" aria-expanded=" true "> 888 èé¡ 889 </button> 890 <ul class="collapse_index_sidebar_2_2 collapse shelf_third show "> 891 892 <li><a href="/collections/å ¨é¨èé¡">å ¨é¨èé¡</a></li> 893 894 <li><a href="/collections/éè">éè</a></li> 895 896 <li><a href="/collections/豬è">豬è</a></li> 897 898 <li><a href="/collections/å°ç£ç">å°ç£ç</a></li> 899 900 </ul> 901 </li> 902 903 904 905 906 <li> 907 <button class="linklist bt-toggle " data-toggle="collapse" data-target=".collapse_index_sidebar_2_3" aria-expanded=" true "> 908 ä¿å¥é£å 909 </button> 910 <ul class="collapse_index_sidebar_2_3 collapse shelf_third show "> 911 912 <li><a href="/collections/å ¨é¨ä¿å¥é£å">å ¨é¨ä¿å¥é£å</a></li> 913 914 <li><a href="/collections/å婦ä¿å¥">å婦ä¿å¥</a></li> 915 916 <li><a href="/collections/å ¨ç´ é£">å ¨ç´ é£</a></li> 917 918 </ul> 919 </li> 920 921 922 923 924 <li> 925 <button class="linklist bt-toggle " data-toggle="collapse" data-target=".collapse_index_sidebar_2_4" aria-expanded=" true "> 926 å ¶å® 927 </button> 928 <ul class="collapse_index_sidebar_2_4 collapse shelf_third show "> 929 930 <li><a href="/collections/å ¨é¨å ¶å®é¡">å ¨é¨å ¶å®é¡</a></li> 931 932 <li><a href="/collections/çé£èª¿ç">çé£/調ç</a></li> 933 934 <li><a href="/collections/è¾²ç¢">è¾²ç¢</a></li> 935 936 <li><a href="/collections/çæ´»ç¨åå ¶å®">çæ´»ç¨å/å ¶å®</a></li> 937 938 </ul> 939 </li> 940 941 942 </ul> 943 </li> 944 945 946 947 948 <li> 949 <button class="linklist bt-toggle " data-toggle="collapse" data-target=".collapse_index_sidebar_3" aria-expanded=" true "> 950 æ´»åå°å 951 </button> 952 <ul id="index_sidebar_shelf_second_3" class="collapse_index_sidebar_3 collapse shelf_second show "> 953 954 955 956 <li><a href="/collections/2026å¹´ä¸ç§ç¯æ´»å-æå®ä¿å¥å任鏿æ£">2026å¹´ä¸ç§ç¯æ´»å-æå®ä¿å¥åä»»é¸4ä»¶79æ</a></li> 957 958 959 960 961 <li><a href="/collections/èªæä¹¾è²¨çµ">2026å¹´ä¸ç§ç¯æ´»å-èªæä¹¾è²¨ä»»é¸3ä»¶88æèµ·</a></li> 962 963 964 965 966 <li><a href="/products/honey">2026å¹´ä¸ç§ç¯æ´»å-èèç®±åºæ´»å79æ</a></li> 967 968 969 </ul> 970 </li> 971 972 973 974 975 <li> 976 <button class="linklist bt-toggle " data-toggle="collapse" data-target=".collapse_index_sidebar_4" aria-expanded=" true "> 977 éæ¼æå 978 </button> 979 <ul id="index_sidebar_shelf_second_4" class="collapse_index_sidebar_4 collapse shelf_second show "> 980 981 982 983 <li><a href="/pages/about-us">åçç念</a></li> 984 985 986 987 988 <li><a href="/pages/æå¡ç¦å©">æå¡ç¦å©</a></li> 989 990 991 992 993 <li><a href="/contact">è¯çµ¡æå</a></li> 994 995 996 </ul> 997 </li> 998 999 1000 1001 1002 <li><a href="/pages/é叿é»">é叿é»</a></li> 1003 1004 1005 1006 1007 <li> 1008 <button class="linklist bt-toggle " data-toggle="collapse" data-target=".collapse_index_sidebar_6" aria-expanded=" true "> 1009 ææ°æ¶æ¯ 1010 </button> 1011 <ul id="index_sidebar_shelf_second_6" class="collapse_index_sidebar_6 collapse shelf_second show "> 1012 1013 1014 1015 <li><a href="/blogs/news">å¥åº·éªåè¨æ¯</a></li> 1016 1017 1018 1019 1020 <li><a href="/blogs/news-20210806172518">å¥åº·ä¿å¥ç¥è</a></li> 1021 1022 1023 </ul> 1024 </li> 1025 1026 1027 1028 1029 <li> 1030 <div class="customer-logined-menu" style="display: none"> 1031 <a href="/account/logout" class="btn-logout">
1032 <span>æå¡ç»åº</span> 1033 <i class="fas fa-sign-out-alt"></i> 1034 </a> 1035 </div> 1036 1037 <div class="customer-not-login-menu"> 1038 <a href="/account/login" class="btn-login"> 1039 <span>ç»å ¥/註å</span> 1040 <i class="fas fa-sign-in-alt"></i> 1041 </a> 1042 </div> 1043 1044 </li> 1045 1046</ul> 1047
1048<script> 1049 $(document).ready(function(){ 1050 // å´éé¸å® 1051 if ($('.drawer').length){ 1052 $('.drawer').drawer(); 1053 $('.bt-toggle').click(function(){ 1054 setTimeout(function(){ 1055 $('.drawer')[0].iScroll.refresh() 1056 },500) 1057 }) 1058 } 1059 }); 1060</script>
1060 1061 1062 </div> 1063 </nav> 1064</span> 1065 1066<link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1630569806_d71248a2_navbar.css?1630569806' rel='stylesheet' type='text/css' media='all' /> 1067<link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/1630569805_599d700a_navbar.css?1630569805' rel='stylesheet' type='text/css' media='all' /> 1068 1069 1070 <!-- template --> 1071 <div id="template" style="flex:1 0 auto;"> 1072 1073 1074<div id="site_path"> 1075 <div class="container"> 1076 <!-- 主é¡çå麵å å± --> 1077 <nav aria-label="breadcrumb"> 1078 <ol class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"> 1079 1080 <li 1081 class="breadcrumb-item 1082 1083 " 1084 itemprop="itemListElement" 1085 itemscope itemtype="http://schema.org/ListItem"> 1086 <!-- home --> 1087 1088 <a href="/" itemprop="item"> 1089 <i class="fas fa-home"></i> 1090 <span style="display: none;" itemprop="name">é¦é </span> 1091 </a> 1092 <!-- account --> 1093 1094 <meta itemprop="position" content="1"/> 1095 </li> 1096 1097 <li 1098 class="breadcrumb-item 1099 1100 " 1101 itemprop="itemListElement" 1102 itemscope itemtype="http://schema.org/ListItem"> 1103 <!-- home --> 1104 1105 1106 <a href="#" itemprop="item" style="display: none;"> 1107 <span itemprop="name">åå</span> 1108 </a> 1109 1110 1111 <a href='/collections/å ¶å®' itemprop='item'><span itemprop='name'>å ¶å®</span></a>, <a href='/collections/å ¨é¨å ¶å®é¡' itemprop='item'><span itemprop='name'>å ¨é¨å ¶å®é¡</span></a>, <a href='/collections/activity17-1' itemprop='item'><span itemprop='name'>ä¿é·æ´»åå</span></a>, <a href='/collections/è¾²ç¢' itemprop='item'><span itemprop='name'>è¾²ç¢</span></a>, <a href='/collections/top' itemprop='item'><span itemprop='name'>ç±é·TOP</span></a>, <a href='/collections/æç®±åªæ ' itemprop='item'><span itemprop='name'>æç®±åªæ </span></a>, <a href='/collections/ç¹ç´ååº' itemprop='item'><span itemprop='name'>ç¹ç´ååº</span></a> 1112 1113 <!-- product --> 1114 1115 <meta itemprop="position" content="2"/> 1116 </li> 1117 1118 <li 1119 class="breadcrumb-item 1120 1121 active " 1122 itemprop="itemListElement" 1123 itemscope itemtype="http://schema.org/ListItem"> 1124 <!-- home --> 1125 1126 <a href="/products/honey" itemprop="item"> 1127 <span itemprop="name">é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ </span> 1128 </a> 1129 <!-- search --> 1130 1131 <meta itemprop="position" content="3"/> 1132 </li> 1133 1134 </ol> 1135 </nav> 1136 </div> 1137</div> 1138 1139 1140<div id="product" class="product" data-cart_quantity_limit="40"> 1141 <div class="container"> 1142 <!-- product info start --> 1143 <div class="product_info"> 1144 <!-- product image start --> 1145 <div class="product_photos"> 1146 1147 <!-- æ²è²ç¥¨ --> 1148 <div class="swiper-container product_img_swiper"> 1149 <ul class="swiper-wrapper"> 1150 1151 1152 <li class="swiper-slide product_photo img-flex"> 1153 <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNTQxLzE2Mjg1Nzg5MjRfNzJjZjk1N2RlZDg2ZDQ1YmVhZGEuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=620fe3a0cc4308ea" width="450" height="450" class="swiper-lazy"> 1154 <div class="swiper-lazy-preloader"></div> 1155 </li> 1156 1157 1158 </ul> 1159 <!-- Add Arrows --> 1160 <div class="swiper-button-next photo-swiper-next swiper-button"></div> 1161 <div class="swiper-button-prev photo-swiper-prev swiper-button"></div> 1162 </div> 1163 <!-- åçé 碼 --> 1164 <div class="thumb"> 1165 <ul class="thumb-container"> 1166 1167 1168 <li class="img-flex active "> 1169 <img class="img-lazy" src="//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/img/1630569804_06c5d9f6_img_loading.svg?1630569804" data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNTQxLzE2Mjg1Nzg5MjRfNzJjZjk1N2RlZDg2ZDQ1YmVhZGEuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=620fe3a0cc4308ea" width="50" hwight="50"> 1170 </li> 1171 1172 1173 </ul> 1174 </div> 1175 1176 </div> 1177 <!-- product image end --> 1178 <!-- product content start -->
1179 <div id="product_content" class="product_content"> 1180 <!-- æ¨é¡ --> 1181 <div class="product_title"> 1182 <h1>é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ </h1> 1183 </div> 1184 <!-- ç°¡è¿° --> 1185 1186 <div class="product_brief"> 1187 <p>100%ç´èè-éé碳13åä½ç´ 檢é©èªè<br> 1188CNSç²ç´èèåå®¶æ¨æºæª¢é©é ç´èªè<br> 1189å®ç¨æ²æ³¡ãå å ¥ççª©ãæª¸æª¬çé½é常é©å<br> 1190ééæª¢é©é ç®ï¼ 1191èèç´åº¦åæãéé屬ãé²è åãè¥ç©æ®çãè¾²è¥æ®ç 1192 1193 </div> 1194 1195 <!-- å» å,æ¨èª --> 1196 <div class="product_vendor_slogan"> 1197 1198 1199 </div> 1200 <!-- ååå®å¹ --> 1201 1202 1203 <div class="product_price" id="price_title" 1204 data-discount-price-name="åªæ å®å¹" 1205 data-discount-price-suggestion-name="建è°å®å¹"> 1206 <!-- 广 ¼title --> 1207 1208 <span class="title">åªæ å®å¹</span> 1209 1210 1211 <!-- åå广 ¼ --> 1212 1213 <div class="price"><span class="money_tag" data-currency-from="TWD" data-min-amount="545.0" data-max-amount="5200.0">NT$545~5200</span></div> 1214 <del></del> 1215 1216 1217 <!--æå¡å¯è¦å¹--> 1218 1219 </div> 1220 <!-- ååsku --> 1221 1222 <div class="product_sku lh30"> 1223 <span>ååç·¨è: </span> 1224 <span class="val">W001D35</span> 1225 </div> 1226 1227 <!-- ä¾è²¨çæ³ --> 1228 1229 1230 <!-- å忬¾å¼ --> 1231 <div id="variant_options" class="variant_options"> 1232 <variant-options-block 1233 :product-api-url="'/products/honey'" 1234 @set-choose="getSelectedDatas" 1235 @get-option-image="getCurrentImage" 1236 > 1237 </variant-options-block> 1238 </div> 1239 1240 <!-- product discounts_list start --> 1241 <div class="product_discounts_list hide"> 1242 <div class="list_block custom-scrollbar"> 1243 <p>æ¤åååèçåªæ æ´»å</p> 1244 1245 </div> 1246 </div> 1247 <!-- product discounts_list end --> 1248 1249 <!-- è¦æ ¼,æ¸é --> 1250 <div class="product_variant_quantity"> 1251 <span class="product_quantity"> 1252 <div class="btn-group" role="group" aria-label="First group"> 1253 <button class="btn btn-light-gray add-down" type="button" ></button> 1254 <input class="btn btn-light-gray item-quantity" type="text" name="quantity" value="1" data-old-value="1"> 1255 <button class="btn btn-light-gray add-up" type="button" ></button> 1256 </div> 1257 </span> 1258 </div> 1259 1260 <!-- 購買æé --> 1261 1262 <div class="product_button"> 1263 <button class="btn addToCart btn_to_cart" type="button" 1264 data-brand="" 1265 data-id="34203541" 1266 data-category="" 1267 data-list="å®ç¢å細覽" 1268 data-name="é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ " 1269 data-quantity="1" 1270 data-position="å ¨é " 1271 data-cid="17566" 1272 data-cname="ShopContext::Collection::Domains::SmartCollection" 1273 data-sku="W001D35">å å ¥è³¼ç©è»</button> 1274 <button class="btn addToCart btn-quick_buy" type="button" data-buy="quick_buy" 1275 data-brand="" 1276 data-id="34203541" 1277 data-category="" 1278 data-list="å®ç¢å細覽" 1279 data-name="é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ " 1280 data-quantity="1" 1281 data-position="å ¨é " 1282 data-cid="17566" 1283 data-cname="ShopContext::Collection::Domains::SmartCollection" 1284 data-sku="W001D35">ç«å³è³¼è²·</button> 1285 <button id="buy-message" class="btn btn_msg hidden" type="button" 1286 data-toggle="modal" data-target="#messagebuy-Modal"> 1287 è¯çµ¡åºå®¶ 1288 </button> 1289 <button class="btn buy-together hidden" type="button" 1290 data-brand="" 1291 data-id="34203541" 1292 data-category="" 1293 data-list="å®ç¢å細覽" 1294 data-name="é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ " 1295 data-quantity="1" 1296 data-position="å ¨é " 1297 data-cid="17566" 1298 data-cname="ShopContext::Collection::Domains::SmartCollection" 1299 data-sku="W001D35">åæè³¼è²·</button> 1300 </div> 1301 <div class="product_button_mobile"> 1302 <button class="btn btn_to_cart_mobile open_product_modal" 1303 data-handle="honey" 1304 data-collection="17566"> 1305 å å ¥è³¼ç©è»</button> 1306 <button class="btn btn_quick_buy_mobile open_quick_buy_modal" 1307 data-handle="honey" 1308 data-collection="17566"> 1309 ç«å³è³¼è²·</button> 1310 <button class="btn btn_msg_mobile hidden" type="button" 1311 data-toggle="modal" data-target="#messagebuy-Modal"> 1312 è¯çµ¡åºå®¶ 1313 </button> 1314 <button class="btn buy-together hidden" type="button" 1315 data-brand="" 1316 data-id="34203541" 1317 data-category="" 1318 data-list="å®ç¢å細覽" 1319 data-name="é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ " 1320 data-quantity="1" 1321 data-position="å ¨é " 1322 data-cid="17566" 1323 data-cname="ShopContext::Collection::Domains::SmartCollection" 1324 data-sku="W001D35">åæè³¼è²·</button> 1325 </div> 1326 <div class="product_button_mobile_default hidden"> 1327 <button class="btn btn_to_cart_mobile_default open_product_modal" 1328 data-handle="honey" 1329 data-collection="17566"> 1330 å å ¥è³¼ç©è»</button> 1331 <button class="btn btn_quick_buy_mobile_default open_quick_buy_modal" 1332 data-handle="honey" 1333 data-collection="17566"> 1334 ç«å³è³¼è²·</button> 1335 <button class="btn btn_msg_mobile_default hidden" type="button" 1336 data-toggle="modal" data-target="#messagebuy-Modal"> 1337 è¯çµ¡åºå®¶ 1338 </button> 1339 <button class="btn buy-together hidden" type="button" 1340 data-brand="" 1341 data-id="34203541" 1342 data-category="" 1343 data-list="å®ç¢å細覽" 1344 data-name="é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ " 1345 data-quantity="1" 1346 data-position="å ¨é " 1347 data-cid="17566" 1348 data-cname="ShopContext::Collection::Domains::SmartCollection" 1349 data-sku="W001D35">åæè³¼è²·</button> 1350 </div> 1351 1352 <!-- å å ¥ææ,é·å®æ¸é,ç´ å©ææµ --> 1353 <div class="product_others">
1354 <span class="product_love"> 1355 <input type="hidden" class="product-variant-id" value="38103565"> 1356 <a class="btn_love scupio-add-wishlist" 1357 data-itemid="W001D35" 1358 data-cid="17566" 1359 data-cname="ShopContext::Collection::Domains::SmartCollection"> 1360 <i class="fas fa-heart"></i>å å ¥ææ 1361 </a> 1362 </span> 1363 1364 <span class="product_bonus" > 1365 æ¤ååå¯ä»¥ææµç´ å© 1366 <span class="val">5200</span> 1367 é» 1368 </span> 1369 </div> 1370 </div> 1371 <!-- product content end --> 1372 </div> 1373 <!-- product info end --> 1374 1375 <!-- product add buy --> 1376 1377 1378 1379 1380 <!-- product add buy end --> 1381 1382 <!-- product description start --> 1383 <div class="product_description"> 1384 <div class="desc_sections"> 1385 <ul> 1386 <!-- ååä»ç´¹ --> 1387 <li><a href="#desc_section_1" class="scroll active"> 1388 <div>ååä»ç´¹</div> 1389 </a></li> 1390 <!-- è¦æ ¼èªªæ --> 1391 1392 <li><a href="#desc_section_2" class="scroll"> 1393 <div>è¦æ ¼èªªæ</div> 1394 </a></li> 1395 1396 <!-- ééæ¹å¼ --> 1397 1398 <!-- ç¥¨å¸æ³¨æäºé --> 1399 1400 <!-- å å ¥è³¼ç©è»modal --> 1401 1402 <li> 1403 <a id="add_to_cart" class="open_product_modal" 1404 data-id="34203541" 1405 data-handle="honey" 1406 data-collection="17566"> 1407 <div>å å ¥è³¼ç©è»</div> 1408 </a> 1409 <a id="message_to_buy" class="open_messagebuy_modal" 1410 data-toggle="modal" 1411 data-target="#messagebuy-Modal"> 1412 <div>è¯çµ¡åºå®¶</div> 1413 </a> 1414 </li> 1415 1416 </ul> 1417 </div> 1418 <div class="desc_body"> 1419 <div id="ckeditor"> 1420 <div id="desc_section_1" class="desc_section"> 1421 <h5 class="section-heading">ååä»ç´¹</h5> 1422 <div class="ckeditor"><p style="text-align: right;">æ³°åæ¸ éçç´æ·¨ç¢å°ï¼é¤èç¶é©å³æ¿3ä»£ï¼æ¡éç¶å£çç¢çé¾ç¼è±èï¼åç¶ééæ¿¾çæ¥é©ï¼è£½æ100%é¾ç¼èï¼é¢¨å³æ¿éé¦çã</p> 1423 1424<p><strong><span style="background-color:#ffff99;">碳13åä½ç´ 檢é©(èè13Cåä½ç´ åæ)éå®è實100%ç´èè</span></strong><br> 1425ééåæèèçç©©å®ç¢³åä½ç´ æ¯å¼ï¼å¯ç²¾æºæª¢é©åºæ·»å 髿ç³ç³æ¼¿æé·æé¤µé£èç³æ°´èçæçè!</p> 1426 1427<p><strong><span style="background-color:#ffff99;">åå®¶æ¨æºæª¢é©é ç´èªèCNSç²ç´èè</span></strong><br> 1428èèçCNSåå®¶æ¨æºæª¢é©èªå®ç²ç´èè</p> 1429 1430<p><strong><span style="background-color:#ffff99;">ééå´æ ¼æª¢é©ï¼å æ¬è¾²è¥ãåç©ç¨è¥ãéé屬ç</span></strong><br> 1431極åæçµèè卿¡èæï¼å¯è½ç¢ççå種æ½å¨ç°å¢æå®³ç©æ±æ</p> 1432 1433<p><span style="color:#d35400;">é£ç¨å»ºè°</span><br> 1434å¯ä¾å人å好ç度ï¼èª¿é 10~15åå·æ°´(æ60âä»¥å §æº«æ°´)飲ç¨ã<br> 1435å¯å å ¥è¬æç²¾åæ¹¯èª¿å³ä½¿ç¨ï¼å代ä¸è¬æç³ç³æ¼¿ã<br> 1436容æçµæ¶ï¼ç´å±¬èªç¶ç¾è±¡ï¼å¯æ¾å¿é£ç¨ãè¥ä¸åæ¡çµæ¶ç壿ï¼å¯ä»¥æ¼60âæº«æ°´éæ°´å ç±ï¼å¾ 溶解å¾å³å¯é£ç¨ã</p> 1437 1438<p>â»æéæ¨ï¼é¾ç¼èè¥çµæ¶ï¼ç´å±¬èªç¶ç¾è±¡ï¼å¯æ¾å¿é£ç¨<br> 1439<span style="color:#e74c3c;">â»æªæ»¿å ©æ²å¬°å¹¼å ï¼ä¸å®é£ç¨èèã</span></p> 1440 1441<p><img alt="100%ç´èèï¼ç¶ç¢³13åä½ç´ 檢é©è實ï¼CNSç²ç´èèåå®¶æ¨æºé ç´èªèãæ±é«å¸«å´æ ¼æéæ¯æ¹æª¢é©è¾²è¥ãéé屬ç" src="//cdn1-next.cybassets.com/s/files/19282/ckeditor/pictures/content_b817950f-0932-40d8-950e-928516fa762c.jpg"></p> 1442 1443<p><span fontfamily:="" style="">æ·å¹´æª¢é©å ±åï¼<a href="http://122.201.158.161/drfishKM/web/CMSResBarCode.aspx?s=c76ceb2f-d5d2-46ee-8712-dfcdb8e35639" target="_blank">2016年檢é©å ±å</a>ã<a href="http://122.201.158.161/drfishKM/web/CMSResBarCode.aspx?s=72ed4423-86ea-4288-a74e-6c50ec689e87" target="_blank">2017年檢é©å ±å</a>ã<a href="http://122.201.158.161/drfishKM/web/CMSResBarCode.aspx?s=65f261ff-a9c5-4526-b4d6-e8d910d7b5a6" target="_blank">2019年檢é©å ±å</a>ã<a href="http://122.201.158.161/drfishKM/web/CMSResBarCode.aspx?s=12c55d44-da4e-464c-bc63-d537bf08da28" target="_blank">2020年檢é©å ±å</a>ã<a href="http://122.201.158.161/drfishKM/web/CMSResBarCode.aspx?s=bdd76ad3-10ce-4a5a-bca2-96bcbeca8c3b" target="_blank">2021年檢é©å ±å</a>ã<a href="http://122.201.158.161/drfishKM/web/CMSResBarCode.aspx?s=b91a7708-ed4a-4a93-a5b6-9a88
144317b02366" target="_blank">2022年檢é©å ±å</a>ã<a href="http://122.201.158.161/drfishKM/web/CMSResBarCode.aspx?s=5bc36ef7-e827-4495-8a63-40f79bc08c0c" target="_blank">2024年檢é©å ±å</a><br> 1444(檢é©é ç®å°ä¾é¢¨éªè©ä¼°é²è¡èª¿æ´ï¼å¯¦é測é è«ä»¥ç¢å檢é©å ±åçºä¸»)</span></p> 1445 1446<p><a href="http://122.201.158.161/drfishKM/web/CMSResBarCode.aspx?s=5bc36ef7-e827-4495-8a63-40f79bc08c0c" target="_blank"><img alt="ææ°æª¢é©å ±å/ç¬¬ä¸æ¹å ¬æ£å¯¦é©å®¤ï¼éæ¹æª¢é©ééï¼ç§å¸æéé£çå®å ¨-æ±é«å¸«å¥åº·éªå/ééªå" src="//cdn1-next.cybassets.com/s/files/19282/ckeditor/pictures/content_5c0eaa24-8cdd-4e8d-998b-784277a9f696.jpg"></a></p> 1447 1448<p> </p> 1449 1450<p><img alt="æ±é«å¸«å¥åº·éªåå ¨å°10å¤éé叿«é»ï¼æé 網路購ç©å®å¿å便å©ï¼å¤éç¥ååªé«å°è¨ªè¯å®" src="//cdn1-next.cybassets.com/s/files/19282/ckeditor/pictures/content_03218533-4d64-4d24-9962-1739d6ca0656.jpg"></p> 1451</div> 1452 </div> 1453 1454 <div id="desc_section_2" class="desc_section"> 1455 <h5 class="section-heading">è¦æ ¼èªªæ</h5> 1456 <div class="ckeditor"><p><img alt="" src="//cdn1-next.cybassets.com/s/files/19282/ckeditor/pictures/content_1044e4d0-36f0-41b9-aa53-925cb4df0f1c.jpg" /></p> 1457</div> 1458 </div> 1459 1460 1461 1462 </div> 1463 </div> 1464 </div> 1465 <!-- product description end --> 1466 </div> 1467</div> 1468 1469<!-- related products start --> 1470<div id="related-products"> 1471 <div class="container"> 1472 1473 1474 1475 1476 1477 1478 <h5 class="section-heading">ç¸éåå</h5> 1479 <div id="swiper_products" class="relative"> 1480 <div class="swiper-container swiper_products GTM-area"> 1481 <div class="swiper-wrapper"> 1482 1483 1484 1485 <div class="swiper-slide product"> 1486 <div class="product_image"> 1487 <a class="productClick img-flex GTM-info" 1488 href="/products/vitaminb" 1489 data-brand="" 1490 data-category="" 1491 data-collection_id="" 1492 data-id="34203467" 1493 data-list="ç¸éåå" 1494 data-name="é«å®ä½ç¶çç´ B群" 1495 data-position="1" 1496 data-price="590.0"> 1497 <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNDY3LzE3NTI3MjQ1ODJfNzVkYzI1ODRhYjE2MTRhYmQ5OTIuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=df4fecc28876728c" alt="product_image" width="250" height="250" class="swiper-lazy"> 1498 <div class="swiper-lazy-preloader-white"></div> 1499 </a> 1500 </div> 1501 1502 <div class="product_slogan"> 1503 <span></span> 1504 </div> 1505 1506 <div class="product_title"> 1507 <a href="/products/vitaminb">é«å®ä½ç¶çç´ B群</a> 1508 </div> 1509 1510 1511 1512 <div class="product_price"><span class="money_tag" data-currency-from="TWD" data-amount="590.0">NT$590</span></div> 1513 1514 <div class="product_btn"> 1515 <button 1516 type="button" 1517 class="btn btn-cart" 1518 data-handle="vitaminb" 1519 data-collection="17570" 1520 data-brand="" 1521 data-category="" 1522 data-collection_id="" 1523 data-id="34203467" 1524 data-list="ç¸éåå" 1525 data-name="é«å®ä½ç¶çç´ B群" 1526 data-photo="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNDY3LzE3NTI3MjQ1ODJfNzVkYzI1ODRhYjE2MTRhYmQ5OTIuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=df4fecc28876728c" 1527 data-price="590.0" 1528 data-position="1" 1529 data-spread-size="38103465,OM00182A,590.0,,,deny,590.0,,é«å®ä½ç¶çç´ B群 - ,,5" 1530 data-cid="17570" 1531 data-cname="ShopContext::Collection::Domains::SmartCollection" 1532 data-sku="OM00182A" 1533 1534 > 1535 <i class="fas fa-shopping-cart"></i> 1536 <span class="text">å å ¥è³¼ç©è»</span> 1537 </button> 1538 </div> 1539 1540 </div> 1541 1542 1543 <div class="swiper-slide product"> 1544 <div class="product_image"> 1545 <a class="productClick img-flex GTM-info" 1546 href="/products/pacific-saury" 1547 data-brand="" 1548 data-category="" 1549 data-collection_id="" 1550 data-id="34203468" 1551 data-list="ç¸éåå" 1552 data-name="ç§åé" 1553 data-position="2" 1554 data-price="180.0"> 1555 <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNDY4LzE2Mjg1ODE4OTlfYWU1ZTdhOWM3NmU4NWE5Mzg0YTMuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=47b49b460c4899e8" alt="product_image" width="250" height="250" class="swiper-lazy"> 1556 <div class="swiper-lazy-preloader-white"></div> 1557 </a> 1558 </div> 1559 1560 <div class="product_slogan">
1561 <span></span> 1562 </div> 1563 1564 <div class="product_title"> 1565 <a href="/products/pacific-saury">ç§åé</a> 1566 </div> 1567 1568 1569 1570 <div class="product_price"><span class="money_tag" data-currency-from="TWD" data-amount="180.0">NT$180</span></div> 1571 1572 <div class="product_btn"> 1573 <button 1574 type="button" 1575 class="btn btn-cart" 1576 data-handle="pacific-saury" 1577 data-collection="17565" 1578 data-brand="" 1579 data-category="" 1580 data-collection_id="" 1581 data-id="34203468" 1582 data-list="ç¸éåå" 1583 data-name="ç§åé" 1584 data-photo="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNDY4LzE2Mjg1ODE4OTlfYWU1ZTdhOWM3NmU4NWE5Mzg0YTMuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=47b49b460c4899e8" 1585 data-price="180.0" 1586 data-position="2" 1587 data-spread-size="38103466,F003W23,180.0,15,,deny,150.0,230g,ç§åé - 230g,cyberbiz,5" 1588 data-cid="17565" 1589 data-cname="ShopContext::Collection::Domains::SmartCollection" 1590 data-sku="F003W23" 1591 1592 > 1593 <i class="fas fa-shopping-cart"></i> 1594 <span class="text">å å ¥è³¼ç©è»</span> 1595 </button> 1596 </div> 1597 1598 </div> 1599 1600 1601 <div class="swiper-slide product"> 1602 <div class="product_image"> 1603 <a class="productClick img-flex GTM-info" 1604 href="/products/mackerel-double" 1605 data-brand="" 1606 data-category="" 1607 data-collection_id="" 1608 data-id="34203469" 1609 data-list="ç¸éåå" 1610 data-name="é¯ééç" 1611 data-position="3" 1612 data-price="190.0"> 1613 <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNDY5LzE2Mjg1ODE4ODZfOGI5ZTQzMDgwZmFmZWZmNTI3ZDYuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=e795a1ac4e67bd1f" alt="product_image" width="250" height="250" class="swiper-lazy"> 1614 <div class="swiper-lazy-preloader-white"></div> 1615 </a> 1616 </div> 1617 1618 <div class="product_slogan"> 1619 <span></span> 1620 </div> 1621 1622 <div class="product_title"> 1623 <a href="/products/mackerel-double">é¯ééç</a> 1624 </div> 1625 1626 1627 1628 <div class="product_price"><span class="money_tag" data-currency-from="TWD" data-amount="190.0">NT$190</span></div> 1629 1630 <div class="product_btn"> 1631 <button 1632 type="button" 1633 class="btn btn-cart" 1634 data-handle="mackerel-double" 1635 data-collection="17565" 1636 data-brand="" 1637 data-category="" 1638 data-collection_id="" 1639 data-id="34203469" 1640 data-list="ç¸éåå" 1641 data-name="é¯ééç" 1642 data-photo="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNDY5LzE2Mjg1ODE4ODZfOGI5ZTQzMDgwZmFmZWZmNTI3ZDYuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=e795a1ac4e67bd1f" 1643 data-price="190.0" 1644 data-position="3" 1645 data-spread-size="38103469,F005W400,190.0,0,,deny,190.0,400g,é¯ééç - 400g,cyberbiz,5" 1646 data-cid="17565" 1647 data-cname="ShopContext::Collection::Domains::SmartCollection" 1648 data-sku="" 1649 1650 > 1651 <i class="fas fa-shopping-cart"></i> 1652 <span class="text">å å ¥è³¼ç©è»</span> 1653 </button> 1654 </div> 1655 1656 </div> 1657 1658 1659 <div class="swiper-slide product"> 1660 <div class="product_image"> 1661 <a class="productClick img-flex GTM-info" 1662 href="/products/sarda-orientalis-belly" 1663 data-brand="" 1664 data-category="" 1665 data-collection_id="" 1666 data-id="34203470" 1667 data-list="ç¸éåå" 1668 data-name="ç ä»è(è ¹è)" 1669 data-position="4" 1670 data-price="180.0"> 1671 <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNDcwLzE2Mjg1ODE4NDZfYWRlNjE2MGVkOTM3MWM3YzAzMDEuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=e3b6706d385d5607" alt="product_image" width="250" height="250" class="swiper-lazy"> 1672 <div class="swiper-lazy-preloader-white"></div> 1673 </a> 1674 </div> 1675 1676 <div class="product_slogan">
1677 <span></span> 1678 </div> 1679 1680 <div class="product_title"> 1681 <a href="/products/sarda-orientalis-belly">ç ä»è(è ¹è)</a> 1682 </div> 1683 1684 1685 1686 <div class="product_price"><span class="money_tag" data-currency-from="TWD" data-amount="180.0">NT$180</span></div> 1687 1688 <div class="product_btn"> 1689 <button 1690 type="button" 1691 class="btn btn-cart" 1692 data-handle="sarda-orientalis-belly" 1693 data-collection="17565" 1694 data-brand="" 1695 data-category="" 1696 data-collection_id="" 1697 data-id="34203470" 1698 data-list="ç¸éåå" 1699 data-name="ç ä»è(è ¹è)" 1700 data-photo="//cdn1-next.cybassets.com/media/W1siZiIsIjE5MjgyL3Byb2R1Y3RzLzM0MjAzNDcwLzE2Mjg1ODE4NDZfYWRlNjE2MGVkOTM3MWM3YzAzMDEuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=e3b6706d385d5607" 1701 data-price="180.0" 1702 data-position="4" 1703 data-spread-size="38103470,F006B150,180.0,0,,deny,180.0,150g,ç ä»è(è ¹è) - 150g,cyberbiz,5|38103471,F006B175,210.0,0,,deny,210.0,175g,ç ä»è(è ¹è) - 175g,cyberbiz,5" 1704 data-cid="17565" 1705 data-cname="ShopContext::Collection::Domains::SmartCollection" 1706 data-sku="" 1707 1708 > 1709 <i class="fas fa-shopping-cart"></i> 1710 <span class="text">å å ¥è³¼ç©è»</span> 1711 </button> 1712 </div> 1713 1714 </div> 1715 1716 </div> 1717 <div class="swiper-pagination"></div> 1718 </div> 1719 <div class="swiper-button-next swiper-products-next"></div> 1720 <div class="swiper-button-prev swiper-products-prev"></div> 1721</div> 1722 1723<link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1630569806_b797d291_swiper_product.css?1630569806' rel='stylesheet' type='text/css' media='all' /> 1724
1725<script> 1726 $(document).ready(function(){ 1727 var slideCount = $(".swiper_products .swiper-slide").length 1728 if (slideCount >= 4){ 1729 var autoLoop = true 1730 }else{ 1731 var autoLoop = false 1732 } 1733 var SwiperProducts = new Swiper('.swiper_products', { 1734 // Disable preloading of all images 1735 preloadImages: false, 1736 // Enable lazy loading 1737 lazy: true, 1738 loop: autoLoop, 1739 slidesPerView: 4, 1740 spaceBetween: 30, 1741 navigation: { 1742 nextEl: '.swiper-products-next', 1743 prevEl: '.swiper-products-prev', 1744 }, 1745 pagination: { 1746 clickable: true, 1747 el: '.swiper-pagination', 1748 type: 'bullets', 1749 }, 1750 breakpoints: { 1751 991: { 1752 slidesPerView: 3, 1753 }, 1754 767: { 1755 slidesPerView: 2, 1756 }, 1757 480: { 1758 slidesPerView: 1, 1759 spaceBetween: 50, 1760 } 1761 } 1762 }); 1763 1764 1765 // new pop modal 1766 $('#swiper_products .btn-cart').click(function() { 1767 var productHandle = '/products/' + $(this).data('handle'); 1768 var collectionId = $(this).data('collection'); 1769 new_addcart_modal.popModal(productHandle, collectionId); 1770 }); 1771 1772 1773 // for GTM 1774 $.each($('.GTM-area'),function(){ 1775 var gtm_product = [] 1776 $.each($(this).find('.GTM-info'),function(index,product){ 1777 productInfo = { 1778 'brand': $(product).data('brand'), 1779 'category': $(product).data('category'), 1780 'id': $ (product).data('id'), 1781 'list': 'Collection: '+ $(product).data('list'), 1782 'name': $(product).data('name'), 1783 'position': $(product).data('position'), 1784 'price': $ (product).data('price'), 1785 'variant': '' 1786 } 1787 if(typeof google_analytics_id != "undefined" && window.enable_ga_ee == true){ 1788 ga('ec:addImpression', productInfo); 1789 } 1790 if(typeof google_tag_manager_id != 'undefined' || typeof cyb != 'undefined'){ 1791 gtm_product.push(productInfo) 1792 } 1793 }) 1794 if(typeof google_analytics_id != 'undefined' && window.enable_ga_ee == true){ 1795 ga('send', 'event', {'nonInteraction': true}); 1796 } 1797 if(typeof google_tag_manager_id != 'undefined' && gtm_product.length > 0){ 1798 dataLayer.push({ 1799 'event': 'productImpressions', 1800 'ecommerce':{ 1801 'impressions': gtm_product 1802 } 1803 }); 1804 } 1805 if(typeof cyb != "undefined" && gtm_product.length > 0){ 1806 cyb.push({ 1807 'event': 'productImpressions', 1808 'impressions': gtm_product 1809 }); 1810 } 1811 }) 1812 }) 1813</script>
1813 1814 1815 1816 </div> 1817</div> 1818<!-- related products end --> 1819
1820<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1641348219_92248928_cart.js?1641348219' type='text/javascript'></script>
vendor: 1 bytes, line 1820
1820
1821<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1630569802_91ab8c8b_product_variant.js?1630569802' type='text/javascript'></script>
1821 1822<link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1637228230_99b3f663_product.css?1637228230' rel='stylesheet' type='text/css' media='all' /> 1823 1824<link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1637228230_ccd85831_vue_product_modal.css?1637228230' rel='stylesheet' type='text/css' media='all' /> 1825<div id="new-addcart-modal" class="container"> 1826 <transition name="modal"> 1827 <product-modal 1828 v-if="showProductModal" 1829 :only-description="onlyDescription" 1830 :product-url="popProductUrl" 1831 :color="color" 1832 :is-collection="isCollection" 1833 :is-show-description="isShowDescription" 1834 :is-quick-buy="isQuickBuy" 1835 :selected-variant-id="selectedVariantId" 1836 > 1837 </product-modal> 1838 </transition> 1839</div>
1840<script type="text/x-template" id="product-modal"> 1841 <div class="modal-mask" @click="closeModal"> 1842 <div 1843 class="modal-content" 1844 :class="{'only-description': onlyDescription}" 1845 @click.stop 1846 > 1847 <button class="btn-close" @click="closeModal"> 1848 </button> 1849 <div class="modal-body custom-scrollbar"> 1850 <div v-if="!isLoading"> 1851 <div id="checkout-product" class="row"> 1852 <div class="col-sm-6 col-xs-4"> 1853 <photo-swiper 1854 :photos="swiperPhotos" 1855 :current-image-index="currentImageIndex" 1856 > 1857 </photo-swiper> 1858 </div> 1859 <div class="col-sm-6 col-xs-8"> 1860 <h4 class="title">${ product.title }</h4> 1861 <p class="brief" v-html="product.brief"></p> 1862 <p class="color grey product-slogan"></p> 1863 <div style="margin-bottom: 10px;"> 1864 <div v-if="!isImageColor" v-for="(img, index) in photoUrls" 1865 :key="index" 1866 class="product-thumbnail" 1867 :class="{ focus: index === currentImageIndex }" 1868 @mouseover="currentImageIndex = index" 1869 > 1870 <img :src="img.medium"> 1871 </div> 1872 </div> 1873 1874 <div style="margin-bottom: 10px;"> 1875 1876 <span class="price-title">${ priceTitleTag }</span> 1877 1878 <div> 1879 <span v-html="variantPrice" class="variant-price"></span> 1880 <del v-html="marketPrice" class="variant-del-price"></del> 1881 </div> 1882 </div> 1883 <div v-if="!onlyDescription" class="controls"> 1884 <div class="variant-quantity"> 1885 <div v-if="hasVariant" class="product-variant-options"> 1886 <div v-for="(option, index) in optionInfo" class="product-variant-option"> 1887 <color-image-option 1888 v-if="isImageColor && option.name === 'é¡è²'" 1889 :option-key="'option' + (index + 1)" 1890 :option="option" 1891 :image-colors="imageColors()" 1892 :current-image-index="currentImageIndex" 1893 :set-current-image-index="setCurrentImageIndex" 1894 :get-option-image-index="getOptionImageIndex" 1895 :current-option="currentOption" 1896 :toggle-current-option="toggleCurrentOption" 1897 /> 1898 <advance-option 1899 v-else 1900 :option-key="'option' + (index + 1)" 1901 :option="option" 1902 :current-option="currentOption" 1903 :toggle-current-option="toggleCurrentOption" 1904 /> 1905 </div> 1906 </div> 1907 <div 1908 class="product_discounts_list" 1909 v-show="displayProductDiscountsList && ((displayPeriodicSalesPages && product.showableSalesPages.length > 0) || !!discountsList)" 1910 > 1911 <div class="list_block custom-scrollbar"> 1912 <h4>æ¤åååèçåªæ æ´»å</h4> 1913 <template v-if="displayPeriodicSalesPages"> 1914 <div v-for="salesPage in product.showableSalesPages" class="discount-list"> 1915 <span class="discount-label">宿å®é¡</span> 1916 <a class="discount-title" :href="salesPage.path">${ salesPage.title }</a> 1917 </div> 1918 </template> 1919 <template v-for="discounts in discountsList"> 1920 <div v-for="discount in discounts" class="discount-list"> 1921 <a v-if="discount.url" :href="discount.url" class="discount-title"> 1922 ${ discount.title } 1923 </a> 1924 <span v-else class="discount-title">${ discount.title }</span> 1925 </div> 1926 </template> 1927 </div> 1928 </div> 1929 <div class="product-quantity"> 1930 <div class="btn-group" role="group" aria-label="First group"> 1931 <button class="btn add-down" type="button" @click="quantityDecrease">ï¼</button> 1932 <input class="btn item-quantity" type="text" name="quantity" :value="quantity" @change="quantityChange"> 1933 <button class="btn add-up" type="button" @click="quantityIncrease" >ï¼</button> 1934 </div> 1935 </div> 1936 </div> 1937 <div class="add-button-wrapper"> 1938 <button 1939 class="btn btn-default add-button" 1940 :class="{selected: isChoose, adding: adding || isHideAddCartBtn, secondary: isSecondaryBtn}" 1941 type="button" 1942 :disabled="isHideAddCartBtn" 1943 @click="addProduct" 1944 > 1945 ${ addCartText } 1946 </button> 1947 </div> 1948 <div class="product-others">
1949 <span class="product-love"> 1950 <a class="btn-love" @click="addWishList"> 1951 <i class="fas fa-heart"></i>å å ¥ææ 1952 </a> 1953 </span> 1954 <span class="product_sold" v-if="false"> 1955 <span>å·²é·å®: ${ product.totalSold } ä»¶</span> 1956 </span> 1957 <span class="product_bonus" v-if="true"> 1958 æ¤ååå¯ä»¥ææµç´ å© 1959 <span class="val" v-if="currentVariant">${currentVariant.maxUsableBonus}</span> 1960 <span class="val" v-else>${maxUsableBonus}</span> 1961 é» 1962 </span> 1963 </div> 1964 </div> 1965 </div> 1966 </div> 1967 <div v-if="isShowDescription" class="row"> 1968 <div class="col-sm-12"> 1969 <div v-if="product.bodyHtml"> 1970 <h5 class="section-heading"> 1971 ååä»ç´¹ 1972 </h5> 1973 <div class="ckeditor"> 1974 <div v-html="product.bodyHtml"></div> 1975 </div> 1976 </div> 1977 1978 <div v-if="otherDescriptions['product_description_section_spec']"> 1979 <h5 class="section-heading"> 1980 è¦æ ¼èªªæ 1981 </h5> 1982 <div class="ckeditor"> 1983 <div v-html="otherDescriptions['product_description_section_spec']"></div> 1984 </div> 1985 </div> 1986 1987 1988 </div> 1989 </div> 1990 </div> 1991 <div v-show="isLoading" style="text-align: center; padding-bottom: 20px;"> 1992 <i class="fas fa-spinner fa-spin fa-fw fa-2x"></i> 1993 </div> 1994 </div> 1995 <button 1996 v-if="!isLoading && !onlyDescription" 1997 class="btn btn-mobile add-button" 1998 :class="{selected: isChoose, adding: adding || isHideAddCartBtn, secondary: isSecondaryBtn}" 1999 type="button" 2000 :disabled="isHideAddCartBtn" 2001 @click="addProduct" 2002 > 2003 ${ addCartText } 2004 </button> 2005 </div> 2006 </div> 2007</script>
2007 2008
2009<script id="color-image-option" type="text/x-template"> 2010 <div class="color-image"> 2011 <div class="title">é¡è²</div> 2012 <div 2013 v-for="(imageColor, index) in imageColors" 2014 :class="{ 2015 'image-option': true, 2016 'focus': !currentOption[optionKey] === option.types[index].name && currentImageIndex === index, 2017 'selected': currentOption[optionKey] === option.types[index].name, 2018 'disabled': !option.types[index].isValid 2019 }" 2020 @mouseleave="setCurrentImageIndex(index)" 2021 @mouseover="getOptionImageIndex(index)" 2022 @click="setOption(optionKey, index)" 2023 > 2024 <img v-if="imageColor !== 'noColorImage'" :src="imageColor.large" alt="image"> 2025 <img v-else src="/assets/no-image-large.png" alt="image"> 2026 </div> 2027 </div> 2028</script>
2028 2029
2030<script type="text/javascript"> 2031 Vue.component('color-image-option', { 2032 template: '#color-image-option', 2033 delimiters: ['${', '}'], 2034 props: { 2035 optionKey: String, 2036 option: Object, 2037 product: Object, 2038 imageColors: Array, 2039 isChoose: Boolean, 2040 currentImageIndex: Number, 2041 setCurrentImageIndex: Function, 2042 getOptionImageIndex: Function, 2043 currentOption: Object, 2044 toggleCurrentOption: Function, 2045 }, 2046 methods: { 2047 setOption: function(optionKey, index) { 2048 const type = this.option.types[index]; 2049 if(type.isValid){ 2050 this.toggleCurrentOption(optionKey, type.name); 2051 } 2052 } 2053 } 2054 }); 2055</script>
2055 2056
2057<script id="advance-option" type="text/x-template"> 2058 <div class="advance"> 2059 <div class="title">${option.name}</div> 2060 <div 2061 v-for="type in option.types" 2062 :class="{ 2063 'option': true, 2064 'selected': currentOption[optionKey] === type.name, 2065 'disabled': !type.isValid 2066 }" 2067 @click="setOption(optionKey, type)" 2068 > 2069 ${type.name} 2070 </div> 2071 </div> 2072</script>
2072 2073
2074<script type="text/javascript"> 2075 Vue.component('advance-option', { 2076 template: '#advance-option', 2077 delimiters: ['${', '}'], 2078 props: { 2079 optionKey: String, 2080 option: Object, 2081 product: Object, 2082 imageColors: Array, 2083 currentImageIndex: Number, 2084 setCurrentImageIndex: Function, 2085 currentOption: Object, 2086 toggleCurrentOption: Function, 2087 }, 2088 methods: { 2089 setOption: function(optionKey, type) { 2090 if(type.isValid){ 2091 this.toggleCurrentOption(optionKey, type.name); 2092 } 2093 } 2094 } 2095 }); 2096</script>
2096 2097
2098<script id="photo-swiper" type="text/x-template"> 2099 <swiper ref="photoSwiper" class="photos" :options="swiperOption"> 2100 <swiper-slide v-if="hasImage" class="photo" v-for="(photo, index) in photos" :key="index"> 2101 <img key="index" :src="photo.large" alt="image"/> 2102 </swiper-slide> 2103 <swiper-slide v-if="!hasImage" class="photo"> 2104 <img src="/assets/no-image-large.png" alt="image"> 2105 </swiper-slide> 2106 <div v-if="hasImage" class="photo-button photo-prev" slot="button-prev"></div> 2107 <div v-if="hasImage" class="photo-button photo-next" slot="button-next"></div> 2108 </swiper> 2109</script>
vendor: 1 bytes, line 2109
2109
2110<script> 2111 $(document).ready(function () { 2112 Vue.use(VueAwesomeSwiper); 2113 Vue.component('photo-swiper', { 2114 template: '#photo-swiper', 2115 delimiters: ['${', '}'], 2116 props: { 2117 photos: Array, 2118 currentImageIndex: Number, 2119 }, 2120 data: function () { 2121 return { 2122 swiper: {}, 2123 swiperOption: { 2124 spaceBetween: 10, 2125 navigation: { 2126 nextEl: '.photo-next', 2127 prevEl: '.photo-prev' 2128 } 2129 }, 2130 } 2131 }, 2132 mounted: function() { 2133 this.swiper = this.$refs['photoSwiper'].swiper; 2134 this.swiper.on('slideChange', this.slideOnChange); 2135 this.slideToIndex(this.currentImageIndex); 2136 }, 2137 watch: { 2138 currentImageIndex: function() { 2139 this.slideToIndex(this.currentImageIndex); 2140 } 2141 }, 2142 computed: { 2143 hasImage: function() { 2144 return this.photos.length > 0 ? true : false; 2145 } 2146 }, 2147 methods: { 2148 slideOnChange: function() { 2149 themeHelper.EventBus.$emit('photoOnChange', this.swiper.realIndex); 2150 }, 2151 slideToIndex: function(index) { 2152 this.swiper.slideTo(index); 2153 this.swiper.update(); 2154 } 2155 } 2156 }); 2157 }); 2158</script>
2158 2159 2160
2161<script type="text/javascript"> 2162 $(document).ready(function() { 2163 Vue.component('product-modal', { 2164 template: '#product-modal', 2165 delimiters: ['${', '}'], 2166 props: { 2167 onlyDescription: Boolean, 2168 cartItems: Array, 2169 groupId: Number, 2170 productUrl: String, 2171 color: String, 2172 // 夿·æ¯å¦æè²ç¥¨å±é 2173 isCollection: Boolean, 2174 // 夿·å å ¥è³¼ç©è»çæ¹æ³ 2175 isNnCollection: Boolean, 2176 isBundleDiscount: Boolean, 2177 // 夿·æ¯å¦é¡¯ç¤ºååæè¿° 2178 isShowDescription: { 2179 type: Boolean, 2180 default: true 2181 }, 2182 // 夿·æ¯å¦çºç«å³è³¼è²· 2183 isQuickBuy: { 2184 type: Boolean, 2185 default: false 2186 }, 2187 selectedVariantId: Number, 2188 }, 2189 data: function() { 2190 return { 2191 adding: false, 2192 currentImageIndex: 0, 2193 currentOption: { 2194 option1: null, 2195 option2: null, 2196 option3: null, 2197 }, 2198 currentVariant: null, 2199 currentVariantIndex: null, 2200 product: {}, 2201 isChoose: false, 2202 isLoading: true, 2203 isEmptyClickable: liquidHelper.isEmptyClickable, 2204 quantity: 1, 2205 maxUsableBonus: 0, 2206 useImageColors: false, 2207 useColorImagesExpand: false, 2208 displayProductDiscountsList: true, 2209 displayPeriodicSalesPages: false, 2210 discountsList: null, 2211 } 2212 }, 2213 mounted: function() { 2214 this.getProductDetail(); 2215 $('.custom-scrollbar').addCustomScrollbar(); 2216 themeHelper.EventBus.$on('photoOnChange', this.photoOnChange); 2217 }, 2218 computed: { 2219 photoUrls: function() { 2220 return this.product.photoUrls.length > 0 ? this.product.photoUrls : [this.featuredImage]; 2221 }, 2222 featuredImage: function() { 2223 return this.product.featuredImage; 2224 }, 2225 swiperPhotos: function() { 2226 if(this.isColorImageExpand && this.isCollection) { 2227 var temp = this.photoUrls[this.colorImageIndex()]; 2228 return [temp]; 2229 } 2230 if(this.isImageColor) { 2231 return this.photoUrls.slice(0, this.colorOption.length); 2232 } 2233 return this.photoUrls.length > 0 ? this.photoUrls : [this.featuredImage]; 2234 }, 2235 otherDescriptions: function() { 2236 var descriptions = {}; 2237 this.product.otherDescriptions.forEach(function(od) { 2238 descriptions[od.settingName] = od.bodyHtml; 2239 }) 2240 return descriptions 2241 }, 2242 variantOptions: function() { 2243 var currentColor = this.currentColorOption; 2244 return (!this.isImageColor || !currentColor) 2245 ? themeHelper.variantOptions(this.product) 2246 : _.filter(themeHelper.variantOptions(this.product), function(option) { 2247 return _.includes(option.name, currentColor) 2248 }) 2249 }, 2250 firstValidVariant: function() { 2251 var self = this; 2252 var result = this.product.variants.find(function(variant) { 2253 // å¢å product modal è¯çµ¡åºå®¶ property 2254 variant.imgUrl = ""; 2255 variant.productTitle = ""; 2256 2257 if(self.isColorImageExpand){ 2258 return variant.available && variant.title.indexOf(self.color) !== -1; 2259 } 2260 return variant.available; 2261 }); 2262 2263 return result ? result : null; 2264 }, 2265 selectedValidVariant: function() { 2266 var self = this; 2267 var result = this.variantOptions.find(function(variant) { 2268 return variant.id === self.selectedVariantId; 2269 }); 2270 2271 var selectedColor = result['option' + (this.colorOptionIndex + 1)]; 2272 this.currentImageIndex = _.findIndex(this.colorOption, function(color) { 2273 return color === selectedColor; 2274 }); 2275 2276 if (this.currentImageIndex !== -1) { 2277 result.imgUrl = this.swiperPhotos[this.currentImageIndex].large; 2278 } 2279 2280 return result ? result : null; 2281 }, 2282 totalInventoryQuantity: function(product) { 2283 return themeHelper.totalInventoryQuantity(this.product) 2284 }, 2285 addCartText: function() { 2286 if (this.isNnCollection || this.isBundleDiscount) { 2287 if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) { 2288 if (this.currentVariant.inventoryPolicy === 'continue') { 2289 if (this.isNnCollection) { 2290 return this.isChoose ? 'å·²é è³¼' : 'é è³¼åå'; 2291 } 2292 } else { 2293 return 'å·²å®å®'; 2294 } 2295 } 2296 if (this.totalInventoryQuantity === 0) return 'å·²å®å®'; 2297 return this.isChoose ? 'å·²é¸è³¼' : 'é¸è³¼'; 2298 } else { 2299 if (this.isQuickBuy) { 2300 if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) { 2301 return this.currentVariant.inventoryPolicy === 'continue' ? 'ç«å³é è³¼' : 'è¯çµ¡åºå®¶'; 2302 } 2303 return 'ç«å³è³¼è²·'; 2304 } else { 2305 if (this.currentVariant) { 2306 if (!themeHelper.variantIsAvailable(this.currentVariant)) { 2307 return this.currentVariant.inventoryPolicy === 'continue' ? 'é è³¼åå' : 'è¯çµ¡åºå®¶'; 2308 } 2309 } else { 2310 if (this.totalInventoryQuantity === 0) { 2311 return 'å·²å®å®'; 2312 } 2313 } 2314 return 'å å ¥è³¼ç©è»'; 2315 } 2316 } 2317 }, 2318 cartItem: function() { 2319 if (!this.currentVariant) { return null } 2320 return { 2321 id: this.currentVariant.id, 2322 groupId: this.groupId, 2323 productId: this.product.id, 2324 title: this.product.title, 2325 photo: this.isImageColor ? 2326 this.photoUrls[this.colorOption.indexOf(this.currentColorOption)].large : 2327 this.featuredImage.large, 2328 quantity: this.quantity, 2329 price: this.currentVariant.price, 2330 variant: this.currentVariant, 2331 product: this.product, 2332 } 2333 }, 2334 options: function() { 2335 return this.product.options; 2336 }, 2337 optionTypes: function() { 2338 // å æ ¹æè¨å®çvariantsä¾æåº 2339 var self = this; 2340 2341 var option1 = []; 2342 var option2 = []; 2343 var option3 = [];
2344 this.product.variants.forEach(function(item) { 2345 if (item.option1 !== null) option1.push(item.option1); 2346 if (item.option2 !== null) option2.push(item.option2); 2347 if (item.option3 !== null) option3.push(item.option3); 2348 }) 2349 2350 var filteredOptionTypes = []; 2351 this.product.optionTypes.forEach(function(item, index) { 2352 filteredOptionTypes.push(self.getUniqueVariant(eval('option' + (index + 1))).join(',')); 2353 }); 2354 2355 return filteredOptionTypes; 2356 }, 2357 optionInfo: function() { 2358 var self = this; 2359 2360 return self.options.map(function(option, index) { 2361 if(self.isColorImageExpand && option === 'é¡è²') { 2362 return { 2363 name: option, 2364 types: self.getOptions('option' + (index + 1), self.optionTypes[index].split(',')) 2365 .filter(function(option) { 2366 //åªæä»»é¸ææ£è·collectionææcolorå³å ¥ 2367 return option.name === self.color; 2368 }) 2369 } 2370 } 2371 return { 2372 name: option, 2373 types: self.getOptions('option' + (index + 1), self.optionTypes[index].split(',')) 2374 } 2375 }); 2376 }, 2377 colorOptionIndex: function() { 2378 return this.options.findIndex(function(option) { 2379 return option === 'é¡è²'; 2380 }); 2381 }, 2382 colorOption: function() { 2383 var optionIndex = this.colorOptionIndex 2384 return optionIndex === -1 ? null : this.optionTypes[optionIndex].split(','); 2385 }, 2386 hasVariant: function() { 2387 return this.product.options.length > 0; 2388 }, 2389 isImageColor: function() { 2390 return this.useImageColors && _.includes(this.product.options, 'é¡è²'); 2391 }, 2392 isImageColorWithSelect: function() { 2393 return this.isImageColor; 2394 }, 2395 isColorImageExpand: function() { 2396 return this.useImageColors && this.useColorImagesExpand && this.isCollection; 2397 }, 2398 variantPrice: function() { 2399 if (!this.currentVariant) { 2400 if (this.product.variants.length > 1) { 2401 var priceList = this.product.variants.map(function(item){ 2402 return item.price; 2403 }); 2404 2405 var minPrice = Math.min.apply(null, priceList); 2406 var maxPrice = Math.max.apply(null, priceList); 2407 2408 if (minPrice !== maxPrice) { 2409 return getMoneyFormat(minPrice) + '~' + maxPrice; 2410 } else { 2411 return getMoneyFormat(this.product.variants[0].price); 2412 } 2413 2414 } else { 2415 return getMoneyFormat(this.product.variants[0].price); 2416 } 2417 2418 } else { 2419 return getMoneyFormat(this.currentVariant.price); 2420 } 2421 }, 2422 marketPrice: function() { 2423 if (this.currentVariant) { 2424 if (this.currentVariant.compareAtPrice && this.currentVariant.compareAtPrice > this.currentVariant.price) { 2425 return getMoneyFormat(this.currentVariant.compareAtPrice); 2426 } 2427 } else { 2428 // 妿å®å¹çç¸åï¼ä½ååé çå¸å¹ä¸åæ 2429 if (this.product.variants.length > 1 && !_.includes(this.variantPrice, '~')) { 2430 var compareAtPriceList = this.product.variants.map(function(itme){ 2431 return itme.compareAtPrice; 2432 }); 2433 2434 var maxCompareAtPrice = Math.max.apply(null, compareAtPriceList); 2435 if (maxCompareAtPrice > 0) { 2436 return getMoneyFormat(maxCompareAtPrice); 2437 } 2438 } 2439 } 2440 }, 2441 isShowDropdownList: function() { 2442 if (this.product.options.length > 0) return true; 2443 return this.product.variants.length > 1 ? true : false; 2444 }, 2445 priceTitleTag: function() { 2446 return this.marketPrice ? getDiscountPriceName() : getDiscountPriceSuggestionName(); 2447 }, 2448 currentColorOption: function() { 2449 return this.currentOption['option' + (this.colorOptionIndex + 1)] 2450 }, 2451 isHideAddCartBtn: function() { 2452 if (this.addCartText === 'å·²å®å®') return true; 2453 return false;
2454 }, 2455 isSecondaryBtn: function() { 2456 if (this.addCartText === 'è¯çµ¡åºå®¶') return true; 2457 return false; 2458 }, 2459 variantsMaxUsableBonus: function() { 2460 var variants = this.product.variants; 2461 var maxUsableBonusArray = variants.map(function(item) { 2462 return item.maxUsableBonus 2463 }); 2464 return Math.max.apply(null, maxUsableBonusArray); 2465 }, 2466 }, 2467 methods: { 2468 addWishList: function() { 2469 if (this.currentVariant === null) { 2470 window.msg('è«é¸æå忬¾å¼', 'warning').show(); 2471 return; 2472 } 2473 var productVariantId = this.currentVariant.id; 2474 $.ajax({ 2475 method: 'POST', 2476 url: '/tracking_items', 2477 dataType: 'json', 2478 data: {product_variant_id: productVariantId}, 2479 success:function(response){ 2480 if(response.message) window.msg(response.message, 'success').show(); 2481 if(response.error) window.msg(response.error, 'error').show(); 2482 if(response.info) window.msg(response.info, 'info').show(); 2483 if(response.success === false) window.location = '/account/login'; 2484 } 2485 }); 2486 }, 2487 setChoose: function(currentVariant) { 2488 this.maxUsableBonus = 0; 2489 var quantity = 1; 2490 var cartItem = null; 2491 if (!this.isNnCollection && this.cartItems) { 2492 cartItem = this.normalGetChoosenItem(currentVariant); 2493 } 2494 if(this.isNnCollection){ 2495 cartItem = this.nnCollectionGetChoosenItem(currentVariant); 2496 } 2497 this.isChoose = !!cartItem; 2498 this.quantity = cartItem ? cartItem.quantity : this.quantity; 2499 2500 // product modal è¯çµ¡åºå®¶æ å¢ 2501 if (currentVariant) { 2502 var photoIndex = this.getSelectedColorIndex() > 0 ? this.getSelectedColorIndex() : 0; 2503 if (!currentVariant.imgUrl) { 2504 currentVariant.imgUrl = this.swiperPhotos.length > 0 ? this.swiperPhotos[photoIndex].large : this.featuredImage.large; 2505 } 2506 currentVariant.productTitle = this.product.title + ' - ' + this.currentVariant.title; 2507 } 2508 }, 2509 normalGetChoosenItem: function(currentVariant) { 2510 return this.cartItems.find(function(cartItem){ 2511 return currentVariant && cartItem.id === currentVariant.id; 2512 }); 2513 }, 2514 nnCollectionGetChoosenItem: function(currentVariant) { 2515 var isSelected = null; 2516 if(!currentVariant) return isSelected; 2517 2518 store.each(function(value, key) { 2519 var productId = _.includes(key, 'Pro' + currentVariant.productId); 2520 var variantID = _.includes(key, 'Var' + currentVariant.id); 2521 if(productId && variantID) { 2522 isSelected = store.get(key); 2523 } 2524 }); 2525 return isSelected; 2526 }, 2527 // get product detail 2528 getProductDetail: function() { 2529 var self = this; 2530 $.ajax({ 2531 url: self.productUrl + '.json', 2532 type: 'GET', 2533 timeout: 30000, 2534 beforeSend: function() { 2535 self.isLoading = true; 2536 }, 2537 error: function(){ 2538 window.msg('網路é£ç·ç°å¸¸ï¼è«éæ°æ´ç', 'error').show(); 2539 self.closeModal(); 2540 } 2541 }).done(function(data){ 2542 if (data.id) { 2543 var productData = [themeHelper.toCamelCase(data)]; 2544 self.product = themeHelper.priceWithDiscount(productData, liquidHelper.hasPriceWithDiscountPlugin)[0]; 2545 self.maxUsableBonus = self.variantsMaxUsableBonus; 2546 if ( 2547 self.product.variants.length === 1 || 2548 liquidHelper.isFirstVariantSelected || 2549 self.selectedVariantId 2550 ) { 2551 self.currentVariant = self.firstValidVariant; 2552 // 妿已ç¶èªé¸ååï¼åååé 䏿»å å ¥è³¼ç©è»é¡¯ç¤ºèªé¸åå 2553 if (self.selectedVariantId) { 2554 self.currentVariant = self.selectedValidVariant; 2555 } 2556 if(self.currentVariant){ 2557 self.setChoose(self.currentVariant); 2558 self.setDefaultOption(); 2559 } 2560 } 2561 if (self.displayProductDiscountsList) { 2562 self.setUpDiscountsTag(data); 2563 } 2564 self.isLoading = false;
2565 viewItem && viewItem(data, { collectionId: '', collectionName: null }); 2566 } else { 2567 window.msg('網路é£ç·ç°å¸¸ï¼è«éæ°æ´ç', 'error').show(); 2568 self.closeModal() 2569 } 2570 }) 2571 }, 2572 // product image btn 2573 photoOnChange: function(photoIndex) { 2574 this.currentImageIndex = photoIndex; 2575 }, 2576 2577 toggleCurrentOption: function(key, value) { 2578 this.currentOption[key] = this.currentOption[key] === value ? null : value; 2579 var variantIndex = this.getVariantIndex(); 2580 if(variantIndex !== -1) { 2581 this.currentVariant = this.product.variants[variantIndex]; 2582 } else { 2583 this.currentVariant = null; 2584 } 2585 this.setChoose(this.product.variants[variantIndex]); 2586 }, 2587 setCurrentImageIndex: function(index) { 2588 this.currentImageIndex = this.getSelectedColorIndex(); 2589 }, 2590 getOptionImageIndex: function(index) { 2591 this.currentImageIndex = index; 2592 }, 2593 quantityDecrease: function(){ 2594 if (this.cartItem) { 2595 themeHelper.EventBus.$emit('quantityDecrease', this.cartItem, false); 2596 this.quantity = this.cartItem.quantity 2597 } else { 2598 window.msg("è«é¸æå忬¾å¼", 'warning').show(); 2599 } 2600 }, 2601 quantityIncrease: function(){ 2602 if (this.cartItem) { 2603 themeHelper.EventBus.$emit('quantityIncrease', this.cartItem, false); 2604 this.quantity = this.cartItem.quantity 2605 } else { 2606 window.msg("è«é¸æå忬¾å¼", 'warning').show(); 2607 } 2608 }, 2609 quantityChange: function(el) { 2610 if (this.cartItem) { 2611 themeHelper.EventBus.$emit('quantityChange', parseInt(el.target.value), this.cartItem, false); 2612 this.quantity = this.cartItem.quantity; 2613 el.target.value = this.cartItem.quantity; 2614 } else { 2615 window.msg("è«é¸æå忬¾å¼", 'warning').show(); 2616 } 2617 }, 2618 addProduct: function() { 2619 if (this.addCartText === 'è¯çµ¡åºå®¶') { 2620 $('#messagebuy-Modal').data('variant', this.currentVariant); 2621 $('#messagebuy-Modal').modal('show'); 2622 $('#messagebuy-Modal').css("background-color", "rgba(0, 0, 0, .6)"); 2623 } else { 2624 if (this.cartItem) { 2625 try { 2626 if (this.isChoose) { 2627 themeHelper.EventBus.$emit('updateStore', 'update', this.cartItem) 2628 } else { 2629 themeHelper.EventBus.$emit('updateStore', 'add', this.cartItem) 2630 } 2631 this.adding = true; 2632 this.closeModal(); 2633 } catch (e) { 2634 window.msg("å忬¾å¼ç°å¸¸", 'error').show(); 2635 } 2636 } else { 2637 window.msg("è«é¸æå忬¾å¼", 'warning').show(); 2638 } 2639 } 2640 }, 2641 closeModal: function() { 2642 themeHelper.EventBus.$emit('closeProductModal'); 2643 }, 2644 // è²ç¥¨,è²ç¥¨å±é 2645 colorImageIndex: function() { 2646 var self = this; 2647 return self.colorOption.findIndex(function(color){ 2648 return color === self.color; 2649 }); 2650 }, 2651 imageColors: function() { 2652 //è²ç¥¨ä¸å®æå° 2653 var self = this; 2654 var images = this.photoUrls.slice(0); 2655 var imageColorNum = this.colorOption.length; 2656 for(var i = imageColorNum; i < imageColorNum * 2; i++) { 2657 if(!images[i]) { 2658 images.push('noColorImage'); 2659 } 2660 } 2661 if(this.isColorImageExpand && this.isCollection) { 2662 var temp = images.filter(function(image, index) { 2663 return index === (self.colorImageIndex() + images.length / 2); 2664 }); 2665 return temp; 2666 } 2667 return images.slice(imageColorNum, imageColorNum * 2); 2668 }, 2669 setDefaultOption: function() { 2670 var self = this; 2671 Object.keys(self.currentOption).map(function(optionKey) { 2672 self.currentOption[optionKey] = self.currentVariant[optionKey]; 2673 }); 2674 }, 2675 getVariantIndex: function() { 2676 var self = this; 2677 return self.product.variants.findIndex(function(variant, index) { 2678 var isVariant = true;
2679 Object.keys(self.currentOption).forEach(function(option) { 2680 if(variant[option] !== self.currentOption[option]){ 2681 isVariant = false; 2682 } 2683 }); 2684 return isVariant; 2685 }); 2686 }, 2687 // 篩é¸éè¤åé 2688 getUniqueVariant: function(variants) { 2689 return variants.filter(function(value, index, self) { 2690 return self.indexOf(value) === index; 2691 }); 2692 }, 2693 groupBy(xs, key) { 2694 return xs.reduce(function (rv, x) { 2695 (rv[x[key]] = rv[x[key]] || []).push(x); 2696 return rv; 2697 }, {}); 2698 }, 2699 setUpDiscountsTag(data) { 2700 var self = this; 2701 $.ajax({ 2702 url: self.productUrl + '/discounts_list', 2703 method: 'GET', 2704 success: function(result){ 2705 if ( result.length > 0 ) { 2706 var discounts_list = self.groupBy(result, 'campaign_type'); 2707 self.discountsList = discounts_list; 2708 } else { 2709 self.discountsList = null; 2710 } 2711 }, 2712 }); 2713 }, 2714 // åå¾å·²é¸åçcolor index 2715 getSelectedColorIndex: function() { 2716 var self = this; 2717 var optionIndex = _.indexOf(self.options, 'é¡è²') + 1; 2718 var color = self.currentOption['option' + optionIndex]; 2719 2720 return _.indexOf(self.colorOption, color); 2721 }, 2722 getOptions: function(optionKey, optionTypes) { 2723 var self = this; 2724 return optionTypes.map(function(optionType, index) { 2725 var isValid = true; 2726 2727 // é¸åºå å«ç®åtypeçvariant 2728 var matchVariants = self.product.variants.filter(function(variant) { 2729 return variant[optionKey] === optionType; 2730 }); 2731 // 篩é¸å·²å¾é¸type 2732 Object.keys(self.currentOption).forEach(function(currentOptionKey) { 2733 if(currentOptionKey !== optionKey){ 2734 matchVariants = matchVariants.filter(function(variant) { 2735 if(self.currentOption[currentOptionKey]) { 2736 return variant[currentOptionKey] === self.currentOption[currentOptionKey] 2737 } else { 2738 return true; 2739 } 2740 }); 2741 } 2742 }); 2743 2744 isValid = self.isEmptyClickable //ç¡è«è©²è¦æ ¼å°æçæ¬¾å¼æ¯å¦å¯è³¼è²·çå¯é¸æ 2745 && self.firstValidVariant !== null //ååè³å°æä¸å款å¼å¯è³¼è²· 2746 && matchVariants.length > 0; //é¨åè¦æ ¼å·²é¸åçæ æ³ä¸ï¼è©²è¦æ ¼æå°æçæ¬¾å¼ 2747 2748 // å¦æç´°é¨è¨å®é¸äºãç¶ç¡åº«åæï¼æ¬¾å¼çºä¸å¯é»é¸çæ ãï¼åå°æçæ¬¾å¼é å å«å¯è³¼è²·æ¬¾å¼ 2749 if (!self.isEmptyClickable) { 2750 isValid = !!matchVariants.find(function(item) { 2751 return item.inventoryQuantity !== 0 || item.inventoryPolicy === 'continue'; 2752 }); 2753 } 2754 return { 2755 name: optionType, 2756 isValid: isValid 2757 } 2758 }); 2759 } 2760 } 2761 }); 2762 }); 2763</script>
2763 2764 2765<div class="modal fade" id="messagebuy-Modal" tabindex="-1" role="dialog" aria-hidden="true"> 2766 <div class="modal-dialog modal-dialog-centered" role="document"> 2767 <div class="modal-content"> 2768 <div class="modal-header"> 2769 <h5 class="modal-title">åå庫åä¸è¶³çè¨</h5> 2770 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 2771 <span aria-hidden="true">×</span> 2772 </button> 2773 </div> 2774 <div class="modal-body"> 2775 <form class="form-horizontal" id="message-form"> 2776 <a href="javascript:void(0)" class="product_link img-flex"> 2777 <img src="" alt="" class="product_img" width="300" height="300"> 2778 </a> 2779 <h5 class="product_name"></h5> 2780 <div class="form-group"> 2781 <input type="email" class="form-control" id="contact_us_email" name="contact[email]" placeholder="Email" data-error="é䏿¯ææçemail" required> 2782 <input type="email" class="form-control" id="repeat-email" name="content[email]" placeholder="Email"> 2783 <div class="help-block with-errors"></div> 2784 </div> 2785 <div class="form-group"> 2786 <textarea type="text" class="form-control" id="message_body" name="contact[body]" placeholder="çè¨çµ¦åºå®¶" data-error="è«ç䏿³å°æå說ç話åï¼" rows="4" required></textarea> 2787 <div class="help-block with-errors"></div> 2788 </div> 2789 <button type="submit" class="btn btn-primary btn-submit-message">éåº</button> 2790 </form> 2791 </div> 2792 </div> 2793 </div> 2794</div> 2795
2796<script> 2797 $(document).ready(function(){ 2798 // setting modal 2799 var product_title, product_img, variant, variant_name, variant_sku, variant_price 2800 2801 $('#repeat-email').hide(); 2802 $('#messagebuy-Modal').on('show.bs.modal', function(){ 2803 var currentVariant = $('#messagebuy-Modal').data('variant'); 2804 2805 if (currentVariant) { 2806 // product modal è¯çµ¡åºå®¶ 2807 $('#messagebuy-Modal').find('.product_name').text(currentVariant.productTitle); 2808 $('#messagebuy-Modal').find('.product_img').attr('src', currentVariant.imgUrl); 2809 product_title = currentVariant.productTitle; 2810 variant_sku = currentVariant.sku; 2811 variant_name = currentVariant.title; 2812 variant_price = parseInt(currentVariant.price); 2813 } else { 2814 product_title = $('#product .product_info .product_title').text() 2815 // æ¯å¦é¡¯ç¤ºè²ç¥¨ 2816 var isDisplayImagesColor = "false"; 2817 if (isDisplayImagesColor === "true") { 2818 product_img = $('#photo_with_images_color').attr('src'); 2819 } else { 2820 product_img = $('#product .product_info .thumb .active img').attr('src') 2821 } 2822 variant = $('#product .product_variant').find(':selected') 2823 variant_name = $(variant).data('name'); 2824 variant_sku = variant.data('sku'); 2825 variant_price = variant.data('price'); 2826 $('#messagebuy-Modal').find('.product_name').text(product_title) 2827 $('#messagebuy-Modal').find('.product_img').attr('src', product_img) 2828 } 2829 }) 2830 2831 $('#message-form').on('submit', function (e) { 2832 e.preventDefault() 2833 2834 var robot_check = $('#repeat-email').val(); 2835 if(robot_check) 2836 return; 2837 var csrf_token = $('meta[name=csrf-token]').attr('content'); 2838 var message_email = $('#message-form input[name="contact[email]"]').val(); 2839 var message_body = $('#message-form textarea[name="contact[body]"]').val(); 2840 var variant_info = '\n (å忍é¡:' + product_title + ' ,ååsku:' + variant_sku + ' ,å忍£å¼:' + variant_name + ' ,åå广 ¼:' + variant_price + ')'; 2841 if(!variant_sku || !variant_name || !variant_price){ 2842 variant_info = '\n (å忍é¡:' + product_title + ', æªé¸ææ¬¾å¼ ï¼'; 2843 } message_body += variant_info 2844 $.ajax({ 2845 method: 'POST', 2846 url: '/contact', 2847 headers: {'X-CSRF-TOKEN': csrf_token}, 2848 data: { 2849 contact: { email: message_email, body: message_body }, 2850 'g-recaptcha-response': $('.g-recaptcha').data('g-recaptcha-response'), 2851 }, 2852 dataType: 'json' 2853 }).done(function(){ 2854 window.msg('éåºæå', 'success').show() 2855 $('#messagebuy-Modal').modal('hide'); 2856 themeHelper.EventBus.$emit('closeProductModal'); 2857 }).fail(function(){ 2858 window.error_msg("è«ç¨å¾å試"); 2859 }); 2860 }) 2861 }) 2862</script>
2862 2863
2864<script> 2865 $(document).ready(function() { 2866 window.new_addcart_modal = new Vue({ 2867 el: '#new-addcart-modal', 2868 delimiters: ['${', '}'], 2869 data: { 2870 collectionId: 0, 2871 color: '', 2872 isCollection: true, 2873 productQuantity: 0, 2874 onlyDescription: false, 2875 showProductModal: false, 2876 popProductUrl: '', 2877 loading: false, 2878 }, 2879 mounted: function() { 2880 themeHelper.EventBus.$on('closeProductModal',this.closeProductModal); 2881 themeHelper.EventBus.$on('updateStore', this.addProduct); 2882 themeHelper.EventBus.$on('quantityDecrease', this.quantityDecrease); 2883 themeHelper.EventBus.$on('quantityIncrease', this.quantityIncrease); 2884 themeHelper.EventBus.$on('quantityChange', this.quantityChange); 2885 }, 2886 methods: { 2887 addProduct: function(actionType, productData){ 2888 var self = this; 2889 $.ajax({ 2890 method: 'POST', 2891 url: '/cart/add', 2892 data: { 2893 id: productData.id, 2894 quantity: productData.quantity, 2895 }, 2896 dataType: 'json', 2897 beforeSend: function() { 2898 self.loading = true; 2899 themeHelper.ajaxLoadingMsg('loading'); 2900 $('.shopcart').dropdown('hide') 2901 $('.global-cart-count').hide(); 2902 $('.global-cart-loading').show(); 2903 $('.global-cart-loading').html('<i class="fa fa-spinner fa-pulse fa-lg" style="vertical-align: middle;"></i>'); 2904 }, 2905 error: function(data) { 2906 themeHelper.ajaxLoadingMsg('fail', 2000); 2907 $('.global-cart-loading').hide(); 2908 $('.global-cart-count').show(); 2909 self.loading = false; 2910 } 2911 }).done(function(data, status, request){ 2912 // product modal ç«å³è³¼è²·æé 2913 sendAddToCartEvent({ 2914 price: productData.price, 2915 quantity: productData.quantity, 2916 id: productData.product.id, 2917 name: productData.product.title, 2918 category: productData.product.productType, 2919 brand: productData.product.vendor, 2920 variant: { 2921 id: productData.variant.id, 2922 title: productData.variant.title, 2923 sku: productData.variant.sku, 2924 price: productData.variant.price, 2925 }, 2926 position: "ååå½åºè¦çª", 2927 request, 2928 }) 2929 if (self.isQuickBuy) { 2930 window.location = "/cart"; 2931 } else { 2932 themeHelper.ajaxLoadingMsg('success'); 2933 pullNavCart(); 2934 $('.shopcart').dropdown('show') 2935 $('.global-cart-loading').hide(); 2936 self.loading = false; 2937 } 2938 }) 2939 }, 2940 quantityDecrease: function(cartItem, isAdded){ 2941 if (cartItem.quantity > 1) { 2942 cartItem.quantity -= 1; 2943 } else { 2944 window.msg("æ¸éä¸å¾çºä½æ¼ 1", 'warning').show(); 2945 } 2946 }, 2947 quantityIncrease: function(cartItem, isAdded){ 2948 if (cartItem.quantity >= liquidHelper.cartQuantityLimit) { 2949 window.msg("æ¸éè¶ é購買ä¸é", 'warning').show(); 2950 } else if ( cartItem.quantity < cartItem.variant.inventoryQuantity || 2951 cartItem.variant.inventoryQuantity === null || 2952 cartItem.variant.inventoryPolicy == "continue" ) { 2953 cartItem.quantity += 1; 2954 } else { 2955 window.msg("æ¸éè¶ é庫å", 'warning').show(); 2956 return; 2957 } 2958 }, 2959 quantityChange: function(quantity, cartItem, isAdded){ 2960 var limitQuantity = cartItem.variant.inventoryQuantity; 2961 var inventoryPolicy = cartItem.variant.inventoryPolicy; 2962 if (Number.isInteger(quantity)) { 2963 if (quantity >= 1) { 2964 if (quantity > liquidHelper.cartQuantityLimit) { 2965 window.msg("æ¸éè¶ é購買ä¸é", 'warning').show(); 2966 } else if (quantity <= limitQuantity || limitQuantity === null || inventoryPolicy == "continue") { 2967 cartItem.quantity = quantity; 2968 } else { 2969 window.msg("æ¸éè¶ é庫å", 'warning').show(); 2970 } 2971 } else { 2972 window.msg("æ¸éä¸å¾çºä½æ¼ 1", 'warning').show(); 2973 } 2974 } else { 2975 window.msg("æ¸éè¼¸å ¥é¯èª¤", 'warning').show(); 2976 } 2977 },
2978 popModal: function(productUrl, collectionId, color, isCollection, isShowDescription, isQuickBuy, variantId){ 2979 this.showProductModal = true; 2980 this.collectionId = collectionId; 2981 this.popProductUrl = productUrl; 2982 this.color = color || ''; 2983 this.isCollection = isCollection || false; 2984 this.isShowDescription = isShowDescription != false; 2985 this.isQuickBuy = isQuickBuy || false; 2986 this.selectedVariantId = parseInt(variantId) || undefined; 2987 document.body.style.overflow = "hidden"; 2988 }, 2989 closeProductModal: function() { 2990 this.showProductModal = false; 2991 document.body.style.overflow = ""; 2992 }, 2993 } 2994 }); 2995 }); 2996</script>
2996 2997
2998<script type="text/x-template" id="variant-options-block"> 2999 <div> 3000 <div v-for="(option, index) in optionInfo" class="product-variant-option"> 3001 <color-option 3002 v-if="isImageColor && option.name === 'é¡è²'" 3003 :option-key="'option' + (index + 1)" 3004 :option="option" 3005 :image-colors="imageColors" 3006 :current-image-index="currentImageIndex" 3007 :set-current-image-index="setCurrentImageIndex" 3008 :get-option-image-index="getOptionImageIndex" 3009 :current-option="currentOption" 3010 /> 3011 <advance-variant-option 3012 v-else 3013 :option-key="'option' + (index + 1)" 3014 :option="option" 3015 :current-option="currentOption" 3016 /> 3017 </div> 3018 </div> 3019</script>
3019 3020
3021<script id="color-option" type="text/x-template"> 3022 <div class="option color_option"> 3023 <span class="title">ååé¡è²:</span> 3024 <label 3025 v-for="(imageColor, index) in imageColors" 3026 :class="{ 3027 'image-option': true, 3028 'selected': selectedClass(index), 3029 'disabled': disabledClass(index), 3030 }" 3031 @mouseleave="setCurrentImageIndex(index)" 3032 @mouseover="getOptionImageIndex(index)" 3033 @click="setOption(optionKey, index)" 3034 > 3035 <span class="img-flex"> 3036 <img v-if="imageColor !== 'noColorImage'" :src="imageColor.large" alt="image"> 3037 <img v-else src="/assets/no-image-large.png" alt="image"> 3038 </span> 3039 </label> 3040 </div> 3041</script>
3041 3042
3043<script type="text/javascript"> 3044 Vue.component('color-option', { 3045 template: '#color-option', 3046 delimiters: ['${', '}'], 3047 props: { 3048 optionKey: String, 3049 option: Object, 3050 imageColors: Array, 3051 setCurrentImageIndex: Function, 3052 getOptionImageIndex: Function, 3053 currentOption: Object, 3054 }, 3055 methods: { 3056 setOption: function(optionKey, index) { 3057 var type = this.option.types[index]; 3058 if (type.isValid) { 3059 themeHelper.EventBus.$emit('toggleCurrentOption', optionKey, type.name); 3060 } 3061 }, 3062 selectedClass: function(index) { 3063 return this.currentOption[this.optionKey] === this.option.types[index].name; 3064 }, 3065 disabledClass: function(index) { 3066 return !this.option.types[index].isValid; 3067 }, 3068 }, 3069 }); 3070</script>
3070 3071
3072<script id="advance-variant-option" type="text/x-template"> 3073 <div class="advance"> 3074 <div class="option_title">${option.name}</div> 3075 <label 3076 v-for="type in option.types" 3077 :class="{ 3078 'option': true, 3079 'selected': selectedClass(type), 3080 'disabled': disabledClass(type), 3081 }" 3082 @click="setOption(optionKey, type)" 3083 > 3084 ${type.name} 3085 </label> 3086 </div> 3087</script>
3087 3088
3089<script type="text/javascript"> 3090 Vue.component('advance-variant-option', { 3091 template: '#advance-variant-option', 3092 delimiters: ['${', '}'], 3093 props: { 3094 optionKey: String, 3095 option: Object, 3096 currentOption: Object, 3097 }, 3098 methods: { 3099 setOption: function(optionKey, type) { 3100 if(type.isValid){ 3101 themeHelper.EventBus.$emit('toggleCurrentOption', optionKey, type.name); 3102 } 3103 }, 3104 selectedClass: function(type) { 3105 return this.currentOption[this.optionKey] === type.name; 3106 }, 3107 disabledClass: function(type) { 3108 return !type.isValid; 3109 }, 3110 } 3111 }); 3112</script>
3112 3113 3114
3115<script type="text/javascript"> 3116 $(document).ready(function() { 3117 Vue.component('variant-options-block', { 3118 template: '#variant-options-block', 3119 delimiters: ['${', '}'], 3120 props: { 3121 productApiUrl: String, 3122 }, 3123 data: function() { 3124 return { 3125 currentImageIndex: 0, 3126 currentOption: { 3127 option1: null, 3128 option2: null, 3129 option3: null, 3130 }, 3131 currentVariant: null, 3132 product: {}, 3133 isLoading: true, 3134 isImageColorsUsed: liquidHelper.isImageColorsUsed, 3135 isEmptyClickable: liquidHelper.isEmptyClickable, 3136 hasPriceWithDiscountPlugin: liquidHelper.hasPriceWithDiscountPlugin, 3137 } 3138 }, 3139 mounted: function() { 3140 this.getProductDetail(); 3141 themeHelper.EventBus.$on('toggleCurrentOption',this.toggleCurrentOption); 3142 }, 3143 computed: { 3144 imageColors: function() { 3145 //è²ç¥¨ä¸å®æå° 3146 var self = this; 3147 var images = this.photoUrls.slice(0); 3148 var imageColorNum = this.colorOption.length; 3149 for(var i = imageColorNum; i < imageColorNum * 2; i++) { 3150 if(!images[i]) { 3151 images.push('noColorImage'); 3152 } 3153 } 3154 return images.slice(imageColorNum, imageColorNum * 2); 3155 }, 3156 photoUrls: function() { 3157 return this.product.photoUrls.length > 0 ? this.product.photoUrls : [this.featuredImage]; 3158 }, 3159 featuredImage: function() { 3160 return this.product.featuredImage; 3161 }, 3162 swiperPhotos: function() { 3163 if(this.isImageColor) { 3164 return this.photoUrls.slice(0, this.colorOption.length); 3165 } 3166 return this.photoUrls.length > 0 ? this.photoUrls : [this.featuredImage]; 3167 }, 3168 firstValidVariant: function() { 3169 var self = this; 3170 var result = this.product.variants.find(function(variant) { 3171 return variant.available; 3172 }); 3173 3174 return result ? result : null; 3175 }, 3176 options: function() { 3177 return this.product.options; 3178 }, 3179 optionTypes: function() { 3180 // å æ ¹æè¨å®çvariantsä¾æåº 3181 var self = this; 3182 3183 var option1 = []; 3184 var option2 = []; 3185 var option3 = [];
3186 this.product.variants.forEach(function(item) { 3187 if (item.option1 !== null) option1.push(item.option1); 3188 if (item.option2 !== null) option2.push(item.option2); 3189 if (item.option3 !== null) option3.push(item.option3); 3190 }) 3191 3192 var filteredOptionTypes = []; 3193 this.product.optionTypes.forEach(function(item, index) { 3194 filteredOptionTypes.push(self.getUniqueVariant(eval('option' + (index + 1))).join(',')); 3195 }); 3196 3197 return filteredOptionTypes; 3198 }, 3199 optionInfo: function() { 3200 var self = this; 3201 3202 if (self.options) { 3203 return self.options.map(function(option, index) { 3204 if(option === 'é¡è²') { 3205 return { 3206 name: option, 3207 types: self.getOptions('option' + (index + 1), self.optionTypes[index].split(',')) 3208 } 3209 } 3210 return { 3211 name: option, 3212 types: self.getOptions('option' + (index + 1), self.optionTypes[index].split(',')) 3213 } 3214 }); 3215 } 3216 }, 3217 colorOptionIndex: function() { 3218 return this.options.findIndex(function(option) { 3219 return option === 'é¡è²'; 3220 }); 3221 }, 3222 colorOption: function() { 3223 var optionIndex = this.colorOptionIndex 3224 return optionIndex === -1 ? null : this.optionTypes[optionIndex].split(','); 3225 }, 3226 isImageColor: function() { 3227 return this.isImageColorsUsed && _.includes(this.product.options, 'é¡è²'); 3228 }, 3229 }, 3230 methods: { 3231 setChoose: function(currentVariant) { 3232 var currentVariantDatas = {}; 3233 if (currentVariant) { 3234 currentVariantDatas = { 3235 id: this.currentVariant.id, 3236 bonus: this.currentVariant.maxUsableBonus, 3237 name: this.currentVariant.title, 3238 inventoryPolicy: this.currentVariant.inventoryPolicy, 3239 compareAtPrice: this.currentVariant.compareAtPrice, 3240 imgUrl: this.currentVariant.imgUrl, 3241 inventoryQuantity: this.currentVariant.inventoryQuantity, 3242 option1: this.currentVariant.option1, 3243 option2: this.currentVariant.option2, 3244 option3: this.currentVariant.option3, 3245 price: this.currentVariant.price, 3246 productId: this.currentVariant.productId, 3247 sku: this.currentVariant.sku, 3248 }; 3249 } 3250 this.$emit('set-choose', currentVariantDatas); 3251 }, 3252 onError: function() { 3253 window.msg('網路é£ç·ç°å¸¸ï¼è«éæ°æ´ç', 'error').show(); 3254 }, 3255 // get product detail 3256 getProductDetail: function() { 3257 var self = this; 3258 $.ajax({ 3259 url: self.productApiUrl + '.json', 3260 type: 'GET', 3261 timeout: 30000, 3262 beforeSend: function() { 3263 self.isLoading = true; 3264 }, 3265 error: function(){ 3266 this.onError(); 3267 } 3268 }).done(function(data){ 3269 if (data.id) { 3270 var productData = [themeHelper.toCamelCase(data)]; 3271 self.product = themeHelper.priceWithDiscount(productData, self.hasPriceWithDiscountPlugin)[0]; 3272 if ( 3273 self.product.variants.length === 1 || 3274 liquidHelper.isFirstVariantSelected 3275 ) { 3276 self.currentVariant = self.product.variants.length === 1 ? self.product.variants[0] : self.firstValidVariant; 3277 if(self.currentVariant){ 3278 self.setChoose(self.currentVariant); 3279 self.setDefaultOption(); 3280 if(self.isImageColorsUsed) { // è¥æé¡¯ç¤ºè²ç¥¨ä¸æé é¸ç¬¬ä¸å款å¼çæ´æåç 3281 var firstValidColorIndex = self.colorOption.findIndex(function(item) { 3282 return item === self.currentVariant.option1 3283 }); 3284 self.$emit('get-option-image', self.photoUrls[firstValidColorIndex].grande); 3285 } 3286 } 3287 } 3288 self.isLoading = false;
3289 } else { 3290 this.onError(); 3291 } 3292 }) 3293 }, 3294 toggleCurrentOption: function(key, value) { 3295 if (this.product.variants.length === 1) { 3296 return; 3297 } 3298 this.currentOption[key] = this.currentOption[key] === value ? null : value; 3299 var variantIndex = this.getVariantIndex(); 3300 if(variantIndex !== -1) { 3301 this.currentVariant = this.product.variants[variantIndex]; 3302 } else { 3303 this.currentVariant = null; 3304 } 3305 this.setChoose(this.product.variants[variantIndex]); 3306 }, 3307 setCurrentImageIndex: function(index) { 3308 this.currentImageIndex = this.getSelectedColorIndex(); 3309 if (this.currentImageIndex > -1) { 3310 var currentImageIndex = this.currentImageIndex; 3311 } else { 3312 var currentImageIndex = 0; 3313 } 3314 3315 this.$emit('get-option-image', this.photoUrls[currentImageIndex].grande); 3316 }, 3317 getOptionImageIndex: function(index) { 3318 this.currentImageIndex = index; 3319 this.$emit('get-option-image', this.photoUrls[index].grande); 3320 }, 3321 setDefaultOption: function() { 3322 var self = this; 3323 Object.keys(self.currentOption).map(function(optionKey) { 3324 self.currentOption[optionKey] = self.currentVariant[optionKey]; 3325 }); 3326 }, 3327 getVariantIndex: function() { 3328 var self = this; 3329 return self.product.variants.findIndex(function(variant, index) { 3330 var isVariant = true; 3331 Object.keys(self.currentOption).forEach(function(option) { 3332 if(variant[option] !== self.currentOption[option]){ 3333 isVariant = false; 3334 } 3335 }); 3336 return isVariant; 3337 }); 3338 }, 3339 // 篩é¸éè¤åé 3340 getUniqueVariant: function(variants) { 3341 return variants.filter(function(value, index, self) { 3342 return self.indexOf(value) === index; 3343 }); 3344 }, 3345 // åå¾å·²é¸åçcolor index 3346 getSelectedColorIndex: function() { 3347 var self = this; 3348 var optionIndex = _.indexOf(self.options, 'é¡è²') + 1; 3349 var color = self.currentOption['option' + optionIndex]; 3350 3351 return _.indexOf(self.colorOption, color); 3352 }, 3353 getOptions: function(optionKey, optionTypes) { 3354 var self = this; 3355 return optionTypes.map(function(optionType, index) { 3356 var isValid = true; 3357 3358 // é¸åºå å«ç®åtypeçvariant 3359 var matchVariants = self.product.variants.filter(function(variant) { 3360 return variant[optionKey] === optionType; 3361 }); 3362 // 篩é¸å·²å¾é¸type 3363 Object.keys(self.currentOption).forEach(function(currentOptionKey) { 3364 if(currentOptionKey !== optionKey){ 3365 matchVariants = matchVariants.filter(function(variant) { 3366 if(self.currentOption[currentOptionKey]) { 3367 return variant[currentOptionKey] === self.currentOption[currentOptionKey] 3368 } else { 3369 return true; 3370 } 3371 }); 3372 } 3373 }); 3374 // ç¡variant代表æ¤typeä¸å¯é¸ 3375 if(matchVariants.length === 0) { 3376 isValid = false; 3377 } 3378 3379 if (self.isEmptyClickable) { 3380 // 妿å®å ¨æ²æåº«åå°±é½ä¸å¯ä»¥é»é¸ 3381 if (self.firstValidVariant === null) { 3382 isValid = false; 3383 } 3384 } else { 3385 // å¦æç´°é¨è¨å®é¸äºãç¶ç¡åº«åæï¼æ¬¾å¼çºä¸å¯é»é¸çæ ã 3386 isValid = false; 3387 matchVariants.find(function(item) { 3388 if (item.inventoryQuantity !== 0 || item.inventoryPolicy === 'continue') { 3389 isValid = true; 3390 } 3391 }); 3392 } 3393 3394 return { 3395 name: optionType, 3396 isValid: isValid 3397 } 3398 }); 3399 }, 3400 } 3401 }); 3402 }); 3403</script>
3403 3404 3405 3406<div id="img"></div> 3407 3408 3409 3410 3411
3412<script> 3413 var gallery_img = undefined; 3414 document.addEventListener("DOMContentLoaded", function(){ 3415 gallery_img = renderGallery( 3416 '#img', 3417 { 3418 urls: [], 3419 onSwiperGalleryChange: function (payload) { 3420 var eventPayload = Object.assign({ galleryName: "img" }, payload); 3421 $(document).trigger('swiper-gallery-change', [eventPayload]); 3422 }, 3423 }, 3424 ); 3425 }); 3426</script>
3426 3427 3428
3429<script> 3430 // è¨å®æ¬¾å¼è³è¨/顯示款å¼è³è¨ 3431 function getURLParameter(name) { 3432 return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [null, ''])[1].replace(/\+/g, '%20')) || null; 3433 } 3434 $(document).ready(function(){ 3435 // å忬¾å¼ 3436 var productPriceRange = $('.product_price .price').text(); 3437 var selectedVariant = {}; 3438 themeHelper.variantOptionsBlock(setSelectedVariant, isAddBuy, productPriceRange); 3439 3440 // cart è·³è½å°ååé å è³¼å¹ start 3441 var collection_id = getURLParameter('add-buy'); 3442 var price = getURLParameter('price'); 3443 var timeout = getURLParameter('timeout'); 3444 var isAddBuy = false; 3445 if (collection_id !== null && timeout !== null && price !== null){ 3446 isAddBuy = true; 3447 } 3448 $(function() { 3449 if (isAddBuy && new Date().getTime() < timeout) { 3450 price = moneySymbol(price); 3451 $("#product .product_price span").text("å è³¼å¹"); 3452 $("#product .price").text(price); 3453 $("#product .addToCart").data("type", "add-buy"); 3454 $("#product .addToCart").data("collection_id", collection_id); 3455 } 3456 }); 3457 3458 // åå§åï¼æª¢æ¥ææååç庫åï¼å¤æ·è³¼ç©è»æéå庫åé¡¯ç¤ºçæ 3459 var checkButtonStatus; 3460 (checkButtonStatus = function() { 3461 // ååé 䏿»ï¼è³¼ç©è»æé顯示ï¼ç¶æ²æä»»ä¸åº«åæï¼æé¡¯ç¤ºè¯çµ¡å®¢æ 3462 var variants_info = "38103565,W001D35,545.0,,,deny,545.0,350g,é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ - 350g,,5|87834214,W001D35x12,5200.0,,6540.0,deny,5200.0,ä¸ç®±(12ç¶)~æç®±åªæ ~,é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ - ä¸ç®±(12ç¶)~æç®±åªæ ~,,"; 3463 var isHideAddToCartBtn = new ProductVariants(variants_info).get_product_option_list().every(function(item){ 3464 return parseInt(item.quantity) <= 0 && item.inventory_policy === "deny"; 3465 }); 3466 var isPreOrder = new ProductVariants(variants_info).get_product_option_list().every(function(item){ 3467 return parseInt(item.quantity) <= 0 && item.inventory_policy === "continue"; 3468 }); 3469 if (isHideAddToCartBtn) { 3470 // ååé 䏿»å å ¥è³¼ç©è»æé 3471 $('#add_to_cart').css("display", "none"); 3472 $('.btn_to_cart_mobile').hide(); 3473 $('.btn_to_cart_mobile_default').hide(); 3474 $('.btn_quick_buy_mobile').hide(); 3475 $('.btn_quick_buy_mobile_default').hide(); 3476 $('#message_to_buy').css("display", "block"); 3477 $('.btn_msg_mobile').show(); 3478 $('.btn_msg_mobile_default').show(); 3479 // è³¼ç©è»æéå庫åçæ 3480 $('.addToCart').hide(); 3481 $('.btn_msg').show(); 3482 $('.product_inventory_policy .val').text("庫åä¸è¶³"); 3483 } else { 3484 if (isPreOrder) { 3485 $('#add_to_cart').text("é è³¼åå"); 3486 $('.btn_to_cart_mobile').text("é è³¼åå"); 3487 $('.btn_to_cart_mobile_default').text("é è³¼åå"); 3488 $('.btn_quick_buy_mobile').hide(); 3489 $('.btn_quick_buy_mobile_default').hide(); 3490 } 3491 } 3492 })(); 3493 3494 // ååå輪æ 3495 var productImage = new Swiper('.product_img_swiper', { 3496 // Disable preloading of all images 3497 preloadImages: false, 3498 // Enable lazy loading 3499 lazy: true, 3500 loop: true, 3501 navigation: { 3502 nextEl: '.photo-swiper-next', 3503 prevEl: '.photo-swiper-prev', 3504 } 3505 }); 3506 3507 // åçæ¾å¤§ 3508 $('.product_photos .swiper-container .swiper-button').on('click', function(e){ 3509 e.stopPropagation() 3510 }) 3511 $('.product_photo.img-flex img').on('click', function(){ 3512 if (document.getElementById('photo_with_images_color')) { 3513 var index = 0; 3514 var productsSrc = [document.getElementById('photo_with_images_color').src]; 3515 } else if (productImage.$wrapperEl) { 3516 var index = productImage.realIndex; 3517 var productImages = $(productImage.$wrapperEl[0]).find('img'); 3518 var productsSrc = []; 3519 productImages.map(function(index, el) { 3520 if (index !== 0 && index !== productImages.length-1) { 3521 productsSrc.push(el.dataset.src || el.src) 3522 } 3523 }) 3524 } else { 3525 return null; 3526 } 3527 gallery_img.updateImgs(productsSrc) 3528 gallery_img.toggleGallery(true, { index: index }) 3529 }); 3530 3531 // åçé 碼 3532 $(".thumb").on('click', 'li', function(){ 3533 $(this).addClass('active').siblings().removeClass('active'); 3534 productImage.slideTo($(this).index()+1, 500); 3535 }); 3536 // 輪æè½æç¸®å 3537 $('.product_img_swiper .swiper-button').click(function(){ 3538 var swiperIndex = $('.swiper-slide').index($('.swiper-slide-active')); 3539 var pages = $(".thumb li").length; 3540 var photoIndex = (swiperIndex + pages - 1 ) % pages; 3541 $($(".thumb li")[photoIndex]).addClass('active').siblings().removeClass('active'); 3542 }); 3543 //æ»åæå 3544 productImage.on('touchEnd', function(){ 3545 setTimeout(function(){ 3546 var swiperIndex = $('.swiper-slide').index($('.swiper-slide-active')); 3547 var pages = $(".thumb li").length; 3548 var photoIndex = (swiperIndex + pages - 1 ) % pages; 3549 $($(".thumb li")[photoIndex]).addClass('active').siblings().removeClass('active'); 3550 }, 300); 3551 }); 3552 3553 // åå說æä»ç´¹æ¨ç±¤ 3554 $(".desc_sections li").on('click', function(){ 3555 $(this).children().addClass('active'); 3556 $(this).siblings().children().removeClass('active'); 3557 productImage.slideTo($(this).index() + 1, 500); 3558 }); 3559 // ç¢å說æ 3560 $(window).on('scroll', function () { 3561 var headerHeight = $("#header").height() 3562 var desc_sections = $(".desc_sections"); 3563 var desc_section_list = $(".desc_section"); 3564 var descSectionHeight = $(".desc_sections").height() 3565 var descSectionTop = $(".desc_sections").offset().top - headerHeight 3566 var product_window = $(this); 3567 // æ»ååºå®ç¢å說æ 3568 if (product_window.scrollTop() > descSectionTop){ 3569 desc_sections.stop().addClass("desc_sections_hold").css({"min-height": descSectionHeight}).find("ul").css({"top": headerHeight}) 3570 if($(window).width() < 768) { 3571 // ææ©çï¼å¾ä¸æ»æï¼éå product modal 3572 $(".product_button_mobile").css("display", "none"); 3573 $(".product_button_mobile_default").css("display", "flex"); 3574 } 3575 }else{ 3576 desc_sections.stop().removeClass("desc_sections_hold") 3577 if($(window).width() < 768) { 3578 $(".product_button_mobile").css("display", "flex"); 3579 $(".product_button_mobile_default").css("display", "none"); 3580 } 3581 } 3582 // é»é¸ç¢åèªªææ»å 3583 $(".desc_sections a.scroll").bind("click",function(event){
3584 var targetScrollTop = $($(this).attr("href")).offset().top - headerHeight - descSectionHeight + 1 3585 $("html, body").stop().animate({scrollTop: targetScrollTop}, 300); 3586 }); 3587 // 顯示ç¶åç¢å說æ 3588 $.each(desc_section_list, function(index, desc_section){ 3589 var desc_sectionTop = $(desc_section).offset().top - headerHeight - descSectionHeight - 1 3590 var desc_sectionHeight = $(desc_section).height() 3591 var current_desc_section = $("a.scroll[href$='" + $(desc_section).attr("id") + "']"); 3592 if (product_window.scrollTop() > desc_sectionTop || index === 0){ 3593 current_desc_section.stop().addClass('active').parent().siblings().find("a").removeClass('active') 3594 }else{ 3595 current_desc_section.removeClass('active') 3596 } 3597 }); 3598 }); 3599 3600 // å å ¥è³¼ç©è» open product modal 3601 $(".open_product_modal").on('click', function(){ 3602 var variants = parseInt("1"); 3603 // è¥å®ä¸é¸é ï¼ä¸é è·³åº modalï¼ç´æ¥å å ¥è³¼ç©è» 3604 if (variants > 0) { 3605 var variantId = selectedVariant.id; 3606 if ($(".desc_sections").hasClass("desc_sections_hold")) { 3607 var productHandle = '/products/' + $(this).data('handle'); 3608 var collectionId = $(this).data('collection'); 3609 new_addcart_modal.popModal(productHandle, collectionId, null, null, false, false, variantId); 3610 } else { 3611 // ç¶æ¼ä¸æ¹åæï¼å¤æ·æ¯å¦æé¸å°æ±è¥¿ï¼æçè©±ç´æ¥å å ¥è³¼ç©è»ï¼ä¸é è·³åºæåæç¤º 3612 if (parseInt(variantId) > 0) { 3613 $(".btn_to_cart").trigger('click'); 3614 } else { 3615 window.msg("è«é¸æå忬¾å¼", 'info').show(); 3616 } 3617 } 3618 } else { 3619 $(".btn_to_cart").trigger('click'); 3620 } 3621 }) 3622 // ç«å³è³¼è²· mobile product modal 3623 $(".open_quick_buy_modal").on('click', function(){ 3624 var variants = parseInt("1"); 3625 // è¥å®ä¸é¸é ï¼ä¸é è·³åº modalï¼ç´æ¥å å ¥è³¼ç©è» 3626 if (variants > 0) { 3627 var variantId = selectedVariant.id; 3628 if ($(".desc_sections").hasClass("desc_sections_hold")) { 3629 var productHandle = '/products/' + $(this).data('handle'); 3630 var collectionId = $(this).data('collection'); 3631 new_addcart_modal.popModal(productHandle, collectionId, null, null, false, true, variantId); 3632 } else { 3633 // ç¶æ¼ä¸æ¹åæï¼å¤æ·æ¯å¦æé¸å°æ±è¥¿ï¼æçè©±ç´æ¥å å ¥è³¼ç©è»ï¼ä¸é è·³åºæåæç¤º 3634 if (parseInt(variantId) > 0) { 3635 $(".btn-quick_buy").trigger('click'); 3636 } else { 3637 window.msg("è«é¸æå忬¾å¼", 'info').show(); 3638 } 3639 } 3640 } else { 3641 $(".btn-quick_buy").trigger('click'); 3642 } 3643 }) 3644 3645 $(".btn_msg, .btn_msg_mobile, .btn_msg_mobile_default, #message_to_buy").on('click', function(){ 3646 var variant = { 3647 compareAtPrice: selectedVariant.compareAtPrice, 3648 id: selectedVariant.id, 3649 imgUrl: $('#product .product_info .thumb .active img').attr('src'), 3650 inventoryPolicy: selectedVariant.inventoryPolicy, 3651 inventoryQuantity: selectedVariant.inventoryQuantity, 3652 price: selectedVariant.price, 3653 productTitle: selectedVariant.name == "" ? "é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ " : "é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ " + ' - ' + selectedVariant.name, 3654 sku: selectedVariant.sku, 3655 title: selectedVariant.name || null, 3656 } 3657 $('#messagebuy-Modal').data('variant',variant); 3658 }) 3659 3660 function setSelectedVariant(variant) { 3661 selectedVariant = variant; 3662 } 3663 3664 function groupBy(xs, key) { 3665 return xs.reduce(function (rv, x) { 3666 (rv[x[key]] = rv[x[key]] || []).push(x); 3667 return rv; 3668 }, {}); 3669 }; 3670 3671 function setUpDiscountsTag() { 3672 $.ajax({ 3673 url: window.location.pathname + '/discounts_list', 3674 method: 'GET', 3675 success: function(result){ 3676 if ( result.length > 0 ) { 3677 var discounts_list = groupBy(result, 'campaign_type'); 3678 Object.keys(discounts_list).map(function(key, index){ 3679 discounts_list[key].map(function(discount, index){ 3680 var discount_row = document.createElement('div'); 3681 discount_row.className = 'discount-list'; 3682 if (discount.url){ 3683 var discount_title = document.createElement('a'); 3684 $(discount_title).attr("href", discount.url); 3685 }else{ 3686 var discount_title = document.createElement('span'); 3687 } 3688 discount_title.className = 'discount-title' 3689 discount_title.innerText = discount.title; 3690 discount_row.append(discount_title); 3691 $('.product_discounts_list .list_block').append(discount_row); 3692 }); 3693 }); 3694 } 3695 if ($('.product_discounts_list .discount-list').length > 0) { 3696 $('.product_discounts_list').removeClass('hide'); 3697 } 3698 }, 3699 }); 3700 } 3701 3702 setUpDiscountsTag(); 3703 3704 }) 3705</script>
3705 3706 3707 </div> 3708 3709 <!-- Footer --> 3710 <footer id="footer"> 3711 <div class="footer_content"> 3712 <div class="container"> 3713 <div class="footer_flex"> 3714 <div class="item logo"> 3715 <a class="logo-image" href="/"> 3716 <img src="//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/img/1631881728_42ed4063_navbar_logo.png?1631881728" height="40" width="auto" alt="logo"> 3717 </a> 3718 <div class="social_media"> 3719 <ul> 3720 3721 <li> 3722 <a href="https://www.facebook.com/drfishtw"> 3723 <svg class="facebook-svg" xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 50.5 50.5"> 3724 <path class="svg-background" d="M50.5,32.662c0,9.855-7.983,17.838-17.838,17.838H17.838C7.982,50.5,0,42.517,0,32.662V17.838C0,7.982,7.982,0,17.838,0h14.824C42.517,0,50.5,7.982,50.5,17.838V32.662z M50.5,32.662"/> 3725 <path class="svg-border" d="M32.516,50.5H17.984C8.068,50.5,0,42.432,0,32.515v-14.53C0,8.068,8.068,0,17.984,0h14.531C42.433,0,50.5,8.068,50.5,17.985v14.53C50.5,42.432,42.433,50.5,32.516,50.5z M17.984,1C8.619,1,1,8.619,1,17.985v14.53C1,41.881,8.619,49.5,17.984,49.5h14.531c9.365,0,16.984-7.619,16.984-16.985v-14.53C49.5,8.619,41.881,1,32.516,1H17.984z"/> 3726 <path class="svg-text" d="M26.474,19.68v-2.311c0-1.126,0.751-1.388,1.278-1.388c0.526,0,3.242,0,3.242,0v-4.953l-4.465-0.019c-4.957,0-6.083,3.694-6.083,6.059v2.613H17.58v3.492v2.288h2.891c0,6.551,0,14.452,0,14.452h5.78c0,0,0-7.98,0-14.452h4.29l0.208-2.27l0.319-3.51H26.474z"/> 3727 </svg> 3728 </a> 3729 </li> 3730 3731 3732 3733 <li> 3734 <a href="https://lin.ee/poK8ZNZ"> 3735 <svg class="line-svg" xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 50.5 50.5"> 3736 <path class="svg-background" d="M50.5,32.662c0,9.855-7.983,17.838-17.838,17.838H17.838C7.982,50.5,0,42.517,0,32.662V17.838C0,7.982,7.982,0,17.838,0h14.824C42.517,0,50.5,7.982,50.5,17.838V32.662z M50.5,32.662"/> 3737 <path class="svg-border" d="M32.516,50.5H17.985C8.068,50.5,0,42.433,0,32.516V17.985C0,8.068,8.068,0,17.985,0h14.531C42.433,0,50.5,8.068,50.5,17.985v14.531C50.5,42.433,42.433,50.5,32.516,50.5z M17.985,1C8.619,1,1,8.619,1,17.985v14.531C1,41.881,8.619,49.5,17.985,49.5h14.531c9.365,0,16.984-7.619,16.984-16.984V17.985C49.5,8.619,41.881,1,32.516,1H17.985z"/> 3738 <path class="svg-text" d="M39.905,24.124c0-6.557-6.573-11.892-14.654-11.892c-8.08,0-14.655,5.335-14.655,11.892c0,5.878,5.214,10.803,12.256,11.734c0.477,0.102,1.126,0.316,1.291,0.723c0.148,0.37,0.097,0.949,0.047,1.324c0,0-0.172,1.035-0.209,1.256c-0.064,0.37-0.295,1.448,1.269,0.789c1.564-0.659,8.439-4.97,11.513-8.509h-0.001C38.888,29.113,39.905,26.749,39.905,24.124z M19.514,28.025h-2.912c-0.423,0-0.768-0.344-0.768-0.769v-5.823c0-0.423,0.345-0.769,0.768-0.769c0.424,0,0.768,0.346,0.768,0.769v5.055h2.144c0.424,0,0.768,0.345,0.768,0.768C20.282,27.681,19.938,28.025,19.514,28.025z M22.525,27.256c0,0.425-0.344,0.769-0.768,0.769s-0.768-0.344-0.768-0.769v-5.823c0-0.423,0.344-0.769,0.768-0.769s0.768,0.346,0.768,0.769V27.256z M29.535,27.256c0,0.332-0.211,0.625-0.526,0.73c-0.079,0.026-0.162,0.039-0.244,0.039c-0.24,0-0.469-0.114-0.614-0.308l-2.985-4.063v3.602c0,0.425-0.344,0.769-0.768,0.769c-0.424,0-0.769-0.344-0.769-0.769v-5.823c0-0.331,0.212-0.623,0.526-0.729c0.079-0.026,0.161-0.04,0.244-0.04c0.24,0,0.47,0.115,0.614,0.308l2.985,4.064v-3.604c0-0.423,0.345-0.769,0.769-0.769c0.424,0,0.768,0.346,0.768,0.769V27.256zM34.246,23.577c0.424,0,0.768,0.344,0.768,0.769c0,0.423-0.344,0.768-0.768,0.768h-2.143v1.374h2.143c0.423,0,0.768,0.345,0.768,0.768c0,0.425-0.346,0.769-0.768,0.769h-2.912c-0.423,0-0.768-0.344-0.768-0.769v-2.909c0,0,0-0.001,0-0.002v-2.912c0-0.423,0.345-0.769,0.768-0.769h2.912c0.424,0,0.768,0.346,0.768,0.769c0,0.424-0.344,0.769-0.768,0.769h-2.143v1.375H34.246z"/> 3739 </svg> 3740 </a> 3741 </li> 3742 3743 3744 </ul> 3745 </div> 3746 </div> 3747 <div class="item contact"> 3748 <h5>éæ¼æå</h5> 3749 <hr> 3750 <ul> 3751 3752 <li> 3753 <svg class="phone-svg" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 30.635 30.771"> 3754 <path d="M25.789,18.343c-0.669-0.696-1.475-1.068-2.33-1.068c-0.848,0-1.661,0.365-2.357,1.062l-2.178,2.171c-0.179-0.097-0.358-0.186-0.531-0.276c-0.248-0.124-0.483-0.241-0.683-0.366c-2.04-1.296-3.895-2.985-5.673-5.17c-0.862-1.089-1.441-2.006-1.861-2.936c0.565-0.517,1.089-1.055,1.599-1.572c0.193-0.193,0.386-0.393,0.579-0.586c1.447-1.447,1.447-3.322,0-4.77L10.472,2.95c-0.213-0.214-0.434-0.434-0.641-0.655C9.417,1.868,8.983,1.427,8.535,1.013C7.866,0.351,7.066,0,6.226,0C5.384,0,4.571,0.351,3.882,1.013L3.868,1.027L1.524,3.391C0.642,4.274,0.139,5.349,0.028,6.597c-0.165,2.013,0.427,3.888,0.883,5.115c1.116,3.012,2.785,5.804,5.273,8.796c3.019,3.605,6.652,6.452,10.802,8.458c1.585,0.751,3.702,1.641,6.066,1.792c0.145,0.007,0.297,0.014,0.435,0.014c1.592,0,2.93-0.572,3.977-1.71c0.007-0.014,0.021-0.021,0.028-0.034c0.358-0.434,0.772-0.827,1.206-1.248c0.296-0.283,0.599-0.579,0.896-0.889c0.683-0.71,1.041-1.537,1.041-2.385c0-0.855-0.365-1.675-1.061-2.365L25.789,18.343z"/> 3755 </svg>
3756 <span>02-28805020</span> 3757 </li> 3758 3759 3760 <li> 3761 <svg class="fax-svg" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 34.006 31.879"> 3762 <path d="M8.498,25.508v6.37h17.01V21.252H8.498V25.508z M10.626,23.38H23.38v2.128H10.626V23.38zM10.626,27.623H23.38v2.128H10.626V27.623z M10.626,27.623"/> 3763 <path d="M25.508,6.37V0H8.498v10.626h17.01V6.37z M25.508,6.37"/> 3764 <path d="M29.75,6.37h-2.128v6.384H6.37V6.37H4.256C2.128,6.37,0,8.498,0,10.626v10.626c0,2.128,2.128,4.256,4.256,4.256H6.37v-6.384h21.252v6.384h2.128c2.128,0,4.256-2.128,4.256-4.256V10.626C34.006,8.498,31.878,6.37,29.75,6.37L29.75,6.37z M29.75,6.37"/> 3765 </svg> 3766 <span>02-28805299</span> 3767 </li> 3768 3769 3770 <li> 3771 <svg class="mail-svg" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 33.66 23.566"> 3772 <path d="M2.661,1.393l12.124,9.605c0.548,0.43,1.31,0.625,2.042,0.591c0.737,0.035,1.492-0.154,2.047-0.591 3773 l12.124-9.605C31.967,0.625,31.749,0,30.515,0H3.145C1.912,0,1.693,0.625,2.661,1.393L2.661,1.393z M2.661,1.393"/> 3774 <path d="M31.873,3.924L18.62,13.983c-0.495,0.372-1.145,0.554-1.787,0.548c-0.649,0.006-1.299-0.177-1.794-0.548L1.788,3.924C0.802,3.179,0,3.581,0,4.814v16.503c0,1.234,1.009,2.249,2.241,2.249h29.177c1.233,0,2.241-1.015,2.241-2.249V4.814C33.66,3.581,32.858,3.179,31.873,3.924L31.873,3.924z M31.873,3.924"/> 3775 </svg> 3776 <a href="mailto:[email protected]"> [email protected]</a> 3777 </li> 3778 3779 3780 <li> 3781 <svg class="address-svg" style="height: 24px;" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24"> 3782 <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/> 3783 </svg> 3784 <span>æ°åå¸èæ´²åé賢路227è2æ¨</span> 3785 </li> 3786 3787 3788 <li> 3789 <svg class="clock-svg" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 33.66 33.661"> 3790 <path d="M16.83,0C7.535,0,0,7.535,0,16.83c0,9.294,7.535,16.831,16.83,16.831c9.295,0,16.83-7.536,16.83-16.831C33.66,7.535,26.125,0,16.83,0L16.83,0z M17.992,18.888c-0.001,0.044-0.007,0.089-0.013,0.133c-0.004,0.033-0.007,0.067-0.014,0.1c-0.008,0.034-0.02,0.067-0.031,0.101c-0.013,0.041-0.026,0.082-0.043,0.121c-0.003,0.007-0.004,0.014-0.007,0.02c-0.025,0.054-0.055,0.105-0.087,0.153c-0.002,0.003-0.004,0.006-0.007,0.009c-0.037,0.054-0.079,0.103-0.123,0.149c-0.012,0.013-0.025,0.024-0.037,0.036c-0.039,0.037-0.079,0.071-0.123,0.101c-0.014,0.01-0.026,0.02-0.041,0.029c-0.055,0.037-0.113,0.068-0.174,0.095c-0.013,0.006-0.027,0.009-0.04,0.015c-0.051,0.02-0.103,0.036-0.157,0.048c-0.019,0.005-0.038,0.009-0.058,0.012c-0.069,0.013-0.139,0.021-0.209,0.021c-0.014,0-0.029-0.004-0.043-0.005c-0.067-0.002-0.134-0.008-0.199-0.021c-0.02-0.004-0.04-0.013-0.06-0.019c-0.06-0.017-0.118-0.034-0.174-0.059c-0.007-0.003-0.013-0.004-0.02-0.007L9.88,16.876c-0.581-0.274-0.831-0.968-0.557-1.549c0.274-0.581,0.968-0.83,1.549-0.556l4.793,2.26V6.985c0-0.643,0.521-1.164,1.164-1.164c0.643,0,1.164,0.521,1.164,1.164v11.882C17.994,18.874,17.992,18.881,17.992,18.888L17.992,18.888z M17.992,18.888"/> 3791 </svg> 3792 <span>10:00-17:00</span> 3793 </li> 3794 3795 </ul> 3796 </div> 3797 <div class="item linklists"> 3798 3799 <h5>éæ¼æ±é«å¸«å¥åº·èå</h5> 3800 <hr> 3801 <ul> 3802 3803 <li><a href="/pages/about-us" target="_blank">åçæ äº</a></li> 3804 3805 <li><a href="/pages/é叿é»" target="_blank">é叿é»</a></li> 3806 3807 <li><a href="/pages/privacy" target="_blank">é±ç§æ¿ç</a></li> 3808 3809 </ul> 3810 3811 </div> 3812 <div class="item linklists"> 3813 3814 <h5>å®¢æ¶æå</h5> 3815 <hr> 3816 <ul> 3817 3818 <li><a href="/pages/æå¡ç¦å©" target="_blank">æå¡ç¦å©</a></li> 3819 3820 <li><a href="/pages/è³¼ç©é ç¥" target="_blank">è³¼ç©é ç¥</a></li> 3821 3822 <li><a href="https://drfishzz.cyberbiz.co/account" target="_blank">æå¡ä¸å¿</a></li> 3823 3824 <li><a href="/contact" target="_blank">è¯çµ¡æå</a></li> 3825 3826 </ul> 3827 3828 </div> 3829 <div class="item media-bar"> 3830 <div class="social_media"> 3831 <ul> 3832 3833 <li> 3834 <a href="https://www.facebook.com/drfishtw"> 3835 <svg class="facebook-svg" xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 50.5 50.5"> 3836 <path class="svg-background" d="M50.5,32.662c0,9.855-7.983,17.838-17.838,17.838H17.838C7.982,50.5,0,42.517,0,32.662V17.838C0,7.982,7.982,0,17.838,0h14.824C42.517,0,50.5,7.982,50.5,17.838V32.662z M50.5,32.662"/> 3837 <path class="svg-border" d="M32.516,50.5H17.984C8.068,50.5,0,42.432,0,32.515v-14.53C0,8.068,8.068,0,17.984,0h14.531C42.433,0,50.5,8.068,50.5,17.985v14.53C50.5,42.432,42.433,50.5,32.516,50.5z M17.984,1C8.619,1,1,8.619,1,17.985v14.53C1,41.881,8.619,49.5,17.984,49.5h14.531c9.365,0,16.984-7.619,16.984-16.985v-14.53C49.5,8.619,41.881,1,32.516,1H17.984z"/> 3838 <path class="svg-text" d="M26.474,19.68v-2.311c0-1.126,0.751-1.388,1.278-1.388c0.526,0,3.242,0,3.242,0v-4.953l-4.465-0.019c-4.957,0-6.083,3.694-6.083,6.059v2.613H17.58v3.492v2.288h2.891c0,6.551,0,14.452,0,14.452h5.78c0,0,0-7.98,0-14.452h4.29l0.208-2.27l0.319-3.51H26.474z"/> 3839 </svg> 3840 </a> 3841 </li> 3842 3843 3844 3845 <li> 3846 <a href="https://lin.ee/poK8ZNZ"> 3847 <svg class="line-svg" xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 50.5 50.5"> 3848 <path class="svg-background" d="M50.5,32.662c0,9.855-7.983,17.838-17.838,17.838H17.838C7.982,50.5,0,42.517,0,32.662V17.838C0,7.982,7.982,0,17.838,0h14.824C42.517,0,50.5,7.982,50.5,17.838V32.662z M50.5,32.662"/> 3849 <path class="svg-border" d="M32.516,50.5H17.985C8.068,50.5,0,42.433,0,32.516V17.985C0,8.068,8.068,0,17.985,0h14.531C42.433,0,50.5,8.068,50.5,17.985v14.531C50.5,42.433,42.433,50.5,32.516,50.5z M17.985,1C8.619,1,1,8.619,1,17.985v14.531C1,41.881,8.619,49.5,17.985,49.5h14.531c9.365,0,16.984-7.619,16.984-16.984V17.985C49.5,8.619,41.881,1,32.516,1H17.985z"/> 3850 <path class="svg-text" d="M39.905,24.124c0-6.557-6.573-11.892-14.654-11.892c-8.08,0-14.655,5.335-14.655,11.892c0,5.878,5.214,10.803,12.256,11.734c0.477,0.102,1.126,0.316,1.291,0.723c0.148,0.37,0.097,0.949,0.047,1.324c0,0-0.172,1.035-0.209,1.256c-0.064,0.37-0.295,1.448,1.269,0.789c1.564-0.659,8.439-4.97,11.513-8.509h-0.001C38.888,29.113,39.905,26.749,39.905,24.124z M19.514,28.025h-2.912c-0.423,0-0.768-0.344-0.768-0.769v-5.823c0-0.423,0.345-0.769,0.768-0.769c0.424,0,0.768,0.346,0.768,0.769v5.055h2.144c0.424,0,0.768,0.345,0.768,0.768C20.282,27.681,19.938,28.025,19.514,28.025z M22.525,27.256c0,0.425-0.344,0.769-0.768,0.769s-0.768-0.344-0.768-0.769v-5.823c0-0.423,0.344-0.769,0.768-0.769s0.768,0.346,0.768,0.769V27.256z M29.535,27.256c0,0.332-0.211,0.625-0.526,0.73c-0.079,0.026-0.162,0.039-0.244,0.039c-0.24,0-0.469-0.114-0.614-0.308l-2.985-4.063v3.602c0,0.425-0.344,0.769-0.768,0.769c-0.424,0-0.769-0.344-0.769-0.769v-5.823c0-0.331,0.212-0.623,0.526-0.729c0.079-0.026,0.161-0.04,0.244-0.04c0.24,0,0.47,0.115,0.614,0.308l2.985,4.064v-3.604c0-0.423,0.345-0.769,0.769-0.769c0.424,0,0.768,0.346,0.768,0.769V27.256zM34.246,23.577c0.424,0,0.768,0.344,0.768,0.769c0,0.423-0.344,0.768-0.768,0.768h-2.143v1.374h2.143c0.423,0,0.768,0.345,0.768,0.768c0,0.425-0.346,0.769-0.768,0.769h-2.912c-0.423,0-0.768-0.344-0.768-0.769v-2.909c0,0,0-0.001,0-0.002v-2.912c0-0.423,0.345-0.769,0.768-0.769h2.912c0.424,0,0.768,0.346,0.768,0.769c0,0.424-0.344,0.769-0.768,0.769h-2.143v1.375H34.246z"/> 3851 </svg> 3852 </a> 3853 </li> 3854 3855 3856 </ul> 3857 </div> 3858 </div> 3859 3860 <div class="item fb_fanpage"> 3861 <div class="fb_fans_page_area"> 3862 <div class="fb-page" data-href="https://www.facebook.com/798399223678553" data-width="500" data-small-header="true" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true"> 3863 <blockquote cite="https://www.facebook.com/798399223678553" class="fb-xfbml-parse-ignore"> 3864 <a href="https://www.facebook.com/798399223678553">Facebook ç²çµ²å°é </a> 3865 </blockquote> 3866 </div> 3867 </div> 3868 </div> 3869 3870 </div> 3871 </div> 3872 </div> 3873 <div class="footer_footer"> 3874 <div class="container"> 3875 <div class="footer_flex"> 3876 <div class="copyright">
3877 <span>Copyright ©</span> 3878 <a href="/">æ±é«å¸«å¥åº·èå/ééªå</a> 3879 <span>All Rights Reserved. Designed by</span> 3880 <a href="https://www.cyberbiz.io?utm_source=poweredbycyberbiz" target="_blank" title="Designed by CYBERBIZ"> CYBERBIZ</a>. 3881 </div> 3882 </div> 3883 </div> 3884 </div> 3885</footer> 3886 3887<link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/1630569807_22218177_footer_custom.css?1630569807' rel='stylesheet' type='text/css' media='all' /> 3888
3889<script> 3890 // fb plugins 3891 window.fbAsyncInit = function() { 3892 FB.init({ 3893 appId : '', 3894 xfbml : true, 3895 version : 'v4.0', 3896 }); 3897 }; 3898 (function(d, s, id){ 3899 var js, fjs = d.getElementsByTagName(s)[0]; 3900 if (d.getElementById(id)) {return;} 3901 js = d.createElement(s); 3902 js.id = id; 3903 js.src = "https://connect.facebook.net/zh_TW/sdk/xfbml.customerchat.js"; 3904 fjs.parentNode.insertBefore(js, fjs); 3905 }(document, 'script', 'facebook-jssdk')); 3906 // for scupio 3907 if (document.querySelector("meta[name=\"scupio_mid\"]")) { 3908 mid = document.querySelector("meta[name=\"scupio_mid\"]").content; 3909 } else { 3910 mid = ""; 3911 } 3912 if (!window.is_scupio_sent && mid) { 3913 window._bwtm = window._bwtm || [] 3914 window._bwtm.push({ 3915 "mid": mid, 3916 "uid": "" 3917 }); 3918 } 3919</script>
3919 3920 3921 3922 3923 <!-- Fast-Events --> 3924 3925<div class="fast-event" id="fastEvent"> 3926 <div class="eventag" id="fastEventTag"> 3927 <span class="on">EVENT <span><i class="fas fa-angle-up"></i></span></span> 3928 <span class="off">CLOSE <span><i class="fas fa-angle-down"></i></span></span> 3929 </div> 3930 <div class="evnet-body"> 3931 <div class="fasban img-flex"> 3932 3933 </div> 3934 <div class="fasban img-flex"> 3935 3936 </div> 3937 <div class="fasban img-flex"> 3938 3939 <a href="https://www.drfish.com.tw/collections/%E6%AF%8F%E6%9C%88%E4%B8%80%E7%89%A9"> 3940 <img class="img-lazy" src="//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/img/1630569804_06c5d9f6_img_loading.svg?1630569804" data-src="//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/img/1644392249_1c820a5d_show_event-3.jpg?1644392249" alt=""> 3941 </a> 3942 3943 </div> 3944 </div> 3945</div> 3946 3947
3948<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1630569802_270fe8bf_fast_events.js?1630569802' type='text/javascript'></script>
3948 3949<link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/beta_theme/1630569805_0f7827b9_fast_events.css?1630569805' rel='stylesheet' type='text/css' media='all' /> 3950 3951 3952 <!-- gototop --> 3953 <div id="gototop"> 3954 <a href="javascript:void(0)"> 3955 <i class="fas fa-arrow-up"></i> 3956 </a> 3957 </div> 3958 <!-- ajaxloading --> 3959 <div id="ajaxloading"> 3960 <div class="ajaxbody"> 3961 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="73.4" height="73.4" viewBox="0 0 73.4 73.4"> 3962 <circle class="circle" fill="none" stroke="#898989" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="36.7" cy="36.7" r="35.2"/> 3963 <polyline class="success_path" fill="none" stroke="#898989" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="23.7,36.8 32.4,45.4 49.7,28 "/> 3964 <path class="success_icon" fill="#898989" d="M32.5,46.9c-0.4,0-0.8-0.2-1.1-0.4l-8.6-8.6c-0.6-0.6-0.6-1.5,0-2.1s1.5-0.6,2.1,0l7.5,7.5L48.6,27c0.6-0.6,1.5-0.6,2.1,0s0.6,1.5,0,2.1L33.5,46.5C33.2,46.7,32.9,46.9,32.5,46.9L32.5,46.9z"/> 3965 <line class="fail_path" fill="none" stroke="#898989" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="26.6" y1="26.6" x2="46.8" y2="46.8"/> 3966 <line class="fail_path" fill="none" stroke="#898989" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="46.8" y1="26.6" x2="26.6" y2="46.8"/> 3967 <path class="fail_icon" fill="#898989" d="M38.7,36.7l9.1-9.1c0.6-0.6,0.6-1.5,0-2.1s-1.5-0.6-2.1,0l-9.1,9.1l-9.1-9.1c-0.6-0.6-1.5-0.6-2.1,0s-0.6,1.5,0,2.1l9.1,9.1l-9.1,9.1c-0.6,0.6-0.6,1.5,0,2.1c0.3,0.3,0.7,0.4,1.1,0.4s0.8-0.1,1.1-0.4l9.1-9.1l9.1,9.1c0.3,0.3,0.7,0.4,1.1,0.4s0.8-0.1,1.1-0.4c0.6-0.6,0.6-1.5,0-2.1L38.7,36.7z"/> 3968 </svg> 3969 <div class="success_msg title">å·²å å ¥è³¼ç©è»</div> 3970 <div class="success_update_msg title">å·²æ´æ°è³¼ç©è»</div> 3971 <div class="fail_msg title">網路ç°å¸¸ï¼è«éæ°æ´ç</div> 3972 </div> 3973 </div> 3974
3974<script src="//cdn1-next.cybassets.com/assets/referral-code-trace-5fcbbe026a61c36b5f09a1615a1c168688205205d9d3e7ee854181a66b64a6ed.js"></script>
3974 3975
3975<script> 3976 dataLayer.push({ 3977 'event': 'productDetails', 3978 'ecommerce': { 3979 'detail': { 3980 'products': {"id":34203541,"name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":545.0,"brand":null,"category":null,"variant":"","qc":null} 3981 } 3982 } 3983 }); 3984 </script>
3984 3985 3986
3986<script> 3987 cyb.push({ 3988 'event': 'productDetails', 3989 'ecommerce': { 3990 'currencyCode': 'TWD', 3991 'detail': { 3992 'products': [{"id":34203541,"name":"é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ","price":545.0,"brand":null,"category":null,"variant":""}] 3993 } 3994 } 3995 }); 3996 </script>
3996 3997 3998
3998<script> 3999 if (window.fbq) { 4000 fbq("track", "ViewContent", { 4001 content_name: "é¾ç¼è /èè/碳13åä½ç´ 檢é©100%-ç®±åºåªæ ", 4002 content_ids: "38103565", 4003 content_type: "product", 4004 value: 545.0, 4005 currency: "TWD", 4006 contents: [{"id":38103565,"price":545.0,"quantity":null},{"id":87834214,"price":5200.0,"quantity":null}], 4007 content_category: null 4008 },{ 4009 eventID: "ViewContent_00E31575C57EAEC06032860BEF5686B4" 4010 }); 4011 } 4012 </script>
4012 4013 </body> 4014 4015
4015<script> 4016 function getMoneyFormat(price) { 4017 // for tags, to escape use: {{ this }} 4018 currency = "NT${{amount_no_decimals}}".replace('{{amount}}', ''); 4019 currency = currency.replace('{{amount_no_decimals}}', ''); 4020 4021 switch (currency) { 4022 case "¥ å": 4023 var arr = currency.split(" "); 4024 return arr[0] + price + " " + arr[1]; 4025 break; 4026 4027 case "â«": 4028 return price + currency; 4029 break; 4030 4031 default: 4032 return currency + " " + price; 4033 break; 4034 } 4035 } 4036 4037 function getDiscountPriceName() { 4038 return 'false' === 'true' ? '' : 'åªæ å®å¹'; 4039 } 4040 4041 function getDiscountPriceSuggestionName() { 4042 return 'false' === 'true' ? '' : '建è°å®å¹'; 4043 } 4044 4045 var liquidHelper = { 4046 isFirstVariantSelected: false , 4047 cartQuantityLimit: Number("40"), 4048 isImageColorsUsed: false , 4049 isEmptyClickable: false , 4050 hasAddBuyProduct: '' !== "" ? true : false, 4051 hasPriceWithDiscountPlugin: true , 4052 } 4053</script>
4053 4054 4055
4055<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1630569802_b8ba48d4_sub_vendor.js?1630569802' type='text/javascript'></script>
4055 4056
4056<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1685671588_2cbd532c_theme_helper.js?1685671588' type='text/javascript'></script>
4056 4057 4058 <!-- theme assets --> 4059
4059<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1645757452_3db150dc_main.js?1645757452' type='text/javascript'></script>
4059 4060
4060<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1630569802_7a44a4d4_theme.js?1630569802' type='text/javascript'></script>
4060 4061 4062 <!-- theme customized main css --> 4063 <link href='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/css/1630764066_9f872325_theme_main.css?1630764066' rel='stylesheet' type='text/css' media='all' /> 4064 4065 <!-- for cache --> 4066
4066<script src='//cdn1-next.cybassets.com/s/files/19282/theme/66083/assets/js/1676531410_d0885f12_cacheable.js?1676531410' type='text/javascript'></script>
4066 4067 4068</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.