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<meta name="google-site-verification" content="vIfuh96EYcv8wjluR9X91dZAMM7SVL0Nam0dtsQ7sqQ" /> 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/1255243/f/16645278.png" /> 15 16 17 <!-- Title and description ================================================== --> 18 <title> 19 ç»å ¥ – æé²éè 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.chaolou.com.tw/account/login"> 30 31 <meta property="og:image" content="https://cdn.store-assets.com/s/1255243/f/16592837.jpg"> 32 <meta property="og:image:secure_url" content="https://cdn.store-assets.com/s/1255243/f/16592837.jpg"> 33 34 35 36<meta property="og:description" content="ç±å±æç鮮伿¥è¡ä»½æéå ¬å¸åµç«çé¶å®åçï¼ 37統編ï¼96869252 38å°ç£é¦åµéé®®è¡ç12é管çå·¥æ³ï¼ 39åå § CASèªèåæ ¼å·¥å» ï¼è®æ¨è²·çæ¾å¿ãåçå®å¿!"> 40<meta property="og:site_name" content="æé²éè"> 41 42 43 44 <meta name="twitter:card" content="summary"> 45 46 47 48 <meta name="twitter:site" content="@"> 49 50 51 52 53 54 <!-- Helpers ================================================== --> 55 <link rel="canonical" href="https://www.chaolou.com.tw/account/login"> 56 <meta name="viewport" content="width=device-width,initial-scale=1"> 57 <meta name="theme-color" content="#121212"> 58 59
59<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
59 60 61 <!-- Header hook for plugins ================================================== --> 62 63<!-- ScriptTags -->
64<script>window.__st={p: "customers",cid: null,cem: null,cph: null,cfn: null,cln: null,cge: null,cdb: null,ccc: null};</script>
64<script src='/assets/events.js'></script>
64<script>(function(){function asyncLoad(){var urls=['/assets/facebook-pixel.js?v=1.2.1783043883','/assets/traffic.js?v=1','https://apps.easystore.co/facebook-login/script.js?shop=666fish.easy.co','https://solines.tw/assets/es_track.js','https://apps.easystore.co/timer-discount/script.js?shop=666fish.easy.co&t=1769073490','https://smartarget.online/loader.js?type=int&u=7c79de531fb86d9f208e6f8668116dad53b7148f&source=easystore_countdown_bar'];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>
64 65<!-- /ScriptTags --> 66 67 68 69
69<script src="https://store-themes.easystore.co/1255243/themes/49034/assets/global.js?t=1788507686" defer="defer"></script>
69 70 71 72 73
73<script src="/assets/shop_common.js" type="text/javascript" ></script>
73 74
74<script src="/assets/customer_area.js" type="text/javascript" ></script>
74 75 76
76<script> 77 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 78 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 79 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 80 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 81 82 ga('create', '', 'auto','myTracker'); 83 ga('myTracker.send', 'pageview'); 84 85 </script>
85 86 87
87<script src="/assets/storefront.js?id=1d419de2011a5572c98b" type="text/javascript" ></script>
87 88 89 90 <!-- CSS ================================================== --> 91 <style> 92 @font-face { 93 font-family: 'Assistant'; 94 font-style: normal; 95 font-weight: regular; 96 src: local('Assistant regular'), local('Assistant-regular'), url(https://fonts.gstatic.com/s/assistant/v8/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQtuZnEGGf3qGuvM4.ttf) format('truetype'); 97 } 98 99 @font-face { 100 font-family: 'Assistant'; 101 font-style: normal; 102 font-weight: regular; 103 src: local('Assistant regular'), local('Assistant-regular'), url(https://fonts.gstatic.com/s/assistant/v8/2sDPZGJYnIjSi6H75xkZZE1I0yCmYzzQtuZnEGGf3qGuvM4.ttf) format('truetype'); 104 } 105 106 :root { 107 --font-body-family: 'Assistant', sans-serif; 108 --font-body-style: normal; 109 --font-body-weight: 500; 110 111 --font-heading-family: 'Assistant', sans-serif; 112 --font-heading-style: normal; 113 --font-heading-weight: 500; 114 115 --color-heading-text: 18,18,18; 116 --color-base-text: 18,18,18; 117 --color-base-background-1: 255,255,255; 118 --color-base-background-2: 255,255,255; 119 120 --color-base-solid-button-labels: 255,255,255; 121 --color-base-outline-button-labels: 18,18,18; 122 123 --color-base-accent-1: 18,18,18; 124 --color-base-accent-2: 18,18,18; 125 --payment-terms-background-color: 255,255,255; 126 127 --gradient-base-background-1: 255,255,255; 128 --gradient-base-background-2: 255,255,255; 129 --gradient-base-accent-1: 18,18,18; 130 --gradient-base-accent-2: 18,18,18; 131 132 --page-width: 120rem; 133 } 134 135 *, 136 *::before, 137 *::after { 138 box-sizing: inherit; 139 } 140 141 html { 142 box-sizing: border-box; 143 font-size: 62.5%; 144 height: 100%; 145 } 146 147 body { 148 display: grid; 149 grid-template-rows: auto auto 1fr auto; 150 grid-template-columns: 100%; 151 min-height: 100%; 152 margin: 0; 153 font-size: 1.5rem; 154 letter-spacing: 0.06rem; 155 line-height: 1.8; 156 font-family: var(--font-body-family); 157 font-style: var(--font-body-style); 158 font-weight: var(--font-body-weight); 159 160 } 161 162 @media screen and (min-width: 750px) { 163 body { 164 font-size: 1.6rem; 165 } 166 } 167 </style> 168 169 <link href="https://store-themes.easystore.co/1255243/themes/49034/assets/base.css?t=1788507686" rel="stylesheet" type="text/css" media="screen" /> 170 171 172 173 174
174<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
174 175</head> 176 177<body id="------" class="template-customers" > 178 179 180<!-- Snippet:global/body_start: Console Extension --> 181<div id='es_console' style='display: none;'>1255243</div> 182<!-- /Snippet --> 183 184 185 <style> 186 header { 187 --logo-width: 250px; 188 } 189 .header-wrapper, 190 .header-wrapper .list-menu--disclosure, 191 .header-wrapper .search-modal{ 192 background-color: #FFFFFF; 193 } 194 .header-wrapper .search-modal .field__input{ 195 background-color: rgb(var(--color-background)); 196 } 197 .header-wrapper summary .icon-caret, 198 .header-wrapper .header__menu-item a, 199 .header-wrapper .list-menu__item, 200 .header-wrapper .link--text{ 201 color: #000000; 202 } 203 204 .search-modal__form{ 205 position: relative; 206 } 207 208 .dropdown { 209 display: none; 210 position: absolute; 211 top: 100%; 212 left: 0; 213 width: 100%; 214 padding: 5px 0; 215 background-color: #fff; 216 color:#000; 217 z-index: 1000; 218 border-bottom-left-radius: 15px; 219 border-bottom-right-radius: 15px; 220 border: 1px solid rgba(var(--color-foreground), 1); 221 border-top: none; 222 overflow-x: hidden; 223 overflow-y: auto; 224 max-height: 350px; 225 } 226 227 .dropdown-item { 228 padding: 0.4rem 2rem; 229 cursor: pointer; 230 line-height: 1.4; 231 overflow: hidden; 232 text-overflow: ellipsis; 233 white-space: nowrap; 234 } 235 236 .dropdown-item:hover{ 237 background-color: #f3f3f3; 238 } 239 240 .search__input.is-focus{ 241 border-radius: 15px; 242 border-bottom-left-radius: 0; 243 border-bottom-right-radius: 0; 244 border: 1px solid rgba(var(--color-foreground), 1); 245 border-bottom: none; 246 box-shadow: none; 247 } 248 249 .clear-all { 250 text-align: right; 251 padding: 0 2rem 0.2rem; 252 line-height: 1; 253 font-size: 70%; 254 margin-bottom: -2px; 255 } 256 257 .clear-all:hover{ 258 background-color: #fff; 259 } 260 261 .search-input-focus .easystore-section-header-hidden{ 262 transform: none; 263 } 264 .referral-notification { 265 position: absolute; 266 top: 100%; 267 right: 0; 268 background: white; 269 border: 1px solid #e0e0e0; 270 border-radius: 8px; 271 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 272 width: 280px; 273 z-index: 1000; 274 padding: 16px; 275 margin-top: 8px; 276 font-size: 14px; 277 line-height: 1.4; 278 } 279 280 .referral-notification::before { 281 content: ''; 282 position: absolute; 283 top: -8px; 284 right: 20px; 285 width: 0; 286 height: 0; 287 border-left: 8px solid transparent; 288 border-right: 8px solid transparent; 289 border-bottom: 8px solid white; 290 } 291 292 .referral-notification::after { 293 content: ''; 294 position: absolute; 295 top: -9px; 296 right: 20px; 297 width: 0; 298 height: 0; 299 border-left: 8px solid transparent; 300 border-right: 8px solid transparent; 301 border-bottom: 8px solid #e0e0e0; 302 } 303 304 .referral-notification h4 { 305 margin: 0 0 8px 0; 306 color: #2196F3; 307 font-size: 16px; 308 font-weight: 600; 309 } 310 311 .referral-notification p { 312 margin: 0 0 12px 0; 313 color: #666; 314 } 315 316 .referral-notification .referral-code { 317 background: #f5f5f5; 318 padding: 8px; 319 border-radius: 4px; 320 font-family: monospace; 321 font-size: 13px; 322 text-align: center; 323 margin: 8px 0; 324 border: 1px solid #ddd; 325 } 326 327 .referral-notification .close-btn { 328 position: absolute; 329 top: 8px; 330 right: 8px; 331 background: none; 332 border: none; 333 font-size: 18px; 334 color: #999; 335 cursor: pointer; 336 padding: 0; 337 width: 20px; 338 height: 20px; 339 line-height: 1; 340 } 341 342 .referral-notification .close-btn:hover { 343 color: #333; 344 } 345 346 .referral-notification .action-btn { 347 background: #2196F3; 348 color: white; 349 border: none; 350 padding: 8px 16px; 351 border-radius: 4px; 352 cursor: pointer; 353 font-size: 12px; 354 margin-right: 8px; 355 margin-top: 8px; 356 } 357 358 .referral-notification .action-btn:hover { 359 background: #1976D2; 360 } 361 362 .referral-notification .dismiss-btn { 363 background: transparent; 364 color: #666; 365 border: 1px solid #ddd; 366 padding: 8px 16px; 367 border-radius: 4px; 368 cursor: pointer; 369 font-size: 12px; 370 margin-top: 8px; 371 } 372 373 .referral-notification .dismiss-btn:hover { 374 background: #f5f5f5; 375 } 376 .referral-modal__dialog { 377 transform: translate(-50%, 0); 378 transition: transform var(--duration-default) ease, visibility 0s; 379 z-index: 10000; 380 position: fixed; 381 top: 20vh; 382 left: 50%; 383 width: 100%; 384 max-width: 350px; 385 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 386 border-radius: 12px; 387 background-color: #fff; 388 color: #000; 389 padding: 20px; 390 text-align: center; 391 } 392 393 .modal-overlay.referral-modal-overlay { 394 position: fixed; 395 top: 0; 396 left: 0; 397 width: 100%; 398 height: 100%; 399 background-color: rgba(0, 0, 0, 0.7); 400 z-index: 2001; 401 display: block; 402 opacity: 1;
403 transition: opacity var(--duration-default) ease, visibility 0s; 404 } 405</style> 406 407<link rel="preload" href="https://store-themes.easystore.co/1255243/themes/49034/assets/section-header.css?t=1788507686" as="style" onload="this.onload=null;this.rel='stylesheet'"> 408<link rel="preload" href="https://store-themes.easystore.co/1255243/themes/49034/assets/component-list-menu.css?t=1788507686" as="style" onload="this.onload=null;this.rel='stylesheet'"> 409<link rel="preload" href="https://store-themes.easystore.co/1255243/themes/49034/assets/component-menu-drawer.css?t=1788507686" as="style" onload="this.onload=null;this.rel='stylesheet'"> 410<link rel="preload" href="https://store-themes.easystore.co/1255243/themes/49034/assets/component-cart-notification.css?v1.1?t=1788507686" as="style" onload="this.onload=null;this.rel='stylesheet'"> 411
412<script src="https://store-themes.easystore.co/1255243/themes/49034/assets/cart-notification.js?t=1788507686" defer="defer"></script>
vendor: 2 bytes, line 412
412
413<script src="https://store-themes.easystore.co/1255243/themes/49034/assets/details-modal.js?t=1788507686" defer="defer"></script>
413 414 415<svg xmlns="http://www.w3.org/2000/svg" class="hidden"> 416 <symbol id="icon-search" viewbox="0 0 18 19" fill="none"> 417 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/> 418 </symbol> 419 420 <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 421 <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"> 422 </symbol> 423</svg> 424 425 426<div id="easystore-section-header"> 427 <sticky-header class="header-wrapper header-wrapper--border-bottom"> 428 <header class="header header--middle-left page-width header--has-menu" itemscope itemtype="http://schema.org/Organization"> 429 <header-drawer data-breakpoint="tablet"> 430 <details class="menu-drawer-container menu-opening"> 431 <summary class="header__icon header__icon--menu header__icon--summary link link--text focus-inset" aria-label="Menu" role="button" aria-expanded="true" aria-controls="menu-drawer"> 432 <span> 433 434 435 436 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-hamburger " fill="none" viewBox="0 0 18 16"> 437 <path d="M1 .5a.5.5 0 100 1h15.71a.5.5 0 000-1H1zM.5 8a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1A.5.5 0 01.5 8zm0 7a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1a.5.5 0 01-.5-.5z" fill="currentColor"> 438 </path> 439 </svg> 440 441 442 443 444 445 446 <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"> 447 <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"> 448 </path> 449 </svg> 450 451 452 453 </span> 454 </summary> 455 <div id="menu-drawer" class="menu-drawer motion-reduce" tabindex="-1"> 456 <div class="menu-drawer__inner-container"> 457 <div class="menu-drawer__navigation-container"> 458 <nav class="menu-drawer__navigation"> 459 <ul class="menu-drawer__menu list-menu" role="list"> 460 461 462 463 <li> 464 <a href="/" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 465 é¦é 466 </a> 467 </li> 468 469 470 471 472 <li> 473 <a href="/blogs/news" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 474 ææ°æ¶æ¯ 475 </a> 476 </li> 477 478 479 480 481 482 <li> 483 <details> 484 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 485 <a href="/collections/all" class="link--text list-menu__item menu-drawer__menu-item"> 486 ææåå 487 </a> 488 489 490 491 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 492 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 493 </svg> 494 495 496 497 498 499 500 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 501 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 502 </svg> 503 504 505 506 </summary> 507 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 508 <div class="menu-drawer__inner-submenu"> 509 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 510 511 512 513 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 514 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 515 </svg> 516 517 518 519 ææåå 520 </button> 521 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 522 523 524 525 <li> 526 <a href="/collections/親åéé«®å°å" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 527 ð¨âð©âð§âð¦è¦ªåéé«®å°å 528 </a> 529 </li> 530 531 532 533 534 <li> 535 <a href="/collections/æ°åä¸å¸" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 536 æ°åä¸å¸ 537 </a> 538 </li> 539 540 541 542 543 544 <li> 545 <details> 546 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 547 <a href="/collections/å£ç¯éå®" class="link--text list-menu__item menu-drawer__menu-item"> 548 å£ç¯éå® 549 </a> 550 551 552 553 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 554 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 555 </svg> 556 557 558 559 560 561 562 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 563 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 564 </svg> 565 566 567 568 </summary> 569 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 570 <div class="menu-drawer__inner-submenu"> 571 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 572 573 574 575 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 576 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 577 </svg> 578 579 580 581 å£ç¯éå® 582 </button> 583 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 584 585 586 587 <li> 588 <a href="/collections/æ¾æ¹åé é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 589 æ¾æ¹åé é 590 </a> 591 </li> 592 593 594 595 </ul> 596 </div> 597 </div> 598 </details> 599 </li> 600 601 602 603 604 605 <li> 606 <details> 607 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 608 <a href="/collections/frozen-fresh" class="link--text list-menu__item menu-drawer__menu-item"> 609 å·åçé®®é¡ 610 </a> 611 612 613 614 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 615 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 616 </svg> 617 618 619 620 621 622 623 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 624 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 625 </svg> 626 627 628 629 </summary> 630 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 631 <div class="menu-drawer__inner-submenu"> 632 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 633 634 635 636 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 637 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 638 </svg> 639 640 641 642 å·åçé®®é¡ 643 </button> 644 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 645 646 647 648 <li> 649 <a href="/collections/æ²¹çè " class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 650 æ²¹çè 651 </a> 652 </li> 653 654 655 656 657 <li> 658 <a href="/collections/é¾è½ç³æ" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 659 é¾è½ç³æ 660 </a> 661 </li> 662 663 664 665 666 <li> 667 <a href="/collections/ç½åé" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 668 ç½åé 669 </a> 670 </li> 671 672 673 674 675 <li> 676 <a href="/collections/åå é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 677 åå é 678 </a> 679 </li> 680 681 682 683 684 <li> 685 <a href="/collections/ç½å¸¶é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 686
686 ç½å¸¶é 687 </a> 688 </li> 689 690 691 692 693 <li> 694 <a href="/collections/æ³èé" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 695 æ³èé 696 </a> 697 </li> 698 699 700 701 702 <li> 703 <a href="/collections/é®é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 704 é®é 705 </a> 706 </li> 707 708 709 710 711 <li> 712 <a href="/collections/éæ½" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 713 éæ½ãè»çµ²é¡ 714 </a> 715 </li> 716 717 718 719 720 <li> 721 <a href="/collections/大æ¯ç®é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 722 大æ¯ç®é 723 </a> 724 </li> 725 726 727 728 729 <li> 730 <a href="/collections/æ²¹çé-1" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 731 ç²é±ä» 732 </a> 733 </li> 734 735 736 737 738 <li> 739 <a href="/collections/ç§åé" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 740 ç§åé 741 </a> 742 </li> 743 744 745 746 747 <li> 748 <a href="/collections/æ°´é¯" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 749 æ°´é¯ 750 </a> 751 </li> 752 753 754 755 756 <li> 757 <a href="/collections/ç½è¦" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 758 è¦ 759 </a> 760 </li> 761 762 763 764 765 <li> 766 <a href="/collections/è±ç®é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 767 è±ç®é 768 </a> 769 </li> 770 771 772 773 774 <li> 775 <a href="/collections/鱸é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 776 鱸é 777 </a> 778 </li> 779 780 781 782 783 <li> 784 <a href="/collections/é¯é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 785 å°ç£é¯ 786 </a> 787 </li> 788 789 790 791 792 <li> 793 <a href="/collections/竹ç´é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 794 竹ç´é 795 </a> 796 </li> 797 798 799 800 801 <li> 802 <a href="/collections/è²" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 803 è² 804 </a> 805 </li> 806 807 808 809 </ul> 810 </div> 811 </div> 812 </details> 813 </li> 814 815 816 817 818 819 <li> 820 <details> 821 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 822 <a href="/collections/pickled" class="link--text list-menu__item menu-drawer__menu-item"> 823 éæ¼¬é¡ 824 </a> 825 826 827 828 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 829 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 830 </svg> 831 832 833 834 835 836 837 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 838 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 839 </svg> 840 841 842 843 </summary> 844 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 845 <div class="menu-drawer__inner-submenu"> 846 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 847 848 849 850 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 851 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 852 </svg> 853 854 855 856 éæ¼¬é¡ 857 </button> 858 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 859 860 861 862 <li> 863 <a href="/collections/æªå¨é¯é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 864 æªå¨é¯é 865 </a> 866 </li> 867 868 869 870 871 <li> 872 <a href="/collections/竹ç´é-1" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 873 竹ç´é 874 </a> 875 </li> 876 877 878 879 880 <li> 881 <a href="/collections/é®é-2" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 882 é®é 883 </a> 884 </li> 885 886 887 888 889 <li> 890 <a href="/collections/æ²¹çé" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 891 ç²é±ä» 892 </a> 893 </li> 894 895 896 897 898 <li> 899 <a href="/collections/é£é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 900 é£é 901 </a> 902 </li> 903 904 905 906 907 <li> 908 <a href="/collections/馬å é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 909 馬å é 910 </a> 911 </li> 912 913
913 914 915 </ul> 916 </div> 917 </div> 918 </details> 919 </li> 920 921 922 923 924 925 <li> 926 <details> 927 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 928 <a href="/collections/semi-dried" class="link--text list-menu__item menu-drawer__menu-item"> 929 æ°ä¸å¤å¹²é¡ 930 </a> 931 932 933 934 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 935 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 936 </svg> 937 938 939 940 941 942 943 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 944 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 945 </svg> 946 947 948 949 </summary> 950 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 951 <div class="menu-drawer__inner-submenu"> 952 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 953 954 955 956 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 957 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 958 </svg> 959 960 961 962 æ°ä¸å¤å¹²é¡ 963 </button> 964 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 965 966 967 968 <li> 969 <a href="/collections/é·é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 970 é·é 971 </a> 972 </li> 973 974 975 976 977 <li> 978 <a href="/collections/ä¸å¤å¹²ç«¹ç´é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 979 竹ç´é 980 </a> 981 </li> 982 983 984 985 986 <li> 987 <a href="/collections/ä¸å¤å¹²é¯é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 988 æªå¨é¯é 989 </a> 990 </li> 991 992 993 994 995 <li> 996 <a href="/collections/test" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 997 éæ½ 998 </a> 999 </li> 1000 1001 1002 1003 </ul> 1004 </div> 1005 </div> 1006 </details> 1007 </li> 1008 1009 1010 1011 1012 1013 <li> 1014 <details> 1015 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1016 <a href="/collections/heating-ready-to-eat-food" class="link--text list-menu__item menu-drawer__menu-item"> 1017 å ç±/è§£åå³é£ 1018 </a> 1019 1020 1021 1022 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 1023 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 1024 </svg> 1025 1026 1027 1028 1029 1030 1031 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1032 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1033 </svg> 1034 1035 1036 1037 </summary> 1038 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1039 <div class="menu-drawer__inner-submenu"> 1040 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1041 1042 1043 1044 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 1045 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 1046 </svg> 1047 1048 1049 1050 å ç±/è§£åå³é£ 1051 </button> 1052 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1053 1054 1055 1056 <li> 1057 <a href="/collections/å»ä»é" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1058 éé¡ 1059 </a> 1060 </li> 1061 1062 1063 1064 1065 <li> 1066 <a href="/collections/æ«»è±è¦" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1067 è¦é¡ 1068 </a> 1069 </li> 1070 1071 1072 1073 1074 1075 <li> 1076 <details> 1077 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1078 <a href="/collections/æµ·çå" class="link--text list-menu__item menu-drawer__menu-item"> 1079 å ¶ä» 1080 </a> 1081 1082 1083 1084 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 1085 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 1086 </svg> 1087 1088 1089 1090 1091 1092 1093 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1094 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1095 </svg> 1096 1097 1098 1099 </summary> 1100 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1101 <div class="menu-drawer__inner-submenu"> 1102 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1103 1104 1105 1106 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 1107 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 1108 </svg> 1109 1110 1111 1112 å ¶ä» 1113 </button> 1114 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1115 1116 <li> 1117 <a href="/collections/å¹²è²" class="link--text list-menu__item menu-drawer__menu-item focus-inset"> 1118 å¹²è² 1119 </a> 1120 </li> 1121 1122 </ul> 1123 </div> 1124 </div> 1125 </details> 1126 </li> 1127 1128 1129 1130 </ul> 1131 </div> 1132 </div> 1133 </details> 1134 </li> 1135 1136 1137 1138 1139 <li> 1140 <a href="/collections/裹ç²é¡" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1141 裹ç²é¡ 1142 </a> 1143 </li> 1144 1145 1146 1147 1148 <li> 1149 <a href="/collections/åå¼èå" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1150 åå¼èå 1151 </a> 1152 </li> 1153 1154 1155 1156 1157 <li> 1158 <a href="/collections/snack-foods" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1159 常溫
1159ç¢å 1160 </a> 1161 </li> 1162 1163 1164 1165 </ul> 1166 </div> 1167 </div> 1168 </details> 1169 </li> 1170 1171 1172 1173 1174 1175 <li> 1176 <details> 1177 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1178 <a href="/#" class="link--text list-menu__item menu-drawer__menu-item"> 1179 鮮峿 å ± 1180 </a> 1181 1182 1183 1184 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 1185 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 1186 </svg> 1187 1188 1189 1190 1191 1192 1193 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1194 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1195 </svg> 1196 1197 1198 1199 </summary> 1200 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1201 <div class="menu-drawer__inner-submenu"> 1202 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1203 1204 1205 1206 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 1207 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 1208 </svg> 1209 1210 1211 1212 鮮峿 å ± 1213 </button> 1214 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1215 1216 1217 1218 <li> 1219 <a href="/blogs/é®®çå¥ã®é®®å³é±å ±" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1220 é®®å³é±å ± 1221 </a> 1222 </li> 1223 1224 1225 1226 1227 <li> 1228 <a href="/pages/test" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1229 鮮峿ç 1230 </a> 1231 </li> 1232 1233 1234 1235 </ul> 1236 </div> 1237 </div> 1238 </details> 1239 </li> 1240 1241 1242 1243 1244 <li> 1245 <a href="/pages/about" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 1246 åçæ äº 1247 </a> 1248 </li> 1249 1250 1251 1252 1253 1254 <li> 1255 <details> 1256 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1257 <a href="/#常è¦åé¡" class="link--text list-menu__item menu-drawer__menu-item"> 1258 常è¦åé¡ 1259 </a> 1260 1261 1262 1263 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 1264 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 1265 </svg> 1266 1267 1268 1269 1270 1271 1272 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1273 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1274 </svg> 1275 1276 1277 1278 </summary> 1279 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1280 <div class="menu-drawer__inner-submenu"> 1281 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1282 1283 1284 1285 <svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow " xmlns="http://www.w3.org/2000/svg"> 1286 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"></path> 1287 </svg> 1288 1289 1290 1291 常è¦åé¡ 1292 </button> 1293 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1294 1295 1296 1297 <li> 1298 <a href="/a/contact-form" target="_blank" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1299 è¯çµ¡æå 1300 </a> 1301 </li> 1302 1303 1304 1305 1306 <li> 1307 <a href="/pages/refund-policy" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1308 è³¼ç©é ç¥ 1309 </a> 1310 </li> 1311 1312 1313 1314 1315 <li> 1316 <a href="https://www.chaolou.com.tw/blogs/news/-æé²éèï½å®ç¶²è³¼ç©æµç¨
1316" target="_blank" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1317 è³¼ç©æµç¨ 1318 </a> 1319 </li> 1320 1321 1322 1323 1324 <li> 1325 <a href="/pages/terms-of-service" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1326 å¯é說æ 1327 </a> 1328 </li> 1329 1330 1331 1332 </ul> 1333 </div> 1334 </div> 1335 </details> 1336 </li> 1337 1338 1339 1340 1341 <li> 1342 <a href="https://www.facebook.com/666fish" target="_blank" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 1343 æé²éèFBç²çµ²å 1344 </a> 1345 </li> 1346 1347 1348 </ul> 1349 </nav> 1350 1351 <div class="menu-drawer__utility-links"> 1352 1353 1354 1355 1356 1357 1358 1359 <a href="/account/login" class="menu-drawer__account link link--text focus-inset h5"> 1360 1361 1362 1363 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account " fill="none" viewBox="0 0 18 19"> 1364 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor"></path> 1365 </svg> 1366 1367 1368 1369 1370 Log in 1371 </a> 1372 1373 <a href="/account/register" class="menu-drawer__account link link--text focus-inset h5"> 1374 1375 1376 1377 1378 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-plus " fill="none" viewBox="0 0 10 10"> 1379 <path fill-rule="evenodd" clip-rule="evenodd" d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z" fill="currentColor"></path> 1380 </svg> 1381 1382 1383 1384 Create account 1385 </a> 1386 1387 1388 1389 </div> 1390 </div> 1391 </div> 1392 </div> 1393 </details> 1394 </header-drawer> 1395 1396 1397 <a href="/" class="header__heading-link link link--text focus-inset" itemprop="url"> 1398 <img src="https://cdn.store-assets.com/s/1255243/f/16592837.jpg" class="header__heading-logo" alt="æé²éè" loading="lazy" itemprop="logo"> 1399 </a> 1400 1401 <nav class="header__inline-menu"> 1402 <ul class="list-menu list-menu--inline" role="list"> 1403 1404 1405 1406 <li> 1407 <a href="/" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 1408 é¦é 1409 </a> 1410 </li> 1411 1412 1413 1414 1415 <li> 1416 <a href="/blogs/news" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 1417 ææ°æ¶æ¯ 1418 </a> 1419 </li> 1420 1421 1422 1423 1424 1425 <li> 1426 <details-disclosure> 1427 <details> 1428 <summary class="header__menu-item list-menu__item link focus-inset"> 1429 <a href="/collections/all" >ææåå</a> 1430 1431 1432 1433 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1434 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1435 </svg> 1436 1437 1438 1439 </summary> 1440 <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1"> 1441 1442 1443 1444 1445 1446 <li> 1447 <a href="/collections/親åéé«®å°å" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1448 ð¨âð©âð§âð¦è¦ªåéé«®å°å 1449 </a> 1450 </li> 1451 1452 1453 1454 1455 1456 <li> 1457 <a href="/collections/æ°åä¸å¸" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1458 æ°åä¸å¸ 1459 </a> 1460 </li> 1461 1462 1463 1464 1465 1466 <li> 1467 <details-disclosure> 1468 <details> 1469 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1470 <a href="/collections/å£ç¯éå®" >å£ç¯éå®</a> 1471 1472 1473 1474 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1475 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1476 </svg> 1477 1478 1479 1480 </summary> 1481 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1482 1483 1484 1485 <li> 1486 <a href="/collections/æ¾æ¹åé é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">æ¾æ¹åé é</a> 1487 </li> 1488 1489 1490 </ul> 1491 </details> 1492 </details-disclosure> 1493 </li> 1494 1495 1496 1497 1498 1499 1500 <li> 1501 <details-disclosure> 1502 <details> 1503 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1504 <a href="/collections/frozen-fresh" >å·åçé®®é¡</a> 1505 1506 1507 1508 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1509 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1510 </svg> 1511 1512 1513 1514 </summary> 1515 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1516 1517 1518 1519 <li> 1520 <a href="/collections/æ²¹çè " class="header__menu-item list-menu__item link link--text focus-inset caption-large">æ²¹çè </a> 1521 </li> 1522 1523 1524 1525 1526 <li> 1527 <a href="/collections/é¾è½ç³æ" class="header__menu-item list-menu__item link link--text focus-inset caption-large">é¾è½ç³æ</a> 1528 </li> 1529 1530 1531 1532 1533 <li> 1534 <a href="/collections/ç½åé" class="header__menu-item list-menu__item link link--text focus-inset caption-large">ç½åé</a> 1535 </li> 1536 1537 1538 1539 1540 <li> 1541 <a href="/collections/åå é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">åå é</a> 1542 </li> 1543 1544 1545 1546 1547 <li> 1548 <a href="/collections/ç½å¸¶é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">ç½å¸¶é</a> 1549 </li> 1550 1551 1552 1553 1554 <li> 1555 <a href="/collections/æ³èé" class="header__menu-item list-menu__item link link--text focus-inset caption-large">æ³èé</a> 1556 </li> 1557 1558 1559 1560 1561 <li> 1562 <a href="/collections/é®é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">é®é</a> 1563 </li> 1564 1565 1566 1567 1568 <li> 1569 <a href="/collections/éæ½" class="header__menu-item list-menu__item link link--text focus-inset caption-large">éæ½ãè»çµ²é¡</a> 1570 </li> 1571 1572 1573 1574 1575 <li> 1576 <a href="/collections/大æ¯ç®é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">大æ¯ç®é</a> 1577 </li> 1578 1579 1580 1581 1582 <li> 1583 <a href="/collections/æ²¹çé-1" class="header__menu-item list-menu__item link link--text focus-inset caption-large">ç²é±ä»</a> 1584 </li> 1585 1586 1587 1588 1589 <li> 1590 <a href="/collections/ç§åé" class="header__menu-item list-menu__item link link--text focus-inset caption-large">ç§åé</a> 1591 </li> 1592 1593 1594 1595 1596 <li> 1597 <a href="/collections/æ°´é¯" class="header__menu-item list-menu__item link link--text focus-inset caption-large">æ°´é¯</a> 1598 </li> 1599 1600 1601 1602 1603 <li> 1604 <a href="/collections/ç½è¦" class="header__menu-item list-menu__item link link--text focus-inset caption-large">è¦</a> 1605 </li> 1606 1607 1608 1609 1610 <li> 1611 <a href="/collections/è±ç®é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">è±ç®é</a> 1612 </li> 1613 1614 1615 1616 1617 <li> 1618 <a href="/collections/鱸é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">鱸é</a> 1619 </li> 1620 1621 1622 1623 1624 <li> 1625 <a href="/collections/é¯é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
1625å°ç£é¯</a> 1626 </li> 1627 1628 1629 1630 1631 <li> 1632 <a href="/collections/竹ç´é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">竹ç´é</a> 1633 </li> 1634 1635 1636 1637 1638 <li> 1639 <a href="/collections/è²" class="header__menu-item list-menu__item link link--text focus-inset caption-large">è²</a> 1640 </li> 1641 1642 1643 </ul> 1644 </details> 1645 </details-disclosure> 1646 </li> 1647 1648 1649 1650 1651 1652 1653 <li> 1654 <details-disclosure> 1655 <details> 1656 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1657 <a href="/collections/pickled" >éæ¼¬é¡</a> 1658 1659 1660 1661 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1662 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1663 </svg> 1664 1665 1666 1667 </summary> 1668 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1669 1670 1671 1672 <li> 1673 <a href="/collections/æªå¨é¯é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">æªå¨é¯é</a> 1674 </li> 1675 1676 1677 1678 1679 <li> 1680 <a href="/collections/竹ç´é-1" class="header__menu-item list-menu__item link link--text focus-inset caption-large">竹ç´é</a> 1681 </li> 1682 1683 1684 1685 1686 <li> 1687 <a href="/collections/é®é-2" class="header__menu-item list-menu__item link link--text focus-inset caption-large">é®é</a> 1688 </li> 1689 1690 1691 1692 1693 <li> 1694 <a href="/collections/æ²¹çé" class="header__menu-item list-menu__item link link--text focus-inset caption-large">ç²é±ä»</a> 1695 </li> 1696 1697 1698 1699 1700 <li> 1701 <a href="/collections/é£é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">é£é</a> 1702 </li> 1703 1704 1705 1706 1707 <li> 1708 <a href="/collections/馬å é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">馬å é</a> 1709 </li> 1710 1711 1712 </ul> 1713 </details> 1714 </details-disclosure> 1715 </li> 1716 1717 1718 1719 1720 1721 1722 <li> 1723 <details-disclosure> 1724 <details> 1725 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1726 <a href="/collections/semi-dried" >æ°ä¸å¤å¹²é¡</a> 1727 1728 1729 1730 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1731 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1732 </svg> 1733 1734 1735 1736 </summary> 1737 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1738 1739 1740 1741 <li> 1742 <a href="/collections/é·é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">é·é</a> 1743 </li> 1744 1745 1746 1747 1748 <li> 1749 <a href="/collections/ä¸å¤å¹²ç«¹ç´é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">竹ç´é</a> 1750 </li> 1751 1752 1753 1754 1755 <li> 1756 <a href="/collections/ä¸å¤å¹²é¯é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">æªå¨é¯é</a> 1757 </li> 1758 1759 1760 1761 1762 <li> 1763 <a href="/collections/test" class="header__menu-item list-menu__item link link--text focus-inset caption-large">éæ½</a> 1764 </li> 1765 1766 1767 </ul> 1768 </details> 1769 </details-disclosure> 1770 </li> 1771 1772 1773 1774 1775 1776 1777 <li> 1778 <details-disclosure> 1779 <details> 1780 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1781 <a href="/collections/heating-ready-to-eat-food" >å ç±/è§£åå³é£</a> 1782 1783 1784 1785 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1786 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1787 </svg> 1788 1789 1790 1791 </summary> 1792 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1793 1794 1795 1796 <li> 1797 <a href="/collections/å»ä»é" class="header__menu-item list-menu__item link link--text focus-inset caption-large">éé¡</a> 1798 </li> 1799 1800 1801 1802 1803 <li> 1804 <a href="/collections/æ«»è±è¦" class="header__menu-item list-menu__item link link--text focus-inset caption-large">è¦é¡</a> 1805 </li> 1806 1807 1808 1809 1810 1811 <li> 1812 <details-disclosure> 1813 <details> 1814 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 1815 <a href="/collections/æµ·çå" > 1816 å ¶ä» 1817 </a> 1818 1819 1820 1821 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 1822 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1823 </svg> 1824 1825 1826 1827 </summary> 1828 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 1829 1830 <li> 1831 <a href="/collections/å¹²è²" class="header__menu-item list-menu__item link link--text focus-inset caption-large">å¹²è²</a> 1832 </li> 1833 1834 </ul> 1835 </details> 1836 </details-disclosure> 1837 </li> 1838 1839 1840 </ul> 1841 </details> 1842 </details-disclosure> 1843 </li> 1844 1845 1846 1847 1848 1849 1850 <li> 1851 <a href="/collections/裹ç²é¡" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1852 裹ç²é¡ 1853 </a> 1854 </li> 1855 1856 1857 1858 1859 1860 <li> 1861 <a href="/collections/åå¼èå" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1862 åå¼èå 1863 </a> 1864 </li> 1865 1866 1867 1868 1869 1870 <li> 1871 <a href="/collections/snack-foods" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1872 常溫ç¢å 1873 </a> 1874 </li> 1875 1876 1877 </ul> 1878 </details> 1879 </details-disclosure> 1880 </li> 1881 1882 1883 1884 1885 1886 <li> 1887 <details-disclosure> 1888 <details> 1889 <summary class="header__menu-item list-menu__item link focus-inset"> 1890 <a href="/#" >鮮峿 å ±</a> 1891 1892 1893 1894 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1895 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1896 </svg> 1897 1898 1899 1900 </summary> 1901 <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1"> 1902 1903 1904 1905 1906 1907 <li> 1908 <a href="/blogs/é®®çå¥ã®é®®å³é±å ±" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1909 é®®å³é±å ± 1910 </a> 1911 </li> 1912 1913 1914 1915 1916 1917 <li> 1918 <a href="/pages/test" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1919 鮮峿ç 1920 </a> 1921 </li> 1922 1923 1924 </ul> 1925 </details> 1926 </details-disclosure> 1927 </li> 1928 1929 1930 1931 1932 <li> 1933 <a href="/pages/about" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 1934 åçæ äº 1935 </a> 1936 </li> 1937 1938 1939 1940 1941 1942 <li> 1943 <details-disclosure> 1944 <details> 1945 <summary class="header__menu-item list-menu__item link focus-inset"> 1946 <a href="/#常è¦åé¡" >常è¦åé¡</a> 1947 1948 1949 1950 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1951 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1952 </svg> 1953 1954 1955 1956 </summary> 1957 <ul class="header__submenu list-menu list-menu--dis
1957closure caption-large motion-reduce" role="list" tabindex="-1"> 1958 1959 1960 1961 1962 1963 <li> 1964 <a href="/a/contact-form" target="_blank" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1965 è¯çµ¡æå 1966 </a> 1967 </li> 1968 1969 1970 1971 1972 1973 <li> 1974 <a href="/pages/refund-policy" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1975 è³¼ç©é ç¥ 1976 </a> 1977 </li> 1978 1979 1980 1981 1982 1983 <li> 1984 <a href="https://www.chaolou.com.tw/blogs/news/-æé²éèï½å®ç¶²è³¼ç©æµç¨" target="_blank" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1985 è³¼ç©æµç¨ 1986 </a> 1987 </li> 1988 1989 1990 1991 1992 1993 <li> 1994 <a href="/pages/terms-of-service" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 1995 å¯é說æ 1996 </a> 1997 </li> 1998 1999 2000 </ul> 2001 </details> 2002 </details-disclosure> 2003 </li> 2004 2005 2006 2007 2008 <li> 2009 <a href="https://www.facebook.com/666fish" target="_blank" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 2010 æé²éèFBç²çµ²å 2011 </a> 2012 </li> 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 </ul> 2026 </nav> 2027 <div class="header__icons"> 2028 <details-modal class="header__search"> 2029 <details> 2030 <summary class="header__icon header__icon--search header__icon--summary link link--text focus-inset modal__toggle" aria-haspopup="dialog" aria-label="æå°"> 2031 <span> 2032 <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 2033 <use href="#icon-search"> 2034 </svg> 2035 <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 2036 <use href="#icon-close"> 2037 </svg> 2038 </span> 2039 </summary> 2040 <div class="search-modal modal__content" role="dialog" aria-modal="true" aria-label="æå°"> 2041 <div class="modal-overlay"></div> 2042 <div class="search-modal__content" tabindex="-1"> 2043 <form action="/search" method="get" role="search" class="search search-modal__form"> 2044 <div class="field"> 2045 <input class="search__input field__input" 2046 id="Search-In-Modal" 2047 type="search" 2048 name="q" 2049 value="" 2050 placeholder="æå°" 2051 autocomplete="off" 2052 > 2053 <label class="field__label" for="Search-In-Modal">æå°</label> 2054 <div class="dropdown" id="searchDropdown"></div> 2055 <input type="hidden" name="search_history" class="hidden_search_history"> 2056 <input type="hidden" name="options[prefix]" value="last"> 2057 <button class="search__button field__button" aria-label="æå°"> 2058 <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 2059 <use href="#icon-search"> 2060 </svg> 2061 </button> 2062 </div> 2063 </form> 2064 <button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="accessibility.close"> 2065 <svg class="icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 2066 <use href="#icon-close"> 2067 </svg> 2068 </button> 2069 </div> 2070 </div> 2071 </details> 2072 </details-modal> 2073 2074 2075 2076 <div class="header__icon header__icon--account link link--text focus-inset small-hide medium-hide" style="position: relative;"> 2077 <a href="/account/login" class="header__icon link link--text focus-inset p-2"> 2078 2079 2080 2081 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account " fill="none" viewBox="0 0 18 19"> 2082 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.
20821-3.67-1.35-6.17-1.35z" fill="currentColor"></path> 2083 </svg> 2084 2085 2086 2087 </a> 2088 2089 <!-- Referral Notification Popup for Desktop --> 2090 <div id="referralNotification" class="referral-notification" style="display: none;"> 2091 <button class="close-btn" onclick="dismissReferralNotification()">×</button> 2092 <div style="text-align: center; margin-bottom: 16px;"> 2093 <div style="width: 100px; height: 100px; margin: 0 auto;"> 2094 <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg"> 2095 </div> 2096 </div> 2097 <p id="referralSignupMessage" style="text-align: center; font-size: 14px; color: #666; margin: 0 0 20px 0;"> 2098 æ¨ç好å鿍 åé¥éï¼ç«å³è¨»åé åã 2099 </p> 2100 <div style="text-align: center;"> 2101 <button class="btn" onclick="goToSignupPage()" style="width: 100%;"> 2102 註å 2103 </button> 2104 </div> 2105 </div> 2106 </div> 2107 2108 2109 2110 <a href="/cart" class="header__icon header__icon--cart link link--text focus-inset" id="cart-icon-bubble"> 2111 2112 2113 2114 <svg class="icon icon-cart-empty " aria-hidden="true" focusable="false" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none"> 2115 <path d="m15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.78-11.61zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1 -9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z" fill="currentColor" fill-rule="evenodd"></path> 2116 </svg> 2117 2118 2119 2120 <div class="cart-count-bubble hidden"> 2121 <span aria-hidden="true" class="js-content-cart-count">0</span> 2122 </div> 2123 </a> 2124 2125 2126 2127 <!-- Referral Notification Modal for Mobile --> 2128 <details-modal class="referral-modal" id="referralMobileModal"> 2129 <details> 2130 <summary class="referral-modal__toggle" aria-haspopup="dialog" aria-label="Open referral modal" style="display: none;"> 2131 </summary> 2132 <div class="modal-overlay referral-modal-overlay"></div> 2133 <div class="referral-modal__dialog" role="dialog" aria-modal="true" aria-label="Referral notification"> 2134 <div class="referral-modal__content"> 2135 <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;"> 2136 × 2137 </button> 2138 2139 <div style="margin-bottom: 24px;"> 2140 <div style="width: 120px; height: 120px; margin: 0 auto 20px;"> 2141 <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg" style="width: 100%; height: 100%;"> 2142 </div> 2143 </div> 2144 2145 <p id="referralSignupMessageMobile" style="font-size: 16px; color: #333; margin: 0 0 30px 0; line-height: 1.5;"> 2146 æ¨ç好å鿍 åé¥éï¼ç«å³è¨»åé åã 2147 </p> 2148 2149 <button type="button" class="btn" onclick="goToSignupPageFromMobile()" style="width: 100%;"> 2150 註å 2151 </button> 2152 </div> 2153 </div> 2154 </details> 2155 </details-modal> 2156 2157 2158 </div> 2159 </header> 2160 </sticky-header> 2161 2162<cart-notification> 2163 <div class="cart-notification-wrapper page-width color-background-1"> 2164 <div id="cart-notification" class="cart-notification focus-inset" aria-modal="true" aria-label="å·²å å ¥è³¼ç©è»" role="dialog" tabindex="-1"> 2165 <div class="cart-notification__header"> 2166 <h2 class="cart-notification__heading caption-large"> 2167 2168 2169 <svg class="icon icon-checkmark color-foreground-text " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 9" fill="none"> 2170 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"></path> 2171 </svg> 2172 2173 2174 å·²å å ¥è³¼ç©è»</h2> 2175 <button type="button" class="cart-notification__close modal__close-button link link--text focus-inset" aria-label="accessibility.close"> 2176 2177 2178 2179 <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"> 2180 <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"> 2181 </path> 2182 </svg> 2183 2184 2185 2186 </button> 2187 </div> 2188 <div id="cart-notification-product" class="cart-notification-product"></div> 2189 <div class="cart-notification__links"> 2190 <a href="/cart" id="cart-notification-button" class="button button--secondary button--full-width">æ¥çè³¼ç©è» (<span class="js-content-cart-count">0</span>)</a> 2191 <form action="/cart" method="post" id="cart-notification-form"> 2192 <input type="hidden" name="_token" value="nTcbPpoIRjedbkd8lC64
21921VLjc1lghdEDxaJMzpHr"> 2193 <input type="hidden" name="current_currency" value=""> 2194 <button class="button button--primary button--full-width" name="checkout" value="true">çµå¸³</button> 2195 </form> 2196 <button type="button" class="link button-label">ç¹¼çºè³¼ç©</button> 2197 </div> 2198 </div> 2199 </div> 2200</cart-notification> 2201<style> 2202 .cart-notification { 2203 display: none; 2204 } 2205</style>
2206<script> 2207document.getElementById('cart-notification-form').addEventListener('submit',(event)=>{ 2208 if(event.submitter) event.submitter.classList.add('loading'); 2209}) 2210 2211</script>
2211 2212 2213</div> 2214 2215
2216<script> 2217 2218 class StickyHeader extends HTMLElement { 2219 constructor() { 2220 super(); 2221 } 2222 2223 connectedCallback() { 2224 this.header = document.getElementById('easystore-section-header'); 2225 this.headerBounds = {}; 2226 this.currentScrollTop = 0; 2227 this.preventReveal = false; 2228 2229 this.onScrollHandler = this.onScroll.bind(this); 2230 this.hideHeaderOnScrollUp = () => this.preventReveal = true; 2231 2232 this.addEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp); 2233 window.addEventListener('scroll', this.onScrollHandler, false); 2234 2235 this.createObserver(); 2236 } 2237 2238 disconnectedCallback() { 2239 this.removeEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp); 2240 window.removeEventListener('scroll', this.onScrollHandler); 2241 } 2242 2243 createObserver() { 2244 let observer = new IntersectionObserver((entries, observer) => { 2245 this.headerBounds = entries[0].intersectionRect; 2246 observer.disconnect(); 2247 }); 2248 2249 observer.observe(this.header); 2250 } 2251 2252 onScroll() { 2253 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 2254 2255 if (scrollTop > this.currentScrollTop && scrollTop > this.headerBounds.bottom) { 2256 requestAnimationFrame(this.hide.bind(this)); 2257 } else if (scrollTop < this.currentScrollTop && scrollTop > this.headerBounds.bottom) { 2258 if (!this.preventReveal) { 2259 requestAnimationFrame(this.reveal.bind(this)); 2260 } else { 2261 window.clearTimeout(this.isScrolling); 2262 2263 this.isScrolling = setTimeout(() => { 2264 this.preventReveal = false; 2265 }, 66); 2266 2267 requestAnimationFrame(this.hide.bind(this)); 2268 } 2269 } else if (scrollTop <= this.headerBounds.top) { 2270 requestAnimationFrame(this.reset.bind(this)); 2271 } 2272 2273 2274 this.currentScrollTop = scrollTop; 2275 } 2276 2277 hide() { 2278 this.header.classList.add('easystore-section-header-hidden', 'easystore-section-header-sticky'); 2279 this.closeMenuDisclosure(); 2280 // this.closeSearchModal(); 2281 } 2282 2283 reveal() { 2284 this.header.classList.add('easystore-section-header-sticky', 'animate'); 2285 this.header.classList.remove('easystore-section-header-hidden'); 2286 } 2287 2288 reset() { 2289 this.header.classList.remove('easystore-section-header-hidden', 'easystore-section-header-sticky', 'animate'); 2290 } 2291 2292 closeMenuDisclosure() { 2293 this.disclosures = this.disclosures || this.header.querySelectorAll('details-disclosure'); 2294 this.disclosures.forEach(disclosure => disclosure.close()); 2295 } 2296 2297 // closeSearchModal() { 2298 // this.searchModal = this.searchModal || this.header.querySelector('details-modal'); 2299 // this.searchModal.close(false); 2300 // } 2301 } 2302 2303 customElements.define('sticky-header', StickyHeader); 2304 2305 2306 class DetailsDisclosure extends HTMLElement{ 2307 constructor() { 2308 super(); 2309 this.mainDetailsToggle = this.querySelector('details'); 2310 // this.mainDetailsToggle.addEventListener('focusout', this.onFocusOut.bind(this)); 2311 this.mainDetailsToggle.addEventListener('mouseover', this.open.bind(this)); 2312 this.mainDetailsToggle.addEventListener('mouseleave', this.close.bind(this)); 2313 } 2314 2315 onFocusOut() { 2316 setTimeout(() => { 2317 if (!this.contains(document.activeElement)) this.close(); 2318 }) 2319 } 2320 2321 open() { 2322 this.mainDetailsToggle.setAttribute('open',1) 2323 } 2324 2325 close() { 2326 this.mainDetailsToggle.removeAttribute('open') 2327 } 2328 } 2329 2330 customElements.define('details-disclosure', DetailsDisclosure); 2331 2332 function clearAll() { 2333 localStorage.removeItem('searchHistory'); 2334 2335 var customer = ""; 2336 if(customer) { 2337 // Your logic to clear all data or call an endpoint 2338 fetch('/account/search_histories', { 2339 method: 'DELETE', 2340 headers: { 2341 "Content-Type": "application/json", 2342 "X-Requested-With": "XMLHttpRequest" 2343 }, 2344 body: JSON.stringify({
2345 _token: "nTcbPpoIRjedbkd8lC641VLjc1lghdEDxaJMzpHr" 2346 }), 2347 }) 2348 .then(response => response.json()) 2349 } 2350 } 2351 // End - delete search history from local storage 2352 2353 // search history dropdown 2354 var searchInputs = document.querySelectorAll('.search__input'); 2355 2356 if(searchInputs.length > 0) { 2357 2358 searchInputs.forEach((searchInput)=> { 2359 2360 searchInput.addEventListener('focus', function() { 2361 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 2362 searchDropdown.innerHTML = ''; // Clear existing items 2363 2364 // retrieve data from local storage 2365 var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || []; 2366 2367 // Convert JSON to string 2368 var search_history_json = JSON.stringify(searchHistoryData); 2369 2370 // Set the value of the hidden input 2371 searchInput.closest('form').querySelector(".hidden_search_history").value = search_history_json; 2372 2373 // create dropdown items 2374 var clearAllItem = document.createElement('div'); 2375 clearAllItem.className = 'dropdown-item clear-all'; 2376 clearAllItem.textContent = 'Clear'; 2377 clearAllItem.addEventListener('click', function() { 2378 clearAll(); 2379 searchDropdown.style.display = 'none'; 2380 searchInput.classList.remove('is-focus'); 2381 }); 2382 searchDropdown.appendChild(clearAllItem); 2383 2384 // create dropdown items 2385 searchHistoryData.forEach(function(item) { 2386 var dropdownItem = document.createElement('div'); 2387 dropdownItem.className = 'dropdown-item'; 2388 dropdownItem.textContent = item.term; 2389 dropdownItem.addEventListener('click', function() { 2390 searchInput.value = item.term; 2391 searchInput.closest('form').submit(); 2392 searchDropdown.style.display = 'none'; 2393 }); 2394 searchDropdown.appendChild(dropdownItem); 2395 }); 2396 2397 if(searchHistoryData.length > 0){ 2398 // display the dropdown 2399 searchInput.classList.add('is-focus'); 2400 document.body.classList.add('search-input-focus'); 2401 searchDropdown.style.display = 'block'; 2402 } 2403 }); 2404 2405 searchInput.addEventListener("focusout", (event) => { 2406 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 2407 searchInput.classList.remove('is-focus'); 2408 searchDropdown.classList.add('transparent'); 2409 setTimeout(()=>{ 2410 searchDropdown.style.display = 'none'; 2411 searchDropdown.classList.remove('transparent'); 2412 document.body.classList.remove('search-input-focus'); 2413 }, 400); 2414 }); 2415 }) 2416 } 2417 // End - search history dropdown 2418 2419 // referral notification popup 2420 const referralMessageTemplate = 'æ¨ç好å鿍 __CURRENCY_CODE__ __CREDIT_AMOUNT__ åé¥éï¼ç«å³è¨»åé åã'; 2421 const shopCurrency = 'NT$'; 2422 2423 function getCookie(name) { 2424 const value = `; ${document.cookie}`; 2425 const parts = value.split(`; ${name}=`); 2426 if (parts.length === 2) return parts.pop().split(';').shift(); 2427 return null; 2428 } 2429 2430 function removeCookie(name) { 2431 document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`; 2432 } 2433 2434 function removeCookie(name) { 2435 document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`; 2436 } 2437 2438 function showReferralNotification() { 2439 const referralCode = getCookie('customer_referral_code'); 2440 2441 2442 const customerReferralCode = null; 2443 2444 2445 const activeReferralCode = referralCode || customerReferralCode; 2446 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2447 2448 if (referralData.timestamp && referralData.expirationDays) { 2449 const expirationTime = referralData.timestamp + (referralData.expirationDays * 24 * 60 * 60 * 1000); 2450 if (Date.now() > expirationTime) { 2451 localStorage.removeItem('referral_notification_data'); 2452 return; 2453 } 2454 } 2455 2456 if (referralData.dismissed) return; 2457 2458 if (activeReferralCode) { 2459 if (referralData.creditAmount) { 2460 displayReferralNotification(referralData.creditAmount); 2461 } else { 2462 fetchReferralCampaignData(activeReferralCode); 2463 } 2464 } 2465 } 2466 2467 function fetchReferralCampaignData(referralCode) { 2468 fetch(`/customer/referral_program/campaigns/${referralCode}`) 2469 .then(response => { 2470 if (!response.ok) { 2471 throw new Error('Network response was not ok'); 2472 } 2473 return response.json(); 2474 }) 2475 .then(data => { 2476 let refereeCreditAmount = null; 2477 if (data.data.campaign && data.data.campaign.referral_rules) { 2478 const refereeRule = data.data.campaign.referral_rules.find(rule => 2479 rule.target_type === 'referee' && 2480 rule.event_name === 'customer/create' && 2481 rule.entitlement && 2482 rule.entitlement.type === 'credit' 2483 ); 2484 2485 if (refereeRule) { 2486 refereeCreditAmount = refereeRule.entitlement.amount; 2487 } 2488 } 2489 2490 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2491 referralData.creditAmount = refereeCreditAmount; 2492 referralData.dismissed = referralData.dismissed || false; 2493 referralData.timestamp = Date.now(); 2494 referralData.expirationDays = 3; 2495 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2496 2497 displayReferralNotification(refereeCreditAmount); 2498 }) 2499 .catch(error => { 2500 removeCookie('customer_referral_code'); 2501 }); 2502 } 2503 2504 function displayReferralNotification(creditAmount = null) { 2505 const isMobile = innerWidth <= 749; 2506 2507 if (isMobile) { 2508 const mobileModal = document.querySelector('#referralMobileModal details'); 2509 const mobileMessageElement = document.getElementById('referralSignupMessageMobile'); 2510 2511 if (mobileModal && mobileMessageElement) { 2512 if (creditAmount) {
2513 const finalMessage = referralMessageTemplate 2514 .replace('__CREDIT_AMOUNT__', creditAmount) 2515 .replace('__CURRENCY_CODE__', shopCurrency); 2516 2517 mobileMessageElement.textContent = finalMessage; 2518 } 2519 2520 mobileModal.setAttribute('open', ''); 2521 } 2522 } else { 2523 const notification = document.getElementById('referralNotification'); 2524 2525 if (notification) { 2526 if (creditAmount) { 2527 const messageElement = document.getElementById('referralSignupMessage'); 2528 if (messageElement) { 2529 const finalMessage = referralMessageTemplate 2530 .replace('__CREDIT_AMOUNT__', creditAmount) 2531 .replace('__CURRENCY_CODE__', shopCurrency); 2532 2533 messageElement.textContent = finalMessage; 2534 } 2535 } 2536 2537 notification.style.display = 'block'; 2538 } 2539 } 2540 } 2541 2542 showReferralNotification(); 2543 2544 addEventListener('beforeunload', function() { 2545 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2546 2547 if (referralData.creditAmount !== undefined) { 2548 referralData.creditAmount = null; 2549 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2550 } 2551 }); 2552 2553 function closeReferralNotification() { 2554 const notification = document.getElementById('referralNotification'); 2555 if (notification) { 2556 notification.style.display = 'none'; 2557 } 2558 } 2559 2560 function dismissReferralNotification() { 2561 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2562 2563 referralData.dismissed = true; 2564 referralData.timestamp = referralData.timestamp || Date.now(); 2565 referralData.expirationDays = referralData.expirationDays || 3; 2566 2567 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2568 2569 closeReferralNotification(); 2570 } 2571 2572 function goToSignupPage() { 2573 location.href = '/account/register'; 2574 dismissReferralNotification(); 2575 } 2576 2577 function closeMobileReferralModal() { 2578 const mobileModal = document.querySelector('#referralMobileModal details'); 2579 if (mobileModal) { 2580 mobileModal.removeAttribute('open'); 2581 } 2582 2583 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2584 referralData.dismissed = true; 2585 referralData.timestamp = referralData.timestamp || Date.now(); 2586 referralData.expirationDays = referralData.expirationDays || 3; 2587 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2588 } 2589 2590 function goToSignupPageFromMobile() { 2591 location.href = '/account/register'; 2592 closeMobileReferralModal(); 2593 } 2594 // End - referral notification popup 2595</script>
2595 2596 2597 2598 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
vendor: 81 bytes, lines 2598-2601
2598 2599 2600 2601<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=
26016LdMNdIqAAAAALegJp7y4weVcCIlnwmIN8TWseEF
vendor: 12 bytes, line 2601
2601"></script>
2602<link rel="preload" href="https://store-themes.easystore.co/1255243/themes/49034/assets/customer.css?t=1788507686" as="style" onload="this.onload=null;this.rel='stylesheet'"> 2603<style> 2604 main.main-content .field > label{ 2605 display: none; 2606 } 2607 .h3{ 2608 font-size: 18px; 2609 } 2610 .button--full-width{ 2611 width: 100%; 2612 } 2613 .tab-wrapper{ 2614 display: inline-flex; 2615 justify-content: center; 2616 align-items: center; 2617 margin: 10px auto 20px; 2618 background-color: #eaeaea; 2619 border-radius: 200px; 2620 padding: 5px; 2621 gap: 10px; 2622 } 2623 .tab-wrapper .tab-label { 2624 display: inline-block; 2625 min-width: 130px; 2626 padding: 8px 15px; 2627 border-radius: 100px; 2628 cursor: pointer; 2629 font-size: 17px; 2630 line-height: 1.1; 2631 user-select: none; 2632 margin: 0; 2633 color: #000; 2634 } 2635 #register-tos a { 2636 display: inline; 2637 } 2638 @media screen and (max-width: 400px){ 2639 .tab-wrapper .tab-label { 2640 min-width: 110px; 2641 } 2642 } 2643 .tab-wrapper input[type='radio']:checked + .tab-label { 2644 background-color: #fff; 2645 box-shadow: 2px 2px 25px -10px #333; 2646 } 2647 2648 @media screen and (min-width: 500px){ 2649 .large--five-twelfths{ 2650 min-width: 420px; 2651 } 2652 } 2653</style> 2654 2655 2656 2657 2658<div class="customer login section-width-control small-width large--five-twelfths text-center wrapper"> 2659 <div class="card"> 2660 <h1 id="login" tabindex="-1" class="mb-0"> 2661 æ¡è¿ 2662 </h1> 2663 <p class="h3 mt-0"> 2664 2665 註åæç»å ¥ä»¥ç¹¼çº 2666 2667 </p> 2668 <div> 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 <div class="tab-wrapper"> 2687 <div> 2688 <input type="radio" name="type" id="tab-register" class="hide hidden" checked> 2689 <label for="tab-register" class="tab-label"> 2690 註å帳è 2691 </label> 2692 </div> 2693 <div> 2694 <input type="radio" name="type" id="tab-login" class="hide hidden"> 2695 <label for="tab-login" class="tab-label"> 2696 ç»å ¥ 2697 </label> 2698 </div> 2699 </div> 2700 2701 2702 <form id="form-login" action="/account/auth" method="post" class="mt-2"> 2703 <input type="hidden" name="_token" value="nTcbPpoIRjedbkd8lC641VLjc1lghdEDxaJMzpHr"> 2704 <input type="hidden" name="location_id" value=""> 2705 <input type="hidden" name="staff_id" value=""> 2706 <input type="hidden" id="recaptchaResponse" name="g-recaptcha-response"> 2707 2708 2709 <div id="error-content"></div> 2710 2711 <div class="field"> 2712 <input 2713 type="text" 2714 name="customer[email_or_phone]" 2715 id="CustomerDetail" 2716 autocorrect="off" 2717 autocapitalize="off" 2718 placeholder="é»åéµä»¶å°å" 2719 required 2720 > 2721 <label for="CustomerDetail"> 2722 é»åéµä»¶å°å 2723 </label> 2724 </div> 2725 2726 <button 2727 type="submit" 2728 form="form-login" 2729 class="btn button--full-width g-recaptcha"> 2730 ç¹¼çº 2731 </button> 2732 2733 <div class="button-snippet"> 2734 2735<!-- Snippet:login/button: Facebook Login --> 2736 <style> 2737 #fb-login-btn.btn{ 2738 background-color: #fff; 2739 color: #000; 2740 padding: 0; 2741 overflow: hidden; 2742 display: flex; 2743 justify-content: center; 2744 align-items: center; 2745 width: 100%; 2746 margin: 15px auto; 2747 font-size: 14px; 2748 border: 1px solid currentColor; 2749 box-shadow: none; 2750 } 2751 #fb-login-btn.btn:hover{ 2752 background-color: #fff; 2753 } 2754 #fb-login-btn.btn svg{ 2755 width: 45px; 2756 vertical-align: middle; 2757 padding: 5px; 2758 } 2759 #fb-login-btn.btn .fb-login-text{ 2760 padding: 13px 75px 13px 30px; 2761 display: inline-block; 2762 width: calc(100% - 52px); 2763 } 2764 @media screen and (max-width: 500px) { 2765 #fb-login-btn.btn .fb-login-text{ 2766 padding: 13px 25px 13px 8px; 2767 font-size: 13px; 2768 } 2769 } 2770 </style> 2771 <button id="fb-login-btn" type="button" class="btn" onclick="fb_login()" style="background-color: #fff; color: #000; font-weight: normal;"> 2772 <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
277215.66v91.68h61.87V641.17a301.61,301.61,0,0,0,108.82,6.63V441.68Z" fill="#fff"/></g></svg> 2773 <span class="fb-login-text">以 Facebook 帳èç¹¼çº</span> 2774 </button> 2775 2776
2776<script> 2777 function fb_login(){ 2778 location.href = 'https://apps.easystore.co/facebook-login/run?domain='+window.location.protocol+'//'+window.location.hostname+'&shop=666fish.easy.co'; 2779 } 2780 </script>
2780 2781<!-- /Snippet --> 2782 2783 </div> 2784 2785 2786 2787 <div id="register-tos"> 2788 䏿¦é»æè¨»åï¼å³è¡¨ç¤ºä½ åææé²éèç <a target="_blank" href="/legal/privacy-policy">é±ç§æ¿ç</a>, <a target="_blank" href="/legal/refund-policy">è³¼ç©é ç¥</a> å <a target="_blank" href="/legal/terms-of-service">å¯é說æ</a>ã 2789 </div> 2790 2791 </form> 2792 </div> 2793 </div> 2794 2795</div> 2796 2797 2798
2799<script> 2800 const register_tab = document.querySelector('#tab-register'); 2801 const login_tab = document.querySelector('#tab-login'); 2802 const register_tos = document.querySelector('#register-tos'); 2803 const isRegistrationEnabled = "1"; 2804 2805 if (register_tab) { 2806 register_tab.addEventListener('click', function() { 2807 if (register_tos) { 2808 register_tos.style.display = 'block'; 2809 } 2810 }); 2811 } 2812 if (login_tab) { 2813 login_tab.addEventListener('click', function() { 2814 if (register_tos) { 2815 register_tos.style.display = 'none'; 2816 } 2817 }); 2818 } 2819 2820 const methodSwitchBtn = document.getElementById('phone-login-btn'); 2821 if (methodSwitchBtn) { 2822 methodSwitchBtn.onclick = function () { 2823 var type = (register_tab && register_tab.checked) ? 'register' : 'login'; 2824 window.location.href = '/account/login?method=phone&type=' + type; 2825 }; 2826 } 2827 2828 let lastPathSegment = window.location.pathname.split('/').filter(segment => segment.length > 0).pop(); 2829 2830 // Redirect to login if trying to access register when self registration is disabled 2831 if (!isRegistrationEnabled) { 2832 if (lastPathSegment === 'register') { 2833 window.location.href = '/account/login'; 2834 } else if (lastPathSegment === 'login' || lastPathSegment === 'auth') { 2835 if (register_tos) { 2836 register_tos.style.display = 'none'; 2837 } 2838 } 2839 } else { 2840 // Only proceed with tab logic if not redirecting 2841 if(lastPathSegment === 'login') { 2842 if (login_tab) { 2843 login_tab.checked = true; 2844 } 2845 if (register_tos) { 2846 register_tos.style.display = 'none'; 2847 } 2848 } else { 2849 if (register_tos) { 2850 register_tos.style.display = 'block'; 2851 } 2852 } 2853 } 2854 2855 const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; 2856 const phonePattern = /^(?:\+?\d{1,3}[\s-]?)?(?:\d{1,14}[\s-]?){1,5}$/; 2857 2858 let form = document.querySelector('#form-login'), 2859 input = document.querySelector('#CustomerDetail'), 2860 error_content = document.querySelector('#error-content'); 2861 2862 2863 // One attempt at a time: the reCAPTCHA wait below is async, so without 2864 // this a double-click starts two continuations and posts the form twice. 2865 var submitting = false; 2866 2867 form.addEventListener('submit', async function (event) { 2868 // preventDefault FIRST: a re-entrant submit must still be cancelled, or the 2869 // browser performs a native post with no captcha token. 2870 event.preventDefault(); 2871 if (submitting) return; 2872 2873 let input_value = input.value 2874 error_content.innerHTML = ''; 2875 if (!input_value.match(emailPattern) && !input_value.match(phonePattern)) { 2876 error_content.innerHTML = `<div class="errors note">Invalid Email or Phone</div>`; 2877 return false; 2878 } 2879 2880 submitting = true; 2881 document.querySelector('#form-login .btn').classList.add('btn--loading','loading'); 2882 2883 // reCAPTCHA is unreachable from some regions (google.com is blocked in 2884 // mainland China). Fail open the same way checkout and forgot-password do: 2885 // submit without a token rather than leave the button spinning forever. 2886 try { 2887 if (window.grecaptcha && typeof window.grecaptcha.enterprise === 'object') { 2888 // The loader defines a stub {ready} synchronously and fetches the real 2889 // implementation asynchronously, so execute() may not exist yet. 2890 // ready() queues until it does; the timeout stops a bundle that never 2891 // arrives from hanging the button. 2892 await new Promise(function (resolve) { 2893 setTimeout(resolve, 3000); 2894 try { grecaptcha.enterprise.ready(resolve); } catch (e) { resolve(); } 2895 }); 2896 2897 const token = await grecaptcha.enterprise.execute('6LdMNdIqAAAAALegJp7y4weVcCIlnwmIN8TWseEF', { action: 'LOGIN' }); 2898 document.getElementById('recaptchaResponse').value = token; 2899 } 2900 } catch (e) { /* fail open */ } 2901 2902 document.getElementById('form-login').submit(); 2903 }); 2904 2905 2906</script>
2906 2907 2908 2909 </main> 2910 <style> 2911 .footer{ 2912 background-color: #FFFFFF; 2913 color: #484848; 2914 } 2915 .footer .link--text, 2916 .footer .list-menu__item--link, 2917 .footer .footer-block__details-content .list-menu__item--link{ 2918 color: #484848; 2919 } 2920 .footer-block__heading{ 2921 color: #000000; 2922 } 2923</style> 2924 2925<link rel="preload" href="https://store-themes.easystore.co/1255243/themes/49034/assets/section-footer.css?t=1788507686" as="style" onload="this.onload=null;this.rel='stylesheet'"> 2926 2927<footer class="footer color-background-1"> 2928 <div class="footer__content-top page-width"> 2929 <div class="grid grid--1-col grid--4-col-tablet "> 2930 2931 2932 2933 <div class="grid__item"> 2934 2935 <h2 class="footer-block__heading">æé²éè</h2> 2936 <div class="footer-block__details-content"> 2937 <p>ç±å±æç鮮伿¥è¡ä»½æéå ¬å¸åµç«çé¶å®åçï¼ çµ±ç·¨ï¼96869252 ãå°ç£é¦åµéé®®è¡ç12é管çå·¥æ³ï¼ åå § CASèªèåæ ¼å·¥å» ï¼è®æ¨è²·çæ¾å¿ãåçå®å¿!</p> 2938 </div> 2939 <ul class="footer__list-social list-unstyled list-social" role="list"> 2940 2941 2942 <li class="list-social__item"> 2943 <a href="https://www.facebook.com/666fish" class="link link--text list-social__link"> 2944 2945 2946 2947 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook " 2948 viewBox="0 0 18 18"> 2949 <path fill="currentColor" 2950 d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z"> 2951 </path> 2952 </svg> 2953 2954 2955 2956 </a> 2957 </li> 2958 2959 2960 <li class="list-social__item"> 2961 <a href="https://www.instagram.com/chaolou.service/" class="link link--text list-social__link"> 2962 2963 2964 2965 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram " 2966 viewBox="0 0 18 18"> 2967 <path fill="currentColor" 2968 d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z"> 2969 </path> 2970 <path fill="currentColor" 2971 d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z"> 2972 </path> 2973 </svg> 2974 2975 2976 2977 </a> 2978 </li> 2979 2980 2981 2982 2983 <li class="list-social__item"> 2984 <a href="https://lin.ee/tPF6u1K " class="link link--text list-social__link"> 2985 2986 2987 2988 <svg class="icon icon-line-footer " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M375,.5C168.17.5.5,168.17.5,375S168.17,749.5,375,749.5,749.5,581.83,749.5,375,581.83.5,375,.5ZM570.75,476.9
29881C518.48,537.06,401.6,610.33,375,621.53s-22.66-7.13-21.57-13.42c.63-3.76,3.55-21.33,3.55-21.33.83-6.36,1.66-16.23-.83-22.52-2.81-7-13.83-10.54-21.95-12.29C214.51,536.14,125.9,452.45,125.9,352.53,125.9,241,237.64,150.38,375,150.38s249.1,90.68,249.1,202.15h0C624.14,397.14,606.85,437.32,570.75,476.91Z"/><polygon points="324.38 298.65 324.38 298.65 324.38 298.65 324.38 298.65"/><path d="M324.38,298.65H306.91a4.86,4.86,0,0,0-4.86,4.85V412a4.86,4.86,0,0,0,4.86,4.85h17.47a4.86,4.86,0,0,0,4.85-4.85V303.5A4.86,4.86,0,0,0,324.38,298.65Z"/><path d="M444.67,298.65h-17.5a4.85,4.85,0,0,0-4.85,4.85V368l-49.73-67.17a4.57,4.57,0,0,0-.38-.49,2.76,2.76,0,0,0-.29-.3l-.09-.09a2.65,2.65,0,0,0-.26-.21l-.12-.1-.25-.18-.15-.08-.26-.14-.15-.08-.28-.12-.16,0-.28-.1-.18,0-.27-.06H351.08a4.85,4.85,0,0,0-4.85,4.84V412a4.85,4.85,0,0,0,4.85,4.85h17.48a4.85,4.85,0,0,0,4.85-4.85V347.54l49.81,67.26a5.15,5.15,0,0,0,1.22,1.2h.06l.29.18.14.07.24.12.23.1.15,0,.32.11H426a4.69,4.69,0,0,0,1.24.16h17.48a4.85,4.85,0,0,0,4.86-4.84h0V303.5A4.87,4.87,0,0,0,444.67,298.65Z"/><path d="M282.26,389.67h0l0,0H234.79V303.5a4.85,4.85,0,0,0-4.83-4.85H212.47a4.84,4.84,0,0,0-4.85,4.84h0V412a4.74,4.74,0,0,0,1.35,3.32.27.27,0,0,0,.07.08l.07.07a4.81,4.81,0,0,0,3.33,1.35h69.81a4.84,4.84,0,0,0,4.84-4.84h0V394.52A4.84,4.84,0,0,0,282.26,389.67Z"/><path d="M541.16,371.34a4.85,4.85,0,0,0,4.85-4.85h0V349a4.85,4.85,0,0,0-4.84-4.85H493.72V325.84l47.42,0A4.83,4.83,0,0,0,546,321V303.5a4.85,4.85,0,0,0-4.84-4.86H471.34A4.81,4.81,0,0,0,468,300l-.05.05-.08.09a4.82,4.82,0,0,0-1.34,3.33V412a4.77,4.77,0,0,0,1.35,3.33l.07.07.07.07a4.8,4.8,0,0,0,3.32,1.36h69.81A4.85,4.85,0,0,0,546,412h0V394.5a4.85,4.85,0,0,0-4.84-4.85H493.72V371.34Z"/></svg> 2989 2990 2991 2992 </a> 2993 </li> 2994 2995 2996 2997 2998 </ul> 2999 3000 </div> 3001 3002 3003 3004 <div class="grid__item"> 3005 3006 <h2 class="footer-block__heading"> 3007 åºé¢å°åèå°èª 3008 </h2> 3009 <ul class="footer-block__details-content list-unstyled"> 3010 3011 <li> 3012 <a href="/store-locator" class="link link--text list-menu__item list-menu__item--link"> 3013 âï¸æé²éèåºé¢å°å : é²æç¸£æå 叿工å è·¯å è |客æå°ç·ï¼05-5575989 #122 |客訴å°ç·ï¼05-5575989 #510 |ä¸çæéï¼W1~W5 8:00~12:00,13:00~17:00 3014 </a> 3015 </li> 3016 3017 <li> 3018 <a href="/a/contact-form" target="_blank" class="link link--text list-menu__item list-menu__item--link"> 3019 ð¬è«ææ¤è¯çµ¡æå 3020 </a> 3021 </li> 3022 3023 <li> 3024 <a href="https://www.js-fish.com.tw" target="_blank" class="link link--text list-menu__item list-menu__item--link"> 3025 ðææ¤åå¾å±æç鮮伿¥è¡ä»½æéå ¬å¸ 3026 </a> 3027 </li> 3028 3029 3030 </ul> 3031 3032 </div> 3033 3034 </div> 3035 </div> 3036 <div class="footer__content-bottom"> 3037 <div class="footer__content-bottom-wrapper page-width"> 3038 <div class="footer__column footer__column--info"> 3039 3040 3041 3042 3043 <div class="footer__payment"> 3044 <ul class="list list-payment" role="list"> 3045 3046 3047 3048 3049 3050 3051 </ul> 3052 </div> 3053 3054 <div class="footer__payment"> 3055 <ul class="list list-payment" role="list"> 3056 3057 <li class="list-payment__item"> 3058 <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_bank-transfer.svg" alt="payment_bank-transfer" loading="lazy" width="85px"> 3059 </li> 3060 3061 <li class="list-payment__item"> 3062 <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_linepay.svg" alt="payment_linepay" loading="lazy" width="85px"> 3063 </li> 3064 3065 <li class="list-payment__item"> 3066 <img src="https://s3.dualstack.ap-southeast-1.amazonaws.com/eesb.public/images/payment/payments_newebpay.svg" alt="payment_newebpay" loading="lazy" width="85px"> 3067 </li> 3068 3069 </ul> 3070 </div> 3071
3072 <div class="footer__copyright caption"> 3073 <div class="copyright__content">© 2026 æé²éè. Powered by <a href="http://www.easystore.co/?utm_source=storefront&utm_medium=sf_ref_footer&utm_campaign=sf_ref">EasyStore</a></div> 3074 </div> 3075 3076 <div class="footer__copyright caption"> 3077 3078 <div> 3079 3080 3081 3082 <a href="/legal/privacy-policy">é±ç§æ¿ç</a> 3083 3084 3085 3086 3087 | <a href="/legal/refund-policy">è³¼ç©é ç¥</a> 3088 3089 3090 3091 3092 | <a href="/legal/terms-of-service">å¯é說æ</a> 3093 3094 3095 3096 </div> 3097 3098 </div> 3099 3100 </div> 3101 </div> 3102 </div> 3103</footer> 3104 3105 3106 3107 3108 3109
3109<script> 3110 EasyStore.Currencies.init([{"name":"New Taiwan Dollar","code":"TWD","rate":"1.0","format_prefix":"NT$","format_suffix":"TWD","format_decimals":0,"thousand_separator":",","is_primary":true}], 1) 3111</script>
3111 3112 3113 3114 3115
3115<script> 3116 let page_template = 'customers'; 3117 3118 if(document.querySelector('.currency-picker')) { 3119 EasyStore.Currencies.change(document.querySelector('.currency-picker').value) 3120 EasyStore.Currencies.convertAll() 3121 } 3122 3123 document.querySelectorAll('.currency-picker').forEach((el)=>{ 3124 el.addEventListener('change',(event)=>{ 3125 EasyStore.Currencies.change(event.target.value) 3126 3127 3128 if (page_template == 'cart') { 3129 const params = new URLSearchParams(window.location.search); 3130 params.set('delete_cache', 1); 3131 window.location.search = params; 3132 } else { 3133 window.location.reload(); 3134 } 3135 3136 return 3137 3138 3139 document.querySelectorAll('[name=currencies],[name=current_currency]').forEach((el)=>{ 3140 el.value = event.target.value 3141 }) 3142 3143 if(page_template == 'cart') location.reload(); 3144 }) 3145 }) 3146 </script>
3146 3147 3148 3149 3150 3151
3151<script> 3152 3153 window.variantStrings = { 3154 addToCart: `å å ¥è³¼ç©è»`, 3155 soldOut: `<span style='font-size:14px;'>å®å®</span>`, 3156 unavailable: `æ«ç¡ä¾æ`, 3157 } 3158 3159 window.accessibilityStrings = { 3160 shareSuccess: `éæ¥å·²å¾©è£½å°åªè²¼æ¿`, 3161 } 3162 </script>
3162 3163
3163<script> 3164 3165 /* 3166 3167 ------ 3168 Events 3169 ------ 3170 3171 pages/viewed 3172 3173 customers/signup 3174 3175 customers/login 3176 3177 products/searched 3178 3179 collections/viewed 3180 3181 products/viewed 3182 3183 products/shared 3184 3185 wishlists/item_added 3186 3187 carts/items_added 3188 3189 carts/viewed 3190 3191 carts/item_removed 3192 3193 checkouts/initiated 3194 3195 checkouts/shipping_info_added 3196 3197 checkouts/payment_info_added 3198 3199 checkouts/completed 3200 3201 orders/placed 3202 3203 orders/purchased 3204 3205 payments/captured 3206 3207 payments/failed 3208 3209 */ 3210 3211 window.__latest_cart = window.__latest_cart || null; 3212 3213 const _selector = document.querySelector.bind(document), 3214 _selectorAll = document.querySelectorAll.bind(document) 3215 3216 document.addEventListener('DOMContentLoaded', (event) => { 3217 3218 const default_currency = getCookie("currency") 3219 const customer_id = window.__st.cid 3220 const template = window.__st.p 3221 3222 onPageView() 3223 3224 //-----------------------// 3225 // Configs // 3226 //-----------------------// 3227 3228 window.dataLayer = window.dataLayer || [] 3229 3230 Array.prototype.last = Array.prototype.last || function() { 3231 return this[this.length - 1] || null 3232 } 3233 3234 Array.prototype.first = Array.prototype.first || function() { 3235 return this[0] || null 3236 } 3237 3238 //----------------------// 3239 // Triggers // 3240 //----------------------// 3241 3242 const XHR = window.XMLHttpRequest 3243 3244 function xhr() { 3245 3246 const xhr = new XHR() 3247 3248 xhr.addEventListener("readystatechange", function() { 3249 3250 if(xhr.readyState != 4) return 3251 3252 try { 3253 3254 const response_url = xhr.responseURL 3255 3256 if (response_url.includes("cart/add")) { 3257 3258 window.__latest_cart = JSON.parse(xhr.response) 3259 3260 onCartItemsAdded() // ok 3261 3262 } 3263 3264 if (response_url.includes("cart/remove_item_quantity")) { 3265 3266 window.__latest_cart = JSON.parse(xhr.response) 3267 3268 onCartItemRemoved() // ok 3269 3270 } 3271 3272 if (response_url.includes("new_cart?retrieve=true")) { 3273 3274 result = JSON.parse(xhr.response) 3275 3276 if (result.cart) { 3277 window.__latest_cart = result.cart 3278 } 3279 3280 } 3281 3282 } catch(e) { 3283 3284 console.error(e) 3285 3286 } 3287 3288 }, false); 3289 3290 return xhr 3291 3292 } 3293 3294 window.XMLHttpRequest = xhr 3295 3296 switch(template) { 3297 3298 case 'cart': onCartView() // ok 3299 break 3300 case 'product': onProductView() // ok 3301 break 3302 case 'collection': onCollectionView() // ok 3303 break 3304 case 'blog': onBlogView() 3305 break 3306 case 'article': onArticleView() 3307 break 3308 case 'payment_completed': onOrderPlace() 3309 break 3310 case 'payment_fail': onPaymentFail() 3311 break 3312 3313 } 3314 3315 // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]'))) 3316 if (_selector('form[action="/checkout/detail"]')) _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))}) // ok 3317 if (_selector('form[action="/checkout/shipping"]')) _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))}) // ok 3318 if (_selector('form[action="/account/register"]')) _selector('form[action="/account/register"]').addEventListener("submit", onSignUp) // ok 3319 if (_selector('form[action="/account/login"]')) _selector('form[action="/account/login"]').addEventListener("submit", onLogin) // ok 3320 if (_selector('form[action="/search"]')) _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok 3321 if (_selector('#line-login-btn')) _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok 3322 if (_selector('#PlaceOrder')) _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))}); // ok 3323 if (_selector('#add_wishlist')) _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok 3324 if (_selectorAll('a[href="/account/logout"]')) _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok 3325 if (_selector('.CartDrawerTrigger.cart-page-link')) _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok 3326 if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link')) _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok 3327 if (_selectorAll('a[class^="share-"]')) _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok 3328 if (_selectorAll('[name$="checkout"]')) _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate)) 3329 3330 // For append elements 3331 const bodyMutationObserver = new MutationObserver(() => { 3332 if (_selector('#form__spc #PlaceOrder')) _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok 3333 if (_selectorAll('[name$="checkout"]')) _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate)) 3334 }); 3335 bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true}); 3336 3337 //------------------------------// 3338 // Event handlers // 3339 //------------------------------// 3340 3341 function onPageView() { 3342 3343 EasyStore.Event.dispatch('pages/viewed', { 3344 page: { 3345 type: template, 3346 title: document.title, 3347 description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null, 3348 url: location.href, 3349 } 3350 }) 3351 3352 } 3353 3354 function onSignUp() { 3355 3356 const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/) 3357 const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/) 3358 3359 const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "") 3360 3361 let data = {} 3362 3363 if (email_regex.test(email_or_phone)) { 3364 data.method = 'email' 3365 data.email = email_or_phone 3366 } 3367 3368 if (phone_regex.test(email_or_phone)) { 3369 data.method = "phone" 3370 data.phone = email_or_phone 3371 } 3372 3373 if (!data.method) return 3374 3375 EasyStore.Event.dispatch('customers/signup', data) 3376 3377 } 3378 3379 function onLogin() { 3380 3381 const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/) 3382 const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/) 3383 3384 const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "") 3385 3386 let data = {} 3387 3388 if (email_regex.test(email_or_phone)) { 3389 data.method = 'email' 3390 data.email = email_or_phone 3391 } 3392 3393 if (phone_regex.test(email_or_phone)) { 3394 data.method = "phone" 3395 data.phone = email_or_phone 3396 } 3397 3398 if (!data.method) return 3399 3400 EasyStore.Event.dispatch('customers/login', data) 3401 3402 } 3403 3404 function onLineLogin() { 3405 3406 EasyStore.Event.dispatch('customers/login', { method: 'line' }) 3407 3408 } 3409 3410 function onLogout() { 3411 3412 EasyStore.Event.dispatch('customers/logout', { customer_id }) 3413 3414 } 3415 3416 function onBlogView() { 3417 3418 const blog = "" 3419 3420 EasyStore.Event.dispatch('blogs/viewed', { blog }) 3421 3422 } 3423 3424 function onArticleView() { 3425 3426 const article = "" 3427 3428 EasyStore.Event.dispatch('articles/viewed', { article }) 3429 3430 } 3431 3432 function onProductSearch() { 3433 3434 const query = _selector('input[name=q]').value 3435 3436 if (!query) return 3437 3438 EasyStore.Event.dispatch('products/searched', { query }) 3439 3440 } 3441 3442 function onCollectionView() { 3443 3444 const collection = "" 3445 3446 EasyStore.Event.dispatch('collections/viewed', { collection }) 3447 3448 } 3449 3450 function onProductView() { 3451 3452 const product = "" 3453 3454 EasyStore.Event.dispatch("products/viewed", { product }) 3455 3456 } 3457 3458 function onProductShare(el) { 3459 3460 const product = "" 3461 3462 const channel = el.getAttribute("class").split("-").last() 3463 3464 EasyStore.Event.dispatch('products/shared', { product, channel }) 3465 3466 } 3467 3468 function onWishlistItemAdded() { 3469 3470 let product = "" 3471 const quantity = _selector("#Quantity").value 3472 3473 EasyStore.Event.dispatch('wishlists/item_added', { product }) 3474 3475 } 3476 3477 async function onCartItemsAdded() { 3478 3479 const cart = await getCart() 3480 3481 if(cart && cart.items != undefined && cart.items.length > 0) { 3482 3483 EasyStore.Event.dispatch('carts/item_added', { cart }) 3484 3485 } 3486 3487 } 3488 3489 async function onCartView() { 3490 3491 const cart = await getCart() 3492 3493 EasyStore.Event.dispatch('carts/viewed', { cart }) 3494 3495 } 3496 3497 async function onCartItemRemoved() { 3498 3499 const cart = await getCart() 3500 3501 cart.items = [] 3502 3503 if(cart) { 3504 3505 EasyStore.Event.dispatch('carts/item_removed', { cart }) 3506 3507 } 3508 3509 } 3510 3511 async function onCheckoutInitiate() { 3512 3513 const cart = await getCart() 3514 3515 EasyStore.Event.dispatch('checkouts/initiated', { cart }) 3516 3517 } 3518 3519 async function onShippingInfoAdded(form) { 3520 let checkout = getCheckout() 3521 3522 let form_data = {} 3523 new FormData(form).forEach((value, key) => form_data[key] = value) 3524 3525 let shipping_tier = null 3526 3527 if (form_data.type && form_data.type.startsWith("r_pickup")) { 3528 shipping_tier = `Pickup - ${form_data.pick_location}` 3529 } 3530 3531 if (form_data.s_id) {
3532 shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name") 3533 } 3534 3535 if (!shipping_tier) return 3536 3537 EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier }) 3538 3539 } 3540 3541 async function onPaymentInfoAdded(form) { 3542 3543 let checkout = getCheckout() 3544 3545 let payment_type = new FormData(form).get('payment_method') 3546 3547 EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type }) 3548 3549 } 3550 3551 async function onOrderPlace() { 3552 3553 let cart_token = getCookie("cart_js") 3554 let previous_cart_token = getCookie("previous_cart_ga4_js") 3555 3556 if (previous_cart_token && previous_cart_token == cart_token) { 3557 // Prevent duplicate purchase tracking 3558 return 3559 } 3560 3561 let order = getOrder() 3562 3563 EasyStore.Event.dispatch('orders/placed', { order }) 3564 3565 if(order.is_manual_payment) { 3566 3567 EasyStore.Event.dispatch('orders/purchased', { order }) 3568 3569 } 3570 3571 const last_transaction = order.transactions.last() 3572 3573 if (last_transaction.status) { 3574 3575 EasyStore.Event.dispatch('orders/purchased', { order }) 3576 EasyStore.Event.dispatch('payments/captured', { order }) 3577 3578 } 3579 3580 } 3581 3582 async function onPaymentFail() { 3583 3584 const order = getOrder() 3585 3586 EasyStore.Event.dispatch('payments/failed', { order }) 3587 3588 } 3589 3590 async function onCheckoutComplete(form) { 3591 3592 onPaymentInfoAdded(form) 3593 3594 const checkout = getCheckout() 3595 3596 EasyStore.Event.dispatch('checkouts/completed', { checkout }) 3597 3598 } 3599 3600 async function onSinglePageCheckout() { 3601 3602 // let checkout = $("[data-app-checkout]").data("app-checkout") 3603 3604 let checkout = getCheckout() 3605 3606 // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text() 3607 const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML 3608 3609 const shipping_method = _selector("#delivery_method").value 3610 3611 let shipping_tier = null 3612 let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content') 3613 if (shipping_method == "shipping") { 3614 shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML 3615 } 3616 3617 if (shipping_method == "pickup") { 3618 shipping_tier = app_spc_customer_info_label[0].innerHTML 3619 } 3620 3621 if (shipping_tier) { 3622 3623 EasyStore.Event.dispatch('checkouts/shipping_info_added', { 3624 checkout, 3625 shipping_tier, 3626 }) 3627 3628 } 3629 3630 if (payment_type) { 3631 3632 EasyStore.Event.dispatch('checkouts/payment_info_added', { 3633 checkout, 3634 payment_type, 3635 }) 3636 3637 } 3638 3639 EasyStore.Event.dispatch('checkouts/completed', { checkout }) 3640 3641 } 3642 3643 }) 3644 3645 3646 //-----------------------// 3647 // Functions // 3648 //-----------------------// 3649 3650 function getCookie(name) { 3651 3652 name += "=" 3653 3654 decodedCookie = decodeURIComponent(document.cookie) 3655 3656 ca = decodedCookie.split(";") 3657 3658 for(i = 0; i < ca.length; i++) { 3659 c = ca[i] 3660 while (c.charAt(0) == " ") { 3661 c = c.substring(1) 3662 } 3663 if (c.indexOf(name) == 0) { 3664 return c.substring(name.length, c.length) 3665 } 3666 } 3667 3668 return "" 3669 3670 } 3671 3672 const parsePrice = price => { 3673 if(typeof price === 'string') { 3674 return parseFloat(price.split(',').join('')) 3675 } 3676 3677 return price 3678 } 3679 3680 const requestCart = async (method, data) => { 3681 3682 let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}}) 3683 result = await response.json() 3684 3685 return result.cart 3686 3687 } 3688 const getCart = async (latest = false) => { 3689 3690 let cart = window.__latest_cart 3691 3692 const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length) 3693 3694 if(latest || cart_invalid) { 3695 cart = await requestCart() 3696 } 3697 3698 cart.items = cart.items || [] 3699 3700 return mapCart(cart) 3701 3702 } 3703 3704 const getCheckout = async () => { 3705 mapCheckout(window.__latest_cart || await requestCart()) 3706 } 3707 3708 const getOrder = async () => { 3709 mapOrder(window.__latest_cart || await requestCart()) 3710 } 3711 3712 //-----------------------// 3713 // Mappers // 3714 //-----------------------// 3715 3716 const fallbackAttribute = (object, attribute) => { 3717 3718 if(!Array.isArray(attribute)) { 3719 attribute = [attribute] 3720 } 3721 3722 let final_value = null 3723 3724 do { 3725 3726 final_value = object[attribute.shift()] 3727 3728 } while(!final_value && attribute.length) 3729 3730 return final_value 3731 3732 } 3733 3734 const map = (object, mapper) => { 3735 3736 const newObject = {} 3737 3738 for(const key in mapper) { 3739 3740 // Handle different keys between new and old format
3741 newObject[key] = fallbackAttribute(object, mapper[key]) 3742 3743 // Cast price to float 3744 if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) { 3745 newObject[key] = parsePrice(newObject[key]) 3746 } 3747 3748 if(newObject[key] === undefined) { 3749 delete newObject[key] 3750 } 3751 3752 } 3753 3754 return newObject 3755 3756 } 3757 3758 const mapCart = cart => { 3759 3760 const oldCart = cart 3761 3762 const mapper = { 3763 id: 'id', 3764 currency: 'currency', 3765 item_count: 'item_count', 3766 items: 'items', 3767 total_price: 'total_price', 3768 latest_items: 'latest_items' 3769 } 3770 3771 cart = map(cart, mapper) 3772 3773 const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || [])) 3774 3775 cart.discount_applications = discounts.map(discount => ({ 3776 title: discount.voucher_code || null, 3777 value: parsePrice(discount.amount), 3778 })) 3779 3780 cart.original_total_price = cart.items.length 3781 ? cart.items 3782 .map(item => item.original_price) 3783 .reduce((sum, price) => sum + price) 3784 : 0 3785 3786 cart.total_discount = cart.discount_applications.length 3787 ? cart.discount_applications 3788 .map(discount => parsePrice(discount.value)) 3789 .reduce((sum, value) => sum + value) 3790 : 0 3791 3792 cart.items = cart.items.map(item => mapLineItem(item)) 3793 3794 return cart 3795 3796 } 3797 3798 const mapCheckout = checkout => { 3799 3800 const mapper = { 3801 note: 'note', 3802 attributes: 'note_attributes', 3803 billing_address: 'billing_address', 3804 currency: 'currency', 3805 customer_id: 'customer_id', 3806 discounts_amount: 'total_discount', 3807 id: 'id', 3808 line_items: 'order_item', 3809 order_number: 'order_number', 3810 shipping_address: 'shipping_address', 3811 shipping_price: 'shipping_tax', 3812 shipping_method: 'shipping_method_name', 3813 tax_price: 'total_tax', 3814 } 3815 3816 checkout = map(checkout, mapper) 3817 3818 checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required) 3819 3820 checkout.line_items = checkout.line_items.map(item => mapLineItem(item)) 3821 3822 return checkout 3823 3824 } 3825 3826 const mapOrder = order => { 3827 3828 const mapper = { 3829 attributes: 'note_attributes', 3830 billing_address: 'billing_address', 3831 cancelled: 'is_cancelled', 3832 cancelled_at: 'cancelled_at', 3833 created_at: 'created_at', 3834 customer_id: 'customer_id', 3835 // discount_applications: 'discount_applications', 3836 email: 'email', 3837 financial_status: 'financial_status', 3838 fulfillment_status: 'fulfillment_status', 3839 line_items: 'order_item', 3840 note: 'note', 3841 order_number: 'order_number', 3842 phone: 'phone', 3843 shipping_address: 'shipping_address', 3844 shipping_methods: 'shipping_methods', 3845 shipping_price: 'total_shipping', 3846 subtotal_price: 'subtotal_price', 3847 // tax_lines: 'tax_lines', 3848 tax_price: 'total_tax', 3849 total_discounts: 'total_discount', 3850 total_net_amount: 'total_amount_include_transaction', 3851 total_price: 'total_price', 3852 transactions: 'transaction_records', 3853 is_manual_payment: 'is_manual_payment', 3854 } 3855 3856 order.email = order.billing_address.email 3857 order.phone = order.billing_address.phone 3858 order.shipping_method = order.shipping_method_name 3859 3860 order = map(order, mapper) 3861 3862 order.line_items = order.line_items.map(item => mapLineItem(item)) 3863 order.transactions = order.transactions.map(transaction => mapTransaction(transaction)) 3864 3865 return order 3866 3867 } 3868 3869 const mapLineItem = line_item => { 3870 3871 const old_line_item = line_item 3872 3873 const mapper = { 3874 final_price: 'price', 3875 image: 'img_url', 3876 message: 'message', 3877 original_line_price: 'original_line_price', 3878 original_price: 'original_price', 3879 properties: 'properties', 3880 quantity: 'quantity', 3881 requires_shipping: 'shipping_required', 3882 sku: 'sku', 3883 taxable: 'taxable', 3884 title: 'product_name', 3885 product_name: 'product_name', 3886 url: 'url', 3887 product_id: 'product_id', 3888 variant_id: 'variant_id', 3889 id: ['id', 'i_id'], 3890 } 3891 3892 line_item = map(line_item, mapper) 3893 3894 line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null 3895 line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null 3896 line_item.image = line_item.image || (old_line_item.image && old_line_item.image.url) || null 3897 3898 return line_item 3899 3900 } 3901 3902 const mapTransaction = transaction => { 3903 3904 const mapper = { 3905 amount: 'amount', 3906 created_at: 'created_at', 3907 gateway: 'gateway_type', 3908 id: 'id', 3909 status: 'status', 3910 } 3911 3912 transaction = map(transaction, mapper) 3913 3914 return transaction 3915 3916 } 3917 3918 3919</script>
3919 3920 3921</div> 3922 <!-- GetButton.io widget -->
3923<script type="text/javascript"> 3924 (function () { 3925 var options = { 3926 facebook: "132324823511178", // Facebook page ID 3927 line: "https://lin.ee/tPF6u1K", // Line QR code URL 3928 call_to_action: "èæåè¯çµ¡", // Call to action 3929 button_color: "#129BF4", // Color of button 3930 position: "right", // Position may be 'right' or 'left' 3931 order: "line,facebook", // Order of buttons 3932 }; 3933 var proto = 'https:', host = "getbutton.io", url = proto + '//static.' + host; 3934 var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = url + '/widget-send-button/js/init.js'; 3935 s.onload = function () { WhWidgetSendButton.init(host, proto, options); }; 3936 var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); 3937 })(); 3938</script>
3938 3939<!-- /GetButton.io widget --> 3940</body> 3941</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.