PageSourceSearch

https://www.gibbon.com.tw/account/login

html gibbon.com.tw collected 2026-10-07 19:29:59 UTC 153,299 bytes, 4,589 lines download raw bytes

1<!doctype html>
2<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
3<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]-->
5<!--[if IE 9 ]><html class="ie9 no-js"> <![endif]-->
6<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js"> <!--<![endif]-->
7<head>
8
9  <!-- Basic page needs ================================================== -->
10  <meta charset="utf-8">
11  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
12
13  
14  <link rel="icon" href="https://cdn.store-assets.com/s/263036/f/5642482.jpeg" />
15  
16
17  <!-- Title and description ================================================== -->
18  <title>
19  登入 &ndash; GIBBON 吉朋西服
20  </title>
21
22  
23
24  <!-- Social meta ================================================== -->
25  
26
27  <meta property="og:type" content="website">
28  <meta property="og:title" content="登入">
29  <meta property="og:url" content="https://www.gibbon.com.tw/account/login">
30  
31  <meta property="og:image" content="https://cdn.store-assets.com/s/263036/f/6735266.png?width=1200">
32  <meta property="og:image:secure_url" content="https://cdn.store-assets.com/s/263036/f/6735266.png?width=1200">
33  
34
35
36<meta property="og:description" content="GIBBON SHOP吉朋西服官方購物網-提供優質男裝西服, 西褲, 襯衫, 休閒褲, 短褲, 休閒運動外套, 機能性登山服, 大尺碼服飾-專營品牌GIBBON 吉朋, ZENO 傑諾">
37<meta property="og:site_name" content="GIBBON 吉朋西服">
38
39
40
41  <meta name="twitter:card" content="summary">
42
43
44
45
46
47
48
49  <!-- Helpers ================================================== -->
50  <link rel="canonical" href="https://www.gibbon.com.tw/account/login">
51  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0">
52  <meta name="theme-color" content="">
53
54  <!-- CSS ================================================== -->
55  <link href="https://store-themes.easystore.co/263036/themes/2877/assets/timber.css?t=1791351859" rel="stylesheet" type="text/css" media="screen" />
56  <link href="https://store-themes.easystore.co/263036/themes/2877/assets/theme.css?t=1791351859" rel="stylesheet" type="text/css" media="screen" />
57
58  
59
60
61
62<link href="https://fonts.googleapis.com/css?family=Rajdhani:400,600&display=swap" rel="stylesheet">
63
64
65  
65<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
65
66  <!-- Header hook for plugins ================================================== -->
67  
68<!-- ScriptTags -->
69<script>window.__st={p: "customers",cid: null,cem: null,cph: null,cfn: null,cln: null,cge: null,cdb: null,ccc: null};</script>
69<script src='/assets/events.js'></script>
69<script>(function(){function asyncLoad(){var urls=['/assets/traffic.js?v=1','https://apps.easystore.co/facebook-login/script.js?shop=weedenfashion.easy.co','https://apps.easystore.co/marketplace/shopee-taiwan/script.js?shop=weedenfashion.easy.co','https://apps.easystore.co/mobile-messaging-share/script.js?shop=weedenfashion.easy.co','https://apps.easystore.co/google-analytics/script.js?shop=weedenfashion.easy.co'];for(var i=0;i<urls.length;i++){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=urls[i];var x=document.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);}}window.attachEvent ? window.attachEvent('onload', asyncLoad) : window.addEventListener('load', asyncLoad, false);})();</script>
69
70<!-- /ScriptTags -->
71
72
73  
74<!--[if lt IE 9]>
75<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript" ></script>
vendor: 2 bytes, line 75
75
76<script src="https://store-themes.easystore.co/263036/themes/2877/assets/respond.min.js?t=1791351859" type="text/javascript" ></script>
76
77<link href="https://store-themes.easystore.co/263036/themes/2877/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
78<link href="//www.gibbon.com.tw/search?q=bffdab448e3b1816ad261f8a3bed91de" id="respond-redirect" rel="respond-redirect" />
79<script src="//www.gibbon.com.tw/search?q=bffdab448e3b1816ad261f8a3bed91de" type="text/javascript"></script>
79
80<![endif]-->
81
82
83
84  
84<script src="https://store-themes.easystore.co/263036/themes/2877/assets/modernizr.min.js?t=1791351859" type="text/javascript" ></script>
84
85
86  
87  
88    
88<script src="/assets/shop_common.js" type="text/javascript" ></script>
88
89    
89<script src="/assets/customer_area.js" type="text/javascript" ></script>
89
90  
91  
91<script>
92  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
93  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
94  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
95  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
96
97  ga('create', '', 'auto','myTracker');
98  ga('myTracker.send', 'pageview');
99
100  </script>
100
101  
102<!-- Snippet:global/head: Bing Webmaster -->
103<meta name="msvalidate.01" content="bing-verification" />
104<!-- /Snippet -->
105
106<!-- Snippet:global/head: Google Search Console -->
107<meta name="google-site-verification" content="abc123">
108<!-- /Snippet -->
109
110<!-- Snippet:global/head: 蝦皮購物 Shopee Taiwan -->
111<link type="text/css" rel="stylesheet" href="https://apps.easystore.co/assets/css/marketplace/main.css?v1.7">
112<!-- /Snippet -->
113
114<!-- Snippet:global/head: Site Verification -->
115<meta name="google-site-verification" content="rbdVk7NBbLIHA-IRlWhgqEfLELh5fuDtKhInQ1v8wWU" />
116<!-- /Snippet -->
117
118</head>
119
120<body id="------" class="template-customers  " >
121
122  <ul id="MobileNav" class="mobile-nav">
123  
124  <li class="mobile-nav_icon-x">
125    
126      
127
128
129  	
130  	<span class="MobileNavTrigger icon icon-x"></span>
131  </li>
132  
133  
134  <li class="mobile-nav__link" aria-haspopup="true">
135    
136    <a href="/" >
137      主頁🏠
138    </a>
139    
140  </li>
141  
142  
143  <li class="mobile-nav__link" aria-haspopup="true">
144    
145    
146    <a href="/collections/上著" class="mobile-nav__parent-link">
147      上著
148    </a>
149    <span class="mobile-nav__sublist-trigger">
150      <span class="icon-fallback-text mobile-nav__sublist-expand">
151  <span class="icon icon-plus" aria-hidden="true"></span>
152  <span class="fallback-text">+</span>
153</span>
154<span class="icon-fallback-text mobile-nav__sublist-contract">
155  <span class="icon icon-minus" aria-hidden="true"></span>
156  <span class="fallback-text">-</span>
157</span>
158
159    </span>
160    <ul class="mobile-nav__sublist">
161      
162      
163      <li class="mobile-nav__sublist-link" aria-haspopup="true">
164        
165        
166        <a href="/collections/襯衫" class="mobile-nav__parent-link">
167          襯衫
168        </a>
169        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
170  <span class="icon icon-plus" aria-hidden="true"></span>
171  <span class="fallback-text">+</span>
172</span>
173<span class="icon-fallback-text mobile-nav__sublist-contract">
174  <span class="icon icon-minus" aria-hidden="true"></span>
175  <span class="fallback-text">-</span>
176</span>
177</span>
178        <ul class="mobile-nav__sublist"> 
179          
180          
181          <li class="mobile-nav__sublist-link" aria-haspopup="true">
182            
183            <a href="/collections/15-17-5機能長袖-短袖襯衫" >
184              天人紗涼感抗菌襯衫
185            </a>
186            
187          </li>
188          
189          
190          <li class="mobile-nav__sublist-link" aria-haspopup="true">
191            
192            <a href="/collections/15-17-5素面長袖-短袖襯衫" >
193              15-17.5 經典短袖襯衫
194            </a>
195            
196          </li>
197          
198          
199          <li class="mobile-nav__sublist-link" aria-haspopup="true">
200            
201            <a href="/collections/m-xl-休閒短袖襯衫" >
202              M-XL 休閒短袖襯衫
203            </a>
204            
205          </li>
206          
207          
208          <li class="mobile-nav__sublist-link" aria-haspopup="true">
209            
210            <a href="/collections/15-5-18-5休閒長袖襯衫" >
211              15-18.5 經典長袖襯衫
212            </a>
213            
214          </li>
215          
216          
217          <li class="mobile-nav__sublist-link" aria-haspopup="true">
218            
219            <a href="/collections/m-xl-休閒長袖襯衫" >
220              M-XL 休閒長袖襯衫
221            </a>
222            
223          </li>
224          
225        </ul>
226        
227      </li>
228      
229      
230      <li class="mobile-nav__sublist-link" aria-haspopup="true">
231        
232        
233        <a href="/collections/涼感上衣" class="mobile-nav__parent-link">
234          涼感上衣
235        </a>
236        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
237  <span class="icon icon-plus" aria-hidden="true"></span>
238  <span class="fallback-text">+</span>
239</span>
240<span class="icon-fallback-text mobile-nav__sublist-contract">
241  <span class="icon icon-minus" aria-hidden="true"></span>
242  <span class="fallback-text">-</span>
243</span>
244</span>
245        <ul class="mobile-nav__sublist"> 
246          
247          
248          <li class="mobile-nav__sublist-link" aria-haspopup="true">
249            
250            <a href="/collections/短袖polo衫" >
251              短袖POLO衫
252            </a>
253            
254          </li>
255          
256          
257          <li class="mobile-nav__sublist-link" aria-haspopup="true">
258            
259            <a href="/collections/短袖圓領t恤" >
260              短袖圓領T
261            </a>
262            
263          </li>
264          
265        </ul>
266        
267      </li>
268      
269      
270      <li class="mobile-nav__sublist-link" aria-haspopup="true">
271        
272        
273        <a href="/collections/長袖上衣" class="mobile-nav__parent-link">
274          保暖上衣
275        </a>
276        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
277  <span class="icon icon-plus" aria-hidden="true"></span>
278  <span class="fallback-text">+</span>
279</span>
280<span class="icon-fallback-text mobile-nav__sublist-contract">
281  <span class="icon icon-minus" aria-hidden="true"></span>
282  <span class="fallback-text">-</span>
283</span>
284</span>
285        <ul class="mobile-nav__sublist"> 
286          
287          
288          <li class="mobile-nav__sublist-link" aria-haspopup="true">
289            
290            <a href="/collections/長袖polo衫" >
291              長袖POLO衫
292            </a>
293            
294          </li>
295          
296          
297          <li class="mobile-nav__sublist-link" aria-haspopup="true">
298            
299            <a href="/collections/長袖圓領t" >
300              長袖圓領衫
301            </a>
302            
303          </li>
304          
305        </ul>
306        
307      </li>
308      
309      
310      <li class="mobile-nav__sublist-link" aria-haspopup="true">
311        
312        
313        <a href="/collections/唐裝" class="mobile-nav__parent-link">
314          唐裝
315        </a>
316        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
317  <span class="icon icon-plus" aria-hidden="true"></span>
318  <span class="fallback-text">+</span>
319</span>
320<span class="icon-fallback-text mobile-nav__sublist-contract">
321  <span class="icon icon-minus" aria-hidden="true"></span>
322  <span class="fallback-text">-</span>
323</span>
324</span>
325        <ul class="mobile-nav__sublist"> 
326          
327          
328          <li class="mobile-nav__sublist-link" aria-haspopup="true">
329            
330            <a href="/collections/短袖唐裝" >
331              短袖唐裝
332            </a>
333            
334          </li>
335          
336          
337          <li class="mobile-nav__sublist-link" aria-haspopup="true">
338            
339            <a href="/collections/長袖唐裝" >
340              長袖唐裝
341            </a>
342            
343          </li>
344          
345        </ul>
346        
347      </li>
348      
349    </ul>
350    
351  </li>
352  
353  
354  <li class="mobile-nav__link" aria-haspopup="true">
355    
356    
357    <a href="/collections/下著" class="mobile-nav__parent-link">
358      下著
359    </a>
360    <span class="mobile-nav__sublist-trigger">
361      <span class="icon-fallback-text mobile-nav__sublist-expand">
362  <span class="icon icon-plus" aria-hidden="true"></span>
363  <span class="fallback-text">+</span>
364</span>
365<span class="icon-fallback-text mobile-nav__sublist-contract">
366  <span class="icon icon-minus" aria-hidden="true"></span>
367  <span class="fallback-text">-</span>
368</span>
369
370    </span>
371    <ul class="mobile-nav__sublist">
372      
373      
374      <li class="mobile-nav__sublist-link" aria-haspopup="true">
375        
376        
377        <a href="/collections/西裝褲" class="mobile-nav__parent-link">
378          西裝褲
379        </a>
380        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
381  <span class="icon icon-plus" aria-hidden="true"></span>
382  <span class="fallback-text">+</span>
383</span>
384<span class="icon-fallback-text mobile-nav__sublist-contract">
385  <span class="icon icon-minus" aria-hidden="true"></span>
386  <span class="fallback-text">-</span>
387</span>
388</span>
389        <ul class="mobile-nav__sublist"> 
390          
391          
392          <li class="mobile-nav__sublist-link" aria-haspopup="true">
393            
394            <a href="/collections/四季西裝褲" >
395              經典商務西裝褲
396            </a>
397            
398          </li>
399          
400          
401          <li class="mobile-nav__sublist-link" aria-haspopup="true">
402            
403            <a href="/collections/涼感西褲" >
404              全彈性腰圍西裝褲
405            </a>
406            
407          </li>
408          
409          
410          <li class="mobile-nav__sublist-link" aria-haspopup="true">
411            
412            <a href="/collections/刷毛西褲" >
413              內刷毛保暖西裝褲
414            </a>
415            
416          </li>
417          
418          
419          <li class="mobile-nav__sublist-link" aria-haspopup="true">
420            
421            <a href="/collections/專業級抗菌西裝褲" >
422              專業級抗菌西裝褲
423            </a>
424            
425          </li>
426          
427          
428          <li class="mobile-nav__sublist-link" aria-haspopup="true">
429            
430            <a href="/collections/44-56特大尺碼西褲" >
431              大尺碼西裝褲
432            </a>
433            
434          </li>
435          
436        </ul>
437        
438      </li>
439      
440      
441      <li class="mobile-nav__sublist-link" aria-haspopup="true">
442        
443        
444        <a href="/collections/休閒長褲" class="mobile-nav__parent-link">
445          休閒長褲
446        </a>
447        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
448  <span class="icon icon-plus" aria-hidden="true"></span>
449  <span class="fallback-text">+</span>
450</span>
451<span class="icon-fallback-text mobile-nav__sublist-contract">
452  <span class="icon icon-minus" aria-hidden="true"></span>
453  <span class="fallback-text">-</span>
454</span>
455</span>
456        <ul class="mobile-nav__sublist"> 
457          
458          
459          <li class="mobile-nav__sublist-link" aria-haspopup="true">
460            
461            <a href="/collections/機能休閒褲" >
462              機能休閒褲
463            </a>
464            
465          </li>
466          
467          
468          <li class="mobile-nav__sublist-link" aria-haspopup="true">
469            
470            <a href="/collections/刷毛休閒褲" >
471              刷毛休閒褲
472            </a>
473            
474          </li>
475          
476          
477          <li class="mobile-nav__sublist-link" aria-haspopup="true">
478            
479            <a href="/collections/彈力休閒褲" >
480              彈力休閒褲
481            </a>
482            
483          </li>
484          
485          
486          <li class="mobile-nav__sublist-link" aria-haspopup="true">
487            
488            <a href="/collections/保暖絨褲" >
489              保暖絨褲
490            </a>
491            
492          </li>
493          
494          
495          <li class="mobile-nav__sublist-link" aria-haspopup="true">
496            
497            <a href="/collections/水洗休閒褲" >
498              水洗休閒褲
499            </a>
500            
501          </li>
502          
503          
504          <li class="mobile-nav__sublist-link" aria-haspopup="true">
505            
506            <a href="/collections/特大尺碼休閒褲" >
507              大尺碼休閒褲
508            </a>
509            
510          </li>
511          
512        </ul>
513        
514      </li>
515      
516      
517      <li class="mobile-nav__sublist-link" aria-haspopup="true">
518        
519        
520        <a href="/collections/休閒短褲" class="mobile-nav__parent-link">
521          休閒短褲
522        </a>
523        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
524  <span class="icon icon-plus" aria-hidden="true"></span>
525  <span class="fallback-text">+</span>
526</span>
527<span class="icon-fallback-text mobile-nav__sublist-contract">
528  <span class="icon icon-minus" aria-hidden="true"></span>
529  <span class="fallback-text">-</span>
530</span>
531</span>
532        <ul class="mobile-nav__sublist"> 
533          
534          
535          <li class="mobile-nav__sublist-link" aria-haspopup="true">
536            
537            <a href="/collections/彈力短褲" >
538              彈力短褲
539            </a>
540            
541          </li>
542          
543          
544          <li class="mobile-nav__sublist-link" aria-haspopup="true">
545            
546            <a href="/collections/水洗短褲" >
547              水洗短褲
548            </a>
549            
550          </li>
551          
552          
553          <li class="mobile-nav__sublist-link" aria-haspopup="true">
554            
555            <a href="/collections/機能短褲" >
556              機能短褲
557            </a>
558            
559          </li>
560          
561          
562          <li class="mobile-nav__sublist-link" aria-haspopup="true">
563            
564            <a href="/collections/涼感短褲" >
565              涼感短褲
566            </a>
567            
568          </li>
569          
570        </ul>
571        
572      </li>
573      
574      
575      <li class="mobile-nav__sublist-link" aria-haspopup="true">
576        
577        <a href="/collections/唐裝長褲" >
578          唐裝長褲
579        </a>
580        
581      </li>
582      
583    </ul>
584    
585  </li>
586  
587  
588  <li class="mobile-nav__link" aria-haspopup="true">
589    
590    
591    <a href="/collections/外套" class="mobile-nav__parent-link">
592      外套
593    </a>
594    <span class="mobile-nav__sublist-trigger">
595      <span class="icon-fallback-text mobile-nav__sublist-expand">
596  <span class="icon icon-plus" aria-hidden="true"></span>
597  <span class="fallback-text">+</span>
598</span>
599<span class="icon-fallback-text mobile-nav__sublist-contract">
600  <span class="icon icon-minus" aria-hidden="true"></span>
601  <span class="fallback-text">-</span>
602</span>
603
604    </span>
605    <ul class="mobile-nav__sublist">
606      
607      
608      <li class="mobile-nav__sublist-link" aria-haspopup="true">
609        
610        
611        <a href="/collections/夾克" class="mobile-nav__parent-link">
612          夾克
613        </a>
614        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
615  <span class="icon icon-plus" aria-hidden="true"></span>
616  <span class="fallback-text">+</span>
617</span>
618<span class="icon-fallback-text mobile-nav__sublist-contract">
619  <span class="icon icon-minus" aria-hidden="true"></span>
620  <span class="fallback-text">-</span>
621</span>
622</span>
623        <ul class="mobile-nav__sublist"> 
624          
625          
626          <li class="mobile-nav__sublist-link" aria-haspopup="true">
627            
628            <a href="/collections/薄夾克" >
629              薄夾克
630            </a>
631            
632          </li>
633          
634          
635          <li class="mobile-nav__sublist-link" aria-haspopup="true">
636            
637            <a href="/collections/軟殼衣" >
638              軟殼衣
639            </a>
640            
641          </li>
642          
643          
644          <li class="mobile-nav__sublist-link" aria-haspopup="true">
645            
646            <a href="/collections/保暖外套" >
647              保暖外套
648            </a>
649            
650          </li>
651          
652          
653          <li class="mobile-nav__sublist-link" aria-haspopup="true">
654            
655            <a href="/collections/衝鋒衣" >
656              衝鋒外套
657            </a>
658            
659          </li>
660          
661          
662          <li class="mobile-nav__sublist-link" aria-haspopup="true">
663            
664            <a href="/collections/羽絨外套" >
665              羽絨外套
666            </a>
667            
668          </li>
669          
670        </ul>
671        
672      </li>
673      
674      
675      <li class="mobile-nav__sublist-link" aria-haspopup="true">
676        
677        
678        <a href="/collections/背心" class="mobile-nav__parent-link">
679          背心
680        </a>
681        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
682  <span class="icon icon-plus" aria-hidden="true"></span>
683  <span class="fallback-text">+</span>
684</span>
685<span class="icon-fallback-text mobile-nav__sublist-contract">
686  <span class="icon icon-minus" aria-hidden="true"></span>
687  <span class="fallback-text">-</span>
688</span>
689</span>
690        <ul class="mobile-nav__sublist"> 
691          
692          
693          <li class="mobile-nav__sublist-link" aria-haspopup="true">
694            
695            <a href="/collections/多口袋背心" >
696              多口袋背心
697            </a>
698            
699          </li>
700          
701          
702          <li class="mobile-nav__sublist-link" aria-haspopup="true">
703            
704            <a href="/collections/鋪棉背心" >
705              鋪棉背心
706            </a>
707            
708          </li>
709          
710          
711          <li class="mobile-nav__sublist-link" aria-haspopup="true">
712            
713            <a href="/collections/羽絨背心" >
714              羽絨背心
715            </a>
716            
717          </li>
718          
719          
720          <li class="mobile-nav__sublist-link" aria-haspopup="true">
721            
722            <a href="/collections/針織背心" >
723              針織背心
724            </a>
725            
726          </li>
727          
728        </ul>
729        
730      </li>
731      
732      
733      <li class="mobile-nav__sublist-link" aria-haspopup="true">
734        
735        
736        <a href="/collections/-外套" class="mobile-nav__parent-link">
737          外套
738        </a>
739        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
740  <span class="icon icon-plus" aria-hidden="true"></span>
741  <span class="fallback-text">+</span>
742</span>
743<span class="icon-fallback-text mobile-nav__sublist-contract">
744  <span class="icon icon-minus" aria-hidden="true"></span>
745  <span class="fallback-text">-</span>
746</span>
747</span>
748        <ul class="mobile-nav__sublist"> 
749          
750          
751          <li class="mobile-nav__sublist-link" aria-haspopup="true">
752            
753            <a href="/collections/毛料大衣" >
754              毛料大衣
755            </a>
756            
757          </li>
758          
759          
760          <li class="mobile-nav__sublist-link" aria-haspopup="true">
761            
762            <a href="/collections/休閒西裝-獵裝" >
763              休閒西裝
764            </a>
765            
766          </li>
767          
768          
769          <li class="mobile-nav__sublist-link" aria-haspopup="true">
770            
771            <a href="/collections/休閒獵裝" >
772              休閒獵裝
773            </a>
774            
775          </li>
776          
777        </ul>
778        
779      </li>
780      
781    </ul>
782    
783  </li>
784  
785  
786  <li class="mobile-nav__link" aria-haspopup="true">
787    
788    <a href="/collections/成套西服-1" >
789      成套西服
790    </a>
791    
792  </li>
793  
794  
795  <li class="mobile-nav__link" aria-haspopup="true">
796    
797    
798    <a href="/collections/官網限定優惠" class="mobile-nav__parent-link">
799      🎉官網限定優惠
800    </a>
801    <span class="mobile-nav__sublist-trigger">
802      <span class="icon-fallback-text mobile-nav__sublist-expand">
803  <span class="icon icon-plus" aria-hidden="true"></span>
804  <span class="fallback-text">+</span>
805</span>
806<span class="icon-fallback-text mobile-nav__sublist-contract">
807  <span class="icon icon-minus" aria-hidden="true"></span>
808  <span class="fallback-text">-</span>
809</span>
810
811    </span>
812    <ul class="mobile-nav__sublist">
813      
814      
815      <li class="mobile-nav__sublist-link" aria-haspopup="true">
816        
817        <a href="/collections/襯衫西褲任選2件79折" >
818          襯衫西褲任選2件79折
819        </a>
820        
821      </li>
822      
823      
824      <li class="mobile-nav__sublist-link" aria-haspopup="true">
825        
826        
827        <a href="/collections/特惠單品-5折起" class="mobile-nav__parent-link">
828          特惠單品 5折起
829        </a>
830        <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand">
831  <span class="icon icon-plus" aria-hidden="true"></span>
832  <span class="fallback-text">+</span>
833</span>
834<span class="icon-fallback-text mobile-nav__sublist-contract">
835  <span class="icon icon-minus" aria-hidden="true"></span>
836  <span class="fallback-text">-</span>
837</span>
838</span>
839        <ul class="mobile-nav__sublist"> 
840          
841          
842          <li class="mobile-nav__sublist-link" aria-haspopup="true">
843            
844            <a href="/collections/外套-促" >
845              外套-促
846            </a>
847            
848          </li>
849          
850          
851          <li class="mobile-nav__sublist-link" aria-haspopup="true">
852            
853            <a href="/collections/襯衫-促" >
854              襯衫-促
855            </a>
856            
857          </li>
858          
859          
860          <li class="mobile-nav__sublist-link" aria-haspopup="true">
861            
862            <a href="/collections/西褲-促" >
863              西褲-促
864            </a>
865            
866          </li>
867          
868          
869          <li class="mobile-nav__sublist-link" aria-haspopup="true">
870            
871            <a href="/collections/休閒長褲-促" >
872              休閒長褲-促
873            </a>
874            
875          </li>
876          
877          
878          <li class="mobile-nav__sublist-link" aria-haspopup="true">
879            
880            <a href="/collections/機能褲-促" >
881              機能褲-促
882            </a>
883            
884          </li>
885          
886          
887          <li class="mobile-nav__sublist-link" aria-haspopup="true">
888            
889            <a href="/collections/短褲-促" >
890              短褲-促
891            </a>
892            
893          </li>
894          
895        </ul>
896        
897      </li>
898      
899    </ul>
900    
901  </li>
902  
903
904  
905
906  
907  
908  
909  <li class="mobile-nav__link">
910    <a href="/account/login">登入</a>
911  </li>
912  
913  <li class="mobile-nav__link">
914    <a href="/account/register">加入會員</a>
915  </li>
916  
917  
918  
919  
920  <li class="mobile-nav__link header-bar__search-wrapper">
921    
922    <div class="header-bar__module header-bar__search mobile-nav_search">
923      
924  <form action="/search" method="get" class="header-bar__search-form clearfix" role="search">
925    
926    <button type="submit" class="btn icon-fallback-text header-bar__search-submit">
927      <span class="icon icon-search" aria-hidden="true"></span>
928      <span class="fallback-text">搜尋</span>
929    </button>
930    <input type="search" name="q" value="" aria-label="搜尋" class="header-bar__search-input" placeholder="搜尋" autocomplete="off">
931    <div class="dropdown" id="searchDropdown"></div>
932    <input type="hidden" name="search_history" id="search_history">
933  </form>
934
935
936
937
938<script>
939  var _search_history_listings = ""
940  if(_search_history_listings != "") localStorage.setItem('searchHistory', JSON.stringify(_search_history_listings));
941
942  function clearAll() {
943    localStorage.removeItem('searchHistory');
944  
945    var customer = "";
946    if(customer) {
947      // Your logic to clear all data or call an endpoint
948      fetch('/account/search_histories', {
949          method: 'DELETE',
950          headers: {
951            "Content-Type": "application/json",
952            "X-Requested-With": "XMLHttpRequest"
953          },
954          body: JSON.stringify({
955            _token: "IwzixTGiHkQvggaUUFIQaxTkiYplTnC8IPP6Vvg3"
956          }),
957      })
958      .then(response => response.json())
959    }
960  }
961  // End - store view history in local storage
962  
963  // search history dropdown  
964  var searchInputs = document.querySelectorAll('input[type=search]');
965  
966  if(searchInputs.length > 0) {
967    
968    searchInputs.forEach((searchInput)=>{
969    
970      searchInput.addEventListener('focus', function() {
971        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
972        searchDropdown.innerHTML = ''; // Clear existing items
973  
974        // retrieve data from local storage
975        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
976  
977        // Convert JSON to string
978        var search_history_json = JSON.stringify(searchHistoryData);
979  
980        // Set the value of the hidden input
981        searchInput.closest('form').querySelector("#search_history").value = search_history_json;
982  
983        // create dropdown items
984        var clearAllItem = document.createElement('div');
985        clearAllItem.className = 'dropdown-item clear-all';
986        clearAllItem.textContent = 'Clear';
987        clearAllItem.addEventListener('click', function() {
988            clearAll();
989            searchDropdown.style.display = 'none';
990            searchInput.classList.remove('is-focus');
991        });
992        searchDropdown.appendChild(clearAllItem);
993  
994        // create dropdown items
995        searchHistoryData.forEach(function(item) {
996          var dropdownItem = document.createElement('div');
997          dropdownItem.className = 'dropdown-item';
998          dropdownItem.textContent = item.term;
999          dropdownItem.addEventListener('click', function() {
1000            searchInput.value = item.term;
1001            searchDropdown.style.display = 'none';
1002          });
1003          searchDropdown.appendChild(dropdownItem);
1004        });
1005  
1006        if(searchHistoryData.length > 0){
1007          // display the dropdown
1008          searchInput.classList.add('is-focus');
1009          document.body.classList.add('search-input-focus');
1010          searchDropdown.style.display = 'block';
1011        }
1012      });
1013  
1014      searchInput.addEventListener("focusout", (event) => {
1015        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
1016        searchInput.classList.remove('is-focus');
1017        searchDropdown.classList.add('transparent');
1018        setTimeout(()=>{
1019          searchDropdown.style.display = 'none';
1020          searchDropdown.classList.remove('transparent');
1021          document.body.classList.remove('search-input-focus');
1022        }, 400);
1023      });
1024    })
1025  }
1026  // End - search history dropdown
1027</script>
1027
1028    </div>
1029    
1030  </li>
1031  
1032  
1033</ul>
1034<div id="MobileNavOutside" class="mobile-nav-outside"></div>
1035
1036
1037<div id="PageContainer" class="page-container">
1038  
1039<!-- Snippet:global/body_start: Console Extension -->
1040<div id='es_console' style='display: none;'>263036</div>
1041<!-- /Snippet -->
1042
1043  
1044    <style>
1045  .search-modal__form{
1046    position: relative;
1047  }
1048  
1049  .dropdown-wrapper {
1050    position: relative;
1051  }
1052  
1053  .dropdown-wrapper:hover .dropdown {
1054    display: block;
1055  }
1056  
1057  .header-icon-nav .dropdown {
1058    left: -80px;
1059  }
1060  
1061  .dropdown {
1062    display: none;
1063    position: absolute;
1064    top: 100%;
1065    left: 0px;
1066    width: 100%;
1067    padding: 8px;
1068    background-color: #fff;
1069    z-index: 1000;
1070    border-radius: 5px;
1071    border: 1px solid rgba(var(--color-foreground), 1);
1072    border-top: none;
1073    overflow-x: hidden;
1074    overflow-y: auto;
1075    max-height: 350px;
1076    min-width: 150px;
1077    box-shadow: 0 0 5px rgba(0,0,0,0.1);
1078  }
1079    
1080  .dropdown a{
1081    text-decoration: none;
1082    color: #000 !important;
1083  }
1084  
1085  .dropdown-item {
1086    padding: 0.4rem 2rem;
1087    cursor: pointer;
1088    line-height: 1.4;
1089    overflow: hidden;
1090    text-overflow: ellipsis;
1091    white-space: nowrap;
1092  }
1093  
1094  .dropdown-item:hover{
1095    background-color: #f3f3f3;
1096  }
1097  
1098  .search__input.is-focus{
1099    border-radius: 15px;
1100    border-bottom-left-radius: 0;
1101    border-bottom-right-radius: 0;
1102    border: 1px solid rgba(var(--color-foreground), 1);
1103    border-bottom: none;
1104    box-shadow: none;
1105  }
1106  
1107  .clear-all {
1108    text-align: right;
1109    padding: 0 2rem 0.2rem;
1110    line-height: 1;
1111    font-size: 70%;
1112    margin-bottom: -2px;
1113  }
1114  
1115  .clear-all:hover{
1116    background-color: #fff;
1117  }
1118  
1119  .referral-notification {
1120    position: absolute;
1121    top: 100%;
1122    right: -12px;
1123    background: white;
1124    border: 1px solid #e0e0e0;
1125    border-radius: 8px;
1126    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1127    width: 280px;
1128    z-index: 1000;
1129    padding: 16px;
1130    margin-top: 8px;
1131    font-size: 14px;
1132    line-height: 1.4;
1133  }
1134  
1135  .referral-notification::before {
1136    content: '';
1137    position: absolute;
1138    top: -8px;
1139    right: 20px;
1140    width: 0;
1141    height: 0;
1142    border-left: 8px solid transparent;
1143    border-right: 8px solid transparent;
1144    border-bottom: 8px solid white;
1145  }
1146  
1147  .referral-notification::after {
1148    content: '';
1149    position: absolute;
1150    top: -9px;
1151    right: 20px;
1152    width: 0;
1153    height: 0;
1154    border-left: 8px solid transparent;
1155    border-right: 8px solid transparent;
1156    border-bottom: 8px solid #e0e0e0;
1157  }
1158  
1159  .referral-notification h4 {
1160    margin: 0 0 8px 0;
1161    color: #2196F3;
1162    font-size: 16px;
1163    font-weight: 600;
1164  }
1165  
1166  .referral-notification p {
1167    margin: 0 0 12px 0;
1168    color: #666;
1169  }
1170  
1171  .referral-notification .referral-code {
1172    background: #f5f5f5;
1173    padding: 8px;
1174    border-radius: 4px;
1175    font-family: monospace;
1176    font-size: 13px;
1177    text-align: center;
1178    margin: 8px 0;
1179    border: 1px solid #ddd;
1180  }
1181  
1182  .referral-notification .close-btn {
1183    position: absolute;
1184    top: 8px;
1185    right: 8px;
1186    background: none;
1187    border: none;
1188    font-size: 18px;
1189    color: #999;
1190    cursor: pointer;
1191    padding: 0;
1192    width: 20px;
1193    height: 20px;
1194    line-height: 1;
1195  }
1196  
1197  .referral-notification .close-btn:hover {
1198    color: #333;
1199  }
1200  
1201  .referral-notification .action-btn {
1202    background: #2196F3;
1203    color: white;
1204    border: none;
1205    padding: 8px 16px;
1206    border-radius: 4px;
1207    cursor: pointer;
1208    font-size: 12px;
1209    margin-right: 8px;
1210    margin-top: 8px;
1211  }
1212  
1213  .referral-notification .action-btn:hover {
1214    background: #1976D2;
1215  }
1216  
1217  .referral-notification .dismiss-btn {
1218    background: transparent;
1219    color: #666;
1220    border: 1px solid #ddd;
1221    padding: 8px 16px;
1222    border-radius: 4px;
1223    cursor: pointer;
1224    font-size: 12px;
1225    margin-top: 8px;
1226  }
1227  
1228  .referral-notification .dismiss-btn:hover {
1229    background: #f5f5f5;
1230  }
1231  .referral-modal__dialog {
1232    transform: translate(-50%, 0);
1233    transition: transform var(--duration-default) ease, visibility 0s;
1234    z-index: 10000;
1235    position: fixed;
1236    top: 20vh;
1237    left: 50%;
1238    width: 100%;
1239    max-width: 350px;
1240    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1241    border-radius: 12px;
1242    background-color: #fff;
1243    color: #000;
1244    padding: 20px;
1245    text-align: center;
1246  }
1247  .modal-overlay.referral-modal-overlay {
1248    position: fixed;
1249    top: 0;
1250    left: 0;
1251    width: 100%;
1252    height: 100%;
1253    background-color: rgba(0, 0, 0, 0.7);
1254    z-index: 2001;
1255    display: block;
1256    opacity: 1;
1257    transition: opacity var(--duration-default) ease, visibility 0s;
1258  }
1259</style>
1260
1261<header class="header-bar  sticky-topbar">
1262  <div class="header-bg-wrapper">
1263    <div class="header-wrapper wrapper">
1264      
1265
1266      <div class="logo-header" role="banner">
1267
1268              
1269                    <div class="h1 site-header__logo" itemscope itemtype="http://schema.org/Organization">
1270              
1271                    
1272                        
1273                      	
1274                          <a href="/" class="logo-wrapper" itemprop="url">
1275                            <img src="https://cdn.store-assets.com/s/263036/f/6735266.png?width=1200" alt="GIBBON 吉朋西服" itemprop="logo">
1276                          </a>
1277                        
1278
1279                    
1280              
1281                </div>
1282              
1283
1284      </div>
1285
1286      <div class="header-nav-bar medium-down--hide">
1287          
1288<ul class="site-nav large--text-center" id="AccessibleNav">
1289  
1290    
1291    
1292      <li >
1293        <a href="/"  class="site-nav__link">主頁🏠</a>
1294      </li>
1295    
1296  
1297    
1298    
1299      
1300      <li class="site-nav--has-dropdown" aria-haspopup="true">
1301        <a href="/collections/上著"  class="site-nav__link">
1302          上著
1303          <span class="arrow-icon">
1304            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1305          </span>
1306        </a>
1307        <ul class="site-nav__dropdown">
1308          
1309            
1310            
1311              
1312              <li class="site-nav_has-child">
1313                <a href="/collections/襯衫"  class="site-nav__link">
1314                  襯衫
1315                </a>
1316                <ul class="site-nav__dropdown_level-3">
1317                  
1318                    
1319                    
1320                      <li >
1321                        <a href="/collections/15-17-5機能長袖-短袖襯衫"  class="site-nav__link">天人紗涼感抗菌襯衫</a>
1322                      </li>
1323                    
1324                  
1325                    
1326                    
1327                      <li >
1328                        <a href="/collections/15-17-5素面長袖-短袖襯衫"  class="site-nav__link">15-17.5 經典短袖襯衫</a>
1329                      </li>
1330                    
1331                  
1332                    
1333                    
1334                      <li >
1335                        <a href="/collections/m-xl-休閒短袖襯衫"  class="site-nav__link">M-XL 休閒短袖襯衫</a>
1336                      </li>
1337                    
1338                  
1339                    
1340                    
1341                      <li >
1342                        <a href="/collections/15-5-18-5休閒長袖襯衫"  class="site-nav__link">15-18.5 經典長袖襯衫</a>
1343                      </li>
1344                    
1345                  
1346                    
1347                    
1348                      <li >
1349                        <a href="/collections/m-xl-休閒長袖襯衫"  class="site-nav__link">M-XL 休閒長袖襯衫</a>
1350                      </li>
1351                    
1352                  
1353                </ul>
1354              </li>
1355            
1356          
1357            
1358            
1359              
1360              <li class="site-nav_has-child">
1361                <a href="/collections/涼感上衣"  class="site-nav__link">
1362                  涼感上衣
1363                </a>
1364                <ul class="site-nav__dropdown_level-3">
1365                  
1366                    
1367                    
1368                      <li >
1369                        <a href="/collections/短袖polo衫"  class="site-nav__link">短袖POLO衫</a>
1370                      </li>
1371                    
1372                  
1373                    
1374                    
1375                      <li >
1376                        <a href="/collections/短袖圓領t恤"  class="site-nav__link">短袖圓領T</a>
1377                      </li>
1378                    
1379                  
1380                </ul>
1381              </li>
1382            
1383          
1384            
1385            
1386              
1387              <li class="site-nav_has-child">
1388                <a href="/collections/長袖上衣"  class="site-nav__link">
1389                  保暖上衣
1390                </a>
1391                <ul class="site-nav__dropdown_level-3">
1392                  
1393                    
1394                    
1395                      <li >
1396                        <a href="/collections/長袖polo衫"  class="site-nav__link">長袖POLO衫</a>
1397                      </li>
1398                    
1399                  
1400                    
1401                    
1402                      <li >
1403                        <a href="/collections/長袖圓領t"  class="site-nav__link">長袖圓領衫</a>
1404                      </li>
1405                    
1406                  
1407                </ul>
1408              </li>
1409            
1410          
1411            
1412            
1413              
1414              <li class="site-nav_has-child">
1415                <a href="/collections/唐裝"  class="site-nav__link">
1416                  唐裝
1417                </a>
1418                <ul class="site-nav__dropdown_level-3">
1419                  
1420                    
1421                    
1422                      <li >
1423                        <a href="/collections/短袖唐裝"  class="site-nav__link">短袖唐裝</a>
1424                      </li>
1425                    
1426                  
1427                    
1428                    
1429                      <li >
1430                        <a href="/collections/長袖唐裝"  class="site-nav__link">長袖唐裝</a>
1431                      </li>
1432                    
1433                  
1434                </ul>
1435              </li>
1436            
1437          
1438        </ul>
1439      </li>
1440    
1441  
1442    
1443    
1444      
1445      <li class="site-nav--has-dropdown" aria-haspopup="true">
1446        <a href="/collections/下著"  class="site-nav__link">
1447          下著
1448          <span class="arrow-icon">
1449            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1450          </span>
1451        </a>
1452        <ul class="site-nav__dropdown">
1453          
1454            
1455            
1456              
1457              <li class="site-nav_has-child">
1458                <a href="/collections/西裝褲"  class="site-nav__link">
1459                  西裝褲
1460                </a>
1461                <ul class="site-nav__dropdown_level-3">
1462                  
1463                    
1464                    
1465                      <li >
1466                        <a href="/collections/四季西裝褲"  class="site-nav__link">經典商務西裝褲</a>
1467                      </li>
1468                    
1469                  
1470                    
1471                    
1472                      <li >
1473                        <a href="/collections/涼感西褲"  class="site-nav__link">全彈性腰圍西裝褲</a>
1474                      </li>
1475                    
1476                  
1477                    
1478                    
1479                      <li >
1480                        <a href="/collections/刷毛西褲"  class="site-nav__link">內刷毛保暖西裝褲</a>
1481                      </li>
1482                    
1483                  
1484                    
1485                    
1486                      <li >
1487                        <a href="/collections/專業級抗菌西裝褲"  class="site-nav__link">專業級抗菌西裝褲</a>
1488                      </li>
1489                    
1490                  
1491                    
1492                    
1493                      <li >
1494                        <a href="/collections/44-56特大尺碼西褲"  class="site-nav__link">大尺碼西裝褲</a>
1495                      </li>
1496                    
1497                  
1498                </ul>
1499              </li>
1500            
1501          
1502            
1503            
1504              
1505              <li class="site-nav_has-child">
1506                <a href="/collections/休閒長褲"  class="site-nav__link">
1507                  休閒長褲
1508                </a>
1509                <ul class="site-nav__dropdown_level-3">
1510                  
1511                    
1512                    
1513                      <li >
1514                        <a href="/collections/機能休閒褲"  class="site-nav__link">機能休閒褲</a>
1515                      </li>
1516                    
1517                  
1518                    
1519                    
1520                      <li >
1521                        <a href="/collections/刷毛休閒褲"  class="site-nav__link">刷毛休閒褲</a>
1522                      </li>
1523                    
1524                  
1525                    
1526                    
1527                      <li >
1528                        <a href="/collections/彈力休閒褲"  class="site-nav__link">彈力休閒褲</a>
1529                      </li>
1530                    
1531                  
1532                    
1533                    
1534                      <li >
1535                        <a href="/collections/保暖絨褲"  class="site-nav__link">保暖絨褲</a>
1536                      </li>
1537                    
1538                  
1539                    
1540                    
1541                      <li >
1542                        <a href="/collections/水洗休閒褲"  class="site-nav__link">水洗休閒褲</a>
1543                      </li>
1544                    
1545                  
1546                    
1547                    
1548                      <li >
1549                        <a href="/collections/特大尺碼休閒褲"  class="site-nav__link">大尺碼休閒褲</a>
1550                      </li>
1551                    
1552                  
1553                </ul>
1554              </li>
1555            
1556          
1557            
1558            
1559              
1560              <li class="site-nav_has-child">
1561                <a href="/collections/休閒短褲"  class="site-nav__link">
1562                  休閒短褲
1563                </a>
1564                <ul class="site-nav__dropdown_level-3">
1565                  
1566                    
1567                    
1568                      <li >
1569                        <a href="/collections/彈力短褲"  class="site-nav__link">彈力短褲</a>
1570                      </li>
1571                    
1572                  
1573                    
1574                    
1575                      <li >
1576                        <a href="/collections/水洗短褲"  class="site-nav__link">水洗短褲</a>
1577                      </li>
1578                    
1579                  
1580                    
1581                    
1582                      <li >
1583                        <a href="/collections/機能短褲"  class="site-nav__link">機能短褲</a>
1584                      </li>
1585                    
1586                  
1587                    
1588                    
1589                      <li >
1590                        <a href="/collections/涼感短褲"  class="site-nav__link">涼感短褲</a>
1591                      </li>
1592                    
1593                  
1594                </ul>
1595              </li>
1596            
1597          
1598            
1599            
1600              <li >
1601                <a href="/collections/唐裝長褲"  class="site-nav__link">唐裝長褲</a>
1602              </li>
1603            
1604          
1605        </ul>
1606      </li>
1607    
1608  
1609    
1610    
1611      
1612      <li class="site-nav--has-dropdown" aria-haspopup="true">
1613        <a href="/collections/外套"  class="site-nav__link">
1614          外套
1615          <span class="arrow-icon">
1616            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1617          </span>
1618        </a>
1619        <ul class="site-nav__dropdown">
1620          
1621            
1622            
1623              
1624              <li class="site-nav_has-child">
1625                <a href="/collections/夾克"  class="site-nav__link">
1626                  夾克
1627                </a>
1628                <ul class="site-nav__dropdown_level-3">
1629                  
1630                    
1631                    
1632                      <li >
1633                        <a href="/collections/薄夾克"  class="site-nav__link">薄夾克</a>
1634                      </li>
1635                    
1636                  
1637                    
1638                    
1639                      <li >
1640                        <a href="/collections/軟殼衣"  class="site-nav__link">軟殼衣</a>
1641                      </li>
1642                    
1643                  
1644                    
1645                    
1646                      <li >
1647                        <a href="/collections/保暖外套"  class="site-nav__link">保暖外套</a>
1648                      </li>
1649                    
1650                  
1651                    
1652                    
1653                      <li >
1654                        <a href="/collections/衝鋒衣"  class="site-nav__link">衝鋒外套</a>
1655                      </li>
1656                    
1657                  
1658                    
1659                    
1660                      <li >
1661                        <a href="/collections/羽絨外套"  class="site-nav__link">羽絨外套</a>
1662                      </li>
1663                    
1664                  
1665                </ul>
1666              </li>
1667            
1668          
1669            
1670            
1671              
1672              <li class="site-nav_has-child">
1673                <a href="/collections/背心"  class="site-nav__link">
1674                  背心
1675                </a>
1676                <ul class="site-nav__dropdown_level-3">
1677                  
1678                    
1679                    
1680                      <li >
1681                        <a href="/collections/多口袋背心"  class="site-nav__link">多口袋背心</a>
1682                      </li>
1683                    
1684                  
1685                    
1686                    
1687                      <li >
1688                        <a href="/collections/鋪棉背心"  class="site-nav__link">鋪棉背心</a>
1689                      </li>
1690                    
1691                  
1692                    
1693                    
1694                      <li >
1695                        <a href="/collections/羽絨背心"  class="site-nav__link">羽絨背心</a>
1696                      </li>
1697                    
1698                  
1699                    
1700                    
1701                      <li >
1702                        <a href="/collections/針織背心"  class="site-nav__link">針織背心</a>
1703                      </li>
1704                    
1705                  
1706                </ul>
1707              </li>
1708            
1709          
1710            
1711            
1712              
1713              <li class="site-nav_has-child">
1714                <a href="/collections/-外套"  class="site-nav__link">
1715                  外套
1716                </a>
1717                <ul class="site-nav__dropdown_level-3">
1718                  
1719                    
1720                    
1721                      <li >
1722                        <a href="/collections/毛料大衣"  class="site-nav__link">毛料大衣</a>
1723                      </li>
1724                    
1725                  
1726                    
1727                    
1728                      <li >
1729                        <a href="/collections/休閒西裝-獵裝"  class="site-nav__link">休閒西裝</a>
1730                      </li>
1731                    
1732                  
1733                    
1734                    
1735                      <li >
1736                        <a href="/collections/休閒獵裝"  class="site-nav__link">休閒獵裝</a>
1737                      </li>
1738                    
1739                  
1740                </ul>
1741              </li>
1742            
1743          
1744        </ul>
1745      </li>
1746    
1747  
1748    
1749    
1750      <li >
1751        <a href="/collections/成套西服-1"  class="site-nav__link">成套西服</a>
1752      </li>
1753    
1754  
1755    
1756    
1757      
1758      <li class="site-nav--has-dropdown" aria-haspopup="true">
1759        <a href="/collections/官網限定優惠"  class="site-nav__link">
1760          🎉官網限定優惠
1761          <span class="arrow-icon">
1762            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg>
1763          </span>
1764        </a>
1765        <ul class="site-nav__dropdown">
1766          
1767            
1768            
1769              <li >
1770                <a href="/collections/襯衫西褲任選2件79折"  class="site-nav__link">襯衫西褲任選2件79折</a>
1771              </li>
1772            
1773          
1774            
1775            
1776              
1777              <li class="site-nav_has-child">
1778                <a href="/collections/特惠單品-5折起"  class="site-nav__link">
1779                  特惠單品 5折起
1780                </a>
1781                <ul class="site-nav__dropdown_level-3">
1782                  
1783                    
1784                    
1785                      <li >
1786                        <a href="/collections/外套-促"  class="site-nav__link">外套-促</a>
1787                      </li>
1788                    
1789                  
1790                    
1791                    
1792                      <li >
1793                        <a href="/collections/襯衫-促"  class="site-nav__link">襯衫-促</a>
1794                      </li>
1795                    
1796                  
1797                    
1798                    
1799                      <li >
1800                        <a href="/collections/西褲-促"  class="site-nav__link">西褲-促</a>
1801                      </li>
1802                    
1803                  
1804                    
1805                    
1806                      <li >
1807                        <a href="/collections/休閒長褲-促"  class="site-nav__link">休閒長褲-促</a>
1808                      </li>
1809                    
1810                  
1811                    
1812                    
1813                      <li >
1814                        <a href="/collections/機能褲-促"  class="site-nav__link">機能褲-促</a>
1815                      </li>
1816                    
1817                  
1818                    
1819                    
1820                      <li >
1821                        <a href="/collections/短褲-促"  class="site-nav__link">短褲-促</a>
1822                      </li>
1823                    
1824                  
1825                </ul>
1826              </li>
1827            
1828          
1829        </ul>
1830      </li>
1831    
1832  
1833  
1834  
1835      
1836        
1837          
1838        
1839          
1840        
1841      
1842  
1843  
1844  
1845</ul>
1846
1847      </div>
1848
1849      <div class="desktop-header-nav medium-down--hide">
1850
1851
1852        <div class="header-subnav">
1853          
1854
1855
1856
1857
1858          <div class="header-icon-nav">
1859
1860                
1861
1862                
1863
1864
1865                
1866                  
1867                    <div class="header-bar__module">
1868                      
1869  <a class="popup-with-form" href="#search-form">
1870    
1871
1872
1873
1874	<svg class="icon-search svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-search</title><path d="M68.5,65.87a35.27,35.27,0,1,0-5.4,4.5l23.11,23.1a3.5,3.5,0,1,0,5-4.94ZM14.82,41A28.47,28.47,0,1,1,43.28,69.43,28.5,28.5,0,0,1,14.82,41Z"/></svg>    
1875
1876  
1877
1878  </a>
1879
1880
1881
1882<!-- form itself -->
1883<div id="search-form" class="white-popup-block mfp-hide popup-search">
1884  <div class="popup-search-content">
1885    <form action="/search" method="get" class="input-group search-bar" role="search">
1886      
1887      <input type="search" name="q" value="" placeholder="搜尋" class="input-group-field" aria-label="搜尋" placeholder="搜尋" autocomplete="off">
1888      <div class="dropdown" id="searchDropdown"></div>
1889      <input type="hidden" name="search_history" id="search_history">
1890      <span class="input-group-btn">
1891        <button type="submit" class="btn icon-fallback-text">
1892          <span class="icon icon-search" aria-hidden="true"></span>
1893          <span class="fallback-text">搜尋</span>
1894        </button>
1895      </span>
1896    </form>
1897  </div>
1898</div>
1899
1900<script src="https://store-themes.easystore.co/263036/themes/2877/assets/magnific-popup.min.js?t=1791351859" type="text/javascript" ></script>
vendor: 1 bytes, line 1900
1900
1901<script>
1902$(document).ready(function() {
1903	$('.popup-with-form').magnificPopup({
1904		type: 'inline',
1905		preloader: false,
1906		focus: '#name',
1907      	mainClass: 'popup-search-bg-wrapper',
1908
1909		// When elemened is focused, some mobile browsers in some cases zoom in
1910		// It looks not nice, so we disable it:
1911		callbacks: {
1912			beforeOpen: function() {
1913				if($(window).width() < 700) {
1914					this.st.focus = false;
1915				} else {
1916					this.st.focus = '#name';
1917				}
1918			}
1919		}
1920	});
1921  	$('.popup-search-content').click(function(event) {
1922      	if($(event.target).attr('class') == "popup-search-content") {
1923          $.magnificPopup.close();
1924        }
1925    });
1926});
1927</script>
1927
1928
1929
1930<script>
1931  var _search_history_listings = ""
1932  if(_search_history_listings != "") localStorage.setItem('searchHistory', JSON.stringify(_search_history_listings));
1933
1934  function clearAll() {
1935    localStorage.removeItem('searchHistory');
1936  
1937    var customer = "";
1938    if(customer) {
1939      // Your logic to clear all data or call an endpoint
1940      fetch('/account/search_histories', {
1941          method: 'DELETE',
1942          headers: {
1943            "Content-Type": "application/json",
1944            "X-Requested-With": "XMLHttpRequest"
1945          },
1946          body: JSON.stringify({
1947            _token: "IwzixTGiHkQvggaUUFIQaxTkiYplTnC8IPP6Vvg3"
1948          }),
1949      })
1950      .then(response => response.json())
1951    }
1952  }
1953  // End - store view history in local storage
1954  
1955  // search history dropdown  
1956  var searchInputs = document.querySelectorAll('input[type=search]');
1957  
1958  if(searchInputs.length > 0) {
1959    
1960    searchInputs.forEach((searchInput)=>{
1961    
1962      searchInput.addEventListener('focus', function() {
1963        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
1964        searchDropdown.innerHTML = ''; // Clear existing items
1965  
1966        // retrieve data from local storage
1967        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
1968  
1969        // Convert JSON to string
1970        var search_history_json = JSON.stringify(searchHistoryData);
1971  
1972        // Set the value of the hidden input
1973        searchInput.closest('form').querySelector("#search_history").value = search_history_json;
1974  
1975        // create dropdown items
1976        var clearAllItem = document.createElement('div');
1977        clearAllItem.className = 'dropdown-item clear-all';
1978        clearAllItem.textContent = 'Clear';
1979        clearAllItem.addEventListener('click', function() {
1980            clearAll();
1981            searchDropdown.style.display = 'none';
1982            searchInput.classList.remove('is-focus');
1983        });
1984        searchDropdown.appendChild(clearAllItem);
1985  
1986        // create dropdown items
1987        searchHistoryData.forEach(function(item) {
1988          var dropdownItem = document.createElement('div');
1989          dropdownItem.className = 'dropdown-item';
1990          dropdownItem.textContent = item.term;
1991          dropdownItem.addEventListener('click', function() {
1992            searchInput.value = item.term;
1993            searchDropdown.style.display = 'none';
1994          });
1995          searchDropdown.appendChild(dropdownItem);
1996        });
1997  
1998        if(searchHistoryData.length > 0){
1999          // display the dropdown
2000          searchInput.classList.add('is-focus');
2001          document.body.classList.add('search-input-focus');
2002          searchDropdown.style.display = 'block';
2003        }
2004      });
2005  
2006      searchInput.addEventListener("focusout", (event) => {
2007        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
2008        searchInput.classList.remove('is-focus');
2009        searchDropdown.classList.add('transparent');
2010        setTimeout(()=>{
2011          searchDropdown.style.display = 'none';
2012          searchDropdown.classList.remove('transparent');
2013          document.body.classList.remove('search-input-focus');
2014        }, 400);
2015      });
2016    })
2017  }
2018  // End - search history dropdown
2019</script>
2019
2020                    </div>
2021                  
2022                
2023
2024
2025
2026
2027                
2028                  <div class="header-bar__module dropdown-wrapper">
2029                    
2030                      <a href="/account/login">
2031
2032
2033
2034    <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-profile</title><path d="M50,51.8A24.4,24.4,0,1,0,25.6,27.4,24.43,24.43,0,0,0,50,51.8ZM50,10A17.4,17.4,0,1,1,32.6,27.4,17.43,17.43,0,0,1,50,10Z"/><path d="M62.66,57.66H37.34a30.54,30.54,0,0,0-30.5,30.5V93.5a3.5,3.5,0,0,0,3.5,3.5H89.66a3.5,3.5,0,0,0,3.5-3.5V88.16A30.54,30.54,0,0,0,62.66,57.66ZM86.16,90H13.84V88.16a23.53,23.53,0,0,1,23.5-23.5H62.66a23.53,23.53,0,0,1,23.5,23.5Z"/></svg>
2035
2036  
2037</a>
2038
2039                      <!-- Referral Notification Popup for Desktop -->
2040                      <div id="referralNotification" class="referral-notification" style="display: none;">
2041                        <button class="close-btn" onclick="dismissReferralNotification()">&times;</button>
2042                        <div style="text-align: center; margin-bottom: 16px;">
2043                          <div style="width: 100px; height: 100px; margin: 0 auto;">
2044                            <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg">
2045                          </div>
2046                        </div>
2047                        <p id="referralSignupMessage" style="text-align: center; font-size: 14px; color: #666; margin: 0 0 20px 0;">
2048                          您的好友送您   回饋金!立即註冊領取。
2049                        </p>
2050                        <div style="text-align: center;">
2051                          <button class="btn" onclick="goToSignupPage()" style="width: 100%; color: #fff;">
2052                            註冊
2053                          </button>
2054                        </div>
2055                      </div>
2056                    
2057                  </div>
2058                
2059
2060                <div class="header-bar__module cart-page-link-wrapper">
2061                  <span class="header-bar__sep" aria-hidden="true"></span>
2062                  <a class="CartDrawerTrigger cart-page-link">
2063                    
2064
2065
2066
2067	<svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-bag</title><path d="M91.78,93.11,84.17,24.44a3.5,3.5,0,0,0-3.48-3.11H69.06C67.53,10.94,59.57,3,50,3S32.47,10.94,30.94,21.33H19.31a3.5,3.5,0,0,0-3.48,3.11L8.22,93.11A3.49,3.49,0,0,0,11.69,97H88.31a3.49,3.49,0,0,0,3.47-3.89ZM50,10c5.76,0,10.6,4.83,12,11.33H38.05C39.4,14.83,44.24,10,50,10ZM15.6,90l6.84-61.67h8.23v9.84a3.5,3.5,0,0,0,7,0V28.33H62.33v9.84a3.5,3.5,0,0,0,7,0V28.33h8.23L84.4,90Z"/></svg>	
2068
2069  
2070
2071                    <span class="cart-count header-bar__cart-count hidden-count">0</span>
2072                  </a>
2073                </div>
2074
2075          </div>
2076        </div>
2077
2078
2079
2080      </div>
2081      
2082	  <div class="mobile-header-icons large--hide">
2083        
2084        <div class="large--hide">
2085          
2086  <a class="popup-with-form" href="#search-form">
2087    
2088
2089
2090
2091	<svg class="icon-search svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-search</title><path d="M68.5,65.87a35.27,35.27,0,1,0-5.4,4.5l23.11,23.1a3.5,3.5,0,1,0,5-4.94ZM14.82,41A28.47,28.47,0,1,1,43.28,69.43,28.5,28.5,0,0,1,14.82,41Z"/></svg>    
2092
2093  
2094
2095  </a>
2096
2097
2098
2099<!-- form itself -->
2100<div id="search-form" class="white-popup-block mfp-hide popup-search">
2101  <div class="popup-search-content">
2102    <form action="/search" method="get" class="input-group search-bar" role="search">
2103      
2104      <input type="search" name="q" value="" placeholder="搜尋" class="input-group-field" aria-label="搜尋" placeholder="搜尋" autocomplete="off">
2105      <div class="dropdown" id="searchDropdown"></div>
2106      <input type="hidden" name="search_history" id="search_history">
2107      <span class="input-group-btn">
2108        <button type="submit" class="btn icon-fallback-text">
2109          <span class="icon icon-search" aria-hidden="true"></span>
2110          <span class="fallback-text">搜尋</span>
2111        </button>
2112      </span>
2113    </form>
2114  </div>
2115</div>
2116
2117<script src="https://store-themes.easystore.co/263036/themes/2877/assets/magnific-popup.min.js?t=1791351859" type="text/javascript" ></script>
vendor: 1 bytes, line 2117
2117
2118<script>
2119$(document).ready(function() {
2120	$('.popup-with-form').magnificPopup({
2121		type: 'inline',
2122		preloader: false,
2123		focus: '#name',
2124      	mainClass: 'popup-search-bg-wrapper',
2125
2126		// When elemened is focused, some mobile browsers in some cases zoom in
2127		// It looks not nice, so we disable it:
2128		callbacks: {
2129			beforeOpen: function() {
2130				if($(window).width() < 700) {
2131					this.st.focus = false;
2132				} else {
2133					this.st.focus = '#name';
2134				}
2135			}
2136		}
2137	});
2138  	$('.popup-search-content').click(function(event) {
2139      	if($(event.target).attr('class') == "popup-search-content") {
2140          $.magnificPopup.close();
2141        }
2142    });
2143});
2144</script>
2144
2145
2146
2147<script>
2148  var _search_history_listings = ""
2149  if(_search_history_listings != "") localStorage.setItem('searchHistory', JSON.stringify(_search_history_listings));
2150
2151  function clearAll() {
2152    localStorage.removeItem('searchHistory');
2153  
2154    var customer = "";
2155    if(customer) {
2156      // Your logic to clear all data or call an endpoint
2157      fetch('/account/search_histories', {
2158          method: 'DELETE',
2159          headers: {
2160            "Content-Type": "application/json",
2161            "X-Requested-With": "XMLHttpRequest"
2162          },
2163          body: JSON.stringify({
2164            _token: "IwzixTGiHkQvggaUUFIQaxTkiYplTnC8IPP6Vvg3"
2165          }),
2166      })
2167      .then(response => response.json())
2168    }
2169  }
2170  // End - store view history in local storage
2171  
2172  // search history dropdown  
2173  var searchInputs = document.querySelectorAll('input[type=search]');
2174  
2175  if(searchInputs.length > 0) {
2176    
2177    searchInputs.forEach((searchInput)=>{
2178    
2179      searchInput.addEventListener('focus', function() {
2180        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
2181        searchDropdown.innerHTML = ''; // Clear existing items
2182  
2183        // retrieve data from local storage
2184        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
2185  
2186        // Convert JSON to string
2187        var search_history_json = JSON.stringify(searchHistoryData);
2188  
2189        // Set the value of the hidden input
2190        searchInput.closest('form').querySelector("#search_history").value = search_history_json;
2191  
2192        // create dropdown items
2193        var clearAllItem = document.createElement('div');
2194        clearAllItem.className = 'dropdown-item clear-all';
2195        clearAllItem.textContent = 'Clear';
2196        clearAllItem.addEventListener('click', function() {
2197            clearAll();
2198            searchDropdown.style.display = 'none';
2199            searchInput.classList.remove('is-focus');
2200        });
2201        searchDropdown.appendChild(clearAllItem);
2202  
2203        // create dropdown items
2204        searchHistoryData.forEach(function(item) {
2205          var dropdownItem = document.createElement('div');
2206          dropdownItem.className = 'dropdown-item';
2207          dropdownItem.textContent = item.term;
2208          dropdownItem.addEventListener('click', function() {
2209            searchInput.value = item.term;
2210            searchDropdown.style.display = 'none';
2211          });
2212          searchDropdown.appendChild(dropdownItem);
2213        });
2214  
2215        if(searchHistoryData.length > 0){
2216          // display the dropdown
2217          searchInput.classList.add('is-focus');
2218          document.body.classList.add('search-input-focus');
2219          searchDropdown.style.display = 'block';
2220        }
2221      });
2222  
2223      searchInput.addEventListener("focusout", (event) => {
2224        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
2225        searchInput.classList.remove('is-focus');
2226        searchDropdown.classList.add('transparent');
2227        setTimeout(()=>{
2228          searchDropdown.style.display = 'none';
2229          searchDropdown.classList.remove('transparent');
2230          document.body.classList.remove('search-input-focus');
2231        }, 400);
2232      });
2233    })
2234  }
2235  // End - search history dropdown
2236</script>
2236
2237        </div>
2238
2239
2240        <!--  Mobile cart  -->
2241        <div class="large--hide">
2242          <a class="CartDrawerTrigger cart-page-link mobile-cart-page-link">
2243            
2244
2245
2246
2247	<svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-bag</title><path d="M91.78,93.11,84.17,24.44a3.5,3.5,0,0,0-3.48-3.11H69.06C67.53,10.94,59.57,3,50,3S32.47,10.94,30.94,21.33H19.31a3.5,3.5,0,0,0-3.48,3.11L8.22,93.11A3.49,3.49,0,0,0,11.69,97H88.31a3.49,3.49,0,0,0,3.47-3.89ZM50,10c5.76,0,10.6,4.83,12,11.33H38.05C39.4,14.83,44.24,10,50,10ZM15.6,90l6.84-61.67h8.23v9.84a3.5,3.5,0,0,0,7,0V28.33H62.33v9.84a3.5,3.5,0,0,0,7,0V28.33h8.23L84.4,90Z"/></svg>	
2248
2249  
2250
2251            <span class="cart-count hidden-count">0</span>
2252          </a>
2253        </div>
2254
2255        <!--  Mobile hamburger  -->
2256        <div class="large--hide">
2257          <a class="mobile-nav-trigger MobileNavTrigger">
2258            
2259
2260
2261
2262    <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-nav-menu</title><path d="M6.7,26.34H93a3.5,3.5,0,0,0,0-7H6.7a3.5,3.5,0,0,0,0,7Z"/><path d="M93.3,46.5H7a3.5,3.5,0,0,0,0,7H93.3a3.5,3.5,0,1,0,0-7Z"/><path d="M93.3,73.66H7a3.5,3.5,0,1,0,0,7H93.3a3.5,3.5,0,0,0,0-7Z"/></svg>
2263
2264  
2265
2266          </a>
2267        </div>
2268      
2269        
2270          
2271          <!-- Referral Notification Modal for Mobile -->
2272          <details-modal class="referral-modal" id="referralMobileModal">
2273            <details>
2274              <summary class="referral-modal__toggle" aria-haspopup="dialog" aria-label="Open referral modal" style="display: none;">
2275              </summary>
2276              <div class="modal-overlay referral-modal-overlay"></div>
2277              <div class="referral-modal__dialog" role="dialog" aria-modal="true" aria-label="Referral notification">
2278                <div class="referral-modal__content">
2279                  <button type="button" class="modal__close-button" aria-label="Close" onclick="closeMobileReferralModal()" style="position: absolute; top: 16px; right: 16px; background: none; border: none; font-size: 24px; cursor: pointer;">
2280                    &times;
2281                  </button>
2282
2283                  <div style="margin-bottom: 24px;">
2284                    <div style="width: 120px; height: 120px; margin: 0 auto 20px;">
2285                      <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg" style="width: 100%; height: 100%;">
2286                    </div>
2287                  </div>
2288
2289                  <p id="referralSignupMessageMobile" style="font-size: 16px; color: #333; margin: 0 0 30px 0; line-height: 1.5;">
2290                    您的好友送您   回饋金!立即註冊領取。
2291                  </p>
2292
2293                  <button type="button" class="btn" onclick="goToSignupPageFromMobile()" style="width: 100%; color: #fff;">
2294                    註冊
2295                  </button>
2296                </div>
2297              </div>
2298            </details>
2299          </details-modal>
2300          
2301        
2302      
2303      </div>
2304
2305
2306    </div>
2307  </div>
2308</header>
2309
2310
2311
2312
2313
2314
2315    
2316    <main class="wrapper main-content" role="main">
2317      <div class="grid">
2318          <div class="grid__item">
vendor: 100 bytes, lines 2318-2322
2318
2319            
2320  
2321            
2322<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=
23226LdMNdIqAAAAALegJp7y4weVcCIlnwmIN8TWseEF
vendor: 12 bytes, line 2322
2322"></script>
2323<link rel="preload" href="https://store-themes.easystore.co/263036/themes/2877/assets/customer.css?t=1791351859" as="style" onload="this.onload=null;this.rel='stylesheet'">
2324<style>
2325  main.main-content .field > label{
2326    display: none;
2327  }
2328  .h3{
2329    font-size: 18px;
2330  }
2331  .button--full-width{
2332    width: 100%;
2333  }
2334  .tab-wrapper{
2335    display: inline-flex;
2336    justify-content: center;
2337    align-items: center;
2338    margin: 10px auto 20px;
2339    background-color: #eaeaea;
2340    border-radius: 200px;
2341    padding: 5px;
2342    gap: 10px;
2343  }
2344  .tab-wrapper .tab-label {
2345    display: inline-block;
2346    min-width: 130px;
2347    padding: 8px 15px;
2348    border-radius: 100px;
2349    cursor: pointer;
2350    font-size: 17px;
2351    line-height: 1.1;
2352    user-select: none;
2353    margin: 0;
2354    color: #000;
2355  }
2356  #register-tos a {
2357    display: inline;
2358  }
2359  @media screen and (max-width: 400px){
2360    .tab-wrapper .tab-label {
2361      min-width: 110px;
2362    }
2363  }
2364  .tab-wrapper input[type='radio']:checked + .tab-label {
2365    background-color: #fff;
2366    box-shadow: 2px 2px 25px -10px #333;
2367  }
2368
2369  @media screen and (min-width: 500px){
2370    .large--five-twelfths{
2371      min-width: 420px;
2372    }
2373  }
2374</style>
2375
2376
2377
2378
2379<div class="customer login section-width-control small-width large--five-twelfths text-center wrapper">
2380  <div class="card">
2381    <h1 id="login" tabindex="-1" class="mb-0">
2382      歡迎
2383    </h1>
2384    <p class="h3 mt-0">
2385      
2386        註冊或登入以繼續
2387      
2388    </p>
2389    <div>
2390      
2391
2392      
2393
2394      
2395
2396      
2397
2398      
2399
2400      
2401
2402      
2403
2404      
2405
2406      
2407      <div class="tab-wrapper">
2408        <div>
2409          <input type="radio" name="type" id="tab-register" class="hide hidden" checked>
2410          <label for="tab-register" class="tab-label">
2411            註冊帳號
2412          </label>
2413        </div>
2414        <div>
2415          <input type="radio" name="type" id="tab-login" class="hide hidden">
2416          <label for="tab-login" class="tab-label">
2417            登入
2418          </label>
2419        </div>
2420      </div>
2421      
2422
2423      <form id="form-login" action="/account/auth" method="post" class="mt-2">
2424        <input type="hidden" name="_token" value="IwzixTGiHkQvggaUUFIQaxTkiYplTnC8IPP6Vvg3">
2425        <input type="hidden" name="location_id" value="">
2426        <input type="hidden" name="staff_id" value="">
2427        <input type="hidden" id="recaptchaResponse" name="g-recaptcha-response">
2428
2429        
2430        <div id="error-content"></div>
2431
2432        <div class="field">
2433          <input
2434            type="text"
2435            name="customer[email_or_phone]"
2436            id="CustomerDetail"
2437            autocorrect="off"
2438            autocapitalize="off"
2439            placeholder="電子郵件地址"
2440            required
2441          >
2442          <label for="CustomerDetail">
2443            電子郵件地址
2444          </label>
2445        </div>
2446
2447        <button
2448          type="submit"
2449          form="form-login"
2450          class="btn button--full-width g-recaptcha">
2451          繼續
2452        </button>
2453
2454        <div class="button-snippet">
2455          
2456<!-- Snippet:login/button: Facebook Login -->
2457                <style>
2458                    #fb-login-btn.btn{
2459                        background-color: #fff;
2460                        color: #000;
2461                        padding: 0;
2462                        overflow: hidden;
2463                        display: flex;
2464                        justify-content: center;
2465                        align-items: center;
2466                        width: 100%;
2467                        margin: 15px auto;
2468                        font-size: 14px;
2469                        border: 1px solid currentColor;
2470                        box-shadow: none;
2471                    }
2472                    #fb-login-btn.btn:hover{
2473                        background-color: #fff;
2474                    }
2475                    #fb-login-btn.btn svg{
2476                        width: 45px;
2477                        vertical-align: middle;
2478                        padding: 5px;
2479                    }
2480                    #fb-login-btn.btn .fb-login-text{
2481                        padding: 13px 75px 13px 30px;
2482                        display: inline-block;
2483                        width: calc(100% - 52px);
2484                    }
2485                    @media screen and (max-width: 500px) {
2486                      #fb-login-btn.btn .fb-login-text{
2487                        padding: 13px 25px 13px 8px;
2488                        font-size: 13px;
2489                      }
2490                    }
2491                </style>
2492                <button id="fb-login-btn" type="button"  class="btn"  onclick="fb_login()" style="background-color: #fff; color: #000; font-weight: normal;">
2493                  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 700"><g><path d="M650,350C650,184.32,515.68,50,350,50S50,184.32,50,350c0,140.69,96.86,258.74,227.53,291.17V441.68H215.66V350h61.87V310.5c0-102.11,46.2-149.44,146.4-149.44,19,0,51.81,3.72,65.22,7.45V251.6c-7.08-.74-19.38-1.12-34.65-1.12-49.2,0-68.2,18.64-68.2,67.08V350h98.1l-16.8,91.68H386.35V647.8C534.88,629.86,650,503.38,650,350Z" fill="#0866ff"/><path d="M467.5,441.68,484.4,350h-98V317.6c0-48.44,19-67.08,68.19-67.08,15.28,0,27.6.37,34.66,1.12V168.51c-13.42-3.73-46.21-7.45-65.22-7.45-100.25,0-146.4,47.33-146.4,149.44V350H2
249315.66v91.68h61.87V641.17a301.61,301.61,0,0,0,108.82,6.63V441.68Z" fill="#fff"/></g></svg>
2494                  <span class="fb-login-text">以 Facebook 帳號繼續</span> 
2495                </button>
2496
2497                
2497<script>
2498                    function fb_login(){
2499                        location.href = 'https://apps.easystore.co/facebook-login/run?domain='+window.location.protocol+'//'+window.location.hostname+'&shop=weedenfashion.easy.co';
2500                    }
2501                </script>
2501
2502<!-- /Snippet -->
2503        
2504        <style>
2505            #line-login-btn.btn{
2506                background-color: #fff;
2507                color: #000;
2508                padding: 0;
2509                overflow: hidden;
2510                display: flex;
2511                justify-content: center;
2512                align-items: center;
2513                width: 100%;
2514                margin: 15px auto;
2515                font-size: 14px;
2516                border: 1px solid currentColor;
2517                box-shadow: none;
2518            }
2519            #line-login-btn.btn:hover{
2520                background-color: #fff;
2521            }
2522            #line-login-btn.btn svg{
2523                width: 45px;
2524                vertical-align: middle;
2525                padding: 5px;
2526            }
2527            #line-login-btn.btn .line-login-text{
2528                padding: 13px 75px 13px 30px;
2529                display: inline-block;
2530                width: calc(100% - 52px);
2531            }
2532            @media screen and (max-width: 500px) {
2533              #line-login-btn.btn .line-login-text{
2534                padding: 13px 25px 13px 8px;
2535                font-size: 13px;
2536              }
2537            }
2538        </style>
2539        <button type="button" onclick="location.href='/account/oauth/line'" id="line-login-btn" class="btn" style="color: #000; font-weight: normal;  margin-bottom: 10px;">
2540            <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
2541                <path d="M27.91,12a8.73,8.73,0,0,0-.53-2,9.84,9.84,0,0,0-2.2-3.31A12.91,12.91,0,0,0,20.85,4a14.67,14.67,0,0,0-4-1A17.13,17.13,0,0,0,15,2.83c-.27,0-.55,0-.82,0l-.82.06a15.07,15.07,0,0,0-1.62.24,14.77,14.77,0,0,0-3,1A12.64,12.64,0,0,0,4.81,6.78a9.82,9.82,0,0,0-2.29,3.55A8.38,8.38,0,0,0,2,13a9.45,9.45,0,0,0,.1,1.5A8.52,8.52,0,0,0,2.88,17a10.52,10.52,0,0,0,3.23,3.84A13.68,13.68,0,0,0,10.5,23a14.8,14.8,0,0,0,2.36.5,2.31,2.31,0,0,1,.69.16,1,1,0,0,1,.58.72,2,2,0,0,1,0,.74c-.05.34-.12.67-.17,1a2.55,2.55,0,0,0,0,.55c0,.38.22.53.59.45a4.21,4.21,0,0,0,.63-.2A11.83,11.83,0,0,0,16.92,26a47.13,47.13,0,0,0,5.68-4c.67-.55,1.31-1.14,2-1.71a10.26,10.26,0,0,0,1.64-1.78,9.31,9.31,0,0,0,1.2-2.16,8.3,8.3,0,0,0,.59-3A9.5,9.5,0,0,0,27.91,12ZM10.26,16.52l-.18,0H7.49a.67.67,0,0,1-.67-.67v-5a.67.67,0,0,1,.66-.66.68.68,0,0,1,.71.7v4.26H10a.66.66,0,0,1,.6.31A.69.69,0,0,1,10.26,16.52Zm2.43-.58a.63.63,0,0,1-.63.6.65.65,0,0,1-.69-.46.89.89,0,0,1,0-.28V11a1.1,1.1,0,0,1,0-.26.68.68,0,0,1,.61-.48.64.64,0,0,1,.61.29.92.92,0,0,1,.11.29.72.72,0,0,1,0,.21v4.77A1,1,0,0,1,12.69,15.94Zm6.14,0a.64.64,0,0,1-.5.63.7.7,0,0,1-.76-.27C16.79,15.17,16,14.1,15.22,13c0,0-.06-.11-.16-.14v3a.6.6,0,0,1-.1.39.64.64,0,0,1-.52.3.79.79,0,0,1-.45-.11.66.66,0,0,1-.29-.52v-5a.67.67,0,0,1,.1-.39.7.7,0,0,1,1.14,0c.46.64.93,1.26,1.4,1.89l1,1.33.09.11c.06-.05,0-.1,0-.15V10.89a.65.65,0,0,1,.5-.65.67.67,0,0,1,.87.64v3.67C18.83,15,18.82,15.45,18.83,15.89Zm4.39.62a.93.93,0,0,1-.29,0H20.47a.76.76,0,0,1-.41-.1.62.62,0,0,1-.31-.51,1.09,1.09,0,0,1,0-.18c0-1.59,0-3.19,0-4.78a.88.88,0,0,1,0-.28.66.66,0,0,1,.63-.49H23a.63.63,0,0,1,.6.43.68.68,0,0,1-.16.76.58.58,0,0,1-.39.17H21.14a5.87,5.87,0,0,0,0,1.11h.17c.56,0,1.13,0,1.69,0a.64.64,0,0,1,.65.52.66.66,0,0,1-.66.84H21.14a6.56,6.56,0,0,0,0,1.09l.19,0h1.61a1,1,0,0,1,.24,0,.67.67,0,0,1,.5.63A.63.63,0,0,1,23.22,16.51Z" fill="#02C755"/>
2542            </svg>
2543            <span class="line-login-text">LINE 登入</span>
2544        </button>
2545        <!-- <p style="font-size: 12px; color: grey;">我們使用您的LINE電子郵件創建客戶帳戶</p> -->
2546                
2547        </div>
2548
2549        
2550
2551        <div id="register-tos">
2552          一旦點擊註冊,即表示你同意GIBBON 吉朋西服的 <a target="_blank" href="/legal/服務條款">服務條款</a>, <a target="_blank" href="/legal/隱私權保護">隱私權保護</a> 和 <a target="_blank" href="/pages/退換貨方式">退換貨方式</a>。
2553        </div>
2554
2555      </form>
2556    </div>
2557  </div>
2558
2559</div>
2560
2561
2562
2563<script>
2564  const register_tab = document.querySelector('#tab-register');
2565  const login_tab = document.querySelector('#tab-login');
2566  const register_tos = document.querySelector('#register-tos');
2567  const isRegistrationEnabled = "1";
2568
2569  if (register_tab) {
2570    register_tab.addEventListener('click', function() {
2571      if (register_tos) {
2572        register_tos.style.display = 'block';
2573      }
2574    });
2575  }
2576  if (login_tab) {
2577    login_tab.addEventListener('click', function() {
2578      if (register_tos) {
2579        register_tos.style.display = 'none';
2580      }
2581    });
2582  }
2583
2584  const methodSwitchBtn = document.getElementById('phone-login-btn');
2585  if (methodSwitchBtn) {
2586    methodSwitchBtn.onclick = function () {
2587      var type = (register_tab && register_tab.checked) ? 'register' : 'login';
2588      window.location.href = '/account/login?method=phone&type=' + type;
2589    };
2590  }
2591
2592  let lastPathSegment = window.location.pathname.split('/').filter(segment => segment.length > 0).pop();
2593  
2594  // Redirect to login if trying to access register when self registration is disabled
2595  if (!isRegistrationEnabled) {
2596    if (lastPathSegment === 'register') {
2597      window.location.href = '/account/login';
2598    } else if (lastPathSegment === 'login' || lastPathSegment === 'auth') {
2599      if (register_tos) {
2600        register_tos.style.display = 'none';
2601      }
2602    } 
2603  } else {
2604    // Only proceed with tab logic if not redirecting
2605    if(lastPathSegment === 'login') {
2606      if (login_tab) {
2607        login_tab.checked = true;
2608      }
2609      if (register_tos) {
2610        register_tos.style.display = 'none';
2611      }
2612    } else {
2613      if (register_tos) {
2614        register_tos.style.display = 'block';
2615      }
2616    }
2617  }
2618
2619  const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
2620  const phonePattern = /^(?:\+?\d{1,3}[\s-]?)?(?:\d{1,14}[\s-]?){1,5}$/;
2621
2622  let form = document.querySelector('#form-login'),
2623      input = document.querySelector('#CustomerDetail'),
2624      error_content = document.querySelector('#error-content');
2625
2626
2627  // One attempt at a time: the reCAPTCHA wait below is async, so without
2628  // this a double-click starts two continuations and posts the form twice.
2629  var submitting = false;
2630
2631  form.addEventListener('submit', async function (event) {
2632    // preventDefault FIRST: a re-entrant submit must still be cancelled, or the
2633    // browser performs a native post with no captcha token.
2634    event.preventDefault();
2635    if (submitting) return;
2636
2637    let input_value = input.value
2638    error_content.innerHTML = '';
2639    if (!input_value.match(emailPattern) && !input_value.match(phonePattern)) {
2640      error_content.innerHTML = `<div class="errors note">Invalid Email or Phone</div>`;
2641      return false;
2642    }
2643
2644    submitting = true;
2645    document.querySelector('#form-login .btn').classList.add('btn--loading','loading');
2646
2647    // reCAPTCHA is unreachable from some regions (google.com is blocked in
2648    // mainland China). Fail open the same way checkout and forgot-password do:
2649    // submit without a token rather than leave the button spinning forever.
2650    try {
2651      if (window.grecaptcha && typeof window.grecaptcha.enterprise === 'object') {
2652        // The loader defines a stub {ready} synchronously and fetches the real
2653        // implementation asynchronously, so execute() may not exist yet.
2654        // ready() queues until it does; the timeout stops a bundle that never
2655        // arrives from hanging the button.
2656        await new Promise(function (resolve) {
2657          setTimeout(resolve, 3000);
2658          try { grecaptcha.enterprise.ready(resolve); } catch (e) { resolve(); }
2659        });
2660
2661        const token = await grecaptcha.enterprise.execute('6LdMNdIqAAAAALegJp7y4weVcCIlnwmIN8TWseEF', { action: 'LOGIN' });
2662        document.getElementById('recaptchaResponse').value = token;
2663      }
2664    } catch (e) { /* fail open */ }
2665
2666    document.getElementById('form-login').submit();
2667  });
2668
2669
2670</script>
2670
2671
2672  
2673            
2674          </div>
2675      </div>
2676      
2677      
2678  
2679    </main>
2680  
2681    <footer class="site-footer small--text-center" role="contentinfo">
2682      
2683      
2684      
2685      <div class="wrapper">
2686  
2687        <div class="grid-uniform">
2688  
2689          
2690          
2691          
2692          
2693            
2694          
2695          
2696          
2697            
2698          
2699          
2700          
2701  
2702          
2703              
2704            
2705  
2706          
2707      
2708          
2709          
2710          <div class="grid__item large--one-half ">
2711            <a href="/" class="logo-wrapper" itemprop="url" >
2712              
2713                <img style="max-width: 250px" src="https://cdn.store-assets.com/s/263036/f/6735337.png?width=1200" alt="GIBBON 吉朋西服" itemprop="logo">
2714              
2715            </a>
2716            <p class="site-footer__links">Copyright © 2025 WEEDEN INTERNATIONAL CO., LTD.</p>
2717          </div>
2718          
2719          
2720            <div class="grid__item large--one-quarter medium--one-half">
2721              
2722              <h4>快速連結</h4>
2723              
2724              <ul class="site-footer__links">
2725                
2726                  <li><a href="/pages/購物說明" >購物說明</a></li>
2727                
2728                  <li><a href="/pages/聯絡我們" >聯絡我們</a></li>
2729                
2730                  <li><a href="/a/contact-form" >線上留言</a></li>
2731                
2732                
2733              </ul>
2734            </div>
2735          
2736  
2737          
2738            <div class="grid__item large--one-quarter medium--one-half">
2739              <h4>關注我們</h4>
2740                
2741                <ul class="inline-list social-icons">
2742  
2743  
2744    <li>
2745      <a class="icon-fallback-text" href="https://www.facebook.com/" title="GIBBON 吉朋西服在Facebook上" target="_blank">
2746        
2747
2748
2749
2750    <svg xmlns="http://www.w3.org/2000/svg" class="facebook-icon-svg social-icon-svg" viewBox="0 0 1024 1024">
2751        <title>icon-facebook</title>
2752        <path d="M837.66,223.9a33.73,33.73,0,0,0-3.11-15c-6.78-13.85-17.87-21.09-33.37-21.09q-288.46,0-576.91,0c-.62,0-1.24,0-1.85,0a34.51,34.51,0,0,0-25.88,12.11c-6.31,7.13-8.85,15.57-8.85,25.07q.08,287.7,0,575.4c0,1,0,1.9,0,2.86A32.93,32.93,0,0,0,190,814.71c4.45,11.79,16.3,23.11,35,23.1q153.61-.1,307.24,0c2.36,0,2.36,0,2.36-2.37q0-123.3,0-246.6c0-2.55,0-2.55-2.53-2.55H452.27c-2.26,0-2.26,0-2.26-2.17v-96.3h84.63v-2.46c0-22.12-.11-44.24.06-66.36.07-8.29.57-16.59,1.28-24.85a129.58,129.58,0,0,1,7.43-33c10.86-30,30.59-51.74,60-64.51A133.44,133.44,0,0,1,653,285.82c12.45-.37,24.93,0,37.38.34,9.64.27,19.27.95,28.9,1.6,5.36.36,10.7,1.07,16.06,1.5,1.46.12,1.65.75,1.65,2q0,42.2,0,84.39c0,.59-.06,1.18-.09,1.85h-2.39c-16.28,0-32.56,0-48.84.05-7.63,0-15.23.54-22.65,2.61-11.61,3.23-19.86,10.09-23.65,21.78a55.66,55.66,0,0,0-2.74,16.86c-.14,22.23-.1,44.47-.13,66.7,0,2.25,0,2.25,2.31,2.25h94.66a15.13,15.13,0,0,1,0,1.54c-.38,2.94-.81,5.88-1.18,8.82-1.17,9.16-2.3,18.33-3.48,27.5-1.29,10-2.63,20-3.94,30-1.23,9.44-2.43,18.88-3.67,28.32-.31,2.32-.35,2.32-2.78,2.32h-79a4.62,4.62,0,0,0-1.67,0,2.5,2.5,0,0,0-1.2,1.16,3.68,3.68,0,0,0,0,1.49V835.21c0,2.56,0,2.56,2.53,2.56H797.83c2.13,0,4.27-.07,6.39-.21,11.56-.78,20.61-6.07,27.23-15.48,4.66-6.6,6.24-14.09,6.24-22.11q-.06-287.19,0-574.38Z" fill="#999"/>
2753    </svg>
2754
2755  
2756
2757        <span class="fallback-text">Facebook</span>
2758      </a>
2759    </li>
2760  
2761  
2762  
2763    <li>
2764      <a class="icon-fallback-text" href="https://instagram.com/" title="GIBBON 吉朋西服在Instagram上" target="_blank">
2765        
2766
2767
2768
2769    <svg xmlns="http://www.w3.org/2000/svg" class="instagram-icon-svg social-icon-svg" viewBox="0 0 1024 1024">
2770        <title>icon-instagram</title>
2771        <path d="M834.35,341.22a231.23,231.23,0,0,0-9.59-46.45,166.71,166.71,0,0,0-52.17-78.33c-17-14.41-36.33-24.44-57.44-31.3-21.52-7-43.69-10.21-66.19-11.12-22.28-.9-44.58-1.73-66.87-1.85-47.68-.26-95.37-.16-143.06,0-27.47.11-54.95.69-82.32,3.39a220.7,220.7,0,0,0-37.43,6.95c-26.2,7.26-50,19-70.24,37.45-18.06,16.4-32.3,35.52-41.87,58.05-9.89,23.29-15.13,47.68-16.69,72.82-1.23,19.78-2.06,39.6-2.32,59.41-.38,28.91-.1,57.82-.1,86.73-.23,39.92-.67,79.85,1,119.76.72,17.66,1.57,35.3,4.6,52.76,3.22,18.52,8.32,36.51,16.71,53.34C232.83,768,268.81,797,317.12,811a246.28,246.28,0,0,0,59.24,9.11c25.3.95,50.63,1.78,75.95,1.94,43.83.28,87.66.1,131.5,0,26-.08,52.08-.72,78.06-2.74a234.52,234.52,0,0,0,45.76-8c24.54-6.92,46.82-18.12,66.22-34.79,24.65-21.17,41.5-47.44,51.3-78.36,6.7-21.14,9.83-42.88,10.73-64.94.9-21.84,1.73-43.69,1.82-65.55q.33-78.21-.15-156.44C837.42,387.82,836.72,364.47,834.35,341.22Zm-55.3,232.84c-.12,20.41-1,40.84-2,61.24-1,19.2-4.13,38.08-11.74,55.92q-18.43,43.24-62.47,60c-14.36,5.48-29.3,8.3-44.55,9.53-27.07,2.18-54.21,2.63-81.36,2.73-21.31.07-42.62,0-63.93,0v-.16c-28.47,0-56.94.22-85.4-.09-17.5-.18-35-1-52.49-1.89-19.94-1-39.51-4.31-57.95-12.38q-41.6-18.2-58-60.68a162.37,162.37,0,0,1-9.95-45.62c-2-24.66-2.62-49.38-2.66-74.1-.09-50.88-.16-101.77.12-152.65.11-19,1-38.09,2-57.11a180,180,0,0,1,8.78-48.23c8.32-24.84,23.63-44.14,45.66-58.12,11.78-7.48,24.85-11.91,38.36-15,15.57-3.61,31.43-4.65,47.34-5.32,54.32-2.28,108.68-1.46,163-1.5,18.67,0,37.34.12,56,.56,15.84.38,31.7,1,47.51,2,18.33,1.18,36.27,4.59,53.19,12q41.67,18.25,58.1,60.83c5.67,14.7,8.64,30,9.91,45.63,2,25,2.63,50,2.67,75.09C779.25,475.82,779.35,524.94,779.05,574.06Z" fill="#999"/><path d="M513,330.12c-92-.34-167,74.55-167.08,166.87s74.71,167,167,167A166.86,166.86,0,0,0,679.77,497.12C679.87,405,605.46,330.45,513,330.12Zm-.29,275.31A108.38,108.38,0,1,1,621.21,497.15,108.38,108.38,0,0,1,512.7,605.43Z" fill="#999"/><path d="M686.47,284.5a39,39,0,1,0,38.92,39.14A39,39,0,0,0,686.47,284.5Z" fill="#999"/>
2772    </svg>
2773
2774  
2775
2776        <span class="fallback-text">Instagram</span>
2777      </a>
2778    </li>
2779  
2780  
2781  
2782    <li>
2783      <a class="icon-fallback-text" href="https://www.youtube.com/" title="GIBBON 吉朋西服在YouTube上" target="_blank">
2784        
2785
2786
2787
2788    <svg xmlns="http://www.w3.org/2000/svg" class="youtube-icon-svg social-icon-svg" viewBox="0 0 1024 1024">
2789        <title>icon-youtube</title>
2790        <path d="M870.81,327.93c-7.44-35.32-28.1-59.52-60.39-71.9-16.32-6.27-33.58-8-50.71-9.35-31.74-2.54-63.52-4.94-95.32-6.05q-68.85-2.41-137.75-2.8c-75.45-.43-150.91.42-226.25,5.31a672.25,672.25,0,0,0-68,7.84c-35.52,6-75.56,36.22-83.33,86.62a946.72,946.72,0,0,0-10.15,116.2c-1.48,49.67-1.33,99.34,1.42,149,1.57,28.34,4.16,56.51,9,84.49,6.1,35.11,25.46,59,54.45,75.29,17.17,9.66,36,12.91,54.91,14.37,38.69,3,77.44,5.58,116.21,7,42.47,1.56,85,1.63,127.49,2.35v-.91c27.2,0,54.4.26,81.6-.06,59.05-.68,118.09-1.91,176.89-8.23,14.61-1.57,29.51-3.48,43.44-8.06,29.6-9.75,52.29-29.47,63.23-60.8,5.32-15.27,7.62-31.93,9.82-48.18,5.81-43.06,7.61-86.47,8.39-129.92a1196.45,1196.45,0,0,0-5.15-133.62C878.49,373.5,875.55,350.44,870.81,327.93ZM440.45,633.7V390L627.17,511.81Z" fill="#999"/>
2791    </svg>
2792
2793  
2794
2795        <span class="fallback-text">YouTube</span>
2796      </a>
2797    </li>
2798  
2799  
2800  
2801  
2802  
2803  
2804  
2805</ul>
2806
2807            </div>
2808          
2809        </div>
2810  
2811        <hr class="hr--small hr--clear">
2812  
2813        
2814          <div class="grid">
2815            
2816             <div class="grid__item text-center">
2817               <ul class="inline-list payment-icons">
2818                  
2819                    <li>
2820                      <span class="icon-fallback-text">
2821                        <span class="icon icon-visa" aria-hidden="true"></span>
2822                        <span class="fallback-text">Visa</span>
2823                      </span>
2824                    </li>
2825                  
2826                  
2827                    <li>
2828                      <span class="icon-fallback-text">
2829                        <span class="icon icon-master" aria-hidden="true"></span>
2830                        <span class="fallback-text">Master</span>
2831                      </span>
2832                    </li>
2833                  
2834                  
2835                    <li>
2836                      <span class="icon-fallback-text">
2837                        <span class="icon icon-american_express" aria-hidden="true"></span>
2838                        <span class="fallback-text">American Express</span>
2839                      </span>
2840                    </li>
2841                  
2842                  
2843                    <li>
2844                      <span class="icon-fallback-text">
2845                        <span class="icon icon-jcb" aria-hidden="true"></span>
2846                        <span class="fallback-text">JCB</span>
2847                      </span>
2848                    </li>
2849                  
2850                  
2851                  
2852               </ul>
2853             </div>
2854             
2855             
2856           
2857             <div class="grid__item text-center">
2858               <ul class="inline-list payment-icons">
2859                    <li>
2860                    <img src="https://s3-ap-southeast-1.amazonaws.com/eesb.public/images/payment/ssl_certified.png">
2861                    </li>
2862               </ul>
2863             </div>
2864           
2865           </div>
2866         
2867  
2868         <div class="grid">
2869           <div class="grid__item text-center">
2870             
2871             
2872             <p class="site-footer__links">
2873              
2874              
2875                
2876                  <a href="/legal/服務條款">服務條款</a>
2877                
2878                
2879              
2880                
2881                  | <a href="/legal/隱私權保護">隱私權保護</a>
2882                
2883                
2884              
2885                
2886                  | <a href="/pages/退換貨方式">退換貨方式</a>
2887                
2888                
2889              
2890             </p>
2891             
2892           </div>
2893         </div>
2894  
2895      </div>
2896    </footer>
2897    
2898      
2899<div class="footer-bar large--hide">
2900  <div>
2901    
2902        
2903        
2904        
2905    
2906        
2907        <a href="/">
2908          
2909          	<img src="https://cdn.easystore.blue/s/201/f/5590.png?width=150&format=webp"/>
2910          
2911            <div>
2912              Home
2913            </div>
2914        </a>
2915        
2916
2917    
2918        
2919        
2920        
2921    
2922        
2923        <a href="/collections/all">
2924          
2925          	<img src="https://cdn.easystore.blue/s/201/f/5591.png?width=150&format=webp"/>
2926          
2927            <div>
2928              All products
2929            </div>
2930        </a>
2931        
2932
2933    
2934        
2935        
2936        
2937    
2938        
2939        <a href="https://gibbon.com.tw/collections/%E7%89%B9%E6%83%A0%E5%96%AE%E5%93%81-5%E6%8A%98%E8%B5%B7">
2940          
2941          	<img src="https://cdn.easystore.blue/s/201/f/5592.png?width=150&format=webp"/>
2942          
2943            <div>
2944              Promotions
2945            </div>
2946        </a>
2947        
2948
2949    
2950        
2951        
2952        
2953    
2954        
2955        <a href="/account/login">
2956          
2957          	<img src="https://cdn.easystore.blue/s/201/f/5593.png?width=150&format=webp"/>
2958          
2959            <div>
2960              Account
2961            </div>
2962        </a>
2963        
2964
2965    
2966  </div>
2967</div>
2968
2969
2970    
2971
2972    
2973    
2974      <div id="scrollTopButton" class="on-right" style="display: none">
2975        <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2975<path d="M22,18.25a1.21,1.21,0,0,1-.88-.37L12,8.77,2.88,17.88a1.24,1.24,0,0,1-1.76-1.76l10-10a1.24,1.24,0,0,1,1.76,0l10,10a1.24,1.24,0,0,1,0,1.76A1.21,1.21,0,0,1,22,18.25Z"/></svg>
2976      </div>
2977      
2977<script>
2978        $( document ).ready(function() {
2979          var winScroll = $(this).scrollTop(),
2980          this_el = $("#scrollTopButton");
2981
2982          // Header bar
2983          if(winScroll > 400){
2984            this_el.fadeIn();
2985          }else{
2986            this_el.fadeOut();
2987          }
2988
2989          $("#scrollTopButton").click(function() {
2990            $('html,body').animate({ scrollTop: 0 });
2991          });
2992
2993          $(window).scroll(function(){
2994            var winScroll = $(this).scrollTop();
2995
2996            // Header bar
2997            if(winScroll > 400){
2998              this_el.fadeIn();
2999            }else{
3000              this_el.fadeOut();
3001            }
3002
3003          });
3004        });
3005      </script>
3005
3006    
3007
3008  
3009    
3010  
3011    
3011<script src="https://store-themes.easystore.co/263036/themes/2877/assets/fastclick.min.js?t=1791351859" type="text/javascript" ></script>
3011
3012    
3012<script src="https://store-themes.easystore.co/263036/themes/2877/assets/timber.js?v1.1?t=1791351859" type="text/javascript" ></script>
3012
3013    
3013<script src="https://store-themes.easystore.co/263036/themes/2877/assets/theme.js?t=1791351859" type="text/javascript" ></script>
3013
3014  
3015    
3016  
3017    
3018  
3019    
3020
3021<script src="/assets/currencies.js" type="text/javascript" ></script>
vendor: 1 bytes, line 3021
3021
3022<script src="/assets/jquery.currencies.min.js" type="text/javascript" ></script>
vendor: 1 bytes, line 3022
3022
3023<script src="/assets/currencies_format.js" type="text/javascript" ></script>
3023
3024
3025<script>
3026Currency.format = "money_with_currency_format";
3027var shopCurrency = 'TWD';
3028var selectedCurrency = '';
3029
3030
3031  Currency.convert = function(amount, from, to) {
3032    return amount;
3033  };
3034
3035  
3036if( $.cookie("currency") == null ){
3037  
3038  if( selectedCurrency != false ) {
3039
3040  Currency.convertAll(shopCurrency, selectedCurrency);
3041  jQuery('.selected-currency').text(Currency.currentCurrency);  
3042
3043  }
3044
3045}
3046
3047/* Sometimes merchants change their shop currency, let's tell our JavaScript file */
3048// Currency.moneyFormats[shopCurrency].money_with_currency_format = "";
3049// Currency.moneyFormats[shopCurrency].money_format = "NT$ {{amount}} ";
3050  
3051/* Default currency */
3052var defaultCurrency = 'TWD';
3053  
3054/* Cookie currency */
3055var cookieCurrency = Currency.cookie.read();
3056
3057  cookieCurrency = shopCurrency;
3058
3059$("input[name=current_currency]").val(cookieCurrency);
3060if(cookieCurrency == null){
3061  cookieCurrency = shopCurrency;
3062  Currency.cookie.write(shopCurrency);
3063}
3064/* Fix for customer account pages */
3065jQuery('span.money span.money').each(function() {
3066  jQuery(this).parents('span.money').removeClass('money');
3067});
3068/* Saving the current price */
3069jQuery('span.money').each(function() {
3070  jQuery(this).attr('data-currency-TWD', jQuery(this).html());
3071});
3072// If there's no cookie.
3073if (cookieCurrency == null) {
3074  if (shopCurrency !== defaultCurrency) {
3075    Currency.convertAll(shopCurrency, defaultCurrency);
3076  }
3077  else {
3078    Currency.currentCurrency = defaultCurrency;
3079  }
3080}
3081// If the cookie value does not correspond to any value in the currency dropdown.
3082else if (jQuery('[name=currencies]').size() && jQuery('[name=currencies] option[value=' + cookieCurrency + ']').size() === 0) {
3083  Currency.currentCurrency = shopCurrency;
3084  Currency.cookie.write(shopCurrency);
3085}
3086else if (cookieCurrency === shopCurrency) {
3087  Currency.currentCurrency = shopCurrency;
3088  Currency.convertAll(shopCurrency, cookieCurrency);
3089}
3090else {
3091  Currency.convertAll(shopCurrency, cookieCurrency);
3092}
3093jQuery('[name=currencies]').val(Currency.currentCurrency).change(function() {
3094  var newCurrency = jQuery(this).val();
3095  
3096  
3097    Currency.cookie.write(newCurrency)
3098    if ('customers' == 'cart') {
3099      const params = new URLSearchParams(window.location.search);
3100      params.set('delete_cache', 1);
3101      window.location.search = params;
3102    } else {
3103      window.location.reload();
3104    }
3105  
3106});
3107var original_selectCallback = window.selectCallback;
3108var selectCallback = function(variant, selector) {
3109  var currencies = null;
3110  original_selectCallback(variant, selector);
3111  if(typeof jQuery('[name=currencies]').val() == "undefined"){
3112    currencies = shopCurrency;
3113  }
3114  else{
3115    currencies = jQuery('[name=currencies]').val();
3116  }
3117  Currency.convertAll(shopCurrency, currencies);
3118  jQuery('.selected-currency').text(Currency.currentCurrency);
3119};
3120$('body').on('ajaxCart.afterCartLoad', function(cart) {
3121  Currency.convertAll(shopCurrency, jQuery('[name=currencies]').val());
3122  jQuery('.selected-currency').text(Currency.currentCurrency);  
3123});
3124jQuery('.selected-currency').text(Currency.currentCurrency);
3125</script>
3125
3126
3127
3128  
3129<!-- Snippet:global/body_end: Product Description Tabs -->
3130<style>
3131				.product-description-tabs{
3132					color: #000000;
3133				}
3134				.prod-desc-tab-container {
3135					padding: 15px;
3136					margin-right: auto;
3137					margin-left: auto;
3138					background-color: #ffffff;
3139				}
3140				/* Style the list */
3141				.prod-desc-tab {
3142					list-style-type: none;
3143					margin: 0;
3144					padding: 0;
3145					 border-bottom: solid 1px #ddd;
3146					/*overflow: hidden;
3147					border: 1px solid #e6e6e6;
3148					background-color: #fefefe;
3149					border-bottom: 1px solid #ddd;*/
3150				}
3151			
3152				/* Float the list items side by side */
3153				li.tablinks {
3154					display: inline-block;
3155					border-top: 3px solid transparent;
3156					border-left: 1px solid transparent;
3157					border-right: 1px solid transparent;
3158					margin-bottom: -1px;
3159					margin-right: 3px;
3160					border-radius: 4px 4px 0 0;
3161					background-color: rgba(212,212,212,0.3);
3162				}
3163			
3164				/* Style the links inside the list items */
3165				li.tablinks a {
3166				color: #000000;
3167				cursor: pointer;
3168				margin-right: 2px;
3169				line-height: 1.42857143;
3170				display: block;
3171				padding: 10px 15px;
3172				}
3173			
3174				/* Change background color of links on hover */
3175				li.tablinks:hover {
3176					background-color: #ffffff;
3177					border-bottom-color: transparent;
3178					border-top: 3px solid #ddd;
3179					border-left: 1px solid #ddd;
3180					border-right: 1px solid #ddd;
3181				} /*rgba(212,212,212,0.3)*/
3182			
3183				/* Create an active/current tablink class */
3184				li.tablinks a:focus, li.tablinks.active{
3185					border-top: 3px solid #ddd;
3186					border-left: 1px solid #ddd;
3187					border-right: 1px solid #ddd;
3188					background-color: #ffffff;
3189				}
3190			
3191				/* Style the tab content */
3192				.prod-desc-tab-content {
3193					display: none;
3194					padding: 15px 15px;
3195					/*border: 1px solid #ccc;*/
3196					border-top: none;
3197					clear: both;
3198					-webkit-animation: fadeEffect 1s;
3199					animation: fadeEffect 1s; /* Fading effect takes 1 second */
3200				}
3201				.prod-desc-tab-content ul{
3202					list-style-type: disc;
3203				} 
3204			
3205				/* if user select is_show_title is true, the title will be displayed; if not, hide the title*/
3206				.prod-desc-tab-content > h2{
3207					display:none;
3208				}
3209			
3210				@-webkit-keyframes fadeEffect {
3211					from {opacity: 0;}
3212					to {opacity: 1;}
3213				}
3214			
3215				@keyframes fadeEffect {
3216					from {opacity: 0;}
3217					to {opacity: 1;}
3218				}
3219			
3220				.tab_drawer_heading { display: none; }
3221			
3222			@media screen and (max-width: 480px) {
3223				.prod-desc-tab {
3224					display: none;
3225				}
3226			
3227			
3228				.tab_drawer_heading {
3229					background-color: transparent;
3230					color: #000000;
3231					border-bottom: 1px solid #ddd;
3232					margin: 0;
3233					padding: 6px 12px;
3234					display: block;
3235					cursor: pointer;
3236					-webkit-touch-callout: none;
3237					-webkit-user-select: none;
3238					-khtml-user-select: none;
3239					-moz-user-select: none;
3240					-ms-user-select: none;
3241					user-select: none;
3242					position: relative;
3243				}
3244				.tab_drawer_heading:after {
3245					content: '';
3246					top: 50%;
3247					right: 40px;
3248					position: absolute;
3249					border: solid black;
3250					border-width: 0 3px 3px 0;
3251					display: inline-block;
3252					width: 10px;
3253					height: 10px;
3254					margin-top: -5px;
3255					transform: rotate(45deg);
3256					-webkit-transform: rotate(45deg);
3257					-webkit-transition: all 200ms linear;
3258					   -moz-transition: all 200ms linear;
3259					    -ms-transition: all 200ms linear;
3260					     -o-transition: all 200ms linear;
3261					        transition: all 200ms linear;
3262				}
3263				.d_active {
3264					background-color: rgba(212,212,212,0.3);
3265				}
3266				.d_active.tab_drawer_heading:after{
3267					margin-top: -3px;
3268					transform: rotate(-135deg);
3269					-webkit-transform: rotate(-135deg);
3270				}
3271			}
3272				</style>
3273			
3274			
3274<script type="text/javascript">
3275			
3276			// If the page has no jquery
3277			// if(typeof jQuery == 'undefined'){
3278			// 	console.log(456);
3279			// 	var script = document.createElement('script');
3280			// 	script.type = "text/javascript";
3281			// 	script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js";
3282			// 	console.log(script);
3283			// 	document.getElementsByTagName('head')[0].appendChild(script);
3284			// }
3285			
3286			
3287			  /* if in tab mode */
3288			   $("body").on("click", ".tablinks", function(){
3289				var id = $(this).data("prod-desc-id");
3290			
3291					// Get all elements with class="prod-desc-tab-content" and hide them
3292					$(".prod-desc-tab-content").hide();
3293			
3294					// Get all elements with class="tablinks" and remove the class "active"
3295					$(".tablinks").removeClass("active");
3296			
3297					// Show the current tab, and add an "active" class to the link that opened the tab
3298					$("#"+id+"_desc_tab_content").show();
3299					$(this).addClass("active");
3300			
3301				//make mobile view(drawer mode) also in same tab
3302				  $(".tab_drawer_heading").removeClass("d_active");
3303				  $(".tab_drawer_heading[data-prod-desc-id='"+id+"']").addClass("d_active");
3304				  
3305				});
3306				/* if in drawer mode */
3307				$("body").on("click", ".tab_drawer_heading", function() {
3308					var id = $(this).data("prod-desc-id"),
3309							active = $(this).hasClass("d_active")
3310
3311					$(".prod-desc-tab-content").hide();
3312					$(".tab_drawer_heading").removeClass("d_active");
3313
3314					if(!active){
3315						$("#"+id+"_desc_tab_content").show();
3316						$(this).addClass("d_active");
3317						window.scroll({
3318							top: $(this).offset().top - 120,
3319							left: 0,
3320							behavior: 'smooth'
3321						});
3322					}
3323				  
3324				   $(".tablinks").removeClass("active");
3325				  $(".tablinks[data-prod-desc-id='"+id+"']").addClass("active");
3326				});	
3327			
3328				$(function(){
3329					var x = $(".product-description").find("h1, h2, h3, h4, h5, h6");
3330					var title = null;
3331					var body = null;
3332			
3333					if(x.length > 1){
3334						$(".product-description").after("<link href='/assets/css/froala_style.min.css' rel='stylesheet' type='text/css'/><div class='product-description-tabs fr-view'><ul class='prod-desc-tab'></ul><div class='prod-desc-tab-container'></div></div>");
3335						$(x).each(function(k, v){
3336							title = $(v).text();
3337			
3338							if(k == 0){
3339								body = $(x[0]).nextUntil(x[1]).clone();
3340								$(".prod-desc-tab").append('<li class="tablinks active" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>');
3341								$(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading d_active" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:block"><h2>'+title+'</h2></div>');
3342								$("#"+k+"_desc_tab_content h2").after(body);
3343							}
3344							else if(k == x.length){
3345								body = $(x[k]).nextAll().clone();
3346								$(".prod-desc-tab").append('<li class="tablinks" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>');
3347								$(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:none"><h2>'+title+'</h2></div>');
3348								$("#"+k+"_desc_tab_content h2").after(body);
3349							}
3350							else{
3351								body = $(x[k]).nextUntil(x[k+1]).clone();
3352								$(".prod-desc-tab").append('<li class="tablinks" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>');
3353								$(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:none"><h2>'+title+'</h2></div>');
3354								$("#"+k+"_desc_tab_content h2").after(body);
3355							}
3356						});
3357						$(".product-description").hide();
3358					}
3359			
3360				});
3361			</script>
3361
3362<!-- /Snippet -->
3363<script>
3364
3365  /*
3366
3367    ------
3368    Events
3369    ------
3370
3371    pages/viewed
3372
3373    customers/signup
3374
3375    customers/login
3376
3377    products/searched
3378
3379    collections/viewed
3380
3381    products/viewed
3382
3383    products/shared
3384
3385    wishlists/item_added
3386
3387    carts/items_added
3388
3389    carts/viewed
3390
3391    carts/item_removed
3392
3393    checkouts/initiated
3394
3395    checkouts/shipping_info_added
3396
3397    checkouts/payment_info_added
3398
3399    checkouts/completed
3400
3401    orders/placed
3402
3403    orders/purchased
3404
3405    payments/captured
3406
3407    payments/failed
3408
3409  */
3410
3411  window.__latest_cart = window.__latest_cart || null;
3412
3413  const _selector = document.querySelector.bind(document),
3414        _selectorAll = document.querySelectorAll.bind(document)
3415
3416  document.addEventListener('DOMContentLoaded', (event) => {
3417
3418    const default_currency = getCookie("currency")
3419    const customer_id = window.__st.cid
3420    const template    = window.__st.p
3421
3422    onPageView()
3423
3424    //-----------------------//
3425    //        Configs        //
3426    //-----------------------//
3427
3428    window.dataLayer = window.dataLayer || []
3429
3430    Array.prototype.last = Array.prototype.last || function() {
3431      return this[this.length - 1] || null
3432    }
3433
3434    Array.prototype.first = Array.prototype.first || function() {
3435      return this[0] || null
3436    }
3437
3438    //----------------------//
3439    //       Triggers       //
3440    //----------------------//
3441
3442    const XHR = window.XMLHttpRequest
3443
3444    function xhr() {
3445
3446      const xhr = new XHR()
3447
3448      xhr.addEventListener("readystatechange", function() {
3449
3450        if(xhr.readyState != 4) return
3451
3452        try {
3453
3454          const response_url = xhr.responseURL
3455
3456          if (response_url.includes("cart/add")) {
3457
3458            window.__latest_cart = JSON.parse(xhr.response)
3459
3460            onCartItemsAdded() // ok
3461
3462          }
3463
3464          if (response_url.includes("cart/remove_item_quantity")) {
3465
3466            window.__latest_cart = JSON.parse(xhr.response)
3467
3468            onCartItemRemoved() // ok
3469
3470          }
3471
3472          if (response_url.includes("new_cart?retrieve=true")) {
3473
3474            result = JSON.parse(xhr.response)
3475
3476            if (result.cart) {
3477              window.__latest_cart = result.cart
3478            }
3479
3480          }
3481
3482        } catch(e) {
3483
3484          console.error(e)
3485
3486        }
3487
3488      }, false);
3489
3490      return xhr
3491
3492    }
3493
3494    window.XMLHttpRequest = xhr
3495
3496    switch(template) {
3497
3498      case 'cart': onCartView() // ok
3499      break
3500      case 'product': onProductView() // ok
3501      break
3502      case 'collection': onCollectionView() // ok
3503      break
3504      case 'blog': onBlogView()
3505      break
3506      case 'article': onArticleView()
3507      break
3508      case 'payment_completed': onOrderPlace()
3509      break
3510      case 'payment_fail': onPaymentFail()
3511      break
3512
3513    }
3514
3515    // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]')))
3516    if (_selector('form[action="/checkout/detail"]'))                            _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))})  // ok
3517    if (_selector('form[action="/checkout/shipping"]'))                          _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))})  // ok
3518    if (_selector('form[action="/account/register"]'))                           _selector('form[action="/account/register"]').addEventListener("submit", onSignUp)  // ok
3519    if (_selector('form[action="/account/login"]'))                              _selector('form[action="/account/login"]').addEventListener("submit", onLogin)  // ok
3520    if (_selector('form[action="/search"]'))                                     _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok
3521    if (_selector('#line-login-btn'))                                            _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok
3522    if (_selector('#PlaceOrder'))                                                _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))});  // ok
3523    if (_selector('#add_wishlist'))                                              _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok
3524    if (_selectorAll('a[href="/account/logout"]'))                               _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok
3525    if (_selector('.CartDrawerTrigger.cart-page-link'))                          _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok
3526    if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link'))    _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok
3527    if (_selectorAll('a[class^="share-"]'))                                      _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok
3528    if (_selectorAll('[name$="checkout"]'))                                      _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
3529
3530    // For append elements
3531    const bodyMutationObserver = new MutationObserver(() => {
3532      if (_selector('#form__spc #PlaceOrder'))             _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok
3533      if (_selectorAll('[name$="checkout"]'))              _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
3534    });
3535    bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true});
3536
3537    //------------------------------//
3538    //        Event handlers        //
3539    //------------------------------//
3540
3541    function onPageView() {
3542
3543      EasyStore.Event.dispatch('pages/viewed', {
3544        page: {
3545          type: template,
3546          title: document.title,
3547          description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null,
3548          url: location.href,
3549        }
3550      })
3551
3552    }
3553
3554    function onSignUp() {
3555
3556      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
3557      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
3558
3559      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
3560
3561      let data = {}
3562
3563      if (email_regex.test(email_or_phone)) {
3564        data.method = 'email'
3565        data.email = email_or_phone
3566      }
3567
3568      if (phone_regex.test(email_or_phone)) {
3569        data.method = "phone"
3570        data.phone = email_or_phone
3571      }
3572
3573      if (!data.method) return
3574
3575      EasyStore.Event.dispatch('customers/signup', data)
3576
3577    }
3578
3579    function onLogin() {
3580
3581      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
3582      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
3583
3584      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
3585
3586      let data = {}
3587
3588      if (email_regex.test(email_or_phone)) {
3589        data.method = 'email'
3590        data.email = email_or_phone
3591      }
3592
3593      if (phone_regex.test(email_or_phone)) {
3594        data.method = "phone"
3595        data.phone = email_or_phone
3596      }
3597
3598      if (!data.method) return
3599
3600      EasyStore.Event.dispatch('customers/login', data)
3601
3602    }
3603
3604    function onLineLogin() {
3605
3606      EasyStore.Event.dispatch('customers/login', { method: 'line' })
3607
3608    }
3609
3610    function onLogout() {
3611
3612      EasyStore.Event.dispatch('customers/logout', { customer_id })
3613
3614    }
3615
3616    function onBlogView() {
3617
3618      const blog = ""
3619
3620      EasyStore.Event.dispatch('blogs/viewed', { blog })
3621
3622    }
3623
3624    function onArticleView() {
3625
3626      const article = ""
3627
3628      EasyStore.Event.dispatch('articles/viewed', { article })
3629
3630    }
3631
3632    function onProductSearch() {
3633
3634      const query = _selector('input[name=q]').value
3635
3636      if (!query) return
3637
3638      EasyStore.Event.dispatch('products/searched', { query })
3639
3640    }
3641
3642    function onCollectionView() {
3643
3644      const collection = ""
3645
3646      EasyStore.Event.dispatch('collections/viewed', { collection })
3647
3648    }
3649
3650    function onProductView() {
3651
3652      const product = ""
3653
3654      EasyStore.Event.dispatch("products/viewed", { product })
3655
3656    }
3657
3658    function onProductShare(el) {
3659
3660      const product = ""
3661
3662      const channel = el.getAttribute("class").split("-").last()
3663
3664      EasyStore.Event.dispatch('products/shared', { product, channel })
3665
3666    }
3667
3668    function onWishlistItemAdded() {
3669
3670      let product  = ""
3671      const quantity = _selector("#Quantity").value
3672
3673      EasyStore.Event.dispatch('wishlists/item_added', { product })
3674
3675    }
3676
3677    async function onCartItemsAdded() {
3678
3679      const cart = await getCart()
3680
3681      if(cart && cart.items != undefined && cart.items.length > 0) {
3682
3683        EasyStore.Event.dispatch('carts/item_added', { cart })
3684
3685      }
3686
3687    }
3688
3689    async function onCartView() {
3690
3691      const cart = await getCart()
3692
3693      EasyStore.Event.dispatch('carts/viewed', { cart })
3694
3695    }
3696
3697    async function onCartItemRemoved() {
3698
3699      const cart = await getCart()
3700
3701      cart.items = []
3702
3703      if(cart) {
3704
3705        EasyStore.Event.dispatch('carts/item_removed', { cart })
3706
3707      }
3708
3709    }
3710
3711    async function onCheckoutInitiate() {
3712
3713      const cart = await getCart()
3714
3715      EasyStore.Event.dispatch('checkouts/initiated', { cart })
3716
3717    }
3718
3719    async function onShippingInfoAdded(form) {
3720      let checkout = getCheckout()
3721
3722      let form_data = {}
3723      new FormData(form).forEach((value, key) => form_data[key] = value)
3724
3725      let shipping_tier = null
3726
3727      if (form_data.type && form_data.type.startsWith("r_pickup")) {
3728        shipping_tier = `Pickup - ${form_data.pick_location}`
3729      }
3730
3731      if (form_data.s_id) {
3732        shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name")
3733      }
3734
3735      if (!shipping_tier) return
3736
3737      EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier })
3738
3739    }
3740
3741    async function onPaymentInfoAdded(form) {
3742
3743      let checkout = getCheckout()
3744
3745      let payment_type = new FormData(form).get('payment_method')
3746
3747      EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type })
3748
3749    }
3750
3751    async function onOrderPlace() {
3752
3753      let cart_token  = getCookie("cart_js")
3754      let previous_cart_token = getCookie("previous_cart_ga4_js")
3755
3756      if (previous_cart_token && previous_cart_token == cart_token) {
3757        // Prevent duplicate purchase tracking
3758        return
3759      }
3760
3761      let order = getOrder()
3762
3763      EasyStore.Event.dispatch('orders/placed', { order })
3764
3765      if(order.is_manual_payment) {
3766
3767        EasyStore.Event.dispatch('orders/purchased', { order })
3768
3769      }
3770
3771      const last_transaction = order.transactions.last()
3772
3773      if (last_transaction.status) {
3774
3775        EasyStore.Event.dispatch('orders/purchased', { order })
3776        EasyStore.Event.dispatch('payments/captured', { order })
3777
3778      }
3779
3780    }
3781
3782    async function onPaymentFail() {
3783
3784      const order = getOrder()
3785
3786      EasyStore.Event.dispatch('payments/failed', { order })
3787
3788    }
3789
3790    async function onCheckoutComplete(form) {
3791
3792      onPaymentInfoAdded(form)
3793
3794      const checkout = getCheckout()
3795
3796      EasyStore.Event.dispatch('checkouts/completed', { checkout })
3797
3798    }
3799
3800    async function onSinglePageCheckout() {
3801
3802      // let checkout = $("[data-app-checkout]").data("app-checkout")
3803
3804      let checkout = getCheckout()
3805
3806      // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text()
3807      const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML
3808
3809      const shipping_method = _selector("#delivery_method").value
3810
3811      let shipping_tier = null
3812      let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content')
3813      if (shipping_method == "shipping") {
3814        shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML
3815      }
3816
3817      if (shipping_method == "pickup") {
3818        shipping_tier = app_spc_customer_info_label[0].innerHTML
3819      }
3820
3821      if (shipping_tier) {
3822
3823        EasyStore.Event.dispatch('checkouts/shipping_info_added', {
3824          checkout,
3825          shipping_tier,
3826        })
3827
3828      }
3829
3830      if (payment_type) {
3831
3832        EasyStore.Event.dispatch('checkouts/payment_info_added', {
3833          checkout,
3834          payment_type,
3835        })
3836
3837      }
3838
3839      EasyStore.Event.dispatch('checkouts/completed', { checkout })
3840
3841    }
3842
3843  })
3844
3845
3846  //-----------------------//
3847  //       Functions       //
3848  //-----------------------//
3849
3850  function getCookie(name) {
3851
3852    name += "="
3853
3854    decodedCookie = decodeURIComponent(document.cookie)
3855
3856    ca = decodedCookie.split(";")
3857
3858    for(i = 0; i < ca.length; i++) {
3859      c = ca[i]
3860      while (c.charAt(0) == " ") {
3861        c = c.substring(1)
3862      }
3863      if (c.indexOf(name) == 0) {
3864        return c.substring(name.length, c.length)
3865      }
3866    }
3867
3868    return ""
3869
3870  }
3871
3872  const parsePrice = price => {
3873    if(typeof price === 'string') {
3874      return parseFloat(price.split(',').join(''))
3875    }
3876
3877    return price
3878  }
3879
3880  const requestCart = async (method, data) => {
3881
3882  let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}})
3883    result = await response.json()
3884
3885    return result.cart
3886
3887  }
3888  const getCart = async (latest = false) => {
3889
3890    let cart = window.__latest_cart
3891
3892    const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length)
3893
3894    if(latest || cart_invalid) {
3895      cart = await requestCart()
3896    }
3897
3898    cart.items = cart.items || []
3899
3900    return mapCart(cart)
3901
3902  }
3903
3904  const getCheckout = async () => {
3905    mapCheckout(window.__latest_cart || await requestCart())
3906  }
3907
3908  const getOrder = async () => {
3909    mapOrder(window.__latest_cart || await requestCart())
3910  }
3911
3912  //-----------------------//
3913  //        Mappers        //
3914  //-----------------------//
3915
3916  const fallbackAttribute = (object, attribute) => {
3917
3918    if(!Array.isArray(attribute)) {
3919      attribute = [attribute]
3920    }
3921
3922    let final_value = null
3923
3924    do {
3925
3926      final_value = object[attribute.shift()]
3927
3928    } while(!final_value && attribute.length)
3929
3930    return final_value
3931
3932  }
3933
3934  const map = (object, mapper) => {
3935
3936    const newObject = {}
3937
3938    for(const key in mapper) {
3939
3940      // Handle different keys between new and old format
3941      newObject[key] = fallbackAttribute(object, mapper[key])
3942
3943      // Cast price to float
3944      if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) {
3945        newObject[key] = parsePrice(newObject[key])
3946      }
3947
3948      if(newObject[key] === undefined) {
3949        delete newObject[key]
3950      }
3951
3952    }
3953
3954    return newObject
3955
3956  }
3957
3958  const mapCart = cart => {
3959
3960    const oldCart = cart
3961
3962    const mapper = {
3963      id: 'id',
3964      currency: 'currency',
3965      item_count: 'item_count',
3966      items: 'items',
3967      total_price: 'total_price',
3968      latest_items: 'latest_items'
3969    }
3970
3971    cart = map(cart, mapper)
3972
3973    const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || []))
3974
3975    cart.discount_applications = discounts.map(discount => ({
3976      title: discount.voucher_code || null,
3977      value: parsePrice(discount.amount),
3978    }))
3979
3980    cart.original_total_price = cart.items.length
3981    ? cart.items
3982      .map(item => item.original_price)
3983      .reduce((sum, price) => sum + price)
3984    : 0
3985
3986    cart.total_discount = cart.discount_applications.length
3987    ? cart.discount_applications
3988      .map(discount => parsePrice(discount.value))
3989      .reduce((sum, value) => sum + value)
3990    : 0
3991
3992    cart.items = cart.items.map(item => mapLineItem(item))
3993
3994    return cart
3995
3996  }
3997
3998  const mapCheckout = checkout => {
3999
4000    const mapper = {
4001      note: 'note',
4002      attributes: 'note_attributes',
4003      billing_address: 'billing_address',
4004      currency: 'currency',
4005      customer_id: 'customer_id',
4006      discounts_amount: 'total_discount',
4007      id: 'id',
4008      line_items: 'order_item',
4009      order_number: 'order_number',
4010      shipping_address: 'shipping_address',
4011      shipping_price: 'shipping_tax',
4012      shipping_method: 'shipping_method_name',
4013      tax_price: 'total_tax',
4014    }
4015
4016    checkout = map(checkout, mapper)
4017
4018    checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required)
4019
4020    checkout.line_items = checkout.line_items.map(item => mapLineItem(item))
4021
4022    return checkout
4023
4024  }
4025
4026  const mapOrder = order => {
4027
4028    const mapper = {
4029      attributes: 'note_attributes',
4030      billing_address: 'billing_address',
4031      cancelled: 'is_cancelled',
4032      cancelled_at: 'cancelled_at',
4033      created_at: 'created_at',
4034      customer_id: 'customer_id',
4035      // discount_applications: 'discount_applications',
4036      email: 'email',
4037      financial_status: 'financial_status',
4038      fulfillment_status: 'fulfillment_status',
4039      line_items: 'order_item',
4040      note: 'note',
4041      order_number: 'order_number',
4042      phone: 'phone',
4043      shipping_address: 'shipping_address',
4044      shipping_methods: 'shipping_methods',
4045      shipping_price: 'total_shipping',
4046      subtotal_price: 'subtotal_price',
4047      // tax_lines: 'tax_lines',
4048      tax_price: 'total_tax',
4049      total_discounts: 'total_discount',
4050      total_net_amount: 'total_amount_include_transaction',
4051      total_price: 'total_price',
4052      transactions: 'transaction_records',
4053      is_manual_payment: 'is_manual_payment',
4054    }
4055
4056    order.email = order.billing_address.email
4057    order.phone = order.billing_address.phone
4058    order.shipping_method = order.shipping_method_name
4059
4060    order = map(order, mapper)
4061
4062    order.line_items = order.line_items.map(item => mapLineItem(item))
4063    order.transactions = order.transactions.map(transaction => mapTransaction(transaction))
4064
4065    return order
4066
4067  }
4068
4069  const mapLineItem = line_item => {
4070
4071    const old_line_item = line_item
4072
4073    const mapper = {
4074      final_price: 'price',
4075      image: 'img_url',
4076      message: 'message',
4077      original_line_price: 'original_line_price',
4078      original_price: 'original_price',
4079      properties: 'properties',
4080      quantity: 'quantity',
4081      requires_shipping: 'shipping_required',
4082      sku: 'sku',
4083      taxable: 'taxable',
4084      title: 'product_name',
4085      product_name: 'product_name',
4086      url: 'url',
4087      product_id: 'product_id',
4088      variant_id: 'variant_id',
4089      id: ['id', 'i_id'],
4090    }
4091
4092    line_item = map(line_item, mapper)
4093
4094    line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null
4095    line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null
4096    line_item.image      = line_item.image || (old_line_item.image && old_line_item.image.url) || null
4097
4098    return line_item
4099
4100  }
4101
4102  const mapTransaction = transaction => {
4103
4104    const mapper = {
4105      amount: 'amount',
4106      created_at: 'created_at',
4107      gateway: 'gateway_type',
4108      id: 'id',
4109      status: 'status',
4110    }
4111
4112    transaction = map(transaction, mapper)
4113
4114    return transaction
4115
4116  }
4117
4118
4119</script>
4119
4120
4121</div>
4122
4123  
4124    
4125<style>
4126  #CartTemplate{
4127    min-height: 80vh;
4128  }
4129  .cart-drawer .cart__row .small--one-whole,
4130  .cart-drawer .cart-sticky-button-wrapper{
4131    width: 100%;
4132  }
4133  .cart-drawer .promotion__code-input .input-group{
4134    margin-top: 20px;
4135    max-width: 100%;
4136  }
4137  .cart-drawer-wrapper{
4138    display: flex;
4139    flex-wrap: wrap;
4140    flex-direction: row;
4141  }
4142  .cart-drawer-wrapper > div{
4143    width: 100%;
4144  }
4145  vouchers-modal .vouchers-modal.active ,
4146  vouchers-modal #vouchers-modal-backdrop.active{
4147    z-index: 2147483647;
4148  }
4149</style>
4150
4151<div id="CartDrawer" class="cart-drawer" data-fetch="0">
4152  
4153
4154  <div class="cart-drawer-wrapper">
4155    <div id="cart-promotion-top"></div>
4156
4157
4158    <div id="CartTemplate">
4159      
4160
4161
4162  
4163
4164  <div id="noCartItem" class="cart-drawer-content">
4165    <div class="cart-drawer-content-wrapper text-center">
4166      <div class="section-header">
4167        <span></span>
4168        <span class="CartDrawerTrigger icon icon-x"></span>
4169      </div>
4170      <div class="section-header__title h2">您的購物車目前還是空的。</div>
4171      <a class="btn btn--secondary" href="/collections/all">繼續購物</a>
4172    </div>
4173  </div>
4174
4175
4176
4177    </div>
4178
4179    <link href="/assets/css/promotion.css?v2.94" rel="stylesheet" type="text/css" media="screen" />
4180<div id="cart-promotion-section"></div>
4181
4182<script>var shop_money_format = "<span class=money data-ori-price='{{amount}}'>NT$ {{amount}} </span>";</script>
vendor: 1 bytes, line 4182
4182
4183<script src="/assets/js/promotion/promotion.js?v1.11" type="text/javascript"></script>
4183
4184
4185<script>
4186
4187    window.EasyStore = window.EasyStore || {};
4188    window.EasyStore.Promotion = window.EasyStore.Promotion || {};
4189
4190    var get_cart_promo_initial = false,
4191        current_template = 'customers';
4192
4193    window.EasyStore.Promotion.updateCartPromotion = function (){
4194        get_cart_promo_initial = true
4195        $.ajax({
4196        type: "GET",
4197        dataType: 'json',
4198        url: "/new_cart/promotion",
4199        success: function(response){
4200            $("#cart-promotion-section").html(response["cart/content_bottom"].trim());
4201            $("#cart-promotion-top").html(response["cart/content_top"].trim());
4202
4203            promoVariantDetailInitial()
4204        },
4205        error: function(xhr){
4206        }
4207        });
4208    }
4209
4210
4211    if(current_template == 'cart') {
4212        document.addEventListener("DOMContentLoaded", function() {
4213            window.EasyStore.Promotion.updateCartPromotion()
4214        });
4215    }
4216
4217</script>
vendor: 1 bytes, line 4217
4217
4218<script>
4219  document.addEventListener('DOMContentLoaded', function () {
4220    window._getVoucherErrorTranslation = Object.assign(window._getVoucherErrorTranslation || {}, {
4221      "condition_not_matched":    "優惠代碼條件不匹配",
4222      "promotion_unavailable":    "此優惠目前不可用",
4223      "available_on":             "可在 channels 使用",
4224      "available_on_only":        "僅限在 channels 使用",
4225      "available_with_locations": "可在 channels 使用(僅限 locations)",
4226      "pos_at_locations":         "僅限 locations 門市使用",
4227      "channel_website":          "網站",
4228      "channel_mobile":           "應用程式",
4229      "channel_pos":              "門市"
4230    });
4231  });
4232</script>
4232
4233
4234  </div>
4235  
4236
4237  
4238</div>
4239
4240<div id="toast"><div id="toastContent"></div></div>
4241<style>
4242  .cart-drawer .cart-drawer-content .cart-sticky-button-wrapper a.btn.CartDrawerTrigger{margin-bottom: 10px !important;}
4243  #toastContent a{color: #fff;text-decoration: underline;margin-top: 10px;display: block;}
4244  #toastContent .svg-icon{margin-right: 8px;margin-top: -1px;}
4245</style>
4246
4247<script type="text/javascript">
4248  $('body').on("submit", "#CartForm", function() {
4249    $(this).find('[type=submit]').addClass('btn--loading');
4250  });
4251  
4252  $("input[name=current_currency]").val($( "select.currency-picker" ).val());
4253  $( "select.currency-picker" ).change(function(){
4254    $("select.currency-picker").val($(this).val());
4255    url=window.location.href;
4256    newParam="currency=" + $( "select.currency-picker" ).val();
4257    if(url.indexOf("currency=")===-1){
4258      separator = (url.indexOf("?")===-1)?"?":"&";
4259      newUrl= url + separator + newParam;
4260    }else{
4261      oldParam= new URL(url);
4262      oldParam = oldParam.searchParams.get("currency");
4263      newParam= $(this).val();
4264      newUrl=url.replace(oldParam,newParam);
4265    }
4266    $("input[name=current_currency]").val($( "select.currency-picker" ).val());
4267    // window.location.href =newUrl;
4268    $('#CartDrawer').attr('data-fetch', 0);
4269  });
4270
4271  $("body").on("click", ".cart__remove", function() {
4272    $('#CartTemplate').addClass('is-loading');
4273    $.ajax({
4274      type: 'POST',
4275      url: '/cart/remove_item_quantity',
4276      data: {
4277        variant_id: $(this).data( "variant-id"),
4278        item_id: $(this).data( "item-id"),
4279        quantity: $(this).data( "quantity"),
4280        i_id: $(this).data("i_id"),
4281      },
4282      dataType: 'json',
4283      success: function(response){
4284
4285        theme.cartDrawer(response);
4286        $('#CartTemplate').removeClass('is-loading');
4287
4288        if (window.checkProductProperties !== undefined){
4289          window.checkProductProperties();
4290        }      
4291      },
4292      error: function(xhr){
4293        console.log('error',xhr);
4294        $('#CartTemplate').removeClass('is-loading');
4295      }
4296    });
4297
4298  });
4299
4300
4301  $('body').on("click", "#applycode",function() {
4302    
4303    if($("input[name='voucher_code']").val() != '') {
4304
4305      $('#CartTemplate').addClass('is-loading');
4306
4307      $.ajax({
4308        type: 'POST',
4309        url: '/new_cart/voucher',
4310        data: {
4311          voucher_code: $("input[name='voucher_code']").val(),
4312          category: 'create'
4313        },
4314        dataType: 'json',
4315        success: function(response){
4316
4317          // console.log(response);
4318
4319          if(response.error != undefined){
4320            
4321            if(response.error.message != undefined) popToast(response.error.message); 
4322          
4323            $("input[name='voucher_code']").val('')
4324          
4325          } 
4326          
4327          if(response.cart_content != undefined) theme.cartDrawer(response); 
4328
4329          
4330          $('#CartTemplate').removeClass('is-loading');
4331          
4332        },
4333        error: function(xhr){
4334          console.log('error',xhr);
4335          $('#CartTemplate').removeClass('is-loading');
4336        }
4337      });
4338
4339    }
4340
4341  });
4342
4343
4344  $("body").on("click", ".remove_voucher_btn", function() {
4345        $('#CartTemplate').addClass('is-loading');
4346        $.ajax({
4347          type: 'DELETE',
4348          url: '/new_cart/voucher',
4349          data: {
4350            category: 'remove',
4351            order_discount_id: $(this).data( "discount-id")
4352          },
4353          dataType: 'json',
4354          success: function(data){
4355            // console.log(data);
4356            theme.cartDrawer(data);
4357            $('#CartTemplate').removeClass('is-loading');
4358          },
4359          error: function(xhr){
4360            console.log('error',xhr);
4361            $('#CartTemplate').removeClass('is-loading');
4362          }
4363        });
4364
4365    });
4366  
4367
4368  theme.cartDrawer = function(data){
4369    
4370      $('#CartDrawer').attr('data-fetch', 1);
4371      $('#CartTemplate').addClass('is-loading');
4372
4373      
4374      if(typeof data.cart_content  == 'string'){
4375        $('#CartTemplate').html(data.cart_content);
4376      }
4377
4378      let cart_item_count = data.item_count || data.cart.item_count;
4379
4380      if(cart_item_count > 0){
4381        $('.cart-count').removeClass('hidden-count');
4382      }else{
4383        $('.cart-count').addClass('hidden-count');
4384      }
4385
4386      $('.cart-count').text(cart_item_count);
4387      $('#CartTemplate').removeClass('is-loading');
4388      $(".cart-drawer-content").animate({ scrollTop: 0 });
4389
4390      if(window.EasyStore != undefined && window.EasyStore.Promotion != undefined && window.EasyStore.Promotion.updateCartPromotion != undefined) window.EasyStore.Promotion.updateCartPromotion()
4391
4392  }
4393
4394  theme.fetchCartDrawer = function(data){
4395      $('#CartTemplate').addClass('is-loading');
4396      $.ajax({
4397        url: '/new_cart?retrieve=true',
4398        type: 'GET',
4399        success: function(data, status) {
4400          // console.log(data);
4401          theme.cartDrawer(data);
4402
4403          $('#CartTemplate').removeClass('is-loading');
4404
4405          if (window.checkProductProperties !== undefined){
4406            window.checkProductProperties();
4407          }
4408        },
4409        error: function(XMLHttpRequest, textStatus) {
4410          console.log('error',XMLHttpRequest,textStatus);
4411          $('#CartTemplate').removeClass('is-loading');
4412        }
4413      });
4414  }
4415
4416  theme.updateCartDrawer = function(data){
4417    $('#CartTemplate').addClass('is-loading');
4418
4419    $.ajax({
4420      url: '/new_cart/update',
4421      type: 'PUT',
4422      dataType: 'json',
4423      data: $('#CartDrawer form').serialize(),
4424      success: function(data, status) {
4425        theme.cartDrawer(data);
4426
4427        if (window.checkProductProperties !== undefined){
4428          window.checkProductProperties();
4429        }
4430      },
4431      error: function(XMLHttpRequest, textStatus) {
4432        console.log('error',XMLHttpRequest,textStatus);
4433      }
4434    });
4435  }
4436
4437  function debounce(func, wait, immediate) {
4438    var timeout;
4439    return function() {
4440        var context = this, args = arguments;
4441        var later = function() {
4442            timeout = null;
4443            if (!immediate) func.apply(context, args);
4444        };
4445        var callNow = immediate && !timeout;
4446        clearTimeout(timeout);
4447        timeout = setTimeout(later, wait);
4448        if (callNow) func.apply(context, args);
4449    };
4450  };
4451
4452  $('body').on("change", 'input.cart__quantity-selector', function (){
4453    theme.updateCartDrawer();
4454  });
4455
4456
4457  $('#updateCartDrawer').click(function() {
4458    theme.updateCartDrawer();
4459  });
4460
4461  $('body').on("click", ".btn-qty-adjust", function() {
4462
4463    var $button = $(this);
4464    var oldValue = $button.parent().find("input.cart__quantity-selector").val();
4465
4466    if ($button.attr('data-adjust') == 1) {
4467      var newVal = parseFloat(oldValue) + 1;
4468    } else {
4469    // Don't allow decrementing below zero
4470      if (oldValue > 0) {
4471        var newVal = parseFloat(oldValue) - 1;
4472      } else {
4473        newVal = 0;
4474      }
4475    }
4476
4477    $button.parent().find("input").val(newVal);
4478  });
4479    
4480  $('body').on("click", ".btn-qty-adjust", debounce(function() {
4481    theme.updateCartDrawer();
4482  },350));
4483
4484  $('button.checkout').click(function() {
4485    $(this).addClass('btn--loading');
4486  });
4487
4488  var add_cart_success_html = '<svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <g> <g> <path d="M383.841,171.838c-7.881-8.31-21.02-8.676-29.343-0.775L221.987,296.732l-63.204-64.893 c-8.005-8.213-21.13-8.393-29.35-0.387c-8.213,7.998-8.386,21.137-0.388,29.35l77.492,79.561 c4.061,4.172,9.458,6.275,14.869,6.275c5.134,0,10.268-1.896,14.288-5.694l147.373-139.762 C391.383,193.294,391.735,180.155,383.841,171.838z"/> </g> </g> <g> <g> <path d="M256,0C114.84,0,0,114.84,0,256s114.84,256,256,256s256-114.84,256-256S397.16,0,256,0z M256,470.487 c-118.265,0-214.487-96.214-214.487-214.487c0-118.265,96.221-214.487,214.487-214.487c118.272,0,214.487,96.221,214.487,214.487 C470.487,374.272,374.272,470.487,256,470.487z"/> </g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> </svg>';
4489      add_cart_success_html += '已加入購物車 <br><a class="CartDrawerTrigger">查看購物車</a>';
4490
4491  function popToast(content) {
4492    var x = document.getElementById("toast"),
4493        y = document.getElementById("toastContent");
4494
4495    y.innerHTML = content;
4496    x.className += " show";
4497    
4498    var hideToast = setTimeout(function(){ x.className = x.className.replace(" show", ""); }, 3000);
4499  }
4500
4501</script>
4501
4502
4503<link href="/assets/css/vouchers.css?v1.2" rel="stylesheet" type="text/css" media="screen" />
4504<link href="/assets/account/vouchers/vouchers.css" rel="stylesheet" type="text/css" media="screen" />
4505<link href="/assets/account/vouchers/voucher-widget.css" rel="stylesheet" type="text/css" media="screen" />
4506<script src="/assets/js/promotion/vouchers.js?v1.3" type="text/javascript" ></script>
vendor: 1 bytes, line 4506
4506
4507<script src="/assets/account/vouchers/voucher-widget.js" type="text/javascript" ></script>
4507
4508
4509<vouchers-modal>
4510  <div id="vouchers-modal-backdrop" class="vouchers-modal__close"></div>
4511  <div class="vouchers-modal-wrapper page-width">
4512    <div id="vouchers-modal" class="vouchers-modal focus-inset" aria-modal="true" role="dialog" tabindex="-1">
4513      <div class="vouchers-modal__header">
4514        <div class="vouchers-modal__heading">優惠券</div>
4515        <button type="button" class="vouchers-modal__close modal__close-button link link--text focus-inset" aria-label="accessibility.close">
4516          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-close " fill="none" viewBox="0 0 18 17">
4517            <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
4518            </path>
4519          </svg>
4520        </button>
4521      </div>
4522
4523      <discount-input>
4524        <div class="field">
4525          <input type="text" id="input-discount_code" class="search__input field__input" name="voucher_code" placeholder="折扣碼">
4526          <button type="button" name="apply" class="btn btn--secondary button button--secondary">套用</button>
4527        </div>
4528        <div class="form__message hidden" tabindex="-1" autofocus>
4529          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-error " viewBox="0 0 13 13">
4530            <circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2"></circle>
4531            <circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width="0.7"></circle>
4532            <path d="M5.87413 3.52832L5.97439 7.57216H7.02713L7.12739 3.52832H5.87413ZM6.50076 9.66091C6.88091 9.66091 7.18169 9.37267 7.18169 9.00504C7.18169 8.63742 6.88091 8.34917 6.50076 8.34917C6.12061 8.34917 5.81982 8.63742 5.81982 9.00504C5.81982 9.37267 6.12061 9.66091 6.50076 9.66091Z" fill="white"></path>
4533            <path d="M5.87413 3.17832H5.51535L5.52424 3.537L5.6245 7.58083L5.63296 7.92216H5.97439H7.02713H7.36856L7.37702 7.58083L7.47728 3.537L7.48617 3.17832H7.12739H5.87413ZM6.50076 10.0109C7.06121 10.0109 7.5317 9.57872 7.5317 9.00504C7.5317 8.43137 7.06121 7.99918 6.50076 7.99918C5.94031 7.99918 5.46982 8.43137 5.46982 9.00504C5.46982 9.57872 5.94031 10.0109 6.50076 10.0109Z" fill="white" stroke="#EB001B" stroke-width="0.7"></path>
4534          </svg>
4535          <div class="js-error-content"></div>
4536        </div>
4537      </discount-input>
4538      <br>
4539
4540      
4541      
4542        <div class="empty-vouchers_placeholder">目前無可用的優惠券</div>
4543      
4544
4545       <!-- For voucher widget -->
4546      
4546<script type="text/javascript">
4547        let settings = {"logo_use_image":"1","logo_img":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/6735266.png?width=1200","footer_logo_img":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/6735337.png?width=1200","nav_below_logo":"","logo_alignment":"center","heading_font_family":["'HelveticaNeue','Helvetica Neue',Helvetica,Arial,sans-serif"],"left_aligned_logo":"0","favicon_enable":"1","favicon_img":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/5642482.jpeg","header_message":"","header_search_enable":true,"topbar_sticky":"1","footer_quicklinks_enable":true,"footer_quicklinks_linklist":"footer","footer_social_enable":"1","footer_show_credit_card_logo":"1","footer_show_methods_of_payment":0,"footer_visa":"1","footer_master":"1","footer_american_express":"1","footer_jcb":"1","footer_diners_club":0,"footer_discover":0,"footer_ssl":"1","show_footer_lines":"1","home_section_1":"highlight-section","home_section_2":"featured-product","home_section_3":"img-text-section","home_section_4":"home-content","home_section_5":"parallax-section","home_section_6":"","featured_title":"","featured_1_img":"","featured_1_text":"","featured_1_link":"","featured_2_img":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/11128395.jpg?width=650&format=webp","featured_2_text":"","featured_2_link":"https:\/\/weedenfashion.easy.co\/collections\/\u5546\u52d9\u7cfb\u5217","featured_3_img":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/11128394.jpg?width=650&format=webp","featured_3_text":"","featured_3_link":"https:\/\/weedenfashion.easy.co\/collections\/\u4f11\u65c5\u6a5f\u80fd","featured_4_img":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/17883844.jpg?width=650&format=webp","featured_4_text":"","featured_4_link":"https:\/\/www.gibbon.com.tw\/collections\/%E4%BF%9D%E6%9A%96%E4%BC%81%E5%8A%83","featured_5_img":"","featured_5_text":"","featured_5_link":"","featured_6_img":"","featured_6_text":"","featured_6_link":"","featured_7_img":"","featured_7_text":"","featured_7_link":"","featured_8_img":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/11128387.jpg?width=650&format=webp","featured_8_text":"","featured_8_link":"https:\/\/weedenfashion.easy.co\/collections\/\u5927\u5c3a\u78bc\u5c08\u5340","parallax_img":"","parallax_mobile_img":"","parallax_title":"","parallax_subtitle":"","parallax_button_text":"","parallax_button_link":"","parallax_full_width":"1","slider_home_auto":"1","slider_home_show_dots":"1","slider_home_rate":"5000","slider_home_transition":"slide","slider_full_screen":"0","slide_1":"1","slide_1_jpg":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/17883830.jpg?width=1500&format=webp","slide_1_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/17883831.jpg?width=900&format=webp","slide_1_link":"https:\/\/weedenfashion.easy.co\/collections\/%E6%96%B0%E5%93%81","slide_1_alt":"","slide_1_title":"","slide_1_subtitle":"","slide_1_button_text":"","slide_2":"1","slide_2_jpg":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/6734505.jpeg?width=1200","slide_2_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/6734507.jpeg?width=1200","slide_2_link":"https:\/\/weedenfashion.easy.co\/collections\/%E8%A5%AF%E8%A1%AB%E8%A5%BF%E8%A4%B2%E4%BB%BB%E9%81%B82%E4%BB%B679%E6%8A%98","slide_2_alt":"","slide_2_title":"","slide_2_subtitle":"","slide_2_button_text":"","slide_3":"","slide_3_jpg":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/10438416.jpg?width=1500&format=webp","slide_3_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/10438427.jpg?width=900&format=webp","slide_3_link":"https:\/\/www.gibbon.com.tw\/collections\/%E4%BC%91%E9%96%92%E9%95%B7%E8%A4%B2","slide_3_alt":"","slide_3_title":"","slide_3_subtitle":"","slide_3_button_text":"","slide_4":"","slide_4_jpg":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/6734531.jpeg?width=1200","slide_4_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/6734533.jpeg?width=1200","slide_4_link":"https:\/\/weedenfashion.easy.co\/collections\/\u4f11\u65c5\u6a5f\u80fd","slide_4_alt":"","slide_4_title":"","slide_4_subtitle":"","slide_4_button_text":"","slide_5":"","slide_5_jpg":"","slide_5_mobile_jpg":"","slide_5_link":"","slide_5_alt":"","slide_5_title":"","slide_5_subtitle":"","slide_5_button_text":"","slide_6":"","slide_6_jpg":"","slide_6_mobile_jpg":"","slide_6_link":"","slide_6_alt":"","slide_6_title":"","slide_6_subtitle":"","slide_6_button_text":"","testimonial_slide_img_crop":0,"testimonial_slide_
45471_img":"https:\/\/cdn.store-assets.com\/s\/263036\/f\/6742851.jpeg?width=1500&format=webp","testimonial_slide_1_title":"","testimonial_slide_1_content":"","testimonial_slide_1_text_link":"","testimonial_slide_1_link":"https:\/\/weedenfashion.easy.co\/pages\/%E8%B3%BC%E7%89%A9%E8%AA%AA%E6%98%8E","testimonial_slide_2_img":"","testimonial_slide_2_title":"","testimonial_slide_2_content":"","testimonial_slide_2_text_link":"","testimonial_slide_2_link":"","testimonial_slide_3_img":"","testimonial_slide_3_title":"","testimonial_slide_3_content":"","testimonial_slide_3_text_link":"","testimonial_slide_3_link":"","testimonial_slide_4_img":"","testimonial_slide_4_title":"","testimonial_slide_4_content":"","testimonial_slide_4_text_link":"","testimonial_slide_4_link":"","testimonial_slide_5_img":"","testimonial_slide_5_title":"","testimonial_slide_5_content":"","testimonial_slide_5_text_link":"","testimonial_slide_5_link":"","testimonial_slide_6_img":"","testimonial_slide_6_title":"","testimonial_slide_6_content":"","testimonial_slide_6_text_link":"","testimonial_slide_6_link":"","logo_list_on_footer":0,"logo_list_title":"","logo_list_1_img":"","logo_list_1_link":"","logo_list_2_img":"","logo_list_2_link":"","logo_list_3_img":"","logo_list_3_link":"","logo_list_4_img":"","logo_list_4_link":"","logo_list_5_img":"","logo_list_5_link":"","logo_list_6_img":"","logo_list_6_link":"","logo_list_7_img":"","logo_list_7_link":"","logo_list_8_img":"","logo_list_8_link":"","home_featured_products":"feature-on-homepage","home_featured_products_num":"20","home_featured_products_row_num":"7","home_featured_products_show_heading":"","home_page_content":"home","home_page_show_heading":"0","home_page_add_to_cart":"1","scroll_to_top_button":"on-right","product_quantity_enable":"1","product_image_zoom_type":"lightbox","product_thumbnails_position":"below","product_related_enable":false,"products_per_row":4,"products_list_per_row":"4","product_page_float_btn":"1","product_page_variants_tag":"1","featured_product_title":"\u71b1\u8ce3\u5546\u54c1","product_img_res":"grande","product_img_crop":"product_img-crop ratio_1-1","collections_show_sale_circle":"1","collections_show_sold_out_circle":"1","collections_sort_enable":true,"collections_tags_enable":"0","collections_products_per_row":"3","collections_rows":"6","footer_bar":"1","footer_bar_icon_product_page":"1","footer_bar_icon_1":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5590.png?width=150&format=webp","footer_bar_icon_1_text":"Home","footer_bar_icon_1_link":"\/","footer_bar_icon_2":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5591.png?width=150&format=webp","footer_bar_icon_2_text":"All products","footer_bar_icon_2_link":"\/collections\/all","footer_bar_icon_3":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5592.png?width=150&format=webp","footer_bar_icon_3_text":"Promotions","footer_bar_icon_3_link":"https:\/\/gibbon.com.tw\/collections\/%E7%89%B9%E6%83%A0%E5%96%AE%E5%93%81-5%E6%8A%98%E8%B5%B7","footer_bar_icon_4":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5593.png?width=150&format=webp","footer_bar_icon_4_text":"Account","footer_bar_icon_4_link":"\/account\/login","cart_enable_ajax":"1","social_sharing_products":"1","social_sharing_blog":"1","social_sharing_count":"1","share_facebook":"1","share_twitter":"1","share_line":"1","share_pinterest":"1","facebook_url":"https:\/\/www.facebook.com\/","twitter_url":"","pinterest_url":"","instagram_url":"https:\/\/instagram.com\/","tumblr_url":"","youtube_url":"https:\/\/www.youtube.com\/","vimeo_url":"","wechat_url":"","whatsapp_url":"","line_url":"","featured_blog":"","featured_blog_title":"Blog","articles_handle_1":"","articles_handle_2":"","articles_handle_3":"","use_original_image":0,"promotion_uis":{"primary_color":"#C53333","header_bg_color":"#4089e4","header_text_color":"#fff","recommendation":{"is_show_product_page":true,"is_show_cart_page_top":true,"is_show_cart_page_bottom":true},"voucher_widget":{"primary_color":"#4089e4"}},"show_multiple_currencies":true,"supported_currencies":"TWD ","theme_id":2877,"theme_is_edited":1,"theme_updated_at":"2026-10-07T05:44:19.000Z","phone_account_enabled":false,"line_login_enabled":true,"apple_login_enabled":false,"timezone":"Asia\/Taipei","is_server_side_currency_conversion":true,"is_self_registration_enabled":true,"is_highlight_enabled":false,"is_auto_gen_highlight_enabled":false,"is_common_question_enabled":false,"is_auto_gen_common_question_enabled":false,"highlight_section_title":"Highlights","common_question_section_title":"Frequently asked questions","is_new_promotion_enabled":true}
4548        if (settings.promotion_uis.voucher_widget != null) {
4549          setVoucherTheme(settings.promotion_uis.voucher_widget)
4550        }
4551        var shop = {
4552          money_prefix: "",
4553          format_decimals: ""
4554        };
4555        var _getEntitlementTranslation = {
4556          "free_shipping": "免運費",
4557          "free_of_charge": "免費贈品",
4558        }
4559        var _getTargetTypeTranslation = {
4560          "amount_credit": " 回饋金",
4561          "amount_off": " 折扣",
4562        }
4563        var _getPrerequisiteTranslation = {
4564          "min_quantity": "至少購買 formatValue 件商品",
4565          "every_quantity": "每購買 formatValue 件商品",
4566          "min_amount": "最低消費 formatCurrency",
4567          "every_amount": "每消費 formatCurrency"
4568        }
4569        var _getPrerequisiteConditionTranslation = {
4570          "selected_items": "指定商品",
4571          "selected_collections": "指定分類",
4572          "storewide": "全店",
4573          "order_subtotal": "訂單金額"
4574        }
4575        var _getVoucherButtonTextTranslation = {
4576          "apply": "套用",
4577        }
4578        var _getVoucherErrorTranslation = {
4579          "condition_not_matched": "優惠代碼條件不匹配"
4580        }
4581      </script>
4581
4582
4583    </div>
4584  </div>
4585</vouchers-modal>
4586  
4587  
4588</body>
4589</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.