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 ç»å ¥ – 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()">×</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 × 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.