PageSourceSearch

https://www.kpstamp.com.tw/product/product&product_id=580

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

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.