PageSourceSearch

https://www.iporkcut.com.tw/product/product&product_id=66

html iporkcut.com.tw collected 2026-10-07 20:43:10 UTC 187,926 bytes, 4,823 lines download raw bytes

1<!DOCTYPE html><html class="no-js" lang="zh-TW" prefix="og: https://ogp.me/ns# fb: https://ogp.me/ns/fb# website: https://ogp.me/ns/website#"> <head> <base href="https://www.iporkcut.com.tw/" /> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" /> <meta http-equiv='x-dns-prefetch-control' content='on'> <meta name="author" content="愛不是手★愛的是脆片肉乾"> <meta name="copyright" content="幸福禮盒"> <meta name="google" content="notranslate" /> <meta name="mobile-web-app-capable" content="yes"> <meta name="theme-color" content="#f5f5f5"> <link rel="preconnect" href="//cdn.qdm.cloud" /> <link rel="preconnect" href="//image-cdn-flare.qdm.cloud" /> <link rel="preconnect" href="//image-cdn.qdm.cloud" /> <link rel="preconnect" href="//www.facebook.com" /> <link rel="preconnect" href="//connect.facebook.net" /> <link rel="preconnect" href="//ajax.googleapis.com" /> <link rel="dns-prefetch" href="//ajax.googleapis.com" /> <link rel="dns-prefetch" href="//image-cdn-flare.qdm.cloud" /> <link rel="dns-prefetch" href="//image-cdn.qdm.cloud" /> <link rel="dns-prefetch" href="//cdn.qdm.cloud" /> <link rel="dns-prefetch" href="//fonts.googleapis.com" /> <link rel="dns-prefetch" href="//www.google-analytics.com" /> <link rel="dns-prefetch" href="//www.googletagmanager.com" /> <link rel='dns-prefetch' href="//www.google.com" /> <link rel='dns-prefetch' href="//www.google.com.tw" /> <link rel='dns-prefetch' href="//maxcdn.bootstrapcdn.com" /> <link rel='dns-prefetch' href="//cdnjs.cloudflare.com" /> <link rel='dns-prefetch' href="//www.facebook.com" /> <link rel='dns-prefetch' href="//connect.facebook.net" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title itemprop='name'>幸福禮盒 | 愛不是手★愛的是脆片肉乾</title> <meta name="description" content="★嚴選CAS優質豬肉 ★新鮮手作,獨立包裝 ★米其林六面炙燒,軟嫩多汁" /> <meta property="og:description" content="★嚴選CAS優質豬肉 ★新鮮手作,獨立包裝 ★米其林六面炙燒,軟嫩多汁" /> <meta name="keywords" content="蜜汁豬肉條" /> <link href="https://www.iporkcut.com.tw/product/product&product_id=66" rel="canonical" itemprop="url"> <!-- FACESPACE --> <meta property="fb:app_id" content="162172840650014" /> <meta property="og:title" content="幸福禮盒 | 愛不是手★愛的是脆片肉乾"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://www.iporkcut.com.tw/product/product&amp;product_id=66"/> <meta property="og:locale" content="zh_TW" /> <meta property="og:image" content="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"/> <meta property="og:image:url" content="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"/> <meta property="og:site_name" content="愛不是手★愛的是脆片肉乾"> <meta property="og:updated_time" content="1791405790"> <!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="幸福禮盒 | 愛不是手★愛的是脆片肉乾"> <meta name="twitter:description" content="★嚴選CAS優質豬肉 ★新鮮手作,獨立包裝 ★米其林六面炙燒,軟嫩多汁"> <meta name="twitter:image" content="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"> <!-- llms.txt --> <link rel="llms-txt" href="/llms.txt" /> <!-- G++ --> <meta itemprop="name" content="幸福禮盒"> <meta itemprop="description" content="★嚴選CAS優質豬肉 ★新鮮手作,獨立包裝 ★米其林六面炙燒,軟嫩多汁"> <meta itemprop="image" content="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"> <link title='幸福禮盒 - 訂閱商品快訊RSS' href="https://www.iporkcut.com.tw/googlebase.xml" type='application/rss+xml' rel='alternate' > <!-- Google's Sitelinks Search --> 
1<script type="application/ld+json">
2	{
3		"@context": "https://schema.org",
4		"@type": "WebSite",
5		"name" : "愛不是手★愛的是脆片肉乾",
6		"url": "https://www.iporkcut.com.tw/",
7		"potentialAction": {
8			"@type": "SearchAction",
9			"target": {
10				"@type": "EntryPoint",
11				"urlTemplate": "https://www.iporkcut.com.tw/search?q={filter_name}"
12			},
13			"query-input": "required name=filter_name"
14		}
15	}
16	</script>
16 <!-- Organization / LocalBusiness Schema --> 
16<script type="application/ld+json">
17	{
18    "@context": "https:\/\/schema.org",
19    "@type": "Organization",
20    "name": "愛不是手★愛的是脆片肉乾",
21    "url": "https:\/\/www.iporkcut.com.tw\/",
22    "logo": "https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2018\/09\/26\/1e97bc46691f1b39b1763c3dd3aca3c3.jpg",
23    "email": "[email protected]",
24    "sameAs": [
25        "https:\/\/www.facebook.com\/iporkcut"
26    ],
27    "image": "https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2018\/09\/26\/1e97bc46691f1b39b1763c3dd3aca3c3.jpg"
28}	</script>
28 
28<script type="text/javascript">
29(function(c,l,a,r,i,t,y){
30c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
31t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
32y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
33})(window, document, "clarity", "script", "99n8zhelys");
34</script>
34 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 68 bytes, lines 34-35
34 <script async
35				src="https://www.googletagmanager.com/gtag/js?id=
35G-8CRMWS8GBK
vendor: 12 bytes, line 35
35"></script> 
35<script>
36			
vendor: 141 bytes, lines 36-40
36window.dataLayer = window.dataLayer || [];
37			function gtag(){dataLayer.push(arguments);}
38			gtag('js', new Date());
39
40							gtag('config', "
40G-8CRMWS8GBK
vendor: 40 bytes, lines 40-42
40", { send_page_view: false });
41			
42					
42</script>
42 
42<script>
43
44				var enhanced_conversion_data = {};
45				var ga_userId = null;
46		var ga_userId_global = null;
47		var qdm_user_uuid = "q6a5dd2e0d87d6-1inh1a4k1f3n6cupe2u4nrtpdt";
48		var helperga4 = null;
49		var xmlhttp_uinfo = new XMLHttpRequest();
50		xmlhttp_uinfo.open('GET', "https://www.iporkcut.com.tw/index.php?route=common/header/getLoggedInUserInfo&token=" + new Date().getTime() + "1" + (Math.floor(Math.random() * 999) + 100) , true);
51		xmlhttp_uinfo.onreadystatechange = function() {
52			if (xmlhttp_uinfo.readyState == 4) {
53				if(xmlhttp_uinfo.status == 200) {
54					try {
55						var obj = JSON.parse(xmlhttp_uinfo.responseText);
56						ga_userId = obj.user_id;
57						if( obj.email ) {
58							enhanced_conversion_data.email = obj.email;
59													}
60					} catch (e) { }
61				 }
62			}
63		};
64		xmlhttp_uinfo.send(null);
65
66		try {
67			if ('localStorage' in window && window['localStorage'] !== null){
68				if( localStorage.getItem('qdm_user_uuid') && qdm_user_uuid == null ) {
69					qdm_user_uuid = localStorage.getItem('qdm_user_uuid');
70				}
71			}
72		} catch (e) {}
73		window.addEventListener("beforeunload", () => localStorage.removeItem('qdm_user_uuid'));
74
75		function QUUID(){var x=(new Date).getTime(),t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const n=(x+16*Math.random())%16|0;return x=Math.floor(x/16),("x"==t?n:3&n|8).toString(16)});return "q6a5dd2e0d87d6"+t;}
76		var dateTime = Date.now();
77		var timestamp = Math.floor(dateTime / 1000);
78		var global_quuid = QUUID();
79		//var global_quuid = "q6a5dd2e0d87d6" + Math.random().toString(13).substr(2, 9) + "" + timestamp + "" + new Date().getTime();
80		var global_product_id = 0;
81		var ecommCheckoutTotal = 0;
82		var gecommProduct = new Array("66");
83				var gecommProductName = '幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)';
84		var gecommProductSKU = '';
85		var gecommProductDesc = gecommProductName;
86				var gecommProductDesc = '★嚴選CAS優質豬肉 ★新鮮手作,獨立包裝 ★米其林六面炙燒,軟嫩多汁';
87				var gecommProductBrand = '幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)';
88						var gecommProductBrand_cyntelli = '愛不是手★肉乾';
89				var gecommProductCategoryPath = '年節禮盒';
90		var gecommProductCategoryWithComma = '肉乾系列,年節禮盒,海鮮系列';
91				var gecommProductPrice = 750;
92				var gecommCompareAtPrice = 750;
93				var gecommProductImageUrl = 'https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg';
94		var gecommProductUrl = "https://www.iporkcut.com.tw/product/product&product_id=66";
95				var gecommViewCategoryName = '';
96		var gecommViewFullCategoryName = '';
97		var gecommProductToCart = {};
98		var ecommOrderToCheckout = {};
99				dataLayer.push({
100			'pageCategory': 'signup',
101			'visitorType': 'high-value'
102		});
103
104				var customer_id = '0';
105		if(customer_id>0){
106			if( ga_userId !== null ) {
107				ga_userId = customer_id;
108			}
109		}
110
111		var ga_utm_source = null;
112		var toggleVisible = function(id){
113			var el = document.getElementById(id);
114			if( el !== null ) { el.style.visibility = "visible"; }
115		};
116		
117	</script>
117 
117<script id="google-ga-event-track" type="text/javascript">
118
119		var track_google_ga_trigger = 0;
120
121		setTimeout(function(){
122
123			if( ga_userId !== null ) {
124				ga_userId_global = "q6a5dd2e0d87d6_" + ga_userId;
125
126				dataLayer.push({
127					'event': 'data',
128					'UID': ga_userId
129				});
130				window.adGeek_d = {
131					'memberId': ga_userId
132				};
133
134				
135									gtag('config', "G-8CRMWS8GBK", {'user_id': ga_userId_global});
136				
137				
138							} else {
139							}
140
141			if( track_google_ga_trigger == 1 ) { return false; };
142
143			if ( parseInt(global_product_id) > 0 ) {
144				if (typeof gaTrackProductView == 'function') {
145					gaTrackProductView();
146				}
147			}
148
149			
150			
151			
152			
153
154			
155		}, 2000);
156
157	</script>
157 
157<script>
158		
159		var QDMPPID = "0b1f39e6a69c830ba1aa07cce3eefdae";
160		function setCookie(name, value, days) {
161			var expires = "";
162			if (days) {
163				// Mutate ONE Date object then format it. The previous one-liner set the
164				// expiry on a throwaway Date and formatted a fresh (now) Date, so every
165				// "persistent" cookie got expires=now and was dropped immediately.
166				var expireDate = new Date();
167				expireDate.setTime(expireDate.getTime() + (864e5 * days));
168				expires = "; expires=" + expireDate.toUTCString();
169			}
170			// SameSite=Lax lets cookies survive redirects back from external services (e.g. ECPay logistics).
171			document.cookie = name + "=" + value + expires + "; path=/; Secure; SameSite=Lax";
172		}
173		function getCookie(e){var n,i=document.cookie,o=i.indexOf(" "+e+"=");return-1==o&&(o=i.indexOf(e+"=")),i=-1==o?null:(o=i.indexOf("=",o)+1,-1==(n=i.indexOf(";",o))&&(n=i.length),unescape(i.substring(o,n)))}
174		if( !getCookie("QDMPPID") ) { setCookie("QDMPPID","57969281386f40291112eb9aae0cdf1b", 365); }
175		QDMPPID = getCookie("QDMPPID");
176		<!-- Facebook Pixel Code -->
177		!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
178		n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
179		n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
180		t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
181		document,'script','https://connect.facebook.net/en_US/fbevents.js');
182		<!-- End Facebook Pixel Code -->
183
184		function onloadCSS(e,n){function t(){!o&&n&&(o=!0,n.call(e))}var o;e.addEventListener&&e.addEventListener("load",t),e.attachEvent&&e.attachEvent("onload",t),"isApplicationInstalled"in navigator&&"onloadcssdefined"in e&&e.onloadcssdefined(t)}!function(e){"use strict";var n=function(n,t,o){function a(e){return l.body?e():void setTimeout(function(){a(e)})}function d(){r.addEventListener&&r.removeEventListener("load",d),r.media=o||"all"}var i,l=e.document,r=l.createElement("link");if(t)i=t;else{var s=(l.body||l.getElementsByTagName("head")[0]).childNodes;i=s[s.length-1]}var f=l.styleSheets;r.rel="stylesheet",r.href=n,r.media="only x",a(function(){i.parentNode.insertBefore(r,t?i:i.nextSibling)});var c=function(e){for(var n=r.href,t=f.length;t--;)if(f[t].href===n)return e();setTimeout(function(){c(e)})};return r.addEventListener&&r.addEventListener("load",d),r.onloadcssdefined=c,c(d),r};"undefined"!=typeof exports?exports.loadCSS=n:e.loadCSS=n}("undefined"!=typeof global?global:this);
185
186		function removeClass( classname, element ) {
187			var cn = element.className;
188			var rxp = new RegExp( "s?b"+classname+"b", "g" );
189			cn = cn.replace( rxp, '' );
190			element.className = cn;
191		}
192
193		var disabledScroll = 1;
194		var doJsAfterLoad = 0;
195
196		
197		var stylesheets = [
198			"https://cdn.qdm.cloud/static/fontawesome/v3.2.1/css/font-awesome.min.css",
199			"https://cdn.qdm.cloud/static/fontawesome/v4.7.0/css/font-awesome.min.css",
200			"https://cdn.qdm.cloud/static/fontawesome/v5.11.2/css/all.min.css",
201			"https://cdn.qdm.cloud/static/fontawesome/v5.11.2/css/v4-shims.min.css",
202			"https://cdn.qdm.cloud/static/fontawesome/v6.5.1/css/all.min.css",
203			"https://fonts.googleapis.com/css?family=Roboto:400,400i,500,700&display=swap",
204			"https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css",
205			"https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css"
206		];
207				function refreshMiniCartScrollBar(){
208			var nice = $(".nicescroll-box").niceScroll(".wrap",{emulatetouch:true,bouncescroll:true});
209		}
210		function initCoreCSS(){
211			if( doJsAfterLoad ) return;
212						var loading_css_product = loadCSS("https://cdn.qdm.cloud/assets/css/core_product.24022002.css");
213			onloadCSS(loading_css_product, function(){ initCSS(); });
214						toggleVisible('header');
215			toggleVisible('mainnav');
216			doJsAfterLoad = 1;
217		}
218		function initCSS(){
219			for (var i=0; i < stylesheets.length; i++) { loadCSS(stylesheets[i]); }
220						loadCSS("https://image-cdn.qdm.cloud/site/q6a5dd2e0d87d6/global.css?v=1780624407");
221					}
222		function loadJS(){
223											}
224
225		const ImageErrorHandler = {
226			// 配置選項
227			config: {
228				maxRetries: 5,
229				baseDelay: 200,
230				maxDelay: 3000,
231				defaultImage: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
232				fallbackImage: "//cdn.qdm.cloud/assets/no_image.jpg" // 可選的替代圖片
233			},
234
235			// 正在處理的圖片 Map(防止重複處理)
236			processingImages: new WeakMap(), //WeakMap減少記憶體的洩漏
237			handle(image) {
238				try {
239					if (!image || !image.src || this.processingImages.has(image)) {
240						return;
241					}
242
243					// 標記為處理中
244					this.processingImages.set(image, true);
245
246					const retryCount = parseInt(image.getAttribute('data-reload') || '0') + 1;
247
248					if (retryCount > this.config.maxRetries) {
249						this.handleFinalError(image);
250						return;
251					}
252
253					image.setAttribute('data-reload', retryCount);
254
255					// 計算延遲時間(指數退避)
256					const delay = Math.min(
257						this.config.baseDelay * Math.pow(2, retryCount - 1),
258						this.config.maxDelay
259					);
260
261					setTimeout(() => {
262						this.retryLoad(image, retryCount);
263					}, delay);
264
265				} catch (err) {
266					console.error('ImageErrorHandler error:', err);
267					this.handleFinalError(image);
268				}
269			},
270
271			retryLoad(image, retryCount) {
272				const imageSrc = this.updateTimestamp(image.src);
273				// 使用新圖片物件測試
274				const testImage = new Image();
275				testImage.onload = () => {
276					// 成功載入
277					image.src = imageSrc;
278					this.processingImages.delete(image);
279
280					// 重新綁定錯誤處理
281					image.onerror = () => this.handle(image);
282				};
283
284				testImage.onerror = () => {
285					// 載入失敗
286					this.processingImages.delete(image);
287
288					// 如果是最後一次重試前,嘗試使用備用圖片
289					if (retryCount === this.config.maxRetries - 1 && this.config.fallbackImage) {
290						image.src = this.config.fallbackImage;
291						image.onerror = () => this.handle(image);
292					} else {
293						this.handle(image);
294					}
295				};
296
297				testImage.src = imageSrc;
298			},
299
300			updateTimestamp(src) {
301				const timestamp = `timestamp=${Date.now()}`;
302
303				if (src.includes('timestamp=')) {
304					return src.replace(/timestamp=\d+/, timestamp);
305				}
306
307				const separator = src.includes('?') ? '&' : '?';
308				return `${src}${separator}${timestamp}`;
309			},
310
311			handleFinalError(image) {
312				// 清理
313				image.onerror = null;
314				image.onload = null;
315				this.processingImages.delete(image);
316
317				// 保存原始 URL
318				if (!image.src.includes("base64") && !image.hasAttribute('data-image-raw')) {
319					image.setAttribute('data-image-raw', image.src);
320				}
321
322				// 設置預設圖片
323				image.src = this.config.defaultImage;
324
325				// 觸發事件
326				image.dispatchEvent(new CustomEvent('imageFinalError', {
327					detail: {
328						originalSrc: image.getAttribute('data-image-raw'),
329						retries: image.getAttribute('data-reload')
330					}
331				}));
332			}
333		};
334
335		// 圖片錯誤
336		function imgError(image) {
337			ImageErrorHandler.handle(image);
338		}
339
340
341	</script>
341 
341<script>
342		function vbtrax_track(){
343				}
344
345		function criteo_track(){
346		}
347
348		
349	</script>
349 
349<script type="application/javascript"> </script>
349 </script>
349 
349<script>
350			var N=document.createElement("link");
351	N.setAttribute("href", "https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/favicon.png");
352	N.setAttribute("rel", "shortcut icon");
353			N.setAttribute("type", "image/png");
354		document.head.appendChild(N);
355		</script>
355 
355<script>document.createElement("picture");</script>
355 
355<script async src='https://cdnjs.cloudflare.com/ajax/libs/picturefill/3.0.3/picturefill.min.js'></script>
355 <link rel="icon" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/favicon.png" type="image/x-icon" > <link rel="shortcut icon" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/favicon.png" type="image/x-icon" > <link type="text/css" rel="stylesheet" href="https://cdn.qdm.cloud/min/css/core.260320v01.css"> <style>
356	*, body, p, pre, button, input, optgroup, select, textarea, a, a:visited { font-family: 'SF Pro TC', 'SF Pro Text', 'PingFang TC', 'Segoe UI', SegoeUI, 'Microsoft JhengHei', 微軟正黑體, 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
357	@media (min-width: 1200px) { body { padding-top: 40px; } .container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 1170px; } }
358	.hidden{display:none;visibility:hidden}
359	.pull-right { float: right !important; }
360	.container > #mainnav.skin4 { max-width:860px;width:100%; }
361	.container > #mainnav.skin4 .nav.menu-nav { display:inherit; }
362	#mainnav ul { list-style: none; display: flex; flex-wrap: wrap; }
363	#mainnav ul li { position: relative; }
364	#mainnav ul li ul.dropdown-menu { position: absolute; display: none; flex-direction: column; }
365	#mainnav ul li ul.dropdown-menu > li.column-menu { display: table-cell; border-right: 1px solid #eee; vertical-align: top; }
366	#mainnav ul li ul.dropdown-menu > li.column-menu > ul { display: block; }
367	#mainnav ul li:hover > ul { display: flex; }
368	#mainnav ul ul ul {top: 0; left: 100%; border-left:solid 1px #fff; width:auto;}
369	#mainnav ul.nav li.dropdown ul.dropdown-menu { webkit-box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); -moz-box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); }
370	#mainnav ul.nav li.dropdown ul.dropdown-menu li a { font-size: 17px; line-height: 26px; }
371	#mainnav ul.nav li.dropdown > ul.dropdown-menu > li[data-has-child] > a:after { content: ''; border: 4px solid transparent; border-left: 4px solid #000; margin-top: 2px; margin-bottom: 3px; display: inline-block; vertical-align: bottom; position: absolute; right: 6px; top: 10px; }
372	.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
373	.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;}
374	#header ul{list-style:none;margin:0;padding:0} #header li{list-style:none}
375	.navbar .nav{position:relative;}
376	.navbar .nav.pull-right{float:right;margin-right:0;}
377	.navbar .nav>li{float:left;}
378	.navbar .nav>li>a{float:none;padding:10px 15px 10px;text-decoration:none;}
379	.navbar .nav .dropdown-toggle .caret{margin-top:8px;}
380	.navbar .button-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;}
381	.button-navbar .icon-bar+.icon-bar{margin-top:3px;}
382	.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
383	.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
384	.dropdown-menu { position: absolute; display: none; float: left; }
385	.dropup, .dropdown { position: relative; }
386			.pushy { z-index: 99999999; }
387	.pushy-menu-storename span{
388		width: 40%;
389		position: absolute;
390		top: 24px;
391		right: 5px;
392		text-align: right;
393		padding-right: 10px;
394	}
395	.pushy-menu-storename a{
396		width: 90%;
397	}
398	.pushy-menu-storename a:hover, a:visited, a:link, a:active {
399		text-decoration: none;
400	}
401	</style> <link type="text/css" rel="stylesheet" href="https://cdn.qdm.cloud/min/css/theme/skin-2.css?v=231130001"> <link type="text/css" rel="stylesheet" href="https://image-cdn.qdm.cloud/site/q6a5dd2e0d87d6/custom_theme.css?v=20260604160837"> <style>
402	html {-webkit-transition: background-color 0s;transition: background-color 0s;} html.loading { position: relative; overflow:hidden; width:100%; height:100%; min-height:768px;
402 background: #fff url('https://cdn.qdm.cloud/min/cache/loading_1107.gif') no-repeat 50% 40%;-webkit-transition: background-color 0; transition: background-color 0; height: 100%; width: 100%;} body {-webkit-transition: opacity 0.3s ease-in;transition: opacity 0.3s ease-in;} html.loading body { opacity: 0; -webkit-transition: opacity 0s; transition: opacity 0s; } html.loading:before { font-size: 15px; content: "【 請勿關閉視窗 】等候交易授權中"; color: #000; vertical-align: middle; text-align: center; width: 100%; display: block; position: absolute; top: 30%; } img { opacity: 1; transition: opacity 0s; } img[data-src] { opacity: 1; } .flexslider .flex-direction-nav { display:none; }
403				.already_sold span{color:#e4007f;font-weight:bold;}
404	#myBody .fancybox-buttons { top: 60px; }
405	.ui-autocomplete.ui-front.ui-menu {
406		z-index: 999999999; border: none; border: 1px solid #EEE; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
407	}
408	.ui-autocomplete.ui-front.ui-menu > .ui-menu-item {
409		font-size: 17px; line-height: 26px; list-style-image: none; background-color: #FFF; cursor: pointer; border: none;
410	}
411	.ui-autocomplete.ui-front.ui-menu > .ui-menu-item a.ui-state-focus {
412		line-height: 26px;
413		border-color: #616161;
414		background: #616161 !important;
415		font-weight: bold !important;
416		color: #ffffff !important;
417	}
418	@media only screen and (max-width:768px){.fb_dialog_content>iframe:first-child, .fb-customerchat iframe {bottom: 50px !important;}.quickcheckout-checkout .fb_dialog_content>iframe:first-child, .quickcheckout-checkout .fb-customerchat iframe {bottom: 90px !important;}}
419	.onsale{ width:65px; height:24px; min-width:65px; min-height:24px; padding:2px; border-radius:5%; line-height:20px; }
420	#navbar-top-socialbar li.social-icon{ line-height:0px; padding-top:6px; }
421	#navbar-top-socialbar li.social-icon>a>i{ line-height:24px; }
422	.display_price { display:none; }
423
424	#payment-logo-list{
425		width: 100%;
426		max-width: 1200px;
427		margin: 0 auto;
428		/*padding-bottom: 20px;*/
429		padding-top: 10px;
430	}
431
432	#payment-logo-list .pl-row {
433		display: flex;
434		flex-wrap: wrap;
435		justify-content: center;
436		gap: 20px;
437	}
438
439	#payment-logo-list .pl-col {
440		flex: 1;
441		max-width: 120px;
442		padding: 2px;
443		text-align: center;
444	}
445	#payment-logo-list .pl-col img {
446		max-height: 40px;
447		line-height: 40px;
448		object-fit: contain
449	}
450	@media only screen and (max-width:768px){
451		#payment-logo-list .pl-col {
452			min-width: 10%;
453		}
454	}
455	</style> <style>
456	.preload-hidden { opacity: 0; transition: opacity .3s ease; }
457	.awoo-ui { display:block; margin-top:20px; margin-bottom:20px; }
458	</style> 
458<script>
459	window.addEventListener('load', function(){
460		try {
461			setTimeout(function(){
462				var preloadElements = document.querySelectorAll('.preload-hidden');
463				preloadElements.forEach(function(element) {
464					element.style.opacity = '1';
465				});
466			}, 300);
467		} catch(e) {}
468	});
469	</script>
469 </head> <body id="myBody" data-customer-group="1" data-instant-allow-query-string itemscope itemtype="https://schema.org/WebSite" class="responsive  skin-2 product-product"> <div id="fb-root"></div> 
469<script>
470	window.fbAsyncInit = function() {
471		FB.init({
472		  appId      		: '162172840650014',
473		  autoLogAppEvents 	: true,
474		  cookie     		: true,
475		  xfbml            	: true,
476		  status     		: true,
477		  version    		: 'v19.0'
478		});
479			};
480</script>
480 <meta itemprop="url" content="https://www.iporkcut.com.tw/" /> <!-- Mobile Header --> <!--googleoff: index--> <div id="mobile-navbar" class="navbar navbar-static-top FixedTop visible-xs visible-sm" style="display:none;"> <div class="navbar-inner"> <ul class="nav"> <li id="menu-btn" class="menu-btn"><span>&#9776;</span></li> <li class="site-title"> <a href="https://www.iporkcut.com.tw/">愛不是手★愛的是脆片肉乾</a> </li> <li id="shopping-cart-list" class="shopping-cart" data-direction="left" style="overflow: visible; margin: 0px; padding-right: 10px;"><a href="https://www.iporkcut.com.tw/cart"><i class="fa fa-shopping-cart" aria-hidden="true"></i><span class="badge hidden">0</span></a></li> </ul> </div> </div> <!--googleon: index--> <!-- Pushy Menu --> <nav id="mobile-menu-pushy" class="pushy pushy-left visible-xs visible-sm" style="display:none;"> <div class="pushy-content"> <ul> <li class="pushy-menu-storename"> <a href="https://www.iporkcut.com.tw/">愛不是手★愛的是脆片肉乾</a> <span><i class="fa fa-times" aria-hidden="true"></i></span> </li> <div class="pushy-menu-main"> <li class="header-logged-menu pushy-submenu hidden"> <button><i class="fa fa-user-circle-o"></i>&nbsp;<span id="header-mobile-user"></span></button> <ul> <li class="pushy-link"><a href="/account">會員中心</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/account/edit">我的資料</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/account/reward">我的紅利</a></li> <div class="pushy-menu-divide"></div> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/wishlist">願望清單</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/compare">商品比較</a></li> <div class="pushy-menu-divide"></div> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/newsletter">我的訂閱</a></li> </ul> </li> <li class="header-logged-menu pushy-submenu hidden"> <button><i class="fa fa-truck" aria-hidden="true"></i>&nbsp;我的訂單</button> <ul> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/account/order/payment">填寫匯款單</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/order">我的訂單</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/account/return">退/換貨紀錄</a></li> </ul> </li> <li class="pushy-link header-none-logged-menu hidden"><a href="/login"><i class="fa fa-user-circle-o"></i>&nbsp;會員中心&nbsp;(登入)</a></li> <li class="pushy-link header-none-logged-menu hidden"><a href="/guestorder"><i class="fa fa-search-plus" aria-hidden="true"></i>&nbsp;我要查訂單</a></li> <li class="pushy-submenu"> <button><i class="fa fa-commenting-o" aria-hidden="true"></i>&nbsp;找店長</button> <ul> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/contact">線上留言</a></li> <li class="pushy-link"><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer nofollow">電子郵件</a></li> <li class="pushy-link"><a href="https://www.messenger.com/t/iporkcut" target="_blank" rel="noopener noreferrer nofollow">Facebook訊息</a></li> </ul> </li> <li class="pushy-link header-logged-menu hidden"><a href="https://www.iporkcut.com.tw/account/logout"><i class="fa fa-sign-out" aria-hidden="true"></i>&nbsp;登出</a></li> </div> <!-- \.pushy-menu-main --> <div class="pushy-menu-divide"></div> <div class="search"> <form method="get" action="/search"> <span class="fa fa-search"></span> <input type="text" name="q" placeholder="商品關鍵字" autocomplete="off"> </form><br/> </div> <div class="pushy-menu-category"> <li class="pushy-link home-item-link"><a href="https://www.iporkcut.com.tw/">商店首頁</a></li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/年節禮盒" >年節禮盒</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/海鮮系列" >海鮮系列</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/肉乾系列" >肉乾系列</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/肉紙系列" >肉紙系列</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/脆片系列" >脆片系列</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/美味香鬆" >美味香鬆</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/涮嘴零嘴" >涮嘴零嘴</a> </li> </div> </ul> </div> </nav> <!-- Site Overlay --> <div class="site-overlay"></div> <header id="header" class="visible-lg visible-md" itemscope itemtype="https://schema.org/Organization"> <div class="container"> <!-- search bar --> <div class="container" id="search" class="search"> <div class="searchbox input-append" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"> <meta itemprop="target" content="https://www.iporkcut.com.tw/search?q={filter_name}"/> <input itemprop="query-input" type="search" name="filter_name" value="" placeholder="搜尋" class="input-xxlarge" /> <button class="button button-search" type="button"><i class="icon-search"></i></button> </div> </div> <ul class="nav nav-pills pull-right"> <li style="margin-top:-1px; margin-right: 10px;"></li> <li></li> <li><section class="float-mini-cart" id="cart"> <style>
481.mini-cart-info td, .mini-cart-total td { line-height:20px; }
482</style> <div class="heading"> <i class="fa fa-shopping-cart"></i>&nbsp;
483		( <a href="https://www.iporkcut.com.tw/cart" id="cart-total">
484					 0 件商品 $0				</a>
485		 )
486			</div> <div class="content"> <div class="empty white">購物車沒有加入任何商品</div> <a id="closecart" class="close" title="Close" onclick="$('#cart').removeClass('active');">×</a> </div> </section></li> <li id="header-logged-menu" class="dropdown hidden"> <a href="https://www.iporkcut.com.tw/account" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user-o"></i>&nbsp;<span id="header-logged-user"></span>&nbsp;<b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="https://www.iporkcut.com.tw/account">會員中心</a></li> <li><a href="https://www.iporkcut.com.tw/order">我的訂單</a></li> <li><a href="https://www.iporkcut.com.tw/account/order/payment">填寫匯款單</a></li> <li><a href="https://www.iporkcut.com.tw/wishlist">願望清單</a></li> <li><a href="https://www.iporkcut.com.tw/compare">商品比較</a></li> <li class="divider"></li> <li><a href="https://www.iporkcut.com.tw/account/logout">登出</a></li> </ul> </li> <li id="header-none-logged-menu"><a href="https://www.iporkcut.com.tw/login" title="會員登入" id="bt
486nLogin"><i class="fa fa-user-o"></i> 會員登入</a></li> <li class="dropdown"> <a href="##" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-commenting-o"></i></a> <ul class="dropdown-menu"> <li><a href="https://www.iporkcut.com.tw/contact"><i class="fa fa-comments-o">&nbsp;線上留言</i></a></li> <li><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer nofollow"><i class="fa fa-envelope-o">&nbsp;電子郵件</i></a></li> <li><a href="https://www.messenger.com/t/iporkcut" target="_blank" rel="noopener noreferrer nofollow"><i class="fa fa-facebook-square">&nbsp;Facebook訊息</i></a></li> </ul> </li> <li><a href="##" id="switchSearchPanel" class="switchSearchPanel" title="搜商品"><i class="fa fa-search"></i></a></li> </ul> <a itemprop="url" class="logo" href="https://www.iporkcut.com.tw/"><img onerror='imgError(this);' itemprop="logo" src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/26/1e97bc46691f1b39b1763c3dd3aca3c3.jpg" title="愛不是手★愛的是脆片肉乾" alt="愛不是手★愛的是脆片肉乾" /></a> </div> <br/><br/> </header> <div id="content-wrapper"> <div class="container"> <nav id="mainnav" class="navbar visible-lg visible-md" role="navigation" style="visibility:hidden"> <div class="navbar-inner"> <div class="container"> <button type="button" class="button button-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span>
487
488								選單</span> <i class="icon-navbtn"></i> </button> <div class="nav-collapse"> <ul class="nav"> <li data-categoryid="15"  href="https://www.iporkcut.com.tw/年節禮盒" > <a href="https://www.iporkcut.com.tw/年節禮盒"  data-hover="">年節禮盒</a> </li> <li data-categoryid="22"  href="https://www.iporkcut.com.tw/海鮮系列" > <a href="https://www.iporkcut.com.tw/海鮮系列"  data-hover="">海鮮系列</a> </li> <li data-categoryid="9"  href="https://www.iporkcut.com.tw/肉乾系列" > <a href="https://www.iporkcut.com.tw/肉乾系列"  data-hover="肉乾系列">肉乾系列</a> </li> <li data-categoryid="10"  href="https://www.iporkcut.com.tw/肉紙系列" > <a href="https://www.iporkcut.com.tw/肉紙系列"  data-hover="肉紙系列">肉紙系列</a> </li> <li data-categoryid="8"  href="https://www.iporkcut.com.tw/脆片系列" > <a href="https://www.iporkcut.com.tw/脆片系列"  data-hover="脆片系列">脆片系列</a> </li> <li data-categoryid="11"  href="https://www.iporkcut.com.tw/美味香鬆" > <a href="https://www.iporkcut.com.tw/美味香鬆"  data-hover="美味香鬆">美味香鬆</a> </li> <li data-categoryid="12"  href="https://www.iporkcut.com.tw/涮嘴零嘴" > <a href="https://www.iporkcut.com.tw/涮嘴零嘴"  data-hover="涮嘴零嘴">涮嘴零嘴</a> </li> </ul> </div> </div> </div> </nav><!-- #navbar --> </div><!-- .container --> <div class="fluid-container"> <div id="content-top"></div> </div><!-- .fluid-container --> <div id="body-outer-container" class="container"> <div class="container-inner"> <style>
489	.swal2-container.swal2-center {
490		z-index: 999999999;
491	}
492
493	#options .nice-number {
494		display: inline-block;
495	}
496
497	#options label[data-number-input-option] .nice-number>button {
498		-webkit-appearance: none;
499		border: 1px solid #BBB;
500		background: #FBFBFB;
501		height: 28px;
502	}
503
504	#options label[data-number-input-option] .multicheck-options {
505		border-radius: 0px;
506		height: 28px;
507	}
508
509	#options label.option--value-no-stock .nice-number {
510		display: none;
511	}
512
513	.product-info .rightcol .product-feature-content {
514		-moz-hyphens: auto;
515		-ms-hyphens: auto;
516		-webkit-hyphens: auto;
517		hyphens: auto;
518		word-wrap: break-word;
519	}
520
521	h1.product-heading-title {
522		-moz-hyphens: auto;
523		-ms-hyphens: auto;
524		-webkit-hyphens: auto;
525		hyphens: auto;
526		word-wrap: break-word;
527	}
528
529	.cart .button.button-ticket {
530		background: #35bcab;
531		border-color: #35bcab;
532	}
533
534	.cart .button.button-ticket:hover {
535		background: #35bcab;
536		border-color: #288e84;
537	}
538
539	/*#maincontent.product-info.span12 #main-image.image { text-align: center; } */
540	#maincontent.product-info.span12 #main-image img {
541		width: auto;
542		max-width: 480px;
543	}
544
545	#maincontent.product-info #main-defer-image {
546		width: 100%;
547		max-width: 480px;
548	}
549
550	#image-additional {
551		display: flex;
552		flex-wrap: wrap;
553		align-items: flex-start;
554		gap: 1px;
555		float: none !important;
556	}
557
558	#image-additional-container {
559		float: none !important;
560		clear: both;
561		display: block;
562		margin-left: auto;
563		margin-right: 0;
564	}
565
566	#image-additional li {
567		display: block;
568		margin: 0;
569		list-style: none;
570	}
571
572	#image-additional li a img {
573		display: block;
574	}
575
576	.add-additional-purchase-price {
577		display: inline-block;
578		margin-left: 12px;
579		margin-right: 12px;
580		line-height: 40px;
581	}
582
583	.add-additional-purchase-price .product-original-price {
584		display: inline-block;
585		margin: 0px;
586		margin-left: 6px;
587		text-decoration: line-through;
588		color: #C0C0C0;
589		font-size: 11px;
590	}
591
592	.add-additional-purchase-price .product-additional-price {
593		display: inline-block;
594		margin: 0px;
595		font-weight: bold;
596		color: #d9505b;
597		font-size: 14px;
598	}
599
600	.well.add-additional-purchase-price-container label {
601		padding: 4px;
602		padding-bottom: 8px;
603		padding-left: 12px;
604		border: 2px solid #DFDFDF;
605		background: #FFF;
606		cursor: pointer;
607		position: relative;
608	}
609
610	.well.add-additional-purchase-price-container label .text_no_pick {
611		padding: 0px;
612		padding-left: 6px;
613		padding-right: 6px;
614		border-radius: 4px;
615		background: #65b9aa;
616		color: #FFF;
617		font-size: 9px;
618		line-height: 16px;
619		position: absolute;
620		right: -3px;
621		top: -3px;
622		font-weight: bold;
623	}
624
625	.well.add-additional-purchase-price-container label:hover {
626		border: 2px solid #919191;
627	}
628
629	.well.add-additional-purchase-price-container label input[type='radio'] {
630		padding: 0px;
631		margin: 0px;
632	}
633
634	@media screen and (max-width: 467px) {
635		.option-image small {
636			display: block;
637		}
638
639		#maincontent.product-info.span12 #main-image img {
640			width: auto;
641			max-width: 100%;
642		}
643
644		#maincontent.product-info #main-defer-image {
645			width: 100%;
646			max-width: 100%;
647		}
648
649		h1.product-heading-title {
650			text-align: left;
651			padding: 20px;
652			padding-left: 12px;
653		}
654
655		#discount_list ul,
656		ol {
657			padding: 0;
658			margin: 0 0 10px 10px;
659			text-align: left;
660		}
661	}
662
663	@media only screen and (max-width: 1000px),
664	only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation: portrait),
665	only screen and (min-device-width: 414px) and (max-device-width: 736px) and (orientation: portrait) {
666
667		.product-info .image,
668		.product-info .image img {
669			#maincontent.product-info.span12 #main-image img {
670				width: auto;
671				max-width: 100%;
672			}
673
674			#maincontent.product-info #main-defer-image {
675				width: 100%;
676				max-width: 100%;
677			}
678
679			.rightcol .cart #button-cart.button-cart.button.pull-left {
680				-webkit-transition: none;
681				transition: none;
682			}
683		}
684
685	}
686
687
688	/* 貨到通知按鈕設定 */
689	.button-stock-notify {
690		background-color: var(--arrival-notice-button-bg-color, #ffffff);
691		/* 使用 CSS 變數,提供預設值 */
692		color: var(--arrival-notice-button-text-color, #333333);
693		/* 使用 CSS 變數,提供預設值 */
694		border: 1px solid var(--arrival-notice-button-border-color, #d9d9d9);
695		/* 使用 CSS 變數,提供預設值 */
696		border-radius: 6px;
697		padding: 10px 20px;
698		line-height: 1.42857143;
699		display: inline-block;
700		font-weight: 600;
701		text-align: center;
702		white-space: nowrap;
703		vertical-align: middle;
704		cursor: pointer;
705		transition: all .2s ease-in-out;
706		font-size: 16px;
707		width: fit-content;
708		background: linear-gradient(to bottom,
709				var(--arrival-notice-button-bg-color-light, #fdfdfd) 0%,
710				var(--arrival-notice-button-bg-color, #ffffff) 100%);
711		box-shadow:
712			0 2px 4px rgba(0, 0, 0, 0.1),
713			0 5px 15px rgba(0, 0, 0, 0.05),
714			inset 0 1px 0 rgba(255, 255, 255, 0.2);
715		border-color: var(--arrival-notice-button-border-color, #c0c0c0);
716
717	}
718
719	.button-stock-notify.small {
720		font-size: 12px;
721		padding: 0.20rem;
722	}
723
724	.button-stock-notify:hover,
725	.button-stock-notify:focus {
726
727		filter: brightness(98%);
728		/* 稍微抬升並加強陰影 */
729		transform: translateY(-2px);
730		box-shadow:
731			0 4px 8px rgba(0, 0, 0, 0.15),
732			0 8px 20px rgba(0, 0, 0, 0.08),
733			inset 0 1px 0 rgba(255, 255, 255, 0.3);
734		background: linear-gradient(to bottom,
735				var(--arrival-notice-button-bg-color, #ffffff) 0%,
736				var(--arrival-notice-button-bg-color, #f0f0f0) 100%);
737		border-color: var(--arrival-notice-button-border-color, #b0b0b0);
738		color: var(--arrival-notice-button-text-color, #222222);
739	}
740
741	.button-stock-notify:active,
742	.button-stock-notify.active {
743		transform: translateY(1px);
744		box-shadow:
745			0 1px 2px rgba(0, 0, 0, 0.2),
746			inset 0 1px 2px rgba(0, 0, 0, 0.1),
747			inset 0 -1px 0 rgba(255, 255, 255, 0.1);
748		background: var(--arrival-notice-button-bg-color, #e0e0e0);
749		border-color: var(--arrival-notice-button-border-color, #a0a0a0);
750	}
751
752	.button-stock-notify.disabled,
753	.button-stock-notify[disabled] {
754		background-color: #fafafa;
755		color: #b3b3b3;
756		border-color: #e6e6e6;
757		cursor: not-allowed;
758		box-shadow: none;
759		opacity: .75;
760	}
761
762	/*手機板樣式*/
763	.button-stock-notify.mobile {
764		width: 100%;
765		position: fixed;
766		bottom: 0px;
767		margin: 2px;
768		left: 0;
769		z-index: 9999;
770		margin: auto;
771		border-bottom: 0;
772		border-left: 0;
773		border-right: 0;
774		border-radius: 0;
775		padding: 10px;
776		height: 52px;
777	}
778
779	.d-inline-grid {
780		display: inline-grid;
781	}
782
783	/* 修正平板購買按鈕跑版問題 */
784	#button-cart.fix-btn-size,
785	#button-quick-checkout.fix-btn-size {
786		position: fixed;
787		bottom: 10px;
788		padding: 0;
789		margin: 2px;
790		z-index: 999998;
791		border-radius: 0;
792		border: 0;
793		-webkit-box-shadow: none;
794		-moz-box-shadow: none;
795		box-shadow: none;
796		height: 52px;
797		line-height: 52px;
798		font-size: 16px;
799		display: block;
800		text-shadow: none
801	}
802
803	#button-cart.fix-btn-size {
804		left: 0;
805		width: 38%;
806		-webkit-transition: width .5s;
807		transition: width .5s
808	}
809
810	#button-quick-checkout.fix-btn-size {
811		right: 0;
812		width: 60%;
813		background: #31bcab;
814		color: #fafafa !important;
815		font-weight: bold;
816		font-size: 18px
817	}
818
819	#button-instant-checkout.fix-btn-size {
820		width: 60%;
821		-webkit-transition: width .5s;
822		transition: width .5s
823	}
824
825	/* 禁止購買的樣式 */
826	.option-no-stock {
827		background: #f3f3f3 !important;
828		color: #c3c3c3 !important;
829		cursor: not-allowed !important;
830	}
831
832	.cursor-pointer {
833		cursor: pointer;
834	}
835
836	/* 貨到通知 - 彈窗顯示樣式*/
837	:root {
838		--lightbox-alert-error: rgb(95, 8, 2);
839		--lightbox-alert-success: #4CAF50;
840		--lightbox-alert-warning: rgb(119, 100, 71);
841		--lightbox-alert-info: rgb(0, 83, 151);
842	}
843
844
845	.lightbox-alert-icon-success {
846		color: var(--lightbox-alert-success);
847	}
848
849	.lightbox-alert-icon-error {
850		color: var(--lightbox-alert-error);
851	}
852
853	.lightbox-alert-icon-warning {
854		color: var(--lightbox-alert-warning);
855	}
856
857	.lightbox-alert-icon-info {
858		color: var(--lightbox-alert-info);
859
860	}
861
862	/* Alert 圖示顏色 貨到通知*/
863	.lightbox-alert-btn-success {
864		background: var(--lightbox-alert-success);
865	}
866
867	.lightbox-alert-btn-error {
868		background: var(--lightbox-alert-error);
869	}
870
871	.lightbox-alert-btn-warning {
872		background: var(--lightbox-alert-warning);
873	}
874
875	.lightbox-alert-btn-info {
876		background: var(--lightbox-alert-info);
877	}
878
879	.arrival-guide-guest-submit {
880		background:rgb(119, 133, 145);
881		color: #fff;
882		padding: 11px 0;
883		width: 100%;
884		border: none;
885		border-radius: 4px;
886		font-size: 16px;
887		cursor: pointer;
888		font-weight: 500;
889	}
890</style> <ol itemscope itemtype="http://schema.org/BreadcrumbList" class="breadcrumb"> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a itemprop="item" href="https://www.iporkcut.com.tw/"><span itemprop="name">首頁</span></a> <meta itemprop="position" content="1" /> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
891			 &gt; 			<a itemprop="item" href="https://www.iporkcut.com.tw/product/product&amp;product_id=66"><span itemprop="name">幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)</span></a> <meta itemprop="position" content="2" /> </li> </ol> <header class="heading"> <div id="notification"></div> </header> <div class="row-fluid"> <!-- GEO/AEO: BreadcrumbList JSON-LD --> 
891<script type="application/ld+json">
892		{
893			"@context": "https://schema.org",
894			"@type": "BreadcrumbList",
895			"itemListElement": [
896												{
897					"@type": "ListItem",
898					"position": 1,
899					"name": "\u9996\u9801",
900					"item": "https:\/\/www.iporkcut.com.tw\/"				}
901								,				{
902					"@type": "ListItem",
903					"position": 2,
904					"name": "\u5e78\u798f\u79ae\u76d2(\u53e4\u65e9\u5473\u8089\u4e7e+\u9ed1\u80e1\u6912\u539a\u5207+\u7ae0\u9b5a\u82b1)",
905					"item": "https:\/\/www.iporkcut.com.tw\/product\/product&amp;product_id=66"				}
906							]
907		}
908	</script>
908 <!-- GEO/AEO: WebPage + mainEntity --> 
908<script type="application/ld+json">
909		{
910			"@context": "https://schema.org",
911			"@type": "WebPage",
912			"name": "\u5e78\u798f\u79ae\u76d2(\u53e4\u65e9\u5473\u8089\u4e7e+\u9ed1\u80e1\u6912\u539a\u5207+\u7ae0\u9b5a\u82b1)",
913			"url": "https:\/\/www.iporkcut.com.tw\/product\/product&product_id=66",
914			"mainEntity": {
915				"@type": "Product",
916				"@id": "#product"
917			}
918		}
919	</script>
919 
919<script type="application/ld+json">
920		{
921			"@context": "https://schema.org",
922			"@type": "Product",
923			"@id": "#product",
924			"productID": "66",
925			"name": "\u5e78\u798f\u79ae\u76d2",
926			"description": "\u2605\u56b4\u9078CAS\u512a\u8cea\u8c6c\u8089 \u2605\u65b0\u9bae\u624b\u4f5c\uff0c\u7368\u7acb\u5305\u88dd \u2605\u7c73\u5176\u6797\u516d\u9762\u7099\u71d2\uff0c\u8edf\u5ae9\u591a\u6c41",
927			"image": [
928				"https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2026\/06\/10\/b31f36f5c8415c0c65122820aeebe4e6.jpg",
929				"https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2021\/12\/07\/c02414399c2138c93c35749d066f31b5.jpg",
930				"https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2025\/05\/27\/58e867ac065a0b9f3da5801a8d44616a.jpg",
931				"https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2021\/12\/07\/65fe1e6f072ba91047a384c146e41ee5.jpg"
932			],
933			"brand": {
934				"@type": "Brand",
935				"name": "\u5e78\u798f\u79ae\u76d2(\u53e4\u65e9\u5473\u8089\u4e7e+\u9ed1\u80e1\u6912\u539a\u5207+\u7ae0\u9b5a\u82b1)"
936			}
937			, "offers": {
938				"@type": "Offer",
939				"url": "https:\/\/www.iporkcut.com.tw\/product\/product&product_id=66",
940				"priceCurrency": "TWD",
941				"price": "750",
942				"priceValidUntil": "2027-10-08",
943				"itemCondition": "https://schema.org/NewCondition",
944				"availability": "https://schema.org/InStock",
945				"seller": {
946					"@type": "Organization",
947					"name": "愛不是手★肉乾"
948				},
949				"shippingDetails": {
950					"@type": "OfferShippingDetails",
951					"shippingRate": {
952						"@type": "MonetaryAmount",
953						"value": "0",
954						"currency": "TWD"
955					},
956					"shippingDestination": {
957						"@type": "DefinedRegion",
958						"addressCountry": "TW"
959					},
960					"deliveryTime": {
961						"@type": "ShippingDeliveryTime",
962						"handlingTime": {
963							"@type": "QuantitativeValue",
964							"minValue": "1",
965							"maxValue": "3",
966							"unitCode": "DAY"
967						},
968						"transitTime": {
969							"@type": "QuantitativeValue",
970							"minValue": "1",
971							"maxValue": "3",
972							"unitCode": "DAY"
973						}
974					}
975				},
976				"hasMerchantReturnPolicy": {
977					"@type": "MerchantReturnPolicy",
978					"applicableCountry": "TW",
979					"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
980					"merchantReturnDays": "7",
981					"returnMethod": "https://schema.org/ReturnByMail",
982					"returnFees": "https://schema.org/FreeReturn"
983				}
984			}
985		}
986	</script>
986 <section id="maincontent" class="product-info span12" role="main"> <div class="mainborder"> <div class="prevnext clearfix"> <ul class="pager"> <li class="previous"> </li> <li class="next"> </li> </ul> </div> <div class="row-fluid"> <div class="leftcol"> <img id="main-defer-image" onerror='imgError(this);' src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-rjs="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"  style="display:inline-block;" /> <div id="main-image" class="image hidden" style="padding:0px;"> <a class="fancybox-product" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)"><img pagespeed_no_defer="" id='zoom1' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-rjs="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"  onerror='imgError(this);' data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" alt="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)" style="display:inline-block;min-height:200px;animation-duration:0s;transition: all 0s ease 0s" /></a> </div> <div id="image-additional-container" class="image-additional animated fadeIn" style="display:none;"> <ul id="image-additional"> <li><a data-fancybox="gallery" rel="group" class="zoom-active" data-fancybox-type="image" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)" data-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" class="elevatezoom-gallery"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror='imgError(this);' data-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/cache/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6-120x120.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)" alt="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)" /></a></li> <li><a data-fancybox="gallery" rel="group" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)" data-fancybox-type="image" data-image="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" class="elevatezoom-gallery"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/cache/data/2021/12/07/c02414399c2138c93c35749d066f31b5-120x120.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)_1" alt="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)_1" /></a></li> <li><a data-fancybox="gallery" rel="group" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)" data-fancybox-type="image" data-image="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg" data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg" class="elevatezoom-gallery"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/cache/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a-120x120.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)_2" alt="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)_2" /></a></li> <li><a data-fancybox="gallery" rel="group" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)" data-fancybox-type="image" data-image="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" class="elevatezoom-gallery"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/cache/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5-120x120.jpg" title="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)_3" alt="幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)_3" /></a></li> </ul> </div> </div> <!-- .span6 LEFT BOX--> <div class="rightcol"> <input type="hidden" name="EscrowDays" value="" /> <h1 class="product-heading-title">幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)</h1> <br /><span class="product-feature-content"><p><span style="font-size:20px;">精緻包裝,送禮大方</span></p> <p><span style="font-size:20px;">★嚴選新鮮食材製成★<br />
987★大人小孩都喜愛★<br />
988★休閒零嘴秒殺款★</span></p> </span><br /> <!-- special_price_countdown start --> <!-- special_price_countdown end --> <div class="price"> <div id="price-price-block"> <span class="price-normal product-sell-price" data-content="750">$750</span> </div> <div class="discount" id="promotion_list"> </div> <!-- .discount--> </div> <!-- .price --> <div class="description"> <span>庫存狀況</span>&nbsp;<span id="product-stock-current" data-display-status="0">現貨</span> </div> <!-- .description --> <div class="cart"> <div> <br /> <input type="text" name="quantity" value="1" style="text-align: center;" /> <br /> <input type="hidden" name="product_id" value="66" id="product_id" /> <input type="hidden" name="promotion_id" id="promotion_id" value="-1" /> <div class="hidden-xs hidden-sm pull-left"> <input type="button" class="button-quick-checkout" value="直接購買" id="button-quick-checkout" onclick="buttonQuickCheckout();return false;" /> </div> <a id="button-cart" onclick="buttonAddToCart()" class="button-cart button pull-left"><i class="icon-spinner icon-spin hidden" style="margin-right: 8px;"></i>加入購物車</a> </div> </div> <!-- .cart --> <div class="hidden-lg hidden-md"> <center> <input type="button" class="btn btn-default btn-block button-quick-checkout button-quick-checkout-mobile" value="直接購買" id="button-quick-checkout" onclick="buttonQuickCheckout();return false;" /> <a id="button-instant-checkout" class="button hidden" href="/cart">結帳&nbsp;<i class="fa fa-chevron-right" aria-hidden="true"></i></a> </center> </div> <div class="clearfix hidden-xs hidden-sm"></div> <div id="free_present_list" style="display:none;margin-top:32px;"></div> <div id="buy_together_list" style="display:none;margin-top:32px;"></div> <div id="error_buy_togther"></div><br /> <div id="cloudmaker_stock"> </div> <div class="more-actions"> <div class="wishlist">
988<a onclick="addToWishList('66');FB_AddToWishlist();">加入願望清單</a></div> <div class="compare"><a onclick="addToCompare('66');">加入商品比較</a></div> </div> <div class="tags"> <b>標籤</b> <a href="/tag/蜜汁豬肉條" rel="tag">蜜汁豬肉條</a> </div> <div class="share"> <br /> <div class="a2a_kit a2a_kit_size_22 a2a_default_style" data-a2a-icon-color="transparent" id="my_centered_buttons"> <a class="a2a_button_line external"></a> <a class="a2a_button_facebook external"></a> <a class="a2a_button_twitter external"></a> <a class="a2a_button_google_plus external"></a> <a class="a2a_button_pinterest external"></a> </div> </div> </div> <!-- .span6 RIGHT BOX--> </div> <section id="full-info" class="clearfix"> <div id="tabs" class="htabs hidden "> <a href="#tab-description">商品介紹</a> </div> <div id="tab-description" class="tab-content"> <div id="defer-load-spin"><i class="fa fa-circle-o-notch fa-spin fa-fw"></i><br /></div> <!-- ==========================================================================
989   【愛不是手】商品詳情頁 - 頂級奢華專業編排優化版 (置中靠左美學 - 三合一組合專用)
990   ========================================================================== --> <div class="ipork-product-detail-container"><!-- 視覺主圖區塊 --> <div class="detail-media-group"><img alt="商品主圖1" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c8eb41f150047154698e17ee8d15bf71.jpg" / /> <img alt="商品主圖2" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" / /> <img alt="商品主圖3" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" / /> <img alt="商品特色圖1" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/7974806271bb2fd0ec3c14fd1f901fff.jpg" / /> <img alt="商品特色圖2" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/40ccdb7281f7a658ee2686a9d2bf8367.jpg" / /> <img alt="商品特色圖3" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/8be0665f72c18a6a0a6ae931575e78a0.jpg" / /></div> <hr class="section-divider" /><!-- 產品規格參數資訊卡 (全域置中,項目內文精準靠左防拆開) --> <div class="product-specifications-card"> <h3 class="spec-section-title">產品詳細規格</h3> <div class="spec-info-list"><!-- 組合商品成份與規格:靠左齊頭完美排版 --> <div class="spec-item"><span class="spec-label">商品成份 / 規格</span> <div class="spec-value combo-specs-group"> <div class="combo-item"><strong class="combo-name">【古早味肉乾】</strong> <p class="combo-detail">精選豬肉、醬油、蔗糖、鹽、調味料、法定食用色素(黃色4號、5號) / 205g &plusmn; 10g</p> </div> <div class="combo-item"><strong class="combo-name">【黑胡椒厚切】</strong> <p class="combo-detail">嚴選CAS豬肉、醬油、蔗糖、鹽、高級黑胡椒、天然香辛料己二烯酸(千分之二以下)、亞硝酸鹽(保色劑0.07kg以下)、法定食用色素(紅色6號) / 157g &plusmn; 10g</p> </div> <div class="combo-item"><strong class="combo-name">【章魚花】</strong> <p class="combo-detail">嚴選新鮮魷魚、蔗糖、鹽、味精、己二烯酸(0.1%以下) / 170g &plusmn; 10g</p> </div> </div> </div> <div class="spec-item"><span class="spec-label">保存方式</span> <span class="spec-value">常溫保存</span></div> <div class="spec-item"><span class="spec-label">賞味期限</span> <span class="spec-value highlight-text">
99030天,開封後請於一星期內食用完畢</span></div> <div class="spec-item"><span class="spec-label">到貨日期</span> <span class="spec-value">付款後 5 ~ 7 個工作天</span></div> <div class="spec-item"><span class="spec-label">商品原價</span> <span class="spec-value origin-price-tag">NT$ 810 元</span></div> </div> </div> <hr class="section-divider" /><!-- 品牌保障與結尾情境圖 --> <div class="detail-media-group bottom-gallery"><img alt="愛不是手品牌保障圖1" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/7be88000d5c57a3b834ab3ab7299929e.jpg" / /> <img alt="愛不是手品牌保障圖2" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/ef7592413df8476a480db470906defb1.jpg" / /></div> </div> <!-- 專為愛不是手設計的高級電商 CSS 樣式表 (置中靠左高級視覺規範) --> <style type="text/css">/* 詳情頁全域環境重設 */
991.ipork-product-detail-container {
992    max-width: 950px !important;
993    margin: 0 auto !important;
994    padding: 20px 15px !important;
995    background-color: #ffffff !important;
996    font-family: "PingFang TC", "Heiti TC", "Microsoft JhengHei", sans-serif !important;
997    color: #333333 !important;
998}
999
1000/* 圖片防爆與高級質感控制 */
1001.detail-media-group img {
1002    width: 100% !important;
1003    height: auto !important;
1004    display: block !important;
1005    margin-bottom: 25px !important;
1006    border-radius: 6px !important; 
1007    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03) !important; 
1008}
1009.bottom-gallery img {
1010    margin-bottom: 20px !important;
1011}
1012
1013/* 時尚極簡分隔線 */
1014.section-divider {
1015    border: none !important;
1016    border-top: 1px dashed #e5e5e5 !important;
1017    margin: 45px 0 !important;
1018}
1019
1020/* ==========================================================================
1021   產品詳細規格卡設計(全域置中、項目靠左齊行不拆開)
1022   ========================================================================== */
1023.product-specifications-card {
1024    background: #ffffff !important;
1025    padding: 10px 5px !important;
1026    text-align: center !important; /* 保持大標題和容器框架置中 */
1027}
1028
1029.spec-section-title {
1030    font-size: 19px !important;
1031    color: #222222 !important;
1032    font-weight: bold !important;
1033    margin: 0 auto 35px auto !important;
1034    display: inline-block !important;
1035    position: relative !important;
1036    padding-bottom: 10px !important;
1037}
1038/* 質感品牌色置中下襯線 */
1039.spec-section-title::after {
1040    content: '' !important;
1041    position: absolute !important;
1042    bottom: 0 !important;
1043    left: 50% !important;
1044    transform: translateX(-50%) !important;
1045    width: 35px !important;
1046    height: 3px !important;
1047    background-color: #b51a63 !important; 
1048    border-radius: 2px !important;
1049}
1050
1051/* 清單容器置中鎖定 */
1052.spec-info-list {
1053    display: flex !important;
1054    flex-direction: column !important;
1055    gap: 0 !important; 
1056    max-width: 650px !important; /* 限縮黃金閱讀寬度,確保在畫面正中央 */
1057    margin: 0 auto !important;
1058    background-color: #ffffff !important;
1059}
1060
1061/* 每個規格條目:左右並排、垂直置中、文字靠左 */
1062.spec-item {
1063    display: flex !important;
1064    flex-direction: row !important; 
1065    align-items: flex-start !important; 
1066    border-bottom: 1px solid #f7f7f7 !important;
1067    padding: 16px 10px !important;
1068    text-align: left !important; /* 條目內容完全靠左對齊 */
1069}
1070.spec-item:last-child {
1071    border-bottom: none !important;
1072}
1073
1074/* 左側欄位名稱標籤 */
1075.spec-label {
1076    font-weight: bold !important;
1077    color: #b51a63 !important; /* 品牌桃紅色 */
1078    font-size: 15px !important;
1079    width: 110px !important; /* 固定寬度,確保右側內容對齊線絕對一致 */
1080    flex-shrink: 0 !important; 
1081    letter-spacing: 1px !important;
1082}
1083
1084/* 右側詳細規格說明(文字靠左齊行,絕不任意拆開散落) */
1085.spec-value {
1086    color: #555555 !important;
1087    font-size: 15px !important;
1088    line-height: 1.6 !important;
1089    text-align: left !important; 
1090}
1091
1092/* 組合商品細項排版優化:靠左齊頭排版 */
1093.combo-specs-group {
1094    display: flex !important;
1095    flex-direction: column !important;
1096    gap: 12px !important;
1097    width: 100% !important;
1098}
1099.combo-item {
1100    background-color: #fafafa !important; /* 輕微灰底襯托組合結構 */
1101    padding: 12px 14px !important;
1102    border-radius: 4px !important;
1103    border-left: 3px solid #b51a63 !important; /* 精緻左側品牌色裝飾線 */
1104    text-align: left !important;
1105}
1106.combo-name {
1107    color: #222222 !important;
1108    font-size: 14px !important;
1109    display: block !important;
1110    margin-bottom: 4px !important;
1111}
1112.combo-detail {
1113    margin: 0 !important;
1114    font-size: 14px !important;
1115    color: #666666 !important;
1116    line-height: 1.5 !important;
1117    text-align: left !important;
1118}
1119
1120/* 賞味期限警告色優化 */
1121.highlight-text {
1122    color: #d93838 !important;
1123    font-weight: 500 !important;
1124}
1125.origin-price-tag {
1126    font-family: Arial, sans-serif !important;
1127    color: #444444 !important;
1128}
1129
1130/* ==========================================================================
1131   RWD 手機端自動調適排版
1132   ========================================================================== */
1133@media (max-width: 768px) {
1134    .ipork-product-detail-container {
1135        padding: 10px !important;
1136    }
1137    .spec-info-list {
1138        max-width: 100% !important;
1139    }
1140    .spec-item {
1141        flex-direction: column !important; 
1142        gap: 6px !important;
1143        padding: 14px 5px !important;
1144    }
1145    .spec-label {
1146        width: 100% !important;
1147    }
1148}
1149</style> </div> <!-- #tab-description --> </section> </div> </section> </div> <!-- 商品選項 彈跳視窗 --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> <h4 class="modal-title" id="myModalLabel">商品選項</h4> </div> <div id="cart_options_list" class="modal-body"></div> <div class="modal-footer"> <button type="button" class="button" id="button-change-option" style="height: 48px; width: 100%; background: #31bcab; color: #FFF; font-size: 14px; text-align: center; border-radius: 4px; text-shadow: none;">確定</button> </div> </div> </div> </div> <!-- 商品資訊 --> <div style="width: 75%;position: fixed;left: 50%;margin: 0 0 0 -37.5%;" class="modal fade" id="myModal_prod" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> <h4 class="modal-title" id="myModalLabel">商品資訊</h4> </div> <div id="prod_data" class="modal-body"> </div> <div class="modal-footer"> </div> </div> </div> </div> <div class="prevnext clearfix"> <ul class="pager"> <li class="previous"> </li> <li class="next"> </li> </ul> </div> 
1149<script>
1150	const goods_arrival_notice_switch_status = 0;
1151	var xOffset = 10;
1152	var yOffset = 30;
1153	var jsLoadProductTimeout = null;
1154	global_product_id = '66';
1155
1156	// GOOGLE TRACKING PRODUCT DETAILS VIEWS
1157	function gaTrackProductView() {
1158				// UA
1159		dataLayer.push({
1160			'ecommerce': {
1161				'detail': {
1162					'products': [{
1163						'name': '幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)',
1164						'id': '66',
1165						'price': '750',
1166						'category': '年節禮盒',
1167					}]
1168				}
1169			}
1170		});
1171		// GA4
1172		dataLayer.push({
1173			'event': 'view_item',
1174			'ecommerce': {
1175				'items': [{
1176					'item_name': '幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)',
1177					'item_id': '66',
1178					'price': '750',
1179					'item_category': '年節禮盒',
1180					'quantity': '1'
1181				}]
1182			}
1183		});
1184
1185
1186
1187			}
1188
1189	function gaTrackProductAddToCart() {
1190		var qty = 1;
1191		if ($("select[name='quantity']").length) {
1192			qty = $("select[name='quantity'] option:selected").val();
1193		} else {
1194			qty = $("input[name='quantity']").val();
1195		}
1196				// UA
1197		dataLayer.push({
1198			'event': 'addToCart',
1199			'ecommerce': {
1200				'currencyCode': '',
1201				'add': {
1202					'products': [{
1203						'name': '幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)',
1204						'id': '66',
1205						'price': '750',
1206						'category': '年節禮盒',
1207						'quantity': qty
1208					}]
1209				}
1210			}
1211		});
1212		// GA4
1213		dataLayer.push({
1214			'event': 'add_to_cart',
1215			'ecommerce': {
1216				'items': [{
1217					'item_name': '幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)',
1218					'item_id': '66',
1219					'price': '750',
1220					'item_category': '年節禮盒',
1221					'quantity': qty
1222				}]
1223			}
1224		});
1225
1226		
1227		
1228	}
1229
1230	// IMPORTANT: global_quuid MUST be (re)generated by the caller BEFORE invoking this for
1231	// "AddToCart". The CAPI beacon echoed inside (AddToCart.tpl) reads global_quuid from JS
1232	// scope for its quuid; the FB Pixel that fires after the caller uses the same global_quuid
1233	// as eventID. Regenerating global_quuid between this call and the Pixel breaks Meta dedup.
1234	function gaTrackMultiPixelsAddToCart(EventType) {
1235
1236		if (typeof(EventType) === 'undefined') EventType = '';
1237
1238		
1239		var qty = 1;
1240		if ($("select[name='quantity']").length) {
1241			qty = $("select[name='quantity'] option:selected").val();
1242		} else {
1243			qty = $("input[name='quantity']").val();
1244		}
1245
1246		gecommProductToCart.product_id = 66;
1247		gecommProductToCart.price = 750;
1248		gecommProductToCart.quantity = qty;
1249		gecommProductToCart.product_name = '幸福禮盒(古早味肉乾+黑胡椒厚切+章魚花)';
1250		gecommProductToCart.image_url = 'https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg';
1251		gecommProductToCart.product_url = "https://www.iporkcut.com.tw/product/product&product_id=66";
1252		gecommProductToCart.sku = "";
1253
1254		if (EventType == "AddToCart") {
1255					}
1256
1257																	}
1258
1259	function checked_option(option_id) {
1260		$("label.checkbox #option-value-" + option_id).prop("checked", true);
1261		$("label.checkbox #option-value-" + option_id).closest("label.checkbox").addClass("opton-selected");
1262		if (parseInt($("#add-quantity-" + option_id).val()) <= 0) {
1263			$("#add-quantity-" + option_id).val(1);
1264		}
1265	}
1266
1267	function loadproddata(v1) {
1268
1269		if (is.not.desktop()) {
1270			$('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown");
1271			$('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown");
1272		}
1273
1274		$('#prod_data').html("<br/><center><i class='icon-spinner icon-spin icon-large'></i></center>");
1275
1276		$.ajax({
1277			url: 'index.php?route=product/product_info&product_id=' + v1,
1278			dataType: 'html',
1279			beforeSend: function() {},
1280			success: function(html) {
1281				$('#prod_data').html(html);
1282			},
1283			error: function(xhr, ajaxOptions, thrownError) {
1284				console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
1285			}
1286		});
1287	}
1288
1289	function autosize(ImgD, h, w) {
1290		var image = new Image();
1291		image.src = ImgD.src;
1292		if (image.width < w && image.height < h) {
1293			ImgD.width = image.width;
1294			ImgD.height = image.height;
1295		} else {
1296			if (w / h <= image.width / image.height) {
1297				ImgD.width = w;
1298				ImgD.height = w * (image.height / image.width);
1299			} else {
1300				ImgD.width = h * (image.width / image.height);
1301				ImgD.height = h;
1302			}
1303		}
1304
1305	}
1306
1307	function buttonQuickCheckout() {
1308		if ($("select[name='quantity']").length) {
1309			check_qty = $("select[name='quantity'] option:selected").val();
1310		} else {
1311			check_qty = $("input[name='quantity']").val();
1312		}
1313
1314		if (check_qty == 0) {
1315			$(".alert-danger").remove();
1316			$('#product_id').after('<div class="alert alert-danger" role="alert">商品數量要大於0!</div>');
1317			return false;
1318		}
1319
1320		if ($(".div_group[data-required]").length) {
1321			$(".alert-error").remove();
1322
1323			var r = 0;
1324			var v_qty;
1325			$(".div_group[data-required]").each(function(index) {
1326				var required = $(this).data("required") || 0;
1327				v_qty = 0;
1328				$(this).find(".free_present_qty").each(function() {
1329
1330					v_qty = v_qty + parseInt($(this).val());
1331				});
1332
1333				if (required == 1 && v_qty == 0) r++;
1334			});
1335
1336			if (r > 0) {
1337				$('#free_present_list').before('<div class="alert alert-error" style="margin-bottom:0px;margin-top:30px;"> * 必選的贈品項目請選擇!</div>');
1338
1339				$('html, body').animate({
1340					scrollTop: ($('#free_present_list').offset().top - 150)
1341				}, 1000);
1342				iziToast.show({
1343					timeout: 3000,
1344					color: '#eb4359',
1345					messageColor: '#FFF',
1346					message: "* 必選的贈品項目請選擇",
1347					position: 'center',
1348					progressBar: false,
1349					progressBarEasing: 'ease',
1350				});
1351
1352				return false;
1353			}
1354			if ($(".warning").text().length > 0) {
1355				return false;
1356			}
1357
1358		}
1359		if ($("#options .control-group[data-max-qty]").length) {
1360			var r = true;
1361			$("#options .control-group[data-max-qty]").each(function(index) {
1362				var option_ckb_id = $(this).data("option-id") || 0;
1363				if (option_ckb_id) {
1364					r = checkCheckboxOptionQtyLimition(option_ckb_id);
1365					if (r == false) return false;
1366				}
1367			});
1368			if (r == false) return false;
1369		}
1370		$('.button-quick-checkout').attr("disabled", "disabled");
1371		$('.icon-spinner').removeClass('hidden');
1372		$("input[name='product_id']").attr("value", 66);
1373
1374		var add_cart_url = 'index.php?route=checkout/cart/add';
1375
1376		
1377		$.ajax({
1378			url: add_cart_url,
1379			type: 'post',
1380			data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea,.cart input[name=\'promption_id\']'),
1381			dataType: 'json',
1382			success: function(json) {
1383				$(".error").remove();
1384				$(".alert-danger").remove();
1385				$('.icon-spinner').addClass('hidden');
1386				$('.button-quick-checkout').removeAttr("disabled", "disabled");
1387				var error_option_msg = 0;
1388
1389				if (json['error']) {
1390
1391					$(".error").remove();
1392
1393					if (json['error']['option']) {
1394						$(".alert-error").remove();
1395						var error_option_msg = 0;
1396						for (i in json['error']['option']) {
1397
1398							error_option_msg = json['error']['option'][i];
1399
1400							if (is.not.desktop()) {
1401
1402								$('#option-' + i).after('<div class="alert alert-error">' + json['error']['option'][i] + '</div>');
1403
1404							} else {
1405
1406								$('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>');
1407							}
1408						}
1409						if (error_option_msg) {
1410							iziToast.show({
1411								timeout: 3000,
1412								color: '#eb4359',
1413								messageColor: '#FFF',
1414								message: error_option_msg,
1415								position: 'center',
1416								progressBar: false,
1417								progressBarEasing: 'ease',
1418							});
1419						}
1420					}
1421
1422					if (json['error']['prod_stock']) {
1423
1424						if (is.not.desktop()) {
1425
1426							$(".alert-error").remove();
1427							$('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>');
1428							iziToast.show({
1429								timeout: 3000,
1430								color: '#eb4359',
1431								messageColor: '#FFF',
1432								message: json['error']['prod_stock'],
1433								position: 'center',
1434								progressBar: false,
1435								progressBarEasing: 'ease',
1436							});
1437
1438						} else {
1439
1440							$(".alert-danger").remove();
1441							$('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>');
1442
1443						}
1444
1445					}
1446
1447					if (json['error']['buy_together']) {
1448						for (j in json['error']['buy_together']) {
1449															$('#error_buy_togther').after('<span class="error bg-danger">' + json['error']['buy_together'][j] + '</span>');
1450													}
1451					}
1452
1453				}
1454
1455				if (json['success']) {
1456					// fb-capi: regenerate ONE shared event id per AddToCart BEFORE any tracker fires,
1457					// so Pixel(eventID) and CAPI(quuid) match and Meta can dedup the pair.
1458					global_quuid = QUUID();
1459					try {
1460						gaTrackMultiPixelsAddToCart("AddToCart");
1461					} catch (e) {}
1462					try {
1463						gaTrackProductAddToCart();
1464					} catch (e) {}
1465										
1466					var qty = 1;
1467					if ($("select[name='quantity']").length) {
1468						qty = $("select[name='quantity'] option:selected").val();
1469					} else {
1470						qty = $("input[name='quantity']").val();
1471					}
1472
1473					
1474					var product_price = qty * 750;
1475
1476					
1477					
1478					setTimeout(function() {
1479						window.location.href = "https://www.iporkcut.com.tw/cart";
1480					}, 1000);
1481				}
1482
1483				if (is.not.desktop()) {
1484					if (json['error']) {
1485
1486						$('html, body').animate({
1487							scrollTop: $('#options').offset().top
1488						}, 'slow');
1489
1490					}
1491				}
1492
1493
1494				if (json?.error?.prod_stock || error_option_msg != 0) {
1495
1496					if (hasStockError(json.error.prod_stock) || hasStockError(error_option_msg)) {
1497						setTimeout(() => {
1498							showStockAlertBtn(1);
1499						}, 200);
1500					}
1501				}
1502
1503			}
1504		});
1505		return false;
1506
1507	}
1508
1509	function FB_AddToWishlist() {
1510				try {
1511			gaTrackMultiPixelsAddToCart("AddToWishlist");
1512		} catch (e) {}
1513	}
1514
1515	// button-cart
1516	function buttonAddToCart() {
1517		if ($("select[name='quantity']").length) {
1518			check_qty = $("select[name='quantity'] option:selected").val();
1519		} else {
1520			check_qty = $("input[name='quantity']").val();
1521		}
1522
1523		if (check_qty == 0) {
1524			$(".alert-danger").remove();
1525			$('#product_id').after('<div class="alert alert-danger" role="alert">商品數量要大於0!</div>');
1526			return false;
1527		}
1528
1529		if ($(".div_group[data-required]").length) {
1530
1531			$(".alert-error").remove();
1532
1533			var r = 0;
1534			var v_qty;
1535			$(".div_group[data-required]").each(function(index) {
1536				var required = $(this).data("required") || 0;
1537				v_qty = 0;
1538				$(this).find(".free_present_qty").each(function() {
1539
1540					v_qty = v_qty + parseInt($(this).val());
1541				});
1542
1543				if (required == 1 && v_qty == 0) r++;
1544			});
1545
1546			if (r > 0) {
1547				$('#free_present_list').before('<div class="alert alert-error" style="margin-bottom:0px;margin-top:30px;"> * 必選的贈品項目請選擇!</div>');
1548
1549				$('html, body').animate({
1550					scrollTop: ($('#free_present_list').offset().top - 150)
1551				}, 1000);
1552
1553				iziToast.show({
1554					timeout: 3000,
1555					color: '#eb4359',
1556					messageColor: '#FFF',
1557					message: "* 必選的贈品項目請選擇",
1558					position: 'center',
1559					progressBar: false,
1560					progressBarEasing: 'ease',
1561				});
1562
1563				return false;
1564			}
1565
1566			if ($(".warning").text().length > 0) {
1567				return false;
1568			}
1569		}
1570
1571		if ($("#options .control-group[data-max-qty]").length) {
1572			var r = true;
1573			$("#options .control-group[data-max-qty]").each(function(index) {
1574				var option_ckb_id = $(this).data("option-id") || 0;
1575				if (option_ckb_id) {
1576					r = checkCheckboxOptionQtyLimition(option_ckb_id);
1577					if (r == false) return false;
1578				}
1579			});
1580			if (r == false) return false;
1581		}
1582
1583		$('.button-cart').attr("disabled", "disabled");
1584		$('.icon-spinner').removeClass('hidden');
1585		$("input[name='product_id']").attr("value", 66);
1586		$(".alert-danger").remove();
1587
1588		var add_cart_url = 'index.php?route=checkout/cart/add';
1589
1590		
1591		$.ajax({
1592			url: add_cart_url,
1593			type: 'post',
1594			data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea,.cart input[name=\'promption_id\']'),
1595			dataType: 'json',
1596			success: function(json) {
1597
1598				$('.success, .warning, .attention, information, .error').remove();
1599				$('.icon-spinner').addClass('hidden');
1600
1601				if (json['error']) {
1602
1603					$(".error").remove();
1604
1605					if (json['error']['option']) {
1606						$(".alert-error").remove();
1607						var error_option_msg = 0;
1608						for (i in json['error']['option']) {
1609
1610							error_option_msg = json['error']['option'][i];
1611
1612							if (is.not.desktop()) {
1613
1614								$('#option-' + i).after('<div class="alert alert-error">' + json['error']['option'][i] + '</div>');
1615
1616							} else {
1617
1618								$('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>');
1619
1620							}
1621						}
1622						if (error_option_msg) {
1623							iziToast.show({
1624								timeout: 3000,
1625								color: '#eb4359',
1626								messageColor: '#FFF',
1627								message: error_option_msg,
1628								position: 'center',
1629								progressBar: false,
1630								progressBarEasing: 'ease',
1631							});
1632						}
1633					}
1634
1635					if (json['error']['prod_stock']) {
1636
1637						if (is.not.desktop()) {
1638
1639							$(".alert-error").remove();
1640							$('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>');
1641							iziToast.show({
1642								timeout: 3000,
1643								color: '#eb4359',
1644								messageColor: '#FFF',
1645								message: json['error']['prod_stock'],
1646								position: 'center',
1647								progressBar: false,
1648								progressBarEasing: 'ease',
1649							});
1650
1651						} else {
1652
1653							$(".alert-danger").remove();
1654							$('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>');
1655
1656						}
1657
1658					}
1659
1660					if (json['error']['buy_together']) {
1661						for (j in json['error']['buy_together']) {
1662															$('#error_buy_togther').after('<span class="error bg-danger">' + json['error']['buy_together'][j] + '</span>');
1663													}
1664					}
1665
1666					$('.button-cart').removeAttr("disabled", "disabled");
1667					if (json?.error?.prod_stock || error_option_msg != 0) {
1668						if (hasStockError(json.error.prod_stock) || hasStockError(error_option_msg)) {
1669							setTimeout(() => {
1670								showStockAlertBtn(1);
1671							}, 200);
1672						}
1673					}
1674				}
1675
1676				if (is.not.desktop()) {
1677					if (json['error']) {
1678
1679						$('html, body').animate({
1680							scrollTop: $('#options').offset().top
1681						}, 'slow');
1682
1683					}
1684				}
1685
1686				if (json['success']) {
1687
1688					// fb-capi: regenerate ONE shared event id per AddToCart BEFORE any tracker fires,
1689					// so Pixel(eventID) and CAPI(quuid) match and Meta can dedup the pair.
1690					global_quuid = QUUID();
1691					try {
1692						gaTrackMultiPixelsAddToCart("AddToCart");
1693					} catch (e) {}
1694					try {
1695						gaTrackProductAddToCart();
1696					} catch (e) {}
1697										
1698					var qty = 1;
1699					if ($(".cart select[name='quantity']").length) {
1700						qty = $(".cart select[name='quantity'] option:selected").val();
1701					} else {
1702						qty = $(".cart input[name='quantity']").val();
1703					}
1704
1705					
1706					var product_price = qty * 750;
1707
1708					
1709					
1710					$('#notification').html('<div class="alert alert-success" style="display: none;">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
1711
1712					$('.alert').fadeIn('slow');
1713
1714					$('#cart-total').html(json['total']);
1715
1716					
1717					var scroll_time = 700;
1718					var ToScrollTop = 0;
1719					if (is.not.desktop()) {
1720						scroll_time = 300;
1721						ToScrollTop = document.documentElement.scrollTop;
1722					}
1723
1724					$('html, body').animate({
1725						ToScrollTop: 0
1726					}, scroll_time, function() {
1727
1728						
1729							var attr = $('.button-cart').attr('disabled');
1730							if (typeof attr !== typeof undefined && attr !== false) {
1731
1732								var cart = $('#cart');
1733								var imgtodrag = $('#zoom1');
1734								var cart_top = 50;
1735
1736								var cart_right = $(window).width() / 1.5;
1737
1738								if (is.not.desktop()) {
1739									cart_right = $("#mobile-navbar #shopping-cart-list").offset().left;
1740								} else {
1741									cart_right = $("#header #cart").offset().left;
1742								}
1743
1744								if (cart_right < 100) cart_right = $(window).width() / 1.5;
1745
1746								if (is.not.desktop()) {
1747									cart = $('#mobile-navbar .icon-shopping-cart');
1748									cart_top = 0;
1749									$('#cart-total-items').html("(&nbsp;" + json['total'] + "&nbsp;)");
1750									$(".button-quick-checkout-mobile").remove();
1751									$("#button-cart").unbind("click");
1752									$("#button-cart").find('.ok-add-to-cart').remove();
1753									$("#button-cart").prepend('<span class="ok-add-to-cart animated fadeIn"><i class="fa fa-check" aria-hidden="true"></i>&nbsp;</span>');
1754									$("#button-instant-checkout").removeClass('hidden');
1755
1756								}
1757
1758								var imgclone = imgtodrag.clone()
1759									.offset({
1760										top: imgtodrag.offset().top,
1761										left: imgtodrag.offset().left
1762									})
1763									.css({
1764										'opacity': '1.0',
1765										'position': 'absolute',
1766										'top': imgtodrag.offset().top,
1767										'left': imgtodrag.offset().left,
1768										'height': $('#zoom1').width(),
1769										'width': $('#zoom1').height(),
1770										'z-index': '99999999999',
1771										'minHeight': '50px'
1772									})
1773									.appendTo($('body'))
1774									.animate({
1775										'top': cart_top,
1776										'left': cart_right,
1777										'width': 36,
1778										'height': 20,
1779										'opacity': '0.01'
1780									}, 700, 'easeInOutCirc', function() {
1781										$(imgclone).remove();
1782										imgclone.detach();
1783									});
1784
1785								if (is.not.desktop()) {
1786									openSideCart('66');
1787								}
1788
1789							}
1790
1791							if (is.desktop()) {
1792								$("#cart > .heading a").trigger('mouseover');
1793								setTimeout(function() {
1794									refreshMiniCartScrollBar();
1795								}, 300);
1796							}
1797
1798						
1799						$('.button-cart').removeAttr("disabled", "disabled");
1800
1801
1802
1803					});
1804
1805				}
1806
1807
1808			}
1809		});
1810		return false;
1811
1812	}
1813
1814	function addReview() {
1815						$.ajax({
1816					url: 'index.php?route=product/product/write&product_id=66',
1817					type: 'post',
1818					dataType: 'json',
1819						data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()) + '&cf-turnstile-response=' + encodeURIComponent(window.qdmProductReviewTurnstile ? window.qdmProductReviewTurnstile.getResponse() : ($('input[name=\'cf-turnstile-response\']').val() || '')),
1820					beforeSend: function() {
1821						$('.success, .warning').remove();
1822						$('#button-review').attr('disabled', true);
1823						$('#review-title').after('<div class="attention"><img src="https://cdn.qdm.cloud/assets/images/loading.gif" alt="" /> 請稍等</div>');
1824					},
1825						complete: function() {
1826							$('#button-review').attr('disabled', false);
1827							$('.attention').remove();
1828							if (window.qdmProductReviewTurnstile) {
1829								window.qdmProductReviewTurnstile.reset();
1830							}
1831						},
1832					success: function(data) {
1833						if (data['error']) {
1834							$('#review-title').after('<div class="warning">' + data['error'] + '</div>');
1835						}
1836
1837						if (data['success']) {
1838							$('#review-title').after('<div class="success">' + data['success'] + '</div>');
1839
1840							$('input[name=\'name\']').val('');
1841							$('textarea[name=\'text\']').val('');
1842							$('input[name=\'rating\']:checked').attr('checked', '');
1843							$('input[name=\'captcha\']').val('');
1844
1845							$('#review').load('index.php?route=product/product/review&product_id=66');
1846
1847							postbackTrack();
1848						}
1849					}
1850				});
1851					}
1852
1853	function postbackTrack() {
1854			}
1855
1856	function init_review() {
1857
1858		$('#review .pagination a').each(function(index) {
1859			var href = $(this).attr("href");
1860			$(this).attr("href", "javascript:void(0);return false;");
1861			$(this).attr("data-href", href);
1862		});
1863
1864		$('#review .pagination a').click(function() {
1865
1866			var link = $(this).attr("data-href");
1867
1868			$('<i id="review-spin-wait" class="fa fa-circle-o-notch fa-spin fa-fw"></i>').insertBefore($('#review'));
1869
1870			$('#review').fadeOut('slow');
1871
1872			$('#review').load(link, function() {
1873				init_review();
1874				$('#review-spin-wait').remove();
1875				$('#review').fadeIn('slow');
1876			});
1877
1878			return false;
1879
1880		});
1881	}
1882
1883	function isFacebookApp() {
1884		var ua = navigator.userAgent || navigator.vendor || window.opera;
1885		return (ua.indexOf("FBAN") > -1) || (ua.indexOf("FBAV") > -1);
1886	}
1887
1888	function numberWithCommas(x) {
1889		return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
1890	}
1891
1892	function update_saleprice_based_select_options(optid) {
1893		var ori_prices = $("#price-price-block .product-sell-price").data("content");
1894		var currency_symbol_left  = "$";
1895		var currency_symbol_right = "";
1896		var currency_value         = 1;
1897		var currency_decimal_place = 0;
1898		function formatPrice(rawBase) {
1899			var v = (parseFloat(rawBase) || 0) * currency_value;
1900			return currency_symbol_left + numberWithCommas(v.toFixed(currency_decimal_place)) + currency_symbol_right;
1901		}
1902		var total_saleprices = ori_prices;
1903		var saleprices_flag = 0;
1904		$("#options .control-group").find(".controls").each(function(index) {
1905			var selected = $(this).find("select option[value]:selected");
1906			if (selected && selected != undefined) {
1907				var prefix = $(selected).data("prefix");
1908				var price = $(selected).data("price");
1909				if (prefix && prefix != undefined) {
1910					if (price && price != undefined) {
1911						switch (prefix) {
1912							case "=":
1913								saleprices_flag = 1;
1914								total_saleprices = price;
1915								break;
1916						}
1917					}
1918				}
1919			}
1920		});
1921		$("#options .control-group").find(".controls").each(function(index) {
1922			var selected = $(this).find("select option[value]:selected");
1923			if (selected && selected != undefined) {
1924				var prefix = $(selected).data("prefix");
1925				var price = $(selected).data("price");
1926				if (prefix && prefix != undefined) {
1927					if (price && price != undefined && !isNaN(parseFloat(price))) {
1928						switch (prefix) {
1929							case "+":
1930								saleprices_flag = 1;
1931								total_saleprices = (parseFloat(total_saleprices) || 0) + parseFloat(price);
1932								break;
1933							case "-":
1934								saleprices_flag = 1;
1935								total_saleprices = (parseFloat(total_saleprices) || 0) - parseFloat(price);
1936								break;
1937						}
1938					}
1939				}
1940			}
1941		});
1942		if (saleprices_flag) {
1943			if (total_saleprices < 0) {
1944				total_saleprices = 0;
1945			}
1946			$("#price-price-block .price-old").hide();
1947			$("#price-price-block .product-sell-price").text(formatPrice(total_saleprices));
1948		} else {
1949			var expected_text = formatPrice(ori_prices);
1950			if ($("#price-price-block .product-sell-price").text() !== expected_text) {
1951				$("#price-price-block .price-old").show();
1952				$("#price-price-block .product-sell-price").text(expected_text);
1953			}
1954		}
1955		$("#price-price-block").hide();
1956		$("#price-price-block").fadeIn(2000);
1957
1958
1959		
1960	}
1961
1962	function changeRadioProductVariation(product_option_value_id, option_id) {
1963		document.getElementById('option-value-' + product_option_value_id).checked = true;
1964		$("#option-" + option_id + ".control-group label.radio").removeClass("opton-selected");
1965		$("#option-" + option_id + ".control-group label.radio #option-value-" + product_option_value_id).closest("label.radio").addClass("opton-selected");
1966		return false;
1967	}
1968
1969	function init_inline() {
1970		loadCSS("https://cdnjs.cloudflare.com/ajax/libs/hint.css/1.2.1/hint.min.css");
1971		if (typeof stop_custom_variation_style === 'undefined') {
1972			loadCSS("https://cdn.qdm.cloud/assets/css/product_variation_option_custom.css?v=220914");
1973		}
1974				getScript("https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.nice-number.min.js", function() {
1975			$("#options .multicheck-options").niceNumber({
1976				'autoSize': false,
1977				onDecrement: function($currentInput, amount, settings) {
1978					if (amount < 1) {
1979						$currentInput.val(1);
1980					}
1981					var opt_val_ta = $currentInput.closest("label.checkbox").attr("for");
1982					$("#" + opt_val_ta).prop("checked", true);
1983					$("#" + opt_val_ta).closest("label.checkbox").addClass("opton-selected");
1984					var data_option_id = $("#" + opt_val_ta).closest("[data-option-id]").data("option-id");
1985					checkCheckboxOptionQtyLimition(data_option_id);
1986				},
1987				onIncrement: function($currentInput, amount, settings) {
1988					var opt_val_ta = $currentInput.closest("label.checkbox").attr("for");
1989					$("#" + opt_val_ta).prop("checked", true);
1990					$("#" + opt_val_ta).closest("label.checkbox").addClass("opton-selected");
1991					var data_option_id = $("#" + opt_val_ta).closest("[data-option-id]").data("option-id");
1992					checkCheckboxOptionQtyLimition(data_option_id);
1993				}
1994			});
1995			$("#options label.checkbox").find("input[type='checkbox']").change(function() {
1996				var checked_state = $(this).is(':checked');
1997				if (checked_state) {
1998					$(this).closest("label.checkbox").addClass("opton-selected");
1999					$(this).closest("label.checkbox").find(".multicheck-options").val(1);
2000				} else {
2001					$(this).closest("label.checkbox").removeClass("opton-selected");
2002					$(this).closest("label.checkbox").find(".multicheck-options").val(0);
2003				}
2004			});
2005			$("#options").fadeIn("slow");
2006		});
2007
2008		//20220113 Fix 購物圖片選項 點選圖片同步選取選項
2009		if ($(".option-image").length) {
2010			$(".option-image").find("a").click(function() {
2011				$(this).parents(".option-image").find("input[id^='option-value-']").attr('checked', 'checked');
2012			});
2013		}
2014					//20210510 Add 選項連動商品圖 單選切換連動圖
2015			$(".changeImage label.radio").click(function() {
2016				if ($(".changeImage input[type='radio']:checked") || $(".changeImage select option:selected")) {
2017					var optionImage = [];
2018					$(".changeImage").each(function(i) {
2019						if ($(this).find("input[type='radio']:checked").length && $(this).find("input[type='radio']:checked").val()) {
2020							optionImage[i] = [];
2021							optionImage[i][0] = $(this).attr("id").replace("option-", "");
2022							optionImage[i][1] = $(this).find("input[type='radio']:checked").val();
2023						}
2024						if ($(this).find("select option:selected").length && $(this).find("select option:selected").val()) {
2025							optionImage[i] = [];
2026							optionImage[i][0] = $(this).attr("id").replace("option-", "");
2027							optionImage[i][1] = $(this).find("select option:selected").val();
2028						}
2029
2030					});
2031					$.ajax({
2032						url: 'index.php?route=product/product_options/povToPoi',
2033						type: 'POST',
2034						dataType: 'html',
2035						data: {
2036							pid: $("#product_id").val(),
2037							optionImage: optionImage
2038						},
2039						beforeSend: function() {},
2040						success: function(json) {
2041							$("#image-additional li a").each(function() {
2042								if ($(this).hasClass("zoom-active")) {
2043									$(this).removeClass('zoom-active');
2044								}
2045							});
2046							if (json) {
2047								$("#image-additional li").find("img[src='" + json + "']").parents("a").addClass("zoom-active").trigger("mouseenter");
2048								// 220608 Fix 商品連動圖手機版大圖不會變化問題
2049								if (is.not.desktop()) {
2050									var zoomImg = $("#image-additional li").find("img[src='" + json + "']").parents("a").attr("href");
2051									$('#zoom1').attr("src", zoomImg);
2052									$('#zoom1').data("hd-image", zoomImg);
2053									$('#zoom1').data("zoom-image", zoomImg);
2054									// 停留選項
2055									$('html,body').animate({
2056										scrollTop: $("#options").offset().top - 70
2057									}, "show");
2058								}
2059							} else {
2060								$("#image-additional li a").eq(0).addClass("zoom-active").trigger("mouseenter");
2061								// 220608 Fix 商品連動圖手機版大圖不會變化問題
2062								if (is.not.desktop()) {
2063									var zoomImg = $("#image-additional li a").eq(0).attr("href");
2064									$('#zoom1').attr("src", zoomImg);
2065									$('#zoom1').data("hd-image", zoomImg);
2066									$('#zoom1').data("zoom-image", zoomImg);
2067									// 停留選項
2068									$('html,body').animate({
2069										scrollTop: $("#options").offset().top - 70
2070									}, "show");
2071								}
2072							}
2073						},
2074						error: function(xhr, ajaxOptions, thrownError) {
2075							//alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
2076						}
2077					});
2078				}
2079			});
2080			//20210510 Add 選項連動商品圖 下拉選單切換連動圖
2081			$(".changeImage select").change(function() {
2082				if ($(".changeImage input[type='radio']:checked") || $(".changeImage select option:selected")) {
2083					var optionImage = [];
2084					$(".changeImage").each(function(i) {
2085						if ($(this).find("input[type='radio']:checked").length && $(this).find("input[type='radio']:checked").val()) {
2086							optionImage[i] = [];
2087							optionImage[i][0] = $(this).attr("id").replace("option-", "");
2088							optionImage[i][1] = $(this).find("input[type='radio']:checked").val();
2089						}
2090						if ($(this).find("select option:selected").length && $(this).find("select option:selected").val()) {
2091							optionImage[i] = [];
2092							optionImage[i][0] = $(this).attr("id").replace("option-", "");
2093							optionImage[i][1] = $(this).find("select option:selected").val();
2094						}
2095
2096					});
2097					$.ajax({
2098						url: 'index.php?route=product/product_options/povToPoi',
2099						type: 'POST',
2100						dataType: 'html',
2101						data: {
2102							pid: $("#product_id").val(),
2103							optionImage: optionImage
2104						},
2105						beforeSend: function() {},
2106						success: function(json) {
2107							$("#image-additional li a").each(function() {
2108								if ($(this).hasClass("zoom-active")) {
2109									$(this).removeClass('zoom-active');
2110								}
2111							});
2112							if (json) {
2113								$("#image-additional li").find("img[src='" + json + "']").parents("a").addClass("zoom-active").trigger("mouseenter");
2114								// 220608 Fix 商品連動圖手機版大圖不會變化問題
2115								if (is.not.desktop()) {
2116									var zoomImg = $("#image-additional li").find("img[src='" + json + "']").parents("a").attr("href");
2117									$('#zoom1').attr("src", zoomImg);
2118									$('#zoom1').data("hd-image", zoomImg);
2119									$('#zoom1').data("zoom-image", zoomImg);
2120									// 停留選項
2121									$('html,body').animate({
2122										scrollTop: $("#options").offset().top - 70
2123									}, "show");
2124								}
2125							} else {
2126								$("#image-additional li a").eq(0).addClass("zoom-active").trigger("mouseenter");
2127								// 220608 Fix 商品連動圖手機版大圖不會變化問題
2128								if (is.not.desktop()) {
2129									var zoomImg = $("#image-additional li a").eq(0).attr("href");
2130									$('#zoom1').attr("src", zoomImg);
2131									$('#zoom1').data("hd-image", zoomImg);
2132									$('#zoom1').data("zoom-image", zoomImg);
2133									// 停留選項
2134									$('html,body').animate({
2135										scrollTop: $("#options").offset().top - 70
2136									}, "show");
2137								}
2138							}
2139						},
2140						error: function(xhr, ajaxOptions, thrownError) {
2141							//alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
2142						}
2143					});
2144				}
2145			});
2146		
2147		setTimeout(function() {
2148			if (is.not.desktop()) {
2149				$('#zoom1').attr("src", $('#zoom1').data("hd-image"));
2150			}
2151		}, 1500);
2152
2153					getScript("https://static.addtoany.com/menu/page.js", function() {});
2154		
2155		$('#myModal').on('show.bs.modal', function(e) {
2156			if (is.not.desktop()) {
2157				$('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown");
2158				$('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown");
2159			}
2160		});
2161
2162		$("#myModal").on("hidden.bs.modal", function(e) {
2163			if (is.not.desktop()) {
2164				$('.button-cart').removeClass("fadeOutDown").addClass("animated fadeInUp");
2165				$('.button-quick-checkout').removeClass("fadeOutDown").addClass("animated fadeInUp");
2166			}
2167		});
2168
2169		
2170		$(".ck_buy_tgr").prop("checked", false);
2171
2172					window.onload = function() {
2173				setTimeout(function() {
2174											new Image().src = "https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg";
2175											new Image().src = "https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg";
2176											new Image().src = "https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg";
2177									}, 1000);
2178			};
2179		
2180		if (is.not.desktop()) {
2181			$("#maincontent").removeClass("span9").addClass("span12");
2182			$("#main-image").attr("style", "padding:0px;overflow:hidden;min-height:initial;");
2183			if (!isFacebookApp() && !disabledScroll) {
2184				setTimeout(function() {
2185					$('.button-cart').addClass("animated fadeOutDown");
2186					$('.button-quick-checkout-mobile').addClass("animated fadeOutDown");
2187				}, 1500);
2188			}
2189			$('#zoom1').attr("src", $('#zoom1').data("hd-image"));
2190		}
2191
2192		
2193			if (is.desktop()) {
2194
2195				$("#zoom1").imagesLoaded(function() {
2196
2197					$("#main-defer-image").remove();
2198					$("#main-image").removeClass("hidden");
2199
2200					$("#zoom1").elevateZoom({
2201						easing: false,
2202						gallery: 'image-additional',
2203						cursor: 'pointer',
2204						galleryActiveClass: "zoom-active",
2205						zoomWindowFadeIn: 0,
2206						zoomWindowFadeOut: 0,
2207						zoomWindowWidth: 0,
2208						zoomWindowHeight: 0,
2209						lensSize: 0,
2210						borderSize: 0,
2211						lensFadeIn: 0,
2212						lensFadeOut: 0,
2213						tint: false,
2214						tintColour: '#fff',
2215						tintOpacity: 0,
2216						scrollZoom: false,
2217						imageCrossfade: false,
2218						loadingIcon: "",
2219						responsive: true
2220					});
2221
2222					var ez = $('#zoom1').data('elevateZoom');
2223					ez.refresh();
2224
2225					$(".zoomContainer").remove();
2226
2227					$("#image-additional-container").show();
2228
2229					syncThumbsWidth();
2230				});
2231			}
2232
2233		
2234		$("#image-additional a").hover(function() {
2235							$(".zoomContainer").remove();
2236						var image_pop_url = $(this).data("zoom-image");
2237			var image_base_url = $(this).data("image");
2238			$("#main-image .fancybox-product").attr("href", image_pop_url);
2239			if (image_base_url) {
2240				$("#zoom1").attr("src", image_base_url);
2241			}
2242		});
2243
2244							
2245		
2246		// Load options_list_window
2247		$('input[name^="add_price"]').bind('click', function() {
2248
2249			$('#cart_options_list').html("<br/><center><i class='icon-spinner icon-spin icon-large'></i></center>");
2250
2251			v1 = $(this).val();
2252			v2 = 1;
2253			$.ajax({
2254				url: 'index.php?route=product/product_options&key=' + v1 + '&quantity=' + v2,
2255				dataType: 'html',
2256				beforeSend: function() {},
2257				success: function(html) {
2258
2259					$('#cart_options_list').html(html);
2260
2261				},
2262				error: function(xhr, ajaxOptions, thrownError) {
2263					//alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
2264				}
2265			});
2266
2267			setTimeout($.unblockUI, 1000);
2268		});
2269
2270
2271		$('.close').bind('click', function() {
2272
2273			prod_id = $("#prod_id").val();
2274			bytr_id = $("#buy_together_id").val();
2275
2276			$('#add_price_' + prod_id + '-' + bytr_id).attr("checked", false);
2277			$('#cart_options_list').html("");
2278		});
2279
2280		//加入(有選項)
2281		$('#button-change-option').bind('click', function() {
2282
2283			let hasError = false;
2284			$('.options').find('span.required').each(function() {
2285				let parentDiv = $(this).closest('div[id^="option-"]');
2286				let optionId = parentDiv.attr('id').split('-')[1];
2287				let input = parentDiv.find('select, input[type="radio"], input[type="checkbox"], input[type="text"], textarea');
2288
2289				let valid = false;
2290
2291				if (input.length) {
2292					if (input.is('select')) {
2293						valid = input.val() !== "";
2294					} else if (input.is(':radio') || input.is(':checkbox')) {
2295						valid = input.is(':checked');
2296					} else {
2297						valid = input.val().trim() !== "";
2298					}
2299				}
2300
2301				if (!valid) {
2302					parentDiv.after('<span class="error">此為必填選項,請選擇或輸入</span>');
2303					hasError = true;
2304				}
2305			});
2306
2307			if (hasError) return false;
2308
2309			if ($(".options .form-group[data-max-qty]").length) {
2310				var r = true;
2311				$(".options .form-group[data-max-qty]").each(function(index) {
2312					var option_ckb_id = $(this).data("option-id") || 0;
2313					if (option_ckb_id) {
2314						r = checkCheckboxOptionQtyLimition(option_ckb_id);
2315						if (r == false) return false;
2316					}
2317				});
2318				if (r == false) return false;
2319			}
2320
2321			prod_id = $("#prod_id").val();
2322			bytr_id = $("#buy_together_id").val();
2323
2324			$.ajax({
2325				url: 'index.php?route=product/product_options/validate',
2326				type: 'post',
2327				data: $('#cart_options_list .options input[type=\'text\'], #cart_options_list .options input[type=\'hidden\'], #cart_options_list .options input[type=\'radio\']:checked, #cart_options_list .options input[type=\'checkbox\']:checked, #cart_options_list .options select, #cart_options_list .options textarea, #cart_options_list .quantity_div input[type=\'text\']'),
2328				dataType: 'json',
2329				success: function(json) {
2330
2331					$(".error").remove();
2332					$(".alert").remove();
2333
2334					if (json['error']) {
2335
2336						if (json['error']['option']) {
2337							for (i in json['error']['option']) {
2338
2339								$('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>');
2340							}
2341						}
2342
2343					} else {
2344
2345						$('#lab_addprice_' + prod_id + '-' + bytr_id + ' .add-additional-purchase-option').html("<input type=hidden name=add_price_options_" + prod_id + "-" + bytr_id + " value='" + json['options'] + "' ><span class='label'>" + json['options_name'] + "</span>");
2346
2347						$('#cart_options_list').html("");
2348						$('#myModal').hide();
2349						$('.modal-backdrop').remove();
2350						$('#add_price_' + prod_id + '-' + bytr_id).attr("checked", true);
2351
2352						if (is.not.desktop()) {
2353							$('.button-cart').removeClass("fadeOutDown").addClass("animated fadeInUp");
2354							$('.button-quick-checkout').removeClass("fadeOutDown").addClass("animated fadeInUp");
2355						}
2356
2357					}
2358
2359				}
2360			});
2361		});
2362
2363		var oldURL = document.referrer;
2364
2365		$.fancybox.defaults.hash = false;
2366
2367		$("[data-fancybox='images']").fancybox({
2368			afterLoad: function(instance, slide) {
2369				if ($(".fancybox-container").length > 1) {
2370					$(".fancybox-container").not(':first').remove();
2371				}
2372			},
2373			afterClose: function() {
2374				window.onhashchange = function(e) {
2375					if (window.location.hash.indexOf("#gallery") != -1) {
2376						e.preventDefault();
2377						$.fancybox.close();
2378						if (is.not.empty(oldURL)) {
2379							window.onhashchange = null;
2380							window.location.href = oldURL;
2381						}
2382						return false;
2383					}
2384				}
2385			}
2386		});
2387
2388		if (is.desktop()) {
2389
2390			$("#main-image .fancybox-product").click(function(e) {
2391				e.stopPropagation();
2392				e.preventDefault();
2393				var $links = $("[data-fancybox='gallery']");
2394				var zoom_active_index = $("#image-additional li > a.zoom-active").parent().index();
2395				$.fancybox.open($links, {
2396					hash: false
2397				}, zoom_active_index);
2398				if ($(".fancybox-container").length > 1) {
2399					$(".fancybox-container").not(':first').remove();
2400				}
2401				return false;
2402			});
2403
2404			$("#image-additional a").click(function(e) {
2405				e.stopPropagation();
2406				e.preventDefault();
2407				var $links = $("[data-fancybox='gallery']");
2408				var zoom_active_index = $("#image-additional li > a.zoom-active").parent().index();
2409				$.fancybox.open($links, {
2410					hash: false
2411				}, zoom_active_index);
2412				if ($(".fancybox-container").length > 1) {
2413					$(".fancybox-container").not(':first').remove();
2414				}
2415				return false;
2416			});
2417
2418		} else {
2419
2420			$("#main-image .fancybox-product").click(function(e) {
2421				e.stopPropagation();
2422				e.preventDefault();
2423				var $links = $("[data-fancybox='gallery']");
2424				$.fancybox.open($links, {
2425					hash: false
2426				}, 0);
2427				if ($(".fancybox-container").length > 1) {
2428					$(".fancybox-container").not(':first').remove();
2429				}
2430				return false;
2431			});
2432
2433			$("[data-fancybox='gallery']").fancybox({
2434				hash: false
2435			});
2436		}
2437
2438		$("a.screenshot").hover(function(e) {
2439			this.t = this.title;
2440			this.title = "";
2441			var c = (this.t != "") ? "<br/>" + this.t : "";
2442			this.rel = this.rel.replace(" noopener noreferrer nofollow", "");
2443			$("body").append("<p id='screenshot'><img src='" + this.rel + "' alt='url preview' />" + c + "</p>");
2444			$("#screenshot")
2445				.css("top", (e.pageY - xOffset) + "px")
2446				.css("left", (e.pageX + yOffset) + "px")
2447				.fadeIn("fast");
2448		}, function() {
2449			this.title = this.t;
2450			$("#screenshot").remove();
2451		});
2452
2453		$("a.screenshot").mousemove(function(e) {
2454			$("#screenshot")
2455				.css("top", (e.pageY - xOffset) + "px")
2456				.css("left", (e.pageX + yOffset) + "px");
2457		});
2458
2459		$('#review').load('index.php?route=product/product/review&product_id=66', function() {
2460			init_review();
2461		});
2462
2463
2464		$('.date').datepicker({
2465			dateFormat: 'yy-mm-dd'
2466		});
2467		$('.datetime').datetimepicker({
2468			dateFormat: 'yy-mm-dd',
2469			timeFormat: 'HH:mm',
2470			controlType: 'select'
2471		});
2472		$('.time').timepicker({
2473			timeFormat: 'h:m'
2474		});
2475
2476		$('[data-toggle="tooltip"]').tooltip();
2477
2478		
2479		if (is.not.desktop()) {
2480
2481			$("#zoom1").imagesLoaded(function() {
2482				$("#main-defer-image").remove();
2483				$("#main-image").removeClass("hidden");
2484				$("#image-additional-container").show();
2485			});
2486
2487			$("#image-additional").find(".zoom-active").removeClass("zoom-active");
2488
2489			var lastScroll = 0;
2490			var lastDirection = 0;
2491			var down = true;
2492			var delta = 0;
2493			$(window).on("scroll", function() {
2494
2495				if ($("#myModal").css('display') == 'block') {
2496					$('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown");
2497					$('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown");
2498				}
2499
2500				if (isFacebookApp() || disabledScroll) {
2501					$('.button-cart').removeClass("hidden animated fadeOutDown");
2502					$('.button-quick-checkout-mobile').removeClass("hidden animated fadeOutDown");
2503					return;
2504				}
2505
2506				var scroll = $(this).scrollTop();
2507				down = scroll > lastScroll;
2508				delta = Math.abs(lastScroll - scroll);
2509				lastScroll = scroll;
2510				if ((down != lastDirection)) {
2511					if (down == true) {
2512						if (delta > 15) {
2513							$('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown");
2514							$('.button-quick-checkout-mobile').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown");
2515						}
2516
2517					} else {
2518						$('.button-cart').removeClass("hidden animated fadeOutDown").addClass("animated fadeInUp");
2519						$('.button-quick-checkout-mobile').removeClass("hidden animated fadeOutDown").addClass("animated fadeInUp");
2520					}
2521
2522				}
2523				lastDirection = down;
2524
2525			});
2526
2527			if (isFacebookApp() || disabledScroll) {
2528				$(window).unbind("scroll");
2529				$('#button-cart').attr("class", "button-cart button pull-left");
2530				$('#button-quick-checkout').attr("class", "btn btn-default btn-block button-quick-checkout button-quick-checkout-mobile");
2531				$('#button-cart').show();
2532				$('#button-quick-checkout').show();
2533			}
2534		}
2535
2536		
2537				enableDataSelectsClick();
2538	}
2539
2540	function loadislogin() {
2541
2542					$("#login_n").hide();
2543			}
2544
2545	function loadpromotionlist() {
2546		var html = "";
2547		$.ajax({
2548			url: "index.php?route=product/product/getLoggedInPromotionList&product_id=66",
2549			type: "post",
2550			dataType: "json",
2551			success: function(json) {
2552				if (json.length > 0) {
2553					html += '<hr/><h4>促銷活動</h4>';
2554					html += '<ul>';
2555					for (var i = 0; i < json.length; i++) {
2556
2557						html += ' <li class="promotion-forward-button button button-default"><a href="' + json[i]["promotion_url"] + '" style="text-decoration:none;"> ' + json[i]["name"] + ' &nbsp;&nbsp;<i class="icon-double-angle-right"></i></a></li> ';
2558
2559					}
2560					html += '</ul>';
2561
2562					$("#promotion_list").html(html);
2563				}
2564				//console.log(json.length);
2565			},
2566
2567			error: function() {
2568				console.log("error");
2569			}
2570		});
2571	}
2572
2573	//cloudmaker_stock
2574	function load_cloudmaker() {
2575				$.ajax({
2576			url: 'index.php?route=cloudmaker/order/wareHouseOrdernew&product_sku=' + encodeURIComponent('0'),
2577			dataType: 'json',
2578			type: "post",
2579			success: function(json) {
2580
2581				if (json['error']) {
2582					console.log(json['error']);
2583				} else {
2584					var cjson = json["cred_response"];
2585
2586					if (cjson.length > 0) {
2587
2588						var cloudmaker_value = "";
2589						var cloudmaker_header = "";
2590						var cloudmaker_body = "";
2591						var i = 0;
2592
2593						cjson.forEach(function(data) {
2594							cloudmaker_body += "<tr>";
2595							cloudmaker_body += "	<td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + data.size + "</td>";
2596
2597							var stock = data.stock;
2598
2599							$.each(stock, function() {
2600
2601								$.each(this, function(name, value) {
2602									if (i == 0) {
2603										cloudmaker_header += " <td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + name + "</td>";
2604									}
2605									cloudmaker_body += "	<td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + value + "</td>";
2606								});
2607
2608								i++;
2609							});
2610
2611							cloudmaker_body += "</tr>";
2612
2613						});
2614
2615						cloudmaker_value = "<table style='max-width:450px; width:100%;margin-bottom:6px;'>";
2616						cloudmaker_value += "<tr style='font-weight: bold;'>";
2617						cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>尺寸</td>";
2618						cloudmaker_value += cloudmaker_header;
2619						/*cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>台南小西門</td>";
2620						cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>東區旗艦</td>";
2621						cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>勤美誠品</td>";
2622						cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>信義誠品</td>";*/
2623						cloudmaker_value += "</tr>";
2624						cloudmaker_value += cloudmaker_body;
2625						cloudmaker_value += "</table>";
2626						cloudmaker_value += "<span> 庫存更新時間:2026-10-08 04:43:10 (重新整理網頁可取得最新庫存資訊)</span><br/>";
2627						//cloudmaker_value += "<span style='font-weight: bold;'>總筆數 : "+ cjson.length +" 筆</span>";
2628						//cloudmaker_value += "<hr/>";
2629
2630						$('#cloudmaker_stock').append(cloudmaker_value);
2631
2632					} else {
2633						console.log("cloudmaker_stock(0) is null");
2634					}
2635				}
2636
2637			},
2638			error: function(xhr, ajaxOptions, thrownError) {
2639				//console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
2640			}
2641		});
2642
2643
2644	}
2645
2646	function load_options() {
2647		$.ajax({
2648			url: 'index.php?route=product/product_options&key=66&type=prod',
2649			dataType: 'html',
2650			beforeSend: function() {},
2651			success: function(html) {
2652
2653				$('#options').html(html);
2654
2655			},
2656			error: function(xhr, ajaxOptions, thrownError) {
2657				//alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
2658			}
2659		});
2660	}
2661
2662	function checkCheckboxOptionQtyLimition(option_id) {
2663
2664		try {
2665			var max_qty = parseInt($("#options #option-" + option_id).data("max-qty")) || 0;
2666			var min_qty = parseInt($("#options #option-" + option_id).data("min-qty")) || 0;
2667			var option_checkbox_name = $("#options #option-" + option_id).data("option-name");
2668			if (max_qty || min_qty) {
2669				$("#options #option-" + option_id).find(".alert-error").remove();
2670				var qty_total_chk = 0;
2671				$("#options #option-" + option_id).find("input[type='text'].CheckboxOptionQtyGroup").each(function(index) {
2672					var pov_id = $(this).data("pov-id");
2673					if ($("#option-value-" + pov_id).is(':checked')) {
2674						qty_total_chk += parseInt($(this).val()) || 0;
2675					}
2676				});
2677				//貨到通知沒有開,會限制可選總數量
2678				if (goods_arrival_notice_switch_status == 0) {
2679					if (max_qty) {
2680						if (qty_total_chk > max_qty) {
2681							$("#options #option-" + option_id + " > label.control-label").after("<div class='alert alert-error'>選項 總數量 限制最多 " + max_qty + " 項!請重新修改數量");
2682							return false;
2683						}
2684					}
2685					if (min_qty) {
2686						if (qty_total_chk < min_qty) {
2687							$("#options #option-" + option_id + " > label.control-label").after("<div class='alert alert-error'>選項 總數量 至少須 " + min_qty + " 項!請重新修改數量");
2688							return false;
2689						}
2690					}
2691				}
2692			}
2693		} catch (e) {}
2694		return true;
2695	}
2696
2697	var a2a_config = a2a_config || {};
2698	a2a_config.locale = "zh-TW";
2699
2700	try {
2701		var main_image_element = document.getElementById("main-defer-image");
2702		main_image_element = function() {
2703			main_image_element.style.opacity = 1;
2704			main_image_element.style.transition = "all 0.2s";
2705		};
2706	} catch (e) {}
2707
2708	function load_free_present() {
2709
2710		var pid = 66;
2711
2712		var price = $('#price-price-block .price-normal').attr('data-content');
2713
2714		if (!price) price = $('#price-price-block .price-new').attr('data-content');
2715
2716		var qty = $('input[name="quantity"]').val();
2717
2718		if (!qty) qty = $('select[name="quantity"]').val();
2719
2720		$.ajax({
2721			url: 'index.php?route=module/free_present',
2722			type: 'post',
2723			dataType: 'html',
2724			data: {
2725				pid: pid,
2726				price: price,
2727				qty: qty
2728			},
2729			beforeSend: function() {},
2730			success: function(html) {
2731				$('#free_present_list').html(html);
2732				$('#free_present_list').show();
2733			},
2734			error: function(xhr, ajaxOptions, thrownError) {
2735				//console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
2736			}
2737		});
2738	}
2739
2740	
2741	function syncThumbsWidth() {
2742		try {
2743			var mainWidth = $('#main-image').outerWidth();
2744			if (!mainWidth || mainWidth < 1) {
2745				mainWidth = $('#zoom1').outerWidth();
2746			}
2747			if (mainWidth && mainWidth > 0) {
2748				$('#image-additional, #image-additional-container').css({
2749					'width': mainWidth + 'px',
2750					'float': 'right'
2751				});
2752			}
2753		} catch (e) {}
2754	}
2755
2756	try {
2757		$(window).on('resize', syncThumbsWidth);
2758	} catch (e) {}
2759</script>
2759 </div> <!-- .container-inner --> </div> <!-- .container --> </div> <!-- #content_wrapper --> <input type="hidden" id="ga_utm_source" name="ga_utm_source" value=""> <input type="hidden" id="ga_utm_medium" name="ga_utm_medium" value=""> <input type="hidden" id="ga_utm_campaign" name="ga_utm_campaign" value=""> <footer id="footer" class="clearfix  "> <div class="footer-inner"> <!-- ==========================================================================
2760   【愛不是手】全自訂專業頁尾區塊 (第一版桌機還原・手機版 FB 隱藏清爽 3 欄版)
2761   ========================================================================== --> <div class="custom-site-footer"> <div class="footer-main-container"><!-- 欄位 1:商店訊息 --> <div class="footer-links-column"> <h4>商店訊息</h4> <ul> <li><a href="https://www.iporkcut.com.tw/pages/4">關於我們</a></li> <li><a href="/categories/暢銷商品">暢銷商品</a></li> <li><a href="/categories/特賣商品">特賣商品</a></li> </ul> </div> <!-- 欄位 2:客戶服務 --> <div class="footer-links-column"> <h4>客戶服務</h4> <ul> <li><a href="https://www.iporkcut.com.tw/shop/contact">商店留言板</a></li> <li><a href="https://www.iporkcut.com.tw/about/policy">商品退/換貨</a></li> <li><a href="/pages/remittance-form">填寫匯款單</a></li> <li><a href="https://www.iporkcut.com.tw/member/order">快速查訂單</a></li> </ul> </div> <!-- 欄位 3:會員中心 --> <div class="footer-links-column"> <h4>會員中心</h4> <ul> <li><a href="https://www.iporkcut.com.tw/member/member">會員中心</a></li> <li><a href="https://www.iporkcut.com.tw/member/order">訂購紀錄</a></li> </ul> </div> <!-- 欄位 4:右側 手製高質感臉書極簡小徽章 (電腦版完美顯現,手機版專屬隱藏) --> <div class="footer-fb-column"> <div class="fb-badge-wrapper"> <div class="fb-badge-top"> <div class="fb-badge-logo"><img alt="愛不是手肉乾" onerror="imgError(this);" src="https://graph.facebook.com/iporkcut/picture?type=large" /></div> <div class="fb-badge-text"><a class="fb-badge-title" href="https://www.facebook.com/iporkcut" target="_blank" rel="noopener noreferrer nofollow">愛不是手肉乾</a> <div class="fb-badge-fans">1.1 萬 位追蹤者</div> </div> </div> <div class="fb-badge-bottom"><a class="fb-btn-follow" href="https://www.facebook.com/iporkcut" target="_blank" rel="noopener noreferrer nofollow"><svg viewbox="0 0 24 24"><path d="M12 2.04c-5.5 0-10 4.49-10 10.02c0 5 3.66 9.15 8.44 9.9v-7H7.9v-2.9h2.54V9.85c0-2.51 1.49-3.89 3.78-3.89c1.09 0 2.23.19 2.23.19v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.9h-2.33v7a10 10 0 0 0 8.44-9.9c0-5.53-4.5-10.02-10-10.02Z" fill="currentColor"></path></svg> 追蹤粉絲專頁 </a> <a class="fb-btn-share" href="https://www.facebook.com/sharer/sharer.php?u=https://www.iporkcut.com.tw/" target="_blank"> <svg viewbox="0 0 24 24"><path d="M18.08 12.74c-.72 0-1.37.32-1.83.83l-5.34-2.83a2.44 2.44 0 0 0 0-1.48l5.27-2.79c.46.52 1.13.85 1.89.85c1.41 0 2.55-1.14 2.55-2.55c0-1.42-1.14-2.56-2.55-2.56c-1.42 0-2.56 1.14-2.56 2.56c0 .25.04.49.1.71L10.29 8.27c-.46-.51-1.12-.83-1.87-.83c-1.41 0-2.55 1.14-2.55 2.56c0 1.41 1.14 2.55 2.55 2.55c.76 0 1.42-.32 1.88-.84l5.34 2.83c-.06.21-.09.44-.09.68c0 1.41 1.14 2.55 2.55 2.55c1.41 0 2.56-1.14 2.56-2.55c0-1.42-1.15-2.56-2.56-2.56Z" fill="currentColor"></path></svg> 分享 </a></div> </div> </div> </div> </div> <!-- 專屬精密優化樣式表 --> <style type="text/css">/* ==========================================================================
2762   第一版桌機樣式:還原大氣排版
2763   ========================================================================== */
2764.custom-site-footer {
2765    background-color: #ffffff !important;
2766    padding: 60px 20px 50px 20px !important; 
2767    border-top: 1px solid #f0f0f0 !important;
2768    width: 100% !important;
2769    box-sizing: border-box !important;
2770    font-family: "PingFang TC", "Heiti TC", "Microsoft JhengHei", sans-serif !important;
2771    display: block !important;
2772    margin-bottom: 0 !important; 
2773}
2774
2775.footer-main-container {
2776    max-width: 1200px !important;
2777    margin: 0 auto !important;
2778    display: flex !important;
2779    flex-direction: row !important;
2780    flex-wrap: nowrap !important; 
2781    justify-content: space-between !important;
2782    align-items: flex-start !important;
2783}
2784
2785.footer-links-column {
2786    width: calc((100% - 390px - 60px) / 3) !important;
2787    min-width: 140px !important;
2788    box-sizing: border-box !important;
2789}
2790
2791.footer-fb-column {
2792    width: 360px !important;
2793    flex-shrink: 0 !important;
2794}
2795
2796.footer-links-column h4 {
2797    color: #333333 !important;
2798    font-size: 16px !important;
2799    font-weight: bold !important;
2800    margin: 0 0 20px 0 !important;
2801    letter-spacing: 1px !important;
2802}
2803
2804.footer-links-column ul {
2805    list-style: none !important;
2806    padding: 0 !important;
2807    margin: 0 !important;
2808}
2809
2810.footer-links-column li {
2811    margin-bottom: 12px !important;
2812}
2813
2814.footer-links-column a {
2815    color: #666666 !important;
2816    font-size: 14px !important;
2817    text-decoration: none !important;
2818    transition: color 0.3s ease !important;
2819    display: inline-block !important;
2820}
2821
2822.footer-links-column a:hover {
2823    color: #b51a63 !important;
2824}
2825
2826.fb-badge-wrapper {
2827    background: #ffffff !important;
2828    border: 1px solid #e9ebee !important;
2829    box-sizing: border-box !important;
2830    width: 100% !important;
2831    padding: 0 !important;
2832}
2833
2834.fb-badge-top {
2835    display: flex !important;
2836    padding: 12px !important;
2837    background: #ffffff !important;
2838    align-items: center !important;
2839}
2840
2841.fb-badge-logo {
2842    width: 50px !important;
2843    height: 50px !important;
2844    border: 1px solid #d3d3d3 !important;
2845    padding: 0 !important;
2846    background: #ffffff !important;
2847    flex-shrink: 0 !important;
2848    overflow: hidden !important;
2849}
2850
2851.fb-badge-logo img {
2852    width: 100% !important;
2853    height: 100% !important;
2854    object-fit: cover !important;
2855}
2856
2857.fb-badge-text {
2858    margin-left: 12px !important;
2859}
2860
2861.fb-badge-title {
2862    color: #365899 !important; 
2863    font-size: 18px !important;
2864    font-weight: bold !important;
2865    text-decoration: none !important;
2866    display: block !important;
2867    margin-bottom: 2px !important;
2868}
2869
2870.fb-badge-fans {
2871    color: #4b4f56 !important;
2872    font-size: 13px !important;
2873}
2874
2875.fb-badge-bottom {
2876    background: #f5f6f7 !important;
2877    border-top: 1px solid #e9ebee !important;
2878    padding: 8px 12px !important;
2879    display: flex !important;
2880    justify-content: space-between !important;
2881    align-items: center !important;
2882}
2883
2884.fb-badge-bottom a {
2885    background: #f5f6f7 !important;
2886    border: 1px solid #ccd0d5 !important;
2887    color: #4b4f56 !important;
2888    font-size: 12px !important;
2889    font-weight: bold !important;
2890    padding: 4px 10px !important;
2891    border-radius: 2px !important;
2892    text-decoration: none !important;
2893    display: inline-flex !important;
2894    align-items: center !important;
2895}
2896
2897.fb-badge-bottom svg {
2898    width: 14px !important;
2899    height: 14px !important;
2900    margin-right: 6px !important;
2901    color: #4267b2 !important;
2902}
2903
2904/* ==========================================================================
2905   手機移動端專用:3 欄緊湊排版,【FB 區塊物理蒸發隱藏】
2906   ========================================================================== */
2907@media (max-width: 1100px) {
2908    .footer-main-container { flex-wrap: wrap !important; }
2909    .footer-links-column { width: calc((100% - 380px) / 2) !important; margin-bottom: 25px !important; }
2910}
2911
2912@media (max-width: 768px) {
2913    .custom-site-footer {
2914        padding: 20px 15px !important; 
2915    }
2916
2917    .footer-main-container { 
2918        display: flex !important; 
2919        flex-direction: column !important;
2920        gap: 0 !important; 
2921    }
2922
2923    /* 關鍵字:在手機版直接將整個 FB 欄位從畫面上抹除 */
2924    .footer-fb-column {
2925        display: none !important;
2926    }
2927
2928    .footer-links-column { 
2929        width: 100% !important; 
2930        display: block !important; 
2931        margin-bottom: 0 !important; 
2932        margin-top: 0 !important;
2933        padding-right: 0 !important;
2934    }
2935
2936    /* 3 個文字標題高度收緊 */
2937    .footer-links-column h4 {
2938        position: relative !important;
2939        display: block !important;
2940        margin: 0 !important;
2941        padding-top: 7px !important;   
2942        padding-bottom: 7px !important;
2943        padding-right: 40px !important;
2944        line-height: 1.2 !important;
2945        border-bottom: 1px solid #eaeaea !important; 
2946        font-size: 15px !important;
2947        color: #222222 !important;
2948        font-weight: bold !important;
2949        cursor: pointer !important;
2950        -webkit-tap-highlight-color: transparent !important;
2951    }
2952
2953    /* 下拉指示小箭頭 ▼ */
2954    .footer-links-column h4::after {
2955        content: '▼' !important;
2956        position: absolute !important;
2957        right: 10px !important;
2958        top: 50% !important;
2959        transform: translateY(-50%) scale(0.75) !important;
2960        font-size: 11px !important;
2961        color: #b51a63 !important; 
2962        transition: transform 0.2s ease !important;
2963    }
2964
2965    /* 展開時的箭頭 ▲ */
2966    .footer-links-column h4.is-expanded::after {
2967        transform: translateY(-50%) scale(0.75) rotate(180deg) !important;
2968        color: #333333 !important;
2969    }
2970
2971    /* 未開啟時隱藏選單,消滅空白 */
2972    .footer-links-column ul {
2973        display: none !important;
2974        max-height: 0px !important;
2975        overflow: hidden !important;
2976        opacity: 0 !important;
2977        margin: 0 !important;
2978        padding-left: 10px !important;
2979    }
2980
2981    .footer-links-column li {
2982        padding-top: 5px !important;
2983        padding-bottom: 5px !important;
2984        margin: 0 !important;
2985    }
2986}
2987</style> <!-- ==========================================================================
2988   純粹 3 欄式精準開合智慧監聽腳本
2989   ========================================================================== -->
2989<script type="text/javascript">
2990document.addEventListener("DOMContentLoaded", function() {
2991    function initClean3ColumnAccordion() {
2992        if (window.innerWidth > 768) return; 
2993
2994        // 只抓取 3 個文字清單欄位
2995        var columns = document.querySelectorAll('.footer-links-column');
2996
2997        columns.forEach(function(column) {
2998            var title = column.querySelector('h4');
2999            var list = column.querySelector('ul');
3000            
3001            if (!title || !list) return;
3002
3003            title.removeEventListener('click', handleFooterToggle);
3004            title.addEventListener('click', handleFooterToggle);
3005            
3006            function handleFooterToggle(e) {
3007                e.preventDefault();
3008                e.stopPropagation();
3009
3010                var isOpen = title.classList.contains('is-expanded');
3011
3012                // 1. 全域重設:先收回所有人的空間
3013                columns.forEach(function(c) {
3014                    var h = c.querySelector('h4');
3015                    var u = c.querySelector('ul');
3016                    if (h) h.classList.remove('is-expanded');
3017                    if (u) {
3018                        u.style.maxHeight = "0px";
3019                        u.style.opacity = "0";
3020                        u.style.setProperty ? u.style.setProperty('display', 'none', 'important') : (u.style.display = 'none');
3021                    }
3022                });
3023
3024                // 2. 獨立開啟點選的這一組
3025                if (!isOpen) {
3026                    title.classList.add('is-expanded');
3027                    list.style.setProperty ? list.style.setProperty('display', 'block', 'important') : (list.style.display = 'block');
3028                    list.style.maxHeight = "none"; 
3029                    list.style.opacity = "1";
3030                    list.style.paddingTop = "5px";
3031                    list.style.paddingBottom = "10px";
3032                }
3033            }
3034        });
3035    }
3036
3037    initClean3ColumnAccordion();
3038    setTimeout(initClean3ColumnAccordion, 400);
3039});
3040</script>
3040 </div> <div class="footer-bottom container  "> <div id="footer-copyright" class="row-fluid"> <div id="payment-logo-list" class="pl-container"> <div class="pl-row"> </div> </div> <div id="copy"> <p>Copyright ©2026 愛不是手★肉乾</p> <!--googleoff: index--><span style="display:none;">q6a5dd2e0d87d6</span><!--googleon: index--> </div> <div id="qdm-copy"><a href='https://www.iporkcut.com.tw/googlebase.xml' title="RSS" target='blank'><i class="fa fa-rss"></i></a><a href='https://www.iporkcut.com.tw/sitemap'>網站地圖</a></div> </div> </div> </footer> <!-- #footer --> 
3040<script src="https://cdn.qdm.cloud/assets/js/LAB.min.js"></script>
3040 
3040<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
3040 
3040<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/1.4.1/jquery-migrate.min.js"></script>
3040 
3040<script type="text/javascript">	
3041			
3042			$(document).ready(function() {
3043				var j = 0;
3044				var delay = 3000; 
3045				function cycleStickyBarTop(){
3046					var jmax = $(".sticky-bar-top .sticky-bar-content").length -1;
3047					if(jmax > 0){
3048						$(".sticky-bar-top .sticky-bar-content:eq(" + j + ")")
3049						.animate({"opacity" : "1","z-index":"9998"} ,400)
3050						.animate({"opacity" : "1","z-index":"9998"}, delay)
3051						.animate({"opacity" : "0","z-index":"9"}, 400, function(){
3052							(j == jmax) ? j=0 : j++;
3053							cycleStickyBarTop();
3054						});
3055					}else{
3056						$(".sticky-bar-top .sticky-bar-content:eq(" + j + ")")
3057						.animate({"opacity" : "1","z-index":"9998"}, delay)
3058					}
3059				};
3060				cycleStickyBarTop();
3061				
3062				var i = 0;
3063				function cycleStickyBarBottom(){
3064					var imax = $(".sticky-bar-bottom .sticky-bar-content").length -1;
3065					if(imax > 0){
3066						$(".sticky-bar-bottom .sticky-bar-content:eq(" + i + ")")
3067						.animate({"opacity" : "1","z-index":"9998"} ,400)
3068						.animate({"opacity" : "1","z-index":"9998"}, delay)
3069						.animate({"opacity" : "0","z-index":"9"}, 400, function(){
3070							(i == imax) ? i=0 : i++;
3071							cycleStickyBarBottom();
3072						});
3073					}else{
3074						$(".sticky-bar-bottom .sticky-bar-content:eq(" + i + ")")
3075						.animate({"opacity" : "1","z-index":"9998"}, delay)
3076					}
3077					
3078				};
3079				cycleStickyBarBottom();
3080				
3081				var k = 0;
3082				function cycleStickyBarTopMobile(){
3083					var kmax = $(".mobile-sticky-bar-top .sticky-bar-content").length -1;
3084					if(kmax > 0){
3085						$(".mobile-sticky-bar-top .sticky-bar-content:eq(" + k + ")")
3086						.animate({"opacity" : "1","z-index":"9998"} ,400)
3087						.animate({"opacity" : "1","z-index":"9998"}, delay)
3088						.animate({"opacity" : "0","z-index":"9"}, 400, function(){
3089							(k == kmax) ? k=0 : k++;
3090							cycleStickyBarTopMobile();
3091						});
3092					}else{
3093						$(".mobile-sticky-bar-top .sticky-bar-content:eq(" + k + ")")
3094						.animate({"opacity" : "1","z-index":"9998"}, delay)
3095					}
3096				};
3097				cycleStickyBarTopMobile();
3098				
3099				//COUNTDOWN TIMER
3100				$(".sticky-bar-countdown").each(function(){
3101					
3102					var sticky_bar_date = $(this).attr("data-countdown-date").replace(/-/g,'/');
3103					var sticky_bar_countdown_id = $(this).attr("id");
3104					var countDownDate = new Date(sticky_bar_date).getTime();
3105
3106					var x = setInterval(function() {
3107					
3108						var now = new Date().getTime();
3109						
3110						var distance = countDownDate - now;
3111						
3112						var days = Math.floor(distance / (1000 * 60 * 60 * 24));
3113						var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
3114						var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
3115						var seconds = Math.floor((distance % (1000 * 60)) / 1000);
3116						
3117						if(hours<10){
3118							var hours1 = "0"+hours;
3119						}else{
3120							var hours1 = hours;
3121						}
3122						if(minutes<10){
3123							var minutes1 = "0"+minutes;
3124						}else{
3125							var minutes1 = minutes;
3126						}
3127						if(seconds<10){
3128							var seconds1 = "0"+seconds;
3129						}else{
3130							var seconds1 = seconds;
3131						}
3132						
3133						if( $("#" + sticky_bar_countdown_id).length ) {
3134							document.getElementById(sticky_bar_countdown_id).innerHTML = " "+days+ " DAY " + hours1 + ": "
3135						+ minutes1 + ": " + seconds1 + " ";
3136						}
3137						
3138						if (distance < 0) {
3139							clearInterval(x);
3140							//document.getElementById(sticky_bar_countdown_id).innerHTML = "-";
3141							$("#"+sticky_bar_countdown_id).remove();
3142						}
3143					}, 1000);
3144					
3145				 });
3146				
3147			});
3148			 
3149			jQuery.ajaxPrefilter( function( s ) {
3150				if ( s.crossDomain ) {
3151					s.contents.script = false;
3152				}
3153			});
3154			
3155			var loc = window.location.href, index = loc.indexOf('#');
3156			if (index > 0) {
3157				try {
3158					var urlHash = loc.split("#")[1];
3159					if( urlHash ) {
3160						if( $('#' + urlHash).length ) {
3161							$('html,body').animate({
3162								scrollTop: $('#' + urlHash).offset().top
3163							}, 1200);
3164						} else {
3165							window.location = loc.substring(0, index) + "&" + loc.substring(index+1);
3166						}
3167					}
3168				} catch(err) { }
3169			}
3170			
3171			var readyInitPage = 1;
3172			var doAdjust = true;
3173			var doAdjustCounter = 0;
3174			var jsLoadTimeout = null;
3175			var previousWidth = 0;
3176			var maxHeight = 0;
3177			var flipper_random_status = 0;
3178			var float_banner_count = 0;
3179			var lazy = 1;
3180			var transInitial = -280;
3181			var mDistance = 0;
3182					
3183			if (window!= top) top.location.href = location.href;
3184			
3185			//20210713 add menu url target
3186			 $(".pushy-submenu button span").click(function(){
3187				if($(this).attr("target")){
3188					$(this).removeClass("pushy-submenu-parent");
3189					if($(this).parents("li").hasClass("pushy-submenu-open")){
3190						window.open($(this).data("url"),"_blank");
3191					}
3192				}
3193			});
3194
3195			$(".pushy-menu-storename span").click(function(){
3196				$("#myBody").removeClass("pushy-open-left");
3197			});
3198			
3199			function getScript(url,success){
3200			var script = document.createElement('script');
3201			script.type = 'text/javascript';
3202			script.src = url;
3203			var head=document.getElementsByTagName('head')[0], done=false;
3204			script.onload=script.onreadystatechange = function(){
3205			  if ( !done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') ) {
3206				done=true;
3207				success();
3208				script.onload = script.onreadystatechange = null;
3209				head.removeChild(script);
3210			  }
3211			};
3212			head.appendChild(script);
3213			}
3214						
3215			function getParams(a){var b=document.getElementsByTagName("script");for(var i=0;i<b.length;i++){if(b[i].src.indexOf("/"+a)>-1){var c=b[i].src.split("?").pop().split("&");var p={};for(var j=0;j<c.length;j++){var d=c[j].split("=");p[d[0]]=d[1]}return p}}return{}}
3216			
3217			function adjustBoxHeights() {
3218				maxHeight1 = 270;
3219				maxHeight2 = 270;
3220				maxHeight3 = 270;
3221				maxHeight4 = 270;
3222				maxHeight5 = 270;
3223				
3224				$('.content-top .product-box > div').each(function(){
3225					$(this).height('auto');
3226					if (maxHeight2 < $(this).height()) { maxHeight2 = $(this).height(); }
3227				});
3228				$('.content-top .product-box > div').each(function(){
3229					if( maxHeight2 ) {
3230						$(this).height(maxHeight2);
3231					}
3232				});
3233				
3234				$('.content-bottom .product-box > div').each(function(){
3235					$(this).height('auto');
3236					if (maxHeight3 < $(this).height()) { maxHeight3 = $(this).height(); }
3237				});
3238				$('.content-bottom .product-box > div').each(function(){
3239					if( maxHeight3 ) {
3240						$(this).height(maxHeight3);
3241					}
3242				});
3243				
3244				$('.product-grid > div').each(function(){
3245					var img_src = $(this).find(".image img[src]").attr("src");
3246					try {
3247						var img_src_ext = img_src.split('.').pop().toLowerCase();
3248					} catch(err) {
3249						img_src_ext = "";
3250					}
3251					$(this).height('auto');
3252					if( $( "#myBody" ).hasClass("product-category") ){
3253						img_src_ext = "";
3254					}
3255					if( img_src_ext != "gif" ) {
3256						if (maxHeight1 < $(this).height()) { maxHeight1 = $(this).height(); }
3257					} else {
3258						$(this).addClass("gif-tag");
3259					}
3260				});
3261				var img_gif_height = 0;
3262				$('.product-grid > div').each(function(){
3263					var img_src = $(this).find(".image img[src]").attr("src");
3264					try {
3265						var img_src_ext = img_src.split('.').pop().toLowerCase();
3266					} catch(err) {
3267						img_src_ext = "";
3268					}
3269					if( maxHeight1 ){
3270						$(this).height(maxHeight1);
3271						if( img_src_ext != "gif" ) {
3272							img_gif_height = $(this).find(".image img").height();
3273						}
3274					}
3275				});
3276				$('.product-grid > div.gif-tag').attr("style","");
3277				if( img_gif_height ) {
3278					$('.product-grid > div.gif-tag').find(".image img").attr("style","height:" + img_gif_height + "px;width:auto;");
3279				}
3280				
3281				$('.box-content').each(function(index,elmain){
3282					$(elmain).find('.product-box').each(function(index,el){
3283						maxHeight1 = 0;
3284						$(el).find('.grid-box').each(function(index,el2){
3285							$(el2).height('auto');
3286						});
3287						$(el).find('.grid-box .inner').each(function(index,el2){
3288							if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); }
3289						});
3290						maxHeight1 = maxHeight1 + 18;
3291						$(el).find('.grid-box').each(function(index,el2){
3292							if( maxHeight1 ) {
3293								$(el2).height(maxHeight1);
3294							}
3295						});
3296					});
3297				});
3298				
3299				$('#related-products').each(function(index,elmain){
3300					$(elmain).imagesLoaded(function(){
3301						$(this).find('.product-box').each(function(index,el){
3302							maxHeight1 = 0;
3303							$(el).find('.grid-box').each(function(index,el2){
3304								$(el2).height('auto');
3305							});
3306							$(el).find('.grid-box .inner').each(function(index,el2){
3307								if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); }
3308							});
3309							maxHeight1 = maxHeight1 + 36;
3310							if( maxHeight1 < 220 ) maxHeight1 = 220;
3311							if( !is.mobile() ) {
3312								if( maxHeight1 < 340 ) maxHeight1 = 340;
3313							}
3314							$(el).find('.grid-box').each(function(index,el2){
3315								if( maxHeight1 ) {
3316									$(el2).height(maxHeight1);
3317								}
3318							});
3319						});
3320					});
3321				});
3322				
3323				$('.content-bottom #related-products').each(function(index,elmain){
3324					var contentset_height = parseInt($('.content-bottom #related-products .contentset').height());
3325					if( contentset_height ) contentset_height = contentset_height + 70;
3326					$(elmain).imagesLoaded(function(){
3327						$(this).find('.product-box').each(function(index,el){
3328							maxHeight1 = 0;
3329							$(el).find('.grid-box').each(function(index,el2){
3330								$(el2).height('auto');
3331							});
3332							$(el).find('.grid-box .inner').each(function(index,el2){
3333								if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); }
3334							});
3335							maxHeight1 = maxHeight1 + 36 + contentset_height;
3336							if( maxHeight1 < 220 ) maxHeight1 = 220;
3337							if( !is.mobile() ) {
3338								if( maxHeight1 < 340 ) maxHeight1 = 340;
3339							}
3340							$(el).find('.grid-box').each(function(index,el2){
3341								if( maxHeight1 ) {
3342									$(el2).height(maxHeight1);
3343								}
3344							});
3345						});
3346					});
3347				});
3348				
3349				$('.any-products').each(function(index,el){
3350					
3351					if(is.mobile()){
3352						$(el).find(".grid-box").attr("style","");
3353					}
3354					
3355					maxHeight5 = 0;
3356					$(el).find('.any-box > div').each(function(index,el2){
3357						$(el2).height('auto');
3358						if (maxHeight5 < $(el2).height()) { maxHeight5 = $(el2).height(); }
3359					});
3360					$(el).find('.any-box > div').each(function(index,el2){
3361						if( maxHeight5 ) {
3362							$(el2).height(maxHeight5);
3363						}
3364					});
3365					$(el).find('.grid-box > .inner').each(function(index,el2){
3366						$(el2).css("display", "block");
3367					});
3368				});
3369			}
3370			
3371			var supportsNatural = ( "naturalWidth" in (new Image()) );
3372			
3373			function initDeferImages() {
3374				[].forEach.call(document.querySelectorAll('img[data-src]'), function(img) {
3375					img.setAttribute('src', img.getAttribute('data-src'));
3376					img.onload = function() {
3377						this.removeAttribute('data-src');
3378						if (this.style.opacity !== undefined) {
3379							this.style.opacity = 1;
3380						}
3381						var naturalWidth = supportsNatural ? this.naturalWidth : $(this).width();
3382						if( naturalWidth == 0 ) {
3383							this.src += '?timestamp=' + new Date().getTime();
3384						}
3385					};
3386				});
3387				$(".grid-box img,.product-row img").each(function(){
3388					var _this = $(this);
3389					_this.imagesLoaded(function(){
3390						_this.animate({opacity: 1.0}, 100);
3391						_this.closest('.grid-box').find('.onsale').removeClass("hidden");
3392						_this.closest('.grid-box').find('.name').removeClass("hidden");
3393						_this.closest('.grid-box').find('.price').removeClass("hidden");
3394						_this.closest('.grid-box').find('.label-important').removeClass("hidden");
3395						_this.closest('.grid-box').find('.load-thumb-conver').remove();
3396						_this.closest('.product-row').find('.load-thumb-conver').remove();
3397						try { 
3398							if (typeof _this.data('flipper') !== 'undefined') {
3399								_this.flipper(); 
3400							}
3401						} catch(err) { }
3402						_this.height('auto');
3403						if( (lazy == $(".grid-box img").length) ) { adjustBoxHeights(); }
3404						lazy++;
3405					});
3406				});
3407			}
3408			
3409			function updateCartProductCount() {
3410				$.get("index.php?route=module/cart/GetProductTotal", function(data) {
3411					$("#shopping-cart-list .badge").html(data);
3412					if(data>0){
3413						$("#shopping-cart-list .badge").removeClass("hidden");
3414						$("#shopping-cart-list .badge").removeClass("animated");
3415						$("#shopping-cart-list .badge").addClass("animated bounce");
3416					} else {
3417						$("#shopping-cart-list .badge").addClass("hidden");
3418					}
3419				});
3420			}
3421			
3422			function updateQuantityByProductKey(key, quantity) {
3423				quantity = typeof(quantity) != 'undefined' ? quantity : 1;
3424				$.ajax({
3425					url: 'index.php?route=checkout/cart/updateProductQuantity',
3426					type: 'post',
3427					data: { 'quantity':quantity, 'key': key },
3428					dataType: 'json',
3429					success: function(json) {
3430						$.get( "index.php?route=module/cart/list", function( data ) {
3431							$(".slidePanel .slidePanel-content").html(data);
3432							updateCartProductCount();
3433						});
3434					}
3435				});
3436			}
3437			
3438			function removeProductFromSideCart(key, idx) {
3439				//var newkey = encodeURIComponent(key);
3440				var newkey = key;
3441				$.get("index.php?route=module/cart&remove=" + newkey, function(data) {
3442					$.get( "index.php?route=module/cart/list", function( data ) {
3443						$(".slidePanel .slidePanel-content").html(data);
3444						updateCartProductCount();
3445					});
3446				});
3447				$("#producr-list-" + idx).fadeOut(1200, function() { $(this).remove(); });
3448				return false;
3449			}
3450			
3451			function openSideCart(ta_product_id){
3452				var slidePanelVisible = $(".slidePanel").hasClass("slidePanel-show");
3453				if( slidePanelVisible ) {
3454					$("#content-wrapper").off("click");
3455					$.slidePanel.hide();
3456				} else {
3457					updateCartProductCount();
3458										$.slidePanel.show({
3459						url: 'index.php?route=module/cart/list'
3460					}, {
3461						direction: "left",
3462						duration: '500',
3463						mouseDrag: false,
3464						touchDrag: false,
3465						pointerDrag: false,
3466						loading: {
3467							template: function(options) {
3468								return '<div class="' + options.classes.loading + '"><div class="spinner"><i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i><span class="sr-only">Loading...</span></div></div>';
3469							}
3470						}
3471					});
3472					$("#content-wrapper").on('click', function(event) {
3473						$("#content-wrapper").off("click");
3474						$.slidePanel.hide();
3475						event.preventDefault();
3476						event.stopPropagation();
3477						
3478						var t_url = location.href; 
3479						var c_url = "https://www.iporkcut.com.tw/cart";
3480						
3481						if(t_url == c_url){
3482							location.reload();
3483						}
3484						
3485					});
3486					$(".fancybox-product").on('click', function(event) {
3487						$.slidePanel.hide();
3488						event.preventDefault();
3489						event.stopPropagation();
3490						
3491						var t_url = location.href; 
3492						var c_url = "https://www.iporkcut.com.tw/cart";
3493						
3494						if(t_url == c_url){
3495							location.reload();
3496						}
3497						
3498					});
3499									}
3500			}
3501			
3502			function gaTrackAddToCart(page, product_ids) {
3503				
3504				product_ids.forEach(function(item){
3505					
3506					try {
3507					
3508						// UA
3509						dataLayer.push({
3510						  'event': 'addToCart',
3511						  'ecommerce': {
3512							'currencyCode': '',
3513							'add': {
3514							  'products': [{
3515								'name': item.p_name,
3516								'id': item.p_id,
3517								'price': item.p_prices,
3518								'quantity': item.p_qty
3519							   }]
3520							}
3521						  }
3522						});
3523						
3524						// GA4
3525						dataLayer.push({
3526						  'event': 'add_to_cart',
3527						  'ecommerce': {
3528							'items': [{
3529							  'item_name': item.p_name,
3530							  'item_id': item.p_id,
3531							  'price': item.p_prices,
3532							  'quantity': item.p_qty
3533							}]
3534						  }
3535						});
3536						
3537												
3538										
3539					} catch (e) { }
3540					
3541				});
3542
3543			}
3544
3545			// Defers instant-add until the async-loaded $.fancybox exists, so early
3546			// clicks no longer hit an undefined open() and feel dead. One poller at a
3547			// time, latest click wins - repeated clicks don't stack duplicate opens.
3548			// Keep in sync with common/footer_cart.tpl (same guard for '/cart' URLs).
3549			var _fancyboxPendingCb = null;
3550			var _fancyboxPolling = false;
3551			function whenFancyboxReady(callback){
3552				if (typeof $.fancybox !== 'undefined') { callback(); return; }
3553				_fancyboxPendingCb = callback;   // latest click wins if several arrive while waiting
3554				if (_fancyboxPolling) { return; }
3555				_fancyboxPolling = true;
3556				(function poll(attempt){
3557					if (typeof $.fancybox !== 'undefined') {
3558						_fancyboxPolling = false;
3559						var cb = _fancyboxPendingCb;
3560						_fancyboxPendingCb = null;
3561						if (cb) { cb(); }
3562						return;
3563					}
3564					if (attempt < 50) { setTimeout(function(){ poll(attempt + 1); }, 100); return; }
3565					_fancyboxPolling = false;
3566					_fancyboxPendingCb = null;
3567					if (window.console && console.warn) { console.warn('fancybox not ready after 5s; instant add aborted'); }
3568				})(0);
3569			}
3570
3571			function InstantAddToCart(product_id, quantity, promotion_id, free_present_id){
3572				
3573				if( product_id && quantity ) {
3574					
3575					gecommProductToCart.product_id = product_id;
3576					gecommProductToCart.quantity = quantity;
3577					
3578					try {
3579						
3580						var p_name = $("[data-producttlid='"+product_id+"'] .name [itemprop='name']").html();
3581						var p_prices = $("[data-producttlid='"+product_id+"'] .price[data-price]").data("price");
3582						gecommProductToCart.product_name = p_name;
3583						
3584						gecommProductToCart.price = p_prices;
3585						
3586						// UA
3587						dataLayer.push({
3588						  'event': 'addToCart',
3589						  'ecommerce': {
3590							'currencyCode': '',
3591							'add': {
3592							  'products': [{
3593								'name': p_name,
3594								'id': product_id,
3595								'price': p_prices,
3596								'quantity': quantity
3597							   }]
3598							}
3599						  }
3600						});
3601						
3602						// GA4
3603						dataLayer.push({
3604						  'event': 'add_to_cart',
3605						  'ecommerce': {
3606							'items': [{
3607							  'item_name': p_name,
3608							  'item_id': product_id,
3609							  'price': p_prices,
3610							  'quantity': quantity
3611							}]
3612						  }
3613						});
3614						
3615												
3616												
3617												
3618												
3619												
3620												
3621						
3622						
3623					} catch (e) { }
3624					
3625				}
3626				
3627				$('[data-toggle="tooltip"], .tooltip').tooltip("hide");
3628				
3629				promotion_id = typeof(promotion_id) != 'undefined' ? promotion_id : -1;
3630				free_present_id = typeof(free_present_id) != 'undefined' ? free_present_id : -1;
3631				
3632				if(free_present_id != "-1"){
3633					quantity = $('input[name="quantity"]').val();
3634					quantity = typeof(quantity) != 'undefined' ? quantity : 1;
3635				}
3636				
3637				var price = $('#price-price-block .price-normal').attr('data-content');
3638		
3639				if(typeof(price) === 'undefined') price = $('#price-price-block .price-new').attr('data-content');
3640				
3641				price = typeof(price) != 'undefined' ? price : 0;
3642				
3643				var instantCartSrc = 'https://www.iporkcut.com.tw/index.php?route=product/instant_add&product_id=' + product_id + '&promotion_id=' + promotion_id + '&quantity=' + quantity +'&price=' + price + '&free_present_id=' + free_present_id;
3644
3645				whenFancyboxReady(function(){
3646					try {
3647						$.fancybox.open({
3648							src  : instantCartSrc,
3649							type : 'iframe',
3650							opts : {
3651								openEffect 			: 'none',
3652								closeEffect 		: 'none',
3653								closeClickOutside 	: true,
3654								iframe : { css : { "max-width" : '332px', "width:": '100%' } },
3655								beforeLoad: function() {
3656									$(".fancybox-container").css("zIndex", 999999993);
3657								}
3658							}
3659						});
3660					} catch (e) { }
3661				});
3662			}
3663			
3664			function InstantAddToCart1(product_id, quantity, key_id, type, position){
3665				
3666				product_id = (typeof product_id !== 'undefined') ?  product_id : 0;
3667				quantity = (typeof quantity !== 'undefined') ?  quantity : 1;
3668				key_id = (typeof key_id !== 'undefined') ?  key_id : "-1";
3669				type = (typeof type !== 'undefined') ?  type : "";
3670				position = (typeof position !== 'undefined') ?  position : "";
3671				
3672				if( product_id && quantity ) {
3673					
3674					gecommProductToCart.product_id = product_id;
3675					gecommProductToCart.quantity = quantity;
3676					
3677					try {
3678						
3679						var p_name = $("[data-producttlid='"+product_id+"'] .name [itemprop='name']").html();
3680						var p_prices = $("[data-producttlid='"+product_id+"'] .price[data-price]").data("price");
3681						gecommProductToCart.product_name = p_name;
3682
3683						gecommProductToCart.price = p_prices;
3684						
3685						// UA
3686						dataLayer.push({
3687						  'event': 'addToCart',
3688						  'ecommerce': {
3689							'currencyCode': '',
3690							'add': {
3691							  'products': [{
3692								'name': p_name,
3693								'id': product_id,
3694								'price': p_prices,
3695								'quantity': quantity
3696							   }]
3697							}
3698						  }
3699						});
3700						
3701						// GA4
3702						dataLayer.push({
3703						  'event': 'add_to_cart',
3704						  'ecommerce': {
3705							'items': [{
3706							  'item_name': p_name,
3707							  'item_id': product_id,
3708							  'price': p_prices,
3709							  'quantity': quantity
3710							}]
3711						  }
3712						});
3713						
3714												
3715												
3716												
3717												
3718												
3719												
3720					} catch (e) { }
3721					
3722				}
3723				
3724				$('[data-toggle="tooltip"], .tooltip').tooltip("hide");
3725				
3726				if(type == "promotion"){
3727					var promotion_id = typeof(key_id) != 'undefined' ? key_id : -1;
3728					var send_value = '&promotion_id=' + promotion_id ;
3729				}
3730				
3731				if(type == "present"){
3732					var free_present_id = typeof(key_id) != 'undefined' ? key_id : -1;
3733					
3734					//if(free_present_id > 0){
3735						quantity = $('input[name="quantity"]').val();
3736						quantity = typeof(quantity) != 'undefined' ? quantity : 1;
3737					//}
3738					
3739					var send_value = '&free_present_id=' + free_present_id +'&position=' + position;
3740				}
3741				
3742				if(type == "buytogether"){
3743					var buy_together_id = typeof(key_id) != 'undefined' ? key_id : -1;
3744					
3745					quantity = $('input[name="quantity"]').val();
3746					quantity = typeof(quantity) != 'undefined' ? quantity : 1;
3747					
3748					var send_value = '&buy_together_id=' + buy_together_id +'&position=' + position;
3749				}
3750				
3751				var price = $('#price-price-block .price-normal').attr('data-content');
3752		
3753				if(typeof(price) === 'undefined') price = $('#price-price-block .price-new').attr('data-content');
3754				
3755				price = typeof(price) != 'undefined' ? price : 0;
3756				
3757				
3758				var instantCart1Src = 'index.php?route=product/instant_add&product_id=' + product_id + '&quantity=' + quantity +'&price=' + price +send_value ;
3759
3760				whenFancyboxReady(function(){
3761					try {
3762						$.fancybox.open({
3763							src  : instantCart1Src,
3764							type : 'iframe',
3765							opts : {
3766								closeClickOutside : true,
3767								iframe : { css : { width : '320px' } },
3768								beforeLoad: function() {
3769									$(".fancybox-container").css("zIndex", 999999993);
3770								}
3771							}
3772						});
3773					} catch (e) { }
3774				});
3775			}
3776			
3777			// Debounced mini-cart reload: every module/cart hit rewrites server-side
3778			// cart state, so a burst of reloads can undo a just-added product.
3779			// Keep in sync with common/footer_cart.tpl -- only one footer renders per page
3780			// (common/footer.php picks a single template), so the two copies never collide.
3781			var miniCartReloadTimer = null;
3782			function reloadMiniCart(immediate){
3783				// One shared timer for every caller; immediate only shortens the wait.
3784				// Bypassing it made add-to-cart fire two overlapping module/cart requests
3785				// (closePopFancybox() and TriggerMyCartList() each trigger mouseover).
3786				// Rescheduling is not a lock, so this is "almost always one", not a guarantee.
3787				clearTimeout(miniCartReloadTimer);
3788				miniCartReloadTimer = setTimeout(loadMiniCart, immediate ? 0 : 300);
3789			}
3790
3791			function loadMiniCart(){
3792				$("#cart").load("index.php?route=module/cart #cart > *", function(){
3793					try { refreshMiniCartScrollBar(); } catch (e) { }
3794				});
3795			}
3796
3797			function closePopFancybox(){
3798				try {
3799					$.fancybox.close();
3800					$.fancybox.destroy();
3801				} catch (e) { }
3802				if( is.desktop() ) {
3803					setTimeout(function(){
3804						$("#cart > .heading a").trigger('mouseover');	
3805						setTimeout(function(){ refreshMiniCartScrollBar(); }, 300);
3806					}, 500);
3807				}
3808			}
3809			
3810			function LastPresentsOption(html,key,qty){
3811				$("#lg_option_"+key).prepend(html);
3812				$('.last_free_presents').trigger('change');
3813				$('.free_present_qty').trigger('change');
3814			}
3815			
3816			function TriggerMyCartList(){
3817				if( is.not.desktop() ){
3818					updateCartProductCount();
3819					setTimeout(function(){
3820						$("#shopping-cart-list .badge").removeClass("animated");
3821						$("#shopping-cart-list .badge").addClass("animated");
3822						$("#shopping-cart-list .badge").addClass("bounce");
3823					}, 800);
3824				} else {
3825					setTimeout(function(){
3826						$("#cart > .heading a").trigger('mouseover');	
3827						setTimeout(function(){ refreshMiniCartScrollBar(); }, 300);
3828					}, 500);
3829				}
3830			}
3831			
3832			function removeCartByProductID(product_id) {
3833				if( is.existy(product_id) ) {
3834				$.ajax({
3835					url: 'index.php?route=module/cart&remove=' + product_id + "%3Anull%3A-1%3A0",
3836					type: 'post',
3837					dataType: 'json',
3838					success: function(json) {
3839						TriggerMyCartList();
3840					}
3841				});
3842				}
3843			}
3844			
3845			function updateQuantityByProductID(product_id, quantity) {
3846				quantity = typeof(quantity) != 'undefined' ? quantity : 1;
3847				$.ajax({
3848					url: 'index.php?route=checkout/cart/updateProductQuantity',
3849					type: 'post',
3850					data: { 'quantity':quantity, 'key': product_id+'%3Anull%3A-1%3A0' },
3851					dataType: 'json',
3852					success: function(json) {
3853						TriggerMyCartList();
3854					}
3855				});
3856			}
3857			
3858			
3859			function bulk_add_to_cart() {
3860				$("select.bulk-add-quantity").change(function() {
3861					var value = $("option:selected", this).val();
3862					var select_idx 	= $(this).data("idx");
3863					var product_id 	= $(this).data("productid");
3864					var prevval 	= $(this).data("prevval");
3865					
3866					if( value == 0 ) { 
3867						$(this).next(".bulk-add-quantity").addClass("no-cart"); 
3868						if(prevval!=0){
3869							removeCartByProductID(product_id);
3870						}
3871					} else { 
3872						$(this).next(".bulk-add-quantity").removeClass("no-cart"); 
3873						
3874						if( value == 999 ) {
3875							InstantAddToCart(product_id, 999); 
3876							$(this).next(".bulk-add-quantity").find(".current").text("+ 9");
3877						} else {
3878							if(prevval==0){
3879								// 第一次加入
3880								InstantAddToCart(product_id, value); 
3881							} else {
3882								// 更新數量
3883								updateQuantityByProductID(product_id, value); 
3884							}
3885						}
3886					}
3887					$(this).data("prevval", value); 
3888					$(this).attr("data-prevval", value); 
3889				});
3890			}
3891			
3892			function downloadJSAtOnload() {
3893				
3894				$("#myBody").removeAttr('style');
3895				
3896				if( is.not.desktop() ) {
3897					$('.any-products').each(function(index,el){
3898						$(el).find('.grid-box').each(function(index,el2){
3899							$(el2).attr('style','');
3900						});
3901					});
3902				}
3903				
3904				try {
3905				getScript("https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js",function(){ });
3906				} catch(e) { }
3907				
3908								
3909				var queue = $LAB.queueScript("https://cdn.qdm.cloud/assets/js/core.240901.compressed.js");
3910				queue.queueWait(function(){
3911
3912					// core.js reloads module/cart on EVERY mini-cart hover, unthrottled (10
3913					// requests in 5s observed). Rebind to the debounced reload, keeping
3914					// hover-to-expand behaviour. The mouseleave rebind is like-for-like: in
3915					// core.240901 (the bundle queued above) its body is only
3916					// removeClass("active"). Re-check if that bundle is rebuilt.
3917					// Keep in sync with common/footer_cart.tpl -- it queues a different
3918					// bundle, so verify that claim against ITS bundle.
3919					//
3920					// The ready() wrapper is load-bearing: core.js binds inside its own
3921					// ready() callback, registered while this queued script runs, and jQuery
3922					// fires ready callbacks in registration order -- so off() is guaranteed to
3923					// run after that bind. Calling off() directly here only works if DOM ready
3924					// happens to have fired already; otherwise it removes nothing and BOTH
3925					// handlers stay attached.
3926					$(document).ready(function(){
3927						try {
3928							$(document).off("mouseover", "#cart > .heading");
3929							$(document).on("mouseover", "#cart > .heading", function(e){
3930								$("#cart").addClass("active");
3931								// Programmatic refreshes get here via .trigger('mouseover') (add-to-cart /
3932								// fancybox close / login). Debouncing them delayed the reload past each
3933								// call site's paired setTimeout(refreshMiniCartScrollBar, 300). jQuery
3934								// marks synthetic events with isTrigger; losing that just falls back to
3935								// the debounced path.
3936								reloadMiniCart(e && e.isTrigger);
3937							});
3938							$(document).off("mouseleave", "#cart");
3939							$(document).on("mouseleave", "#cart", function(){
3940								$(this).removeClass("active");
3941							});
3942						} catch (e) {
3943							// Never break the rest of the queued callback, but do not fail
3944							// silently either -- a swallowed error degrades straight back to
3945							// the unthrottled reload.
3946							if (window.console && console.warn) { console.warn("mini-cart rebind failed", e); }
3947						}
3948
3949						// Self-check. off(type, selector) matches on the selector STRING, so a whitespace
3950						// variant alone breaks it: a rebuilt bundle emitting "#cart>.heading" survives our
3951						// off() and BOTH handlers stay attached. Both spellings hit the same element, so
3952						// compare with whitespace stripped -- that covers drift on either side.
3953						// Known limit: whitespace is the ONLY rewrite covered. "#cart .heading", a trailing
3954						// " a", a comma-separated selector or a direct element bind all stay silent.
3955						// A tripwire for the likely case, not proof that the rebind held.
3956						// _data is a jQuery internal, so it gets its own try/catch: if it ever goes away,
3957						// the rebind above is still correct and must not be reported failed.
3958						try {
3959							var miniCartEvents = $._data(document, "events");
3960							var miniCartBound = ((miniCartEvents && miniCartEvents.mouseover) || []).filter(function(h){
3961								return h.selector && h.selector.replace(/\s+/g, "") === "#cart>.heading";
3962							}).length;
3963							if (miniCartBound !== 1 && window.console && console.warn) {
3964								console.warn("mini-cart rebind: expected 1 mouseover handler, found", miniCartBound);
3965							}
3966						} catch (e2) {
3967							if (window.console && console.warn) { console.warn("mini-cart rebind self-check unavailable", e2); }
3968						}
3969					});
3970
3971				
3972										
3973					$(".ajax-popup-link").unbind();
3974					$(".ajax-popup-link").fancybox({
3975						closeBtn    : true,
3976						closeClick  : true,
3977						helpers     : { 
3978							overlay : {closeClick: true} 
3979						},
3980						buttons : [ 'close' ],
3981						clickOutside : 'close',
3982						closeClick  : true,
3983						toolbar : true
3984					});
3985					
3986										
3987					var milliseconds = new Date().getTime();
3988					$.getJSON( "index.php?route=common/header/getLoggedInUserInfo&token=" + milliseconds + "1" + (Math.floor(Math.random() * 999) + 100), function( data ) {
3989						if( is.existy(data) && data.isLogged ) {
3990														$("#header-logged-user").html(data.logged_user_name + data.logged_group_name);
3991							$("#header-mobile-user").html(data.logged_user_name + data.logged_group_name);
3992							$(".header-logged-menu").removeClass("hidden");
3993							$("#header-logged-menu").removeClass("hidden");
3994							$("#header-none-logged-menu").remove();
3995						} else {
3996							$(".header-logged-menu").remove();
3997							$("#header-logged-menu").remove();
3998							$(".header-none-logged-menu").removeClass("hidden");
3999							$("#header-none-logged-menu").removeClass("hidden");
4000						}
4001						
4002						if( is.not.desktop() ){
4003							updateCartProductCount();
4004							setTimeout(function(){
4005								$("#shopping-cart-list .badge").removeClass("animated");
4006								$("#shopping-cart-list .badge").addClass("animated");
4007								$("#shopping-cart-list .badge").addClass("bounce");
4008							}, 800);
4009						} else {
4010							$("#cart > .heading a").trigger('mouseover');
4011							$("section#cart").removeClass("active");	
4012							setTimeout(function(){ $("section#cart").removeClass("active"); }, 50);
4013						}
4014						
4015					});
4016					
4017					setTimeout(function(){
4018						$('.side_float_banner_wrapper').attr("style","");
4019						$('.banner').each(function( index ) {
4020							if( $(this).find("a").length == 1 ) {
4021								$(this).attr("style","");
4022							}
4023						});
4024					}, 2000);
4025					
4026					if (typeof init_inline === 'function') {
4027						if($("#image-additional").length){
4028							$.fancybox.defaults.hash = false;
4029						}
4030						setTimeout(function(){ init_inline(); }, 300);
4031					}
4032
4033					if (typeof init_fullslideshow === 'function') { init_fullslideshow(); }
4034					
4035					$("#contact-block").removeAttr('style');
4036					
4037										if( is.not.desktop() ) {
4038						$('#shopping-cart-list').on('click', function() {
4039							openSideCart();
4040							return false;
4041						});
4042					}
4043										
4044					if ( $("input[name='quantity']").length > 0 ) {
4045						var qtyMin = $("input[name='quantity']").data("min"); 
4046						if(qtyMin=="" || qtyMin==undefined) qtyMin = 1;
4047						$("input[name='quantity']").TouchSpin({
4048							min: qtyMin,
4049							max: 99999
4050						});
4051					}
4052				
4053					$(window).resize(function() {
4054						if( $(window).width() < 992 ){
4055							$("#footer-inner-row").removeClass("offset2");
4056						} else {
4057							var data_count = $("#footer-inner-row").data("count");
4058							if(data_count < 1) {
4059								$("#footer-inner-row").addClass("offset2");	
4060							}
4061						}
4062					});	
4063					
4064					$("#header .flipper").each(function(){
4065						var imgLoad = $(this).imagesLoaded(function(){
4066							try { 
4067								if (typeof $(this).data('flipper') !== 'undefined') {
4068									$(this).flipper(); 
4069								}
4070							} catch(err) { }
4071						});
4072					});
4073					
4074					$('a[href*="#"]').each(function() {
4075						var hash = $(this).attr('href');
4076						if(hash=="##") return;
4077						if(hash=="#") return;
4078						if(hash=="#mobile-menu") return;
4079						$(this).click( function(e) {
4080							var url = $(this).attr('href');
4081							var type = url.split('#');
4082							var hash = '';
4083							if(type.length > 1)
4084							hash = type[1];
4085							if($("[name='"+hash+"']").length){
4086								if(hash && hash != "undefined" && hash != null && hash != undefined){
4087									e.preventDefault(); 
4088									$('html,body').animate({ scrollTop: $("[name='"+hash+"']").offset().top}, 600);
4089									return false;
4090								}
4091							}									
4092						});
4093					});
4094					
4095										
4096										
4097									
4098										
4099					if ( $(".masonry").length > 0 ) {
4100						$(".masonry").each(function(index, value) { 
4101							var $grid = $('.masonry').masonry();
4102							setTimeout(function(){ $grid.masonry('layout'); }, 2000);
4103						});
4104					}
4105					
4106					if ( $(".owl-carousel").length > 0 ) {
4107						$(".owl-carousel").not('[data-exclude]').each(function(index, value) { 
4108						
4109							var autoplay = is.null( $(this).attr('data-autoPlay') ) ? true : $(this).attr('data-autoPlay');
4110							var pagination = is.null( $(this).attr('data-pagination') ) ? false : $(this).attr('data-pagination');
4111							var slideSpeed = is.null( $(this).attr('data-slideSpeed') ) ? 200 : $(this).attr('data-slideSpeed');
4112							var paginationSpeed = is.null( $(this).attr('data-paginationSpeed') ) ? 800 : $(this).attr('data-paginationSpeed');
4113							var singleItem = is.null( $(this).attr('data-singleItem') ) ? true : $(this).attr('data-singleItem');
4114							var transitionStyle = is.null( $(this).attr('data-transitionStyle') ) ? "fade" : $(this).attr('data-transitionStyle');
4115							
4116							$(this).owlCarousel({
4117								autoPlay : Boolean(autoplay),
4118								navigation : false,
4119								pagination : Boolean(pagination),
4120								slideSpeed : slideSpeed,
4121								paginationSpeed : paginationSpeed,
4122								singleItem: Boolean(singleItem),
4123								transitionStyle : transitionStyle,
4124								stopOnHover: true,
4125								autoHeight: true
4126							});
4127							
4128						});
4129					}
4130					
4131										
4132					var vidDefer = document.getElementsByTagName('iframe');
4133					for (var i=0; i<vidDefer.length; i++) {
4134						if(vidDefer[i].getAttribute('data-src')) {
4135							vidDefer[i].setAttribute('src',vidDefer[i].getAttribute('data-src'));
4136						} 
4137					}
4138					
4139					$(".fancybox").fancybox({
4140						closeBtn: false,
4141						padding : 1,
4142						helpers			: {
4143							overlay : {
4144								closeClick : true,
4145								speedOut   : 200,
4146								showEarly  : true,
4147								css        : {},
4148								locked     : true
4149							},
4150							title		: { type : 'inside' },
4151							buttons		: {}
4152						}
4153					});	
4154					
4155										
4156					if( is.not.desktop() ){
4157						$("#footer-inner-row").removeClass("offset2");
4158					} 
4159					
4160					if ( $('#bestseller-products .flexslider').length > 0 ) {
4161						$('#bestseller-products .flexslider').each(function(index, value) {
4162							$(this).flexslider({
4163								animation: "slide",
4164								animationLoop: true,
4165								itemWidth: 182,
4166								itemMargin: 3,
4167								minItems: 2,
4168								maxItems: 6,
4169								animationSpeed: 700,
4170								touch: true,
4171								slideshow: false,								slideshowSpeed: 5000							});
4172						});
4173					}
4174					if ( $('#featured-products .flexslider').length > 0 ) {
4175						$('#featured-products .flexslider').each(function(index, value) { 
4176							$(this).flexslider({
4177								animation: "slide",
4178								animationLoop: true,
4179								itemWidth: 182,
4180								itemMargin: 3,
4181								minItems: 2,
4182								maxItems: 6,
4183								animationSpeed: 700,
4184								touch: true,
4185								slideshow: false,								slideshowSpeed: 5000							});
4186						});
4187					}
4188					if ( $('#latest-products .flexslider').length > 0 ) {
4189						$('#latest-products .flexslider').each(function(index, value) { 
4190							$(this).flexslider({
4191								animation: "slide",
4192								animationLoop: true,
4193								itemWidth: 182,
4194								itemMargin: 3,
4195								minItems: 2,
4196								maxItems: 6,
4197								animationSpeed: 700,
4198								touch: true,
4199								slideshow: false,								slideshowSpeed: 5000							});
4200						});
4201					}
4202					if ( $('#related-products .flexslider').length > 0 ) {
4203						$('#related-products .flexslider').each(function(index, value) { 
4204							$(this).flexslider({
4205								animation: "slide",
4206								animationLoop: true,
4207								itemWidth: 182,
4208								itemMargin: 3,
4209								minItems: 2,
4210								maxItems: 6,
4211								animationSpeed: 700,
4212								touch: true,
4213								slideshow: false,								slideshowSpeed: 5000							});
4214						});
4215					}
4216					if ( $('#special-products .flexslider').length > 0 ) {
4217						$('#special-products .flexslider').each(function(index, value) { 
4218							$(this).flexslider({
4219								animation: "slide",
4220								animationLoop: true,
4221								itemWidth: 182,
4222								itemMargin: 3,
4223								minItems: 2,
4224								maxItems: 6,
4225								animationSpeed: 700,
4226								touch: true,
4227								slideshow: false,								slideshowSpeed: 5000							});
4228						});
4229					}
4230
4231					if ( $('#comingsoon-products .flexslider').length > 0 ) {
4232						$('#comingsoon-products .flexslider').each(function(index, value) {
4233							$(this).flexslider({
4234								animation: "slide",
4235								animationLoop: true,
4236								itemWidth: 182,
4237								itemMargin: 3,
4238								minItems: 2,
4239								maxItems: 6,
4240								animationSpeed: 700,
4241								touch: true,
4242								slideshow: false,								slideshowSpeed: 5000							});
4243						});
4244					}
4245					
4246					jQuery('.flexslider').each( function() {
4247						var $slider = jQuery(this);
4248						var $slides = jQuery(this).children().children('.slides');
4249						if ( -1 === jQuery.inArray( $slider.data('flexslider').vars.animation, [ 'slide', 'swing' ] ) )
4250							return;
4251						$slides.bind( 'mousewheel', function( e ) {
4252							e.preventDefault();
4253							if ( jQuery(this).hasClass('dragging') )
4254								return;
4255							if ( e.originalEvent.deltaY > 0 ) {
4256								$slider.flexslider('next');
4257							}
4258							if ( e.originalEvent.deltaY < 0 ) {
4259								$slider.flexslider('prev');
4260							}
4261							return false;
4262						} );
4263					} );
4264					
4265					if ( $('.any-products').length > 0 ) {
4266						$(window).resize(function() {
4267							
4268							$('.any-products').each(function(index, value) { 
4269								var margin_vertical = $(this).data("marginVertical");
4270								if( is.mobile() ){
4271									$(this).find(".products-box").removeClass(".products-box").addClass("product-box");
4272								} else {
4273									if(margin_vertical){
4274										$(this).find(".product-box").removeClass(".product-box").addClass("products-box");
4275									}
4276								}
4277							});
4278							
4279							if(is.mobile()){
4280								$(".any-products").find(".grid-box").attr("style","");
4281								adjustBoxHeights();
4282							}
4283							
4284						});
4285					}
4286					
4287					if ( $('.banner-carousel').length > 0 ) {
4288						$('.banner-carousel').each(function(index, value) { 
4289							var slideSpeed = is.null( $(this).attr('data-slideSpeed') ) ? 600 : $(this).attr('data-slideSpeed');
4290							if( slideSpeed == undefined ) { slideSpeed = 600; }
4291							var el = "#" + $(this).attr("id");
4292							var items = $(this).data("item");
4293							
4294							var lilen = $(el+" li").length;
4295							var sliderLoop = true;
4296							if(lilen==items){sliderLoop = false;}
4297							
4298							var autoplay = parseInt($(this).data("autoplay"));
4299							var boolAutoplay = false;
4300							if( autoplay ) boolAutoplay = true;
4301							$(el).removeClass("hidden");
4302							$(el).show();
4303							$(el).imagesLoaded( function() {
4304								var el = "#" + $(this).attr("id");
4305								$(el+" img[data-lazy-src]").each(function(index, value) { 
4306									var loadimg = $(this).attr('data-lazy-src');
4307									$(this).attr('src', loadimg);
4308								});
4309								var slider = $(el).lightSlider({
4310									auto: boolAutoplay,
4311									pauseOnHover: true,
4312									pager: false,
4313									item:items,
4314									loop: sliderLoop,
4315									easing: 'cubic-bezier(0.25, 0, 0.25, 1)',
4316									speed: slideSpeed,
4317									onSliderLoad: function() {
4318										$(el).removeClass("hidden");
4319										$(el).show();
4320										$(el).css("height", "auto");
4321									} 
4322								});
4323								slider.refresh();
4324							});
4325						});
4326					}
4327					
4328					
4329					if ( $('.slideshow-container-appear li').length > 0 ) {
4330						$('.slideshow-container-appear').each(function(index, value) { 
4331							var el = "#" + $(this).attr("id");
4332							var full = $(this).data("full");
4333							if(full){
4334								$(this).appendTo('#content-top');
4335							}
4336							
4337							if(is.mobile()){
4338								$(el).find("li.desktop").remove();
4339								$(el).find("li.mobile:first").show();	
4340							} else {
4341								$(el).find("li.mobile").remove();
4342								$(el).find("li.desktop:first").show();	
4343							}						
4344							
4345							$(el).imagesLoaded( function(e) {
4346								
4347								if(is.mobile()){
4348									$(e).closest("li.mobile").attr("style","width:100%");
4349								} else {
4350									$(e).closest("li.desktop").attr("style","width:100%");
4351								}
4352								
4353								var controlNav = $(e).closest(".slideshow-container-appear").data("controlnav");
4354								var directionNav = $(e).closest(".slideshow-container-appear").data("directionnav");
4355								var el = "#" + $(e).attr("id");
4356								var delay = $(e).closest(".slideshow-container-appear").data("delay");
4357								if(delay<300) delay = 300;
4358								
4359								adaptiveHeight = true;
4360								if( is.mobile() ){
4361									//controlNav = false;
4362									//directionNav = false;
4363									adaptiveHeight = false;
4364								}
4365								
4366								var slideshow_img_h = 0;
4367								$(e).closest(".slideshow-container-appear li.mobile img").each(function(index, value) { 
4368									var img_h = $(this).data("height");
4369									if( (img_h > 0) && (slideshow_img_h > 0) && (img_h != slideshow_img_h) ) {
4370										slideshow_img_h = 0;
4371									} else {
4372										slideshow_img_h = img_h;
4373									}
4374								});
4375								
4376								if( is.mobile() && slideshow_img_h == 0 ){
4377									$(e).closest(".slideshow-container-appear").flexslider({
4378										animation: "fade",
4379										slideDirection: "horizontal",
4380										animationLoop: true,
4381										pauseOnHover: true,
4382										pauseOnAction: false,
4383										smoothHeight: false, 
4384										slideshowSpeed: delay,
4385										initDelay: 0, 
4386										slideshow: true,
4387										mousewheel: false,
4388										controlNav: controlNav,
4389										directionNav: directionNav, 
4390										prevText: "",
4391										nextText: "",
4392										start: function(slider) {
4393											var el = "#" + $(this).attr("id");
4394											$(el).removeClass('loading');
4395										}
4396									});
4397								} else {
4398									var slider = $(e).closest(".slides").lightSlider({
4399										auto:true,
4400										loop:true,
4401										pauseOnHover:true,
4402										adaptiveHeight:true,
4403										item:1,
4404										slideMargin:0,
4405										easing: 'cubic-bezier(0.25, 0, 0.25, 1)',
4406										speed:600,
4407										pause:delay,
4408										controls:directionNav,
4409										pager:controlNav
4410									}); 
4411									slider.refresh();
4412									setTimeout(function(){
4413									slider.play(); 
4414									slider.goToNextSlide(); 
4415									slider.goToPrevSlide();
4416									slider.goToPrevSlide(); 
4417									slider.refresh();
4418									}, 700);
4419								}
4420								
4421							});
4422							
4423						});
4424					}
4425					
4426					if( $('.side_float_banner .flipper').length > 0 ) {
4427						try {
4428							$('.side_float_banner .flipper').flipper();
4429						} catch(err) { }
4430					}
4431					
4432					if( $(".flexslider").find("img").length > 0 ) {
4433						$(".flexslider").find("img").trigger('appear');
4434					}
4435					
4436										if( ($("#maincontent").outerHeight(true)-150) > $('.sidebar .smart-menu').outerHeight(true) ){
4437					$('.sidebar .smart-menu').scrollToFixed({ 
4438						marginTop: $('#navbar-top-fixed').outerHeight(true) + 20,
4439						limit: function() {
4440							var limit = $('footer').offset().top - $(".content-bottom").outerHeight(true) - $('.sidebar .smart-menu').outerHeight(true) - 120;
4441							return limit;
4442						},
4443					});
4444					}
4445										
4446										
4447					$('[data-toggle="tooltip"]').tooltip();
4448					
4449					setTimeout(function(){ 
4450						$(window).trigger('resize'); 
4451					}, 300);
4452					
4453					$(".flex-direction-nav").remove();
4454					
4455					adjustBoxHeights();
4456					
4457										
4458					$("#menu-btn").show();
4459					$("#menu-btn").addClass('animated flash');
4460					
4461					setTimeout(function(){
4462					$("#mobile-navbar").removeAttr('style');
4463					}, 1000);
4464					
4465															
4466										
4467										
4468				});
4469				
4470				queue.runQueue();
4471				
4472												(function(d, s, id) {
4473				  var js, fjs = d.getElementsByTagName(s)[0];
4474				  if (d.getElementById(id)) return;
4475				  js = d.createElement(s); js.id = id;
4476				  				  js.src = "https://connect.facebook.net/zh_TW/sdk.js";
4477				  				  fjs.parentNode.insertBefore(js, fjs);
4478				}(document, 'script', 'facebook-jssdk'));
4479				
4480				if (window.location.hash == '#_=_') {
4481					window.location.hash = ''; // for older browsers, leaves a # behind
4482					history.pushState('', document.title, window.location.pathname + window.location.search);
4483				}
4484				
4485			}
4486			// Store subdomains count as same site; separate tenants on the platform domain do not
4487			function qdmIsSameSiteHost(host){
4488				var site = location.hostname.toLowerCase();
4489				host = (host || '').toLowerCase();
4490				if (host === site) {
4491					return true;
4492				}
4493				// Keep in sync with Response::isSameSiteHref() in system/library/response.php
4494				if (/(^|\.)(qdm\.(tw|com\.tw|cloud)|myorganic\.org\.tw)$/.test(site)) {
4495					return false;
4496				}
4497				var apex = site.replace(/^www\./, '');
4498				return host === apex || host.slice(-(apex.length + 1)) === '.' + apex;
4499			}
4500			function sanitizeTargetBlank(){
4501				$('a[rel~=external]').prop('target', '_blank');
4502				$('a[target="_blank"]').each(function(){
4503					var a = $(this);
4504					if(!qdmIsSameSiteHost(this.hostname)){
4505						var originalRel = (this.rel === undefined) ? '' : this.rel;
4506						var newRel = originalRel.split(" ");
4507						if (originalRel.toLowerCase().indexOf('noopener') === -1){
4508							newRel.push('noopener');
4509						}
4510						if (originalRel.toLowerCase().indexOf('noreferrer') === -1){
4511							newRel.push('noreferrer');
4512						}
4513						if (originalRel.toLowerCase().indexOf('nofollow') === -1){
4514							newRel.push('nofollow');
4515						}
4516						a.attr('rel', newRel.join(" ").trim() );
4517					}
4518				});
4519			}
4520			function create_mark(name) {
4521				if (window.performance.mark === undefined) {
4522					console.log("performance.mark Not supported");
4523					return;
4524				}
4525				window.performance.mark(name);
4526			}
4527			function initCoreJS() {
4528				$LAB.setGlobalDefaults({AlwaysPreserveOrder:true});
4529				jQuery.ajaxPrefilter(function(s) {
4530					if ( s.crossDomain ) {
4531						s.contents.script = false;
4532					}
4533				});
4534				$(function() { $('body').removeClass('fade-out'); });
4535				sanitizeTargetBlank();
4536				var def_img_idx = 1;
4537				[].forEach.call(document.querySelectorAll('img[data-src]'), function(img) {
4538					if( def_img_idx <= 12 ) {
4539						if (img.getAttribute('data-src') === null) { } else if (img.getAttribute('data-src') === '') {} else {
4540							img.setAttribute('src', img.getAttribute('data-src'));
4541							img.onload = function() {
4542								img.removeAttribute('data-src');
4543								if (img.style.opacity !== undefined) {
4544									img.style.opacity = 1;
4545								}
4546							};
4547						}
4548					}
4549					def_img_idx++;
4550				});
4551				if ( $('.slideshow .flexslider').length > 0 ) { 
4552					$('.slideshow .flexslider').each(function(index, value) { 
4553						var el = "#" + $(this).attr("id");
4554						var full = $(this).data("full");
4555						if(full){
4556							$(this).find("img").css({'width' : '100%', 'height' : 'auto' });
4557							$(this).closest("div.slideshow").appendTo('#content-top');
4558						}
4559					});
4560				}
4561				$LAB.script("https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/5.0.0/imagesloaded.pkgd.min.js")
4562					  .script("https://cdnjs.cloudflare.com/ajax/libs/is_js/0.9.0/is.min.js").wait(function(){
4563						  initDeferImages();
4564						loadJS();
4565						downloadJSAtOnload();
4566						create_mark('mark_fully_loaded');
4567						if( $('.wow').eq(0).length ) {
4568							getScript("https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js",function(){
4569								new WOW().init();
4570							});
4571						}
4572						if( $('img[usemap]').eq(0).length ) {
4573							getScript("https://cdnjs.cloudflare.com/ajax/libs/jQuery-rwdImageMaps/1.6/jquery.rwdImageMaps.min.js",function(){
4574								try { $('img[usemap]').rwdImageMaps(); } catch (e) { }
4575							});
4576						}
4577												
4578					  });
4579						//230117 fix flipper hover
4580						if($(".grid-box, .product-row").find(".flipper").length){
4581							$(".grid-box, .product-row").find(".flipper").hover(function(){
4582								oldSrc = $(this).attr("src");
4583								$(this).attr("src",$(this).attr("data-flipper"));
4584							},function(){
4585								$(this).attr("src",oldSrc);
4586							});
4587						}
4588			}
4589			
4590			initCoreCSS();
4591			setTimeout(function(){ 
4592				initCoreJS();
4593				$.getJSON( "index.php?route=account/account/get_user_track&token=" + (Math.floor(Math.random() * 999) + 100), function( data ) { 
4594					if( data.user_id ) { ga_userId = data.user_id; } 
4595					if( data.uuid ) {
4596						try {
4597							if ('localStorage' in window && window['localStorage'] !== null){
4598								localStorage.removeItem("qdm_user_uuid");
4599								localStorage.setItem("qdm_user_uuid", data.uuid);
4600								qdm_user_uuid = data.uuid;
4601							}
4602						} catch (e) {}
4603					}
4604					if( data.utm_source == "affiliates" ) { ga_utm_source = data.utm_source; }
4605						
4606				});
4607				var vidDefer = document.getElementsByTagName('iframe');
4608				for (var i=0; i<vidDefer.length; i++) {
4609					if(vidDefer[i].getAttribute('src')) {
4610						vidDefer[i].setAttribute('data-src',vidDefer[i].getAttribute('src'));
4611					} 
4612				}
4613				document.getElementsByTagName("body")[0].style.display = "block";
4614			}, 60);
4615		
4616		</script>
4616 
4616<script>
4617		var lazy = [];
4618		function cleanLazy(){
4619			lazy = Array.prototype.filter.call(lazy, function(l){ return l.getAttribute('data-lazy-src');});
4620		}
4621		function setLazy(){
4622			lazy = document.querySelectorAll('img[data-lazy-src]');
4623			for(var i=0; i<lazy.length; i++){
4624				if (lazy[i].getAttribute('data-lazy-src')){
4625					lazy[i].src = lazy[i].getAttribute('data-lazy-src');
4626					lazy[i].removeAttribute('data-lazy-src');
4627				}
4628				if( i >= 3 ) break;
4629			}
4630			setTimeout(function(){
4631				var elemDefer = document.getElementById("defer-load-spin");
4632				if( elemDefer !=null ) elemDefer.remove();
4633			}, 300);
4634		} 
4635		function isInViewport(el){
4636			var rect = el.getBoundingClientRect();
4637			return (
4638				rect.bottom >= 0 && 
4639				rect.right >= 0 && 
4640				rect.top <= ( (window.innerHeight + 1200) || (document.documentElement.clientHeight + 1200) ) && 
4641				rect.left <= (window.innerWidth || document.documentElement.clientWidth)
4642			 );
4643		}
4644		function lazyLoad(){
4645			lazy = document.querySelectorAll('img[data-lazy-src]');
4646			for(var i=0; i<lazy.length; i++){
4647				if(isInViewport(lazy[i])){
4648					if (lazy[i].getAttribute('data-lazy-src')){
4649						lazy[i].src = lazy[i].getAttribute('data-lazy-src');
4650						lazy[i].removeAttribute('data-lazy-src');
4651					}
4652				}
4653			}
4654		}
4655		function registerListener(event, func) {
4656			if (window.addEventListener) {
4657				window.addEventListener(event, func)
4658			} else {
4659				window.attachEvent('on' + event, func)
4660			}
4661		}
4662		registerListener('scroll', lazyLoad);
4663		registerListener('resize', lazyLoad);
4664		setLazy();
4665		</script>
4665 </body> </html> 
4665<script src="https://cdn.qdm.cloud/assets/js/backend_other.js?v=20260318"></script>
4665 
4665<script>
4666	//2025.11.20 新增貨到通知
4667	const isLogged = 0; //登入檢查
4668	const goods_arrival_notice_allow_guest_notification = 0;
4669	const goods_arrival_notice_sms_status = 0;
4670	(function() {
4671		var s = document.createElement('script');
4672		s.async = true;
4673		s.src = 'https://base.qdm.cloud/qdm_base//catalog/view/theme/default/js/customer/product.js?t=' + new Date().getTime();
4674		var before = document.scripts[document.scripts.length - 1];
4675		before.parentNode.insertBefore(s, before.nextSibling);
4676	})();
4677	document.head.innerHTML += '<link rel="stylesheet" type="text/css" href="https://cdn.qdm.cloud/assets/css/bs_utility.css?v=20260318">';
4678	const elm_StockAlertBtn = document.querySelectorAll('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\'], .product-info input[type=\'checkbox\'], .product-info select,.cart input[name=\'promption_id\']');
4679	elm_StockAlertBtn.forEach(element => {
4680		element.addEventListener('change', () => {
4681			showStockAlertBtn(0);
4682		});
4683	});
4684
4685	function showStockAlertBtn(show = 0) {
4686		handleResize();
4687		const notifyArrivalBtns = document.querySelectorAll('.notifyArrival');
4688		if (notifyArrivalBtns.length === 0) return;
4689		if (show == 1) {
4690			notifyArrivalBtns.forEach(btn => {
4691				btn.classList.remove('invisible');
4692			});
4693			document.querySelectorAll('#button-quick-checkout').forEach(element => {
4694				element.classList.add('d-none');
4695			});
4696			if (document.querySelector('#button-instant-checkout')) {
4697				document.querySelector('#button-instant-checkout').classList.add('d-none');
4698			}
4699			if (document.querySelector('#button-cart')) {
4700				document.querySelectorAll('#button-cart').forEach(element => {
4701					element.classList.add('d-none');
4702				});
4703			}
4704		} else {
4705			notifyArrivalBtns.forEach(btn => {
4706				btn.classList.add('invisible');
4707			});
4708			document.querySelectorAll('#button-quick-checkout').forEach(element => {
4709				element.classList.remove('d-none');
4710			});
4711			if (document.querySelector('#button-instant-checkout')) {
4712				document.querySelector('#button-instant-checkout').classList.remove('d-none');
4713			}
4714			if (document.querySelector('#button-cart')) {
4715				document.querySelectorAll('#button-cart').forEach(element => {
4716					element.classList.remove('d-none');
4717				});
4718			}
4719
4720		}
4721	};
4722	//去抖
4723	function debounce(func, delay) {
4724		let timeoutId;
4725		return (...args) => {
4726			clearTimeout(timeoutId);
4727			timeoutId = setTimeout(() => {
4728				func.apply(this, args);
4729			}, delay);
4730		};
4731	}
4732
4733	function handleResize() {
4734
4735
4736		if (getDeviceType() == 'mobile' || getDeviceType() == 'tablet') {
4737
4738			const notifyArrivalBtns = document.querySelectorAll('.notifyArrival');
4739			if (notifyArrivalBtns.length > 0) {
4740				notifyArrivalBtns.forEach(btn => {
4741					btn.classList.add('mobile'); //改變 貨到付款按鈕尺寸
4742				});
4743			}
4744			if (document.querySelector('#button-quick-checkout')) {
4745				document.querySelectorAll('#button-quick-checkout').forEach(element => {
4746					element.classList.add('fix-btn-size');
4747				});
4748			}
4749			if (document.querySelector('#button-instant-checkout')) {
4750				document.querySelector('#button-instant-checkout').classList.add('fix-btn-size');
4751			}
4752			if (document.querySelector('#button-cart')) {
4753				document.querySelectorAll('#button-cart').forEach(element => {
4754					element.classList.add('fix-btn-size');
4755				});
4756			}
4757		} else {
4758
4759			const notifyArrivalBtns = document.querySelectorAll('.notifyArrival');
4760			if (notifyArrivalBtns.length > 0) {
4761				notifyArrivalBtns.forEach(btn => {
4762					btn.classList.remove('mobile');
4763				});
4764			}
4765			if (document.querySelector('#button-quick-checkout')) {
4766				document.querySelectorAll('#button-quick-checkout').forEach(element => {
4767					element.classList.remove('fix-btn-size');
4768				});
4769			}
4770
4771			if (document.querySelector('#button-instant-checkout')) {
4772				document.querySelector('#button-instant-checkout').classList.remove('fix-btn-size');
4773			}
4774			if (document.querySelector('#button-cart')) {
4775				document.querySelectorAll('#button-cart').forEach(element => {
4776					element.classList.remove('fix-btn-size');
4777				});
4778			}
4779		}
4780
4781	}
4782
4783	function hasStockError(message) {
4784		return /庫存/.test(message);
4785	}
4786
4787	const debouncedHandleResize = debounce(handleResize, 250); // 延遲 250 毫秒
4788
4789	// 監聽 resize 事件,並使用去抖過的函式
4790	window.addEventListener('resize', debouncedHandleResize);
4791	window.addEventListener('ContentLoaded', handleResize());
4792
4793	function getDeviceType() {
4794		const width = window.innerWidth;
4795		if (width <= 768) {
4796			return 'mobile';
4797		} else if (width > 768 && width <= 1024) {
4798			return 'tablet';
4799		} else {
4800			return 'desktop';
4801		}
4802	}
4803	//補丁: 圖片選項select 點文字,input可以被選
4804	function enableDataSelectsClick() {
4805
4806		$(document).on('click', '[data-selects]', function(event) {
4807			try {
4808
4809				var targetId = $(this).attr('data-selects');
4810
4811				var $radioInput = $('#' + targetId);
4812				if ($radioInput.length && $radioInput.attr('type') === 'radio') {
4813					$radioInput.trigger('click');
4814				} else {
4815					// 如果找不到目標元素或類型不符,發出警告
4816					console.warn('DataSelects 點擊處理:找不到 ID 為 ' + targetId + ' 的 Radio Input 或類型不符。');
4817				}
4818			} catch (error) {
4819				console.error('DataSelects 點擊處理時發生錯誤:', error);
4820			}
4821		});
4822	}
4823</script>
vendor: 1 bytes, line 4823
4823

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.