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 8<head> 9 10 <meta name="facebook-domain-verification" content="sb2uwf20rj8pq137icjmcdvmvyv4qu" /> 11 12 <meta name="facebook-domain-verification" content="wjgaun8tsugytwfwpdtswmgab3nth9" /> 13 <meta name="google-site-verification" content="BXRPUC0zAosf15ecp0gkDJJOgvlLkxN9s8W3c0cxVXY" /> 14 <!-- Basic page needs ================================================== --> 15 <meta charset="utf-8"> 16 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 17 18 19 <link rel="icon" href="https://cdn.store-assets.com/s/325951/f/7606122.png" /> 20 21 22 <!-- Title and description ================================================== --> 23 <title> 24 ç»å ¥ – Prosper Wood çå æ¨å·¥ 25 </title> 26 27 28 29 <!-- Social meta ================================================== --> 30 31 32 <meta property="og:type" content="website"> 33 <meta property="og:title" content="ç»å ¥"> 34 <meta property="og:url" content="https://prosperwood.com/account/login"> 35 36 <meta property="og:image" content="https://cdn.store-assets.com/s/325951/f/5065445.png?width=350&format=webp"> 37 <meta property="og:image:secure_url" content="https://cdn.store-assets.com/s/325951/f/5065445.png?width=350&format=webp"> 38 39 40 41<meta property="og:description" content="é ç´å¯¦æ¨éé颿¿"> 42<meta property="og:site_name" content="Prosper Wood çå æ¨å·¥"> 43 44 45 46 <meta name="twitter:card" content="summary"> 47 48 49 50 51 52 53 54 <!-- Helpers ================================================== --> 55 <link rel="canonical" href="https://prosperwood.com/account/login"> 56 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0"> 57 <meta name="theme-color" content=""> 58 59 <!-- CSS ================================================== --> 60 <link href="https://store-themes.easystore.co/325951/themes/3809/assets/timber.css?t=1787072517" rel="stylesheet" type="text/css" media="screen" /> 61 <link href="https://store-themes.easystore.co/325951/themes/3809/assets/theme.css?t=1787072517" rel="stylesheet" type="text/css" media="screen" /> 62 63 64 65 66 67<link href="https://fonts.googleapis.com/css?family=Karla:400,700&display=swap" rel="stylesheet"> 68 69 70
70<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
70 71 <!-- Header hook for plugins ================================================== --> 72 73<!-- ScriptTags -->
74<script>window.__st={p: "customers",cid: null,cem: null,cph: null,cfn: null,cln: null,cge: null,cdb: null,ccc: null};</script>
74<script src='/assets/events.js'></script>
74<script>(function(){function asyncLoad(){var urls=['/assets/facebook-pixel.js?v=1.2.1683519443','/assets/traffic.js?v=1','https://apps.easystore.co/instagram-feed/script.js?shop=cyruszheng76.easy.co','https://apps.easystore.co/google-analytics/script.js?shop=cyruszheng76.easy.co','https://apps.easystore.co/google-analytics-4/script.js?shop=cyruszheng76.easy.co','https://apps.easystore.co/google-tag-manager/script.js?shop=cyruszheng76.easy.co'];for(var i=0;i<urls.length;i++){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=urls[i];var x=document.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);}}window.attachEvent ? window.attachEvent('onload', asyncLoad) : window.addEventListener('load', asyncLoad, false);})();</script>
74 75<!-- /ScriptTags --> 76 77 78 79<!--[if lt IE 9]>
80<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript" ></script>
vendor: 2 bytes, line 80
80
81<script src="https://store-themes.easystore.co/325951/themes/3809/assets/respond.min.js?t=1787072517" type="text/javascript" ></script>
81 82<link href="https://store-themes.easystore.co/325951/themes/3809/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 83<link href="//prosperwood.com/search?q=9b3de6befacb00cb93d8ac2dee26d7b3" id="respond-redirect" rel="respond-redirect" />
84<script src="//prosperwood.com/search?q=9b3de6befacb00cb93d8ac2dee26d7b3" type="text/javascript"></script>
84 85<![endif]--> 86 87 88 89
89<script src="https://store-themes.easystore.co/325951/themes/3809/assets/modernizr.min.js?t=1787072517" type="text/javascript" ></script>
89 90 91 92 93
93<script src="/assets/shop_common.js" type="text/javascript" ></script>
93 94
94<script src="/assets/customer_area.js" type="text/javascript" ></script>
94 95 96
96<script> 97 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 98 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 99 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 100 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 101 102 ga('create', '', 'auto','myTracker'); 103 ga('myTracker.send', 'pageview'); 104 105 </script>
105 106 107<!-- Snippet:global/head: Google Search Console --> 108<meta name="google-site-verification" content="SoAokRuHCBPTOtePWwPQyX_GcD-Ka87pebQcMtDriV8" /> 109<!-- /Snippet --> 110 111<!-- Snippet:global/head: Instagram Feed --> 112<link rel="stylesheet" href="https://apps.easystore.co/assets/css/instagram-feed/insta-feed-style.css?v3"> 113<!-- /Snippet --> 114 115 116 117 118<meta name="google-site-verification" content="YwyipdVuEbnkEgU8FkAQfNpwM-_tPNVPjFX6L0aEPdI" /> 119</head> 120 121<body id="------" class="template-customers " > 122 123 <ul id="MobileNav" class="mobile-nav"> 124 125 <li class="mobile-nav_icon-x"> 126 127 128 129 130 131 <span class="MobileNavTrigger icon icon-x"></span> 132 </li> 133 134 <li class="mobile-nav__link header-bar__search-wrapper"> 135 136 <div class="header-bar__module header-bar__search mobile-nav_search"> 137 138 <form action="/search" method="get" class="header-bar__search-form clearfix" role="search"> 139 140 <button type="submit" class="btn icon-fallback-text header-bar__search-submit"> 141 <span class="icon icon-search" aria-hidden="true"></span> 142 <span class="fallback-text">æå°</span> 143 </button> 144 <input type="search" name="q" value="" aria-label="æå°" class="header-bar__search-input" placeholder="æå°" autocomplete="off"> 145 <div class="dropdown" id="searchDropdown"></div> 146 <input type="hidden" name="search_history" id="search_history"> 147 </form> 148 149 150 151
152<script> 153 var _search_history_listings = "" 154 if(_search_history_listings != "") localStorage.setItem('searchHistory', JSON.stringify(_search_history_listings)); 155 156 function clearAll() { 157 localStorage.removeItem('searchHistory'); 158 159 var customer = ""; 160 if(customer) { 161 // Your logic to clear all data or call an endpoint 162 fetch('/account/search_histories', { 163 method: 'DELETE', 164 headers: { 165 "Content-Type": "application/json", 166 "X-Requested-With": "XMLHttpRequest" 167 }, 168 body: JSON.stringify({ 169 _token: "FJgxj1fBF20leLNgGa7ixlAp8rkjvzTgyBUuwqlJ" 170 }), 171 }) 172 .then(response => response.json()) 173 } 174 } 175 // End - store view history in local storage 176 177 // search history dropdown 178 var searchInputs = document.querySelectorAll('input[type=search]'); 179 180 if(searchInputs.length > 0) { 181 182 searchInputs.forEach((searchInput)=>{ 183 184 searchInput.addEventListener('focus', function() { 185 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 186 searchDropdown.innerHTML = ''; // Clear existing items 187 188 // retrieve data from local storage 189 var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || []; 190 191 // Convert JSON to string 192 var search_history_json = JSON.stringify(searchHistoryData); 193 194 // Set the value of the hidden input 195 searchInput.closest('form').querySelector("#search_history").value = search_history_json; 196 197 // create dropdown items 198 var clearAllItem = document.createElement('div'); 199 clearAllItem.className = 'dropdown-item clear-all'; 200 clearAllItem.textContent = 'Clear'; 201 clearAllItem.addEventListener('click', function() { 202 clearAll(); 203 searchDropdown.style.display = 'none'; 204 searchInput.classList.remove('is-focus'); 205 }); 206 searchDropdown.appendChild(clearAllItem); 207 208 // create dropdown items 209 searchHistoryData.forEach(function(item) { 210 var dropdownItem = document.createElement('div'); 211 dropdownItem.className = 'dropdown-item'; 212 dropdownItem.textContent = item.term; 213 dropdownItem.addEventListener('click', function() { 214 searchInput.value = item.term; 215 searchDropdown.style.display = 'none'; 216 }); 217 searchDropdown.appendChild(dropdownItem); 218 }); 219 220 if(searchHistoryData.length > 0){ 221 // display the dropdown 222 searchInput.classList.add('is-focus'); 223 document.body.classList.add('search-input-focus'); 224 searchDropdown.style.display = 'block'; 225 } 226 }); 227 228 searchInput.addEventListener("focusout", (event) => { 229 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 230 searchInput.classList.remove('is-focus'); 231 searchDropdown.classList.add('transparent'); 232 setTimeout(()=>{ 233 searchDropdown.style.display = 'none'; 234 searchDropdown.classList.remove('transparent'); 235 document.body.classList.remove('search-input-focus'); 236 }, 400); 237 }); 238 }) 239 } 240 // End - search history dropdown 241</script>
241 242 </div> 243 244 </li> 245 246 247 248 <li class="mobile-nav__link" aria-haspopup="true"> 249 250 <a href="/" > 251 é¦é 252 </a> 253 254 </li> 255 256 257 <li class="mobile-nav__link" aria-haspopup="true"> 258 259 260 <a href="/collections/all" class="mobile-nav__parent-link"> 261 ææåå 262 </a> 263 <span class="mobile-nav__sublist-trigger"> 264 <span class="icon-fallback-text mobile-nav__sublist-expand"> 265 <span class="icon icon-plus" aria-hidden="true"></span> 266 <span class="fallback-text">+</span> 267</span> 268<span class="icon-fallback-text mobile-nav__sublist-contract"> 269 <span class="icon icon-minus" aria-hidden="true"></span> 270 <span class="fallback-text">-</span> 271</span> 272 273 </span> 274 <ul class="mobile-nav__sublist"> 275 276 277 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 278 279 <a href="/collections/jimbo" > 280 SO-STYLE / JIMBO NK 281 </a> 282 283 </li> 284 285 286 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 287 288 289 <a href="/collections/çé»-實æ¨é¢æ¿" class="mobile-nav__parent-link"> 290 çé» å¯¦æ¨é¢æ¿ 291 </a> 292 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 293 <span class="icon icon-plus" aria-hidden="true"></span> 294 <span class="fallback-text">+</span> 295</span> 296<span class="icon-fallback-text mobile-nav__sublist-contract"> 297 <span class="icon icon-minus" aria-hidden="true"></span> 298 <span class="fallback-text">-</span> 299</span> 300</span> 301 <ul class="mobile-nav__sublist"> 302 303 304 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 305 306 <a href="/collections/flat-ç´è§é 忬¾" > 307 Flat ç´è§é 忬¾ x GLATIMA é§é»(åéç) 308 </a> 309 310 </li> 311 312 313 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 314 315 <a href="/collections/bevel-æé¢" > 316 Bevel æé¢é 忬¾ x GLATIMA é§é»(åéç) 317 </a> 318 319 </li> 320 321 322 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 323 324 <a href="/collections/arch-å弧款" > 325 Arch åå¼§é 忬¾ x GLATIMA é§é»(åéç) 326 </a> 327 328 </li> 329 330 </ul> 331 332 </li> 333 334 335 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 336 337 338 <a href="/collections/arch" class="mobile-nav__parent-link"> 339 å°ç£ Panasonicï½Archåå¼§é å 340 </a> 341 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 342 <span class="icon icon-plus" aria-hidden="true"></span> 343 <span class="fallback-text">+</span> 344</span> 345<span class="icon-fallback-text mobile-nav__sublist-contract"> 346 <span class="icon icon-minus" aria-hidden="true"></span> 347 <span class="fallback-text">-</span> 348</span> 349</span> 350 <ul class="mobile-nav__sublist"> 351 352 353 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 354 355 356 <a href="/collections/arch-risna-h-panasonic" class="mobile-nav__parent-link"> 357 Archåå¼§é å 實æ¨é¢æ¿ x RISNA ç°è² (åéç) 358 </a> 359 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 360 <span class="icon icon-plus" aria-hidden="true"></span> 361 <span class="fallback-text">+</span> 362</span> 363<span class="icon-fallback-text mobile-nav__sublist-contract"> 364 <span class="icon icon-minus" aria-hidden="true"></span> 365 <span class="fallback-text">-</span> 366</span> 367</span> 368 <ul class="mobile-nav__sublist"> 369 370 <li class="mobile-nav__sublist-link"> 371 <a href="/collections/arch-risna-h-panasonic-switch">éé</a> 372 </li> 373 374 <li class="mobile-nav__sublist-link"> 375 <a href="/collections/arch-risna-h-panasonic-socket">æåº§/å¼±é»/ç²è</a> 376 </li> 377 378 </ul> 379 380 </li> 381 382 383 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 384 385 386 <a href="/collections/arch-risna-w-panasonic" class="mobile-nav__parent-link"> 387 Archåå¼§é å 實æ¨é¢æ¿ x RISNA ç½è² (åéç) 388 </a>
389 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 390 <span class="icon icon-plus" aria-hidden="true"></span> 391 <span class="fallback-text">+</span> 392</span> 393<span class="icon-fallback-text mobile-nav__sublist-contract"> 394 <span class="icon icon-minus" aria-hidden="true"></span> 395 <span class="fallback-text">-</span> 396</span> 397</span> 398 <ul class="mobile-nav__sublist"> 399 400 <li class="mobile-nav__sublist-link"> 401 <a href="/collections/arch-risna-w-panasonic-switch">éé</a> 402 </li> 403 404 <li class="mobile-nav__sublist-link"> 405 <a href="/collections/arch-risna-w-panasonic-socket">æåº§/å¼±é»/ç²è</a> 406 </li> 407 408 </ul> 409 410 </li> 411 412 413 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 414 415 416 <a href="/collections/arch-rglatima-h-panasonic" class="mobile-nav__parent-link"> 417 Archåå¼§é å 實æ¨é¢æ¿ x GLATIMA ç°è² (åéç) 418 </a> 419 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 420 <span class="icon icon-plus" aria-hidden="true"></span> 421 <span class="fallback-text">+</span> 422</span> 423<span class="icon-fallback-text mobile-nav__sublist-contract"> 424 <span class="icon icon-minus" aria-hidden="true"></span> 425 <span class="fallback-text">-</span> 426</span> 427</span> 428 <ul class="mobile-nav__sublist"> 429 430 <li class="mobile-nav__sublist-link"> 431 <a href="/collections/arch-glatima-h-panasonic-switch">éé</a> 432 </li> 433 434 <li class="mobile-nav__sublist-link"> 435 <a href="/collections/arch-glatima-h-panasonic-socket">æåº§/å¼±é»/ç²è</a> 436 </li> 437 438 </ul> 439 440 </li> 441 442 443 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 444 445 446 <a href="/collections/arch-rglatima-b-panasonic" class="mobile-nav__parent-link"> 447 Archåå¼§é å 實æ¨é¢æ¿ x GLATIMA é§é»è² (åéç) 448 </a> 449 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 450 <span class="icon icon-plus" aria-hidden="true"></span> 451 <span class="fallback-text">+</span> 452</span> 453<span class="icon-fallback-text mobile-nav__sublist-contract"> 454 <span class="icon icon-minus" aria-hidden="true"></span> 455 <span class="fallback-text">-</span> 456</span> 457</span> 458 <ul class="mobile-nav__sublist"> 459 460 <li class="mobile-nav__sublist-link"> 461 <a href="/collections/arch-glatima-b-panasonic-switch">éé</a> 462 </li> 463 464 <li class="mobile-nav__sublist-link"> 465 <a href="/collections/arch-glatima-b-panasonic-socket">æåº§/å¼±é»/ç²è</a> 466 </li> 467 468 </ul> 469 470 </li> 471 472 473 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 474 475 476 <a href="/collections/arch-rglatima-cw-panasonic" class="mobile-nav__parent-link"> 477 Archåå¼§é å 實æ¨é¢æ¿ x GLATIMA é¶ç·ç½ (åéç) 478 </a> 479 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 480 <span class="icon icon-plus" aria-hidden="true"></span> 481 <span class="fallback-text">+</span> 482</span> 483<span class="icon-fallback-text mobile-nav__sublist-contract"> 484 <span class="icon icon-minus" aria-hidden="true"></span> 485 <span class="fallback-text">-</span> 486</span> 487</span> 488 <ul class="mobile-nav__sublist"> 489 490 <li class="mobile-nav__sublist-link"> 491 <a href="/collections/arch-glatima-cw-panasonic-switch">éé</a> 492 </li> 493 494 <li class="mobile-nav__sublist-link"> 495 <a href="/collections/arch-glatima-cw-panasonic-socket">æåº§/å¼±é»/ç²è</a> 496 </li> 497 498 </ul> 499 500 </li> 501 502 </ul> 503 504 </li> 505 506 507 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 508 509 510 <a href="/collections/bevel" class="mobile-nav__parent-link"> 511 å°ç£ Panasonicï½Bevelæé¢é å 512 </a>
513 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 514 <span class="icon icon-plus" aria-hidden="true"></span> 515 <span class="fallback-text">+</span> 516</span> 517<span class="icon-fallback-text mobile-nav__sublist-contract"> 518 <span class="icon icon-minus" aria-hidden="true"></span> 519 <span class="fallback-text">-</span> 520</span> 521</span> 522 <ul class="mobile-nav__sublist"> 523 524 525 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 526 527 528 <a href="/collections/bevel-risna-h-panasonic" class="mobile-nav__parent-link"> 529 Bevelæé¢é å 實æ¨é¢æ¿ x RISNA ç°è² (åéç) 530 </a> 531 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 532 <span class="icon icon-plus" aria-hidden="true"></span> 533 <span class="fallback-text">+</span> 534</span> 535<span class="icon-fallback-text mobile-nav__sublist-contract"> 536 <span class="icon icon-minus" aria-hidden="true"></span> 537 <span class="fallback-text">-</span> 538</span> 539</span> 540 <ul class="mobile-nav__sublist"> 541 542 <li class="mobile-nav__sublist-link"> 543 <a href="/collections/bevel-risna-h-panasonic-switch">éé</a> 544 </li> 545 546 <li class="mobile-nav__sublist-link"> 547 <a href="/collections/bevel-risna-h-panasonic-socket">æåº§/å¼±é»/ç²è</a> 548 </li> 549 550 </ul> 551 552 </li> 553 554 555 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 556 557 558 <a href="/collections/bevel-risna-w-panasonic" class="mobile-nav__parent-link"> 559 Bevelæé¢é å 實æ¨é¢æ¿ x RISNA ç½è² (åéç) 560 </a> 561 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 562 <span class="icon icon-plus" aria-hidden="true"></span> 563 <span class="fallback-text">+</span> 564</span> 565<span class="icon-fallback-text mobile-nav__sublist-contract"> 566 <span class="icon icon-minus" aria-hidden="true"></span> 567 <span class="fallback-text">-</span> 568</span> 569</span> 570 <ul class="mobile-nav__sublist"> 571 572 <li class="mobile-nav__sublist-link"> 573 <a href="/collections/bevel-risna-w-panasonic-switch">éé</a> 574 </li> 575 576 <li class="mobile-nav__sublist-link"> 577 <a href="/collections/bevel-risna-w-panasonic-socket">æåº§/å¼±é»/ç²è</a> 578 </li> 579 580 </ul> 581 582 </li> 583 584 585 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 586 587 588 <a href="/collections/bevel-glatima-h-panasonic" class="mobile-nav__parent-link"> 589 Bevelæé¢é å 實æ¨é¢æ¿ x GLATIMA ç°è² (åéç) 590 </a> 591 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 592 <span class="icon icon-plus" aria-hidden="true"></span> 593 <span class="fallback-text">+</span> 594</span> 595<span class="icon-fallback-text mobile-nav__sublist-contract"> 596 <span class="icon icon-minus" aria-hidden="true"></span> 597 <span class="fallback-text">-</span> 598</span> 599</span> 600 <ul class="mobile-nav__sublist"> 601 602 <li class="mobile-nav__sublist-link"> 603 <a href="/collections/bevel-glatima-h-panasonic-switch">éé</a> 604 </li> 605 606 <li class="mobile-nav__sublist-link"> 607 <a href="/collections/bevel-glatima-h-panasonic-socket">æåº§/å¼±é»/ç²è</a> 608 </li> 609 610 </ul> 611 612 </li> 613 614 615 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 616 617 618 <a href="/collections/bevel-glatima-b-panasonic" class="mobile-nav__parent-link"> 619 Bevelæé¢é å 實æ¨é¢æ¿ x GLATIMA é§é»è² (åéç) 620 </a>
621 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 622 <span class="icon icon-plus" aria-hidden="true"></span> 623 <span class="fallback-text">+</span> 624</span> 625<span class="icon-fallback-text mobile-nav__sublist-contract"> 626 <span class="icon icon-minus" aria-hidden="true"></span> 627 <span class="fallback-text">-</span> 628</span> 629</span> 630 <ul class="mobile-nav__sublist"> 631 632 <li class="mobile-nav__sublist-link"> 633 <a href="/collections/bevel-glatima-b-panasonic-switch">éé</a> 634 </li> 635 636 <li class="mobile-nav__sublist-link"> 637 <a href="/collections/bevel-glatima-b-panasonic-socket">æåº§/å¼±é»/ç²è</a> 638 </li> 639 640 </ul> 641 642 </li> 643 644 645 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 646 647 648 <a href="/collections/bevel-glatima-cw-panasonic" class="mobile-nav__parent-link"> 649 Bevelæé¢é å 實æ¨é¢æ¿ x GLATIMA é¶ç·ç½ (åéç) 650 </a> 651 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 652 <span class="icon icon-plus" aria-hidden="true"></span> 653 <span class="fallback-text">+</span> 654</span> 655<span class="icon-fallback-text mobile-nav__sublist-contract"> 656 <span class="icon icon-minus" aria-hidden="true"></span> 657 <span class="fallback-text">-</span> 658</span> 659</span> 660 <ul class="mobile-nav__sublist"> 661 662 <li class="mobile-nav__sublist-link"> 663 <a href="/collections/bevel-glatima-cw-panasonic-switch">éé</a> 664 </li> 665 666 <li class="mobile-nav__sublist-link"> 667 <a href="/collections/bevel-glatima-cw-panasonic-socket">æåº§/å¼±é»/ç²è</a> 668 </li> 669 670 </ul> 671 672 </li> 673 674 675 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 676 677 678 <a href="/collections/bevel-deco-lite-panasonic" class="mobile-nav__parent-link"> 679 Bevelæé¢é å 實æ¨é¢æ¿ x DECO LITE æå (åéç) 680 </a> 681 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 682 <span class="icon icon-plus" aria-hidden="true"></span> 683 <span class="fallback-text">+</span> 684</span> 685<span class="icon-fallback-text mobile-nav__sublist-contract"> 686 <span class="icon icon-minus" aria-hidden="true"></span> 687 <span class="fallback-text">-</span> 688</span> 689</span> 690 <ul class="mobile-nav__sublist"> 691 692 <li class="mobile-nav__sublist-link"> 693 <a href="/collections/bevel-deco-lite-panasonic-switch">éé</a> 694 </li> 695 696 <li class="mobile-nav__sublist-link"> 697 <a href="/collections/bevel-deco-lite-panasonic-socket">æåº§/å¼±é»/ç²è</a> 698 </li> 699 700 </ul> 701 702 </li> 703 704 </ul> 705 706 </li> 707 708 709 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 710 711 712 <a href="/collections/flat" class="mobile-nav__parent-link"> 713 å°ç£ Panasonicï½Flatç´è§é å 714 </a> 715 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 716 <span class="icon icon-plus" aria-hidden="true"></span> 717 <span class="fallback-text">+</span> 718</span> 719<span class="icon-fallback-text mobile-nav__sublist-contract"> 720 <span class="icon icon-minus" aria-hidden="true"></span> 721 <span class="fallback-text">-</span> 722</span> 723</span> 724 <ul class="mobile-nav__sublist"> 725 726 727 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 728 729 730 <a href="/collections/flat-risna-h-panasonic" class="mobile-nav__parent-link"> 731 Flatç´è§é å 實æ¨é¢æ¿ x RISNA ç°è² (åéç) 732 </a>
733 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 734 <span class="icon icon-plus" aria-hidden="true"></span> 735 <span class="fallback-text">+</span> 736</span> 737<span class="icon-fallback-text mobile-nav__sublist-contract"> 738 <span class="icon icon-minus" aria-hidden="true"></span> 739 <span class="fallback-text">-</span> 740</span> 741</span> 742 <ul class="mobile-nav__sublist"> 743 744 <li class="mobile-nav__sublist-link"> 745 <a href="/collections/flat-risna-h-panasonic-switch">éé</a> 746 </li> 747 748 <li class="mobile-nav__sublist-link"> 749 <a href="/collections/flat-risna-h-panasonic-socket">æåº§/å¼±é»/ç²è</a> 750 </li> 751 752 </ul> 753 754 </li> 755 756 757 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 758 759 760 <a href="/collections/flat-risna-w-panasonic" class="mobile-nav__parent-link"> 761 Flatç´è§é å 實æ¨é¢æ¿ x RISNA ç½è² (åéç) 762 </a> 763 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 764 <span class="icon icon-plus" aria-hidden="true"></span> 765 <span class="fallback-text">+</span> 766</span> 767<span class="icon-fallback-text mobile-nav__sublist-contract"> 768 <span class="icon icon-minus" aria-hidden="true"></span> 769 <span class="fallback-text">-</span> 770</span> 771</span> 772 <ul class="mobile-nav__sublist"> 773 774 <li class="mobile-nav__sublist-link"> 775 <a href="/collections/flat-risna-w-panasonic-switch">éé</a> 776 </li> 777 778 <li class="mobile-nav__sublist-link"> 779 <a href="/collections/flat-risna-w-panasonic-socket">æåº§/å¼±é»/ç²è</a> 780 </li> 781 782 </ul> 783 784 </li> 785 786 787 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 788 789 790 <a href="/collections/flat-glatima-h-panasonic" class="mobile-nav__parent-link"> 791 Flatç´è§é å 實æ¨é¢æ¿ x GLATIMA ç°è² (åéç) 792 </a> 793 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 794 <span class="icon icon-plus" aria-hidden="true"></span> 795 <span class="fallback-text">+</span> 796</span> 797<span class="icon-fallback-text mobile-nav__sublist-contract"> 798 <span class="icon icon-minus" aria-hidden="true"></span> 799 <span class="fallback-text">-</span> 800</span> 801</span> 802 <ul class="mobile-nav__sublist"> 803 804 <li class="mobile-nav__sublist-link"> 805 <a href="/collections/flat-glatima-h-panasonic-switch">éé</a> 806 </li> 807 808 <li class="mobile-nav__sublist-link"> 809 <a href="/collections/flat-glatima-h-panasonic-socket">æåº§/å¼±é»/ç²è</a> 810 </li> 811 812 </ul> 813 814 </li> 815 816 817 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 818 819 820 <a href="/collections/flat-glatima-b-panasonic" class="mobile-nav__parent-link"> 821 Flatç´è§é å 實æ¨é¢æ¿ x GLATIMA é§é» (åéç) 822 </a> 823 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 824 <span class="icon icon-plus" aria-hidden="true"></span> 825 <span class="fallback-text">+</span> 826</span> 827<span class="icon-fallback-text mobile-nav__sublist-contract"> 828 <span class="icon icon-minus" aria-hidden="true"></span> 829 <span class="fallback-text">-</span> 830</span> 831</span> 832 <ul class="mobile-nav__sublist"> 833 834 <li class="mobile-nav__sublist-link"> 835 <a href="/collections/flat-glatima-b-panasonic-switch">éé</a> 836 </li> 837 838 <li class="mobile-nav__sublist-link"> 839 <a href="/collections/flat-glatima-b-panasonic-socket">æåº§/å¼±é»/ç²è</a> 840 </li> 841 842 </ul> 843 844 </li> 845 846 847 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 848 849 850 <a href="/collections/flat-glatima-cw-panasonic" class="mobile-nav__parent-link"> 851 Flatç´è§é å 實æ¨é¢æ¿ x GLATIMA é¶ç·ç½ (åéç) 852 </a>
853 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 854 <span class="icon icon-plus" aria-hidden="true"></span> 855 <span class="fallback-text">+</span> 856</span> 857<span class="icon-fallback-text mobile-nav__sublist-contract"> 858 <span class="icon icon-minus" aria-hidden="true"></span> 859 <span class="fallback-text">-</span> 860</span> 861</span> 862 <ul class="mobile-nav__sublist"> 863 864 <li class="mobile-nav__sublist-link"> 865 <a href="/collections/flat-glatima-cw-panasonic-switch">éé</a> 866 </li> 867 868 <li class="mobile-nav__sublist-link"> 869 <a href="/collections/flat-glatima-cw-panasonic-socket">æåº§/å¼±é»/ç²è</a> 870 </li> 871 872 </ul> 873 874 </li> 875 876 877 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 878 879 880 <a href="/collections/flat-deco-lite-panasonic" class="mobile-nav__parent-link"> 881 Flatç´è§é å 實æ¨é¢æ¿ x DECO LITE æå (åéç) 882 </a> 883 <span class="mobile-nav__sublist-trigger"><span class="icon-fallback-text mobile-nav__sublist-expand"> 884 <span class="icon icon-plus" aria-hidden="true"></span> 885 <span class="fallback-text">+</span> 886</span> 887<span class="icon-fallback-text mobile-nav__sublist-contract"> 888 <span class="icon icon-minus" aria-hidden="true"></span> 889 <span class="fallback-text">-</span> 890</span> 891</span> 892 <ul class="mobile-nav__sublist"> 893 894 <li class="mobile-nav__sublist-link"> 895 <a href="/collections/flat-deco-lite-panasonic-switch">éé</a> 896 </li> 897 898 <li class="mobile-nav__sublist-link"> 899 <a href="/collections/flat-deco-lite-panasonic-socket">æåº§/å¼±é»/ç²è</a> 900 </li> 901 902 </ul> 903 904 </li> 905 906 </ul> 907 908 </li> 909 910 </ul> 911 912 </li> 913 914 915 <li class="mobile-nav__link" aria-haspopup="true"> 916 917 <a href="/pages/ç¢åç´°ç¯" > 918 ç¢åç´°ç¯ 919 </a> 920 921 </li> 922 923 924 <li class="mobile-nav__link" aria-haspopup="true"> 925 926 <a href="/pages/terms-of-service" > 927 å¦ä½è³¼è²· 928 </a> 929 930 </li> 931 932 933 <li class="mobile-nav__link" aria-haspopup="true"> 934 935 936 <a href="/pages/ç¶é·éå¸-1" class="mobile-nav__parent-link"> 937 ç¶é· | å±å®éå¸ 938 </a> 939 <span class="mobile-nav__sublist-trigger"> 940 <span class="icon-fallback-text mobile-nav__sublist-expand"> 941 <span class="icon icon-plus" aria-hidden="true"></span> 942 <span class="fallback-text">+</span> 943</span> 944<span class="icon-fallback-text mobile-nav__sublist-contract"> 945 <span class="icon icon-minus" aria-hidden="true"></span> 946 <span class="fallback-text">-</span> 947</span> 948 949 </span> 950 <ul class="mobile-nav__sublist"> 951 952 953 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 954 955 <a href="https://www.prosperwood.com/pages/å°åç¶é·éå¸-èå¿ ä¼æ¥" target="_blank" > 956 å°å | èå¿ ä¼æ¥ 957 </a> 958 959 </li> 960 961 962 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 963 964 <a href="https://www.prosperwood.com/pages/å°åç¶é·éå¸-æµç³äºé" target="_blank" > 965 å°å | æµç³äºé 966 </a> 967 968 </li> 969 970 971 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 972 973 <a href="/pages/æ¡åï½é¹¿éºäºé" >
974 æ¡åï½é¹¿éºäºé 975 </a> 976 977 </li> 978 979 980 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 981 982 <a href="https://www.prosperwood.com/pages/å°ä¸ç¶é·éå¸-é¦¬å æ°´é»" target="_blank" > 983 å°ä¸ | é¦¬å æ°´é» 984 </a> 985 986 </li> 987 988 989 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 990 991 <a href="https://www.prosperwood.com/pages/å°åç¶é·éå¸-æ³°å¾·äºé" target="_blank" > 992 å°å | æ³°å¾·äºé 993 </a> 994 995 </li> 996 997 998 <li class="mobile-nav__sublist-link" aria-haspopup="true"> 999 1000 <a href="https://www.prosperwood.com/pages/é«éç¶é·éå¸-æå»·ä¼æ¥" target="_blank" > 1001 é«é | æå»·ä¼æ¥ 1002 </a> 1003 1004 </li> 1005 1006 </ul> 1007 1008 </li> 1009 1010 1011 <li class="mobile-nav__link" aria-haspopup="true"> 1012 1013 <a href="https://www.prosperwood.com/pages/å°åå±ç¤º-æ¨å± 空é鏿" target="_blank" > 1014 å±ç¤ºï½æ¨å± 空é鏿 1015 </a> 1016 1017 </li> 1018 1019 1020 1021 1022 1023 1024 1025 <li class="mobile-nav__link"> 1026 <a href="/account/login">ç»å ¥</a> 1027 </li> 1028 1029 <li class="mobile-nav__link"> 1030 <a href="/account/register">註å</a> 1031 </li> 1032 1033 1034 1035 1036</ul> 1037<div id="MobileNavOutside" class="mobile-nav-outside"></div> 1038 1039 1040 1041<div id="PageContainer" class="page-container"> 1042 1043<!-- Snippet:global/body_start: Console Extension --> 1044<div id='es_console' style='display: none;'>325951</div> 1045<!-- /Snippet --> 1046 1047 1048 <style> 1049 .search-modal__form{ 1050 position: relative; 1051 } 1052 1053 .dropdown-wrapper { 1054 position: relative; 1055 } 1056 1057 .dropdown-wrapper:hover .dropdown { 1058 display: block; 1059 } 1060 1061 .header-icon-nav .dropdown { 1062 left: -80px; 1063 } 1064 1065 .dropdown { 1066 display: none; 1067 position: absolute; 1068 top: 100%; 1069 left: 0px; 1070 width: 100%; 1071 padding: 8px; 1072 background-color: #fff; 1073 z-index: 1000; 1074 border-radius: 5px; 1075 border: 1px solid rgba(var(--color-foreground), 1); 1076 border-top: none; 1077 overflow-x: hidden; 1078 overflow-y: auto; 1079 max-height: 350px; 1080 min-width: 150px; 1081 box-shadow: 0 0 5px rgba(0,0,0,0.1); 1082 } 1083 1084 .dropdown a{ 1085 text-decoration: none; 1086 color: #000 !important; 1087 } 1088 1089 .dropdown-item { 1090 padding: 0.4rem 2rem; 1091 cursor: pointer; 1092 line-height: 1.4; 1093 overflow: hidden; 1094 text-overflow: ellipsis; 1095 white-space: nowrap; 1096 } 1097 1098 .dropdown-item:hover{ 1099 background-color: #f3f3f3; 1100 } 1101 1102 .search__input.is-focus{ 1103 border-radius: 15px; 1104 border-bottom-left-radius: 0; 1105 border-bottom-right-radius: 0; 1106 border: 1px solid rgba(var(--color-foreground), 1); 1107 border-bottom: none; 1108 box-shadow: none; 1109 } 1110 1111 .clear-all { 1112 text-align: right; 1113 padding: 0 2rem 0.2rem; 1114 line-height: 1; 1115 font-size: 70%; 1116 margin-bottom: -2px; 1117 } 1118 1119 .clear-all:hover{ 1120 background-color: #fff; 1121 } 1122 1123 .referral-notification { 1124 position: absolute; 1125 top: 100%; 1126 right: -12px; 1127 background: white; 1128 border: 1px solid #e0e0e0; 1129 border-radius: 8px; 1130 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 1131 width: 280px; 1132 z-index: 1000; 1133 padding: 16px; 1134 margin-top: 8px; 1135 font-size: 14px; 1136 line-height: 1.4; 1137 } 1138 1139 .referral-notification::before { 1140 content: ''; 1141 position: absolute; 1142 top: -8px; 1143 right: 20px; 1144 width: 0; 1145 height: 0; 1146 border-left: 8px solid transparent; 1147 border-right: 8px solid transparent; 1148 border-bottom: 8px solid white; 1149 } 1150 1151 .referral-notification::after { 1152 content: ''; 1153 position: absolute; 1154 top: -9px; 1155 right: 20px; 1156 width: 0; 1157 height: 0; 1158 border-left: 8px solid transparent; 1159 border-right: 8px solid transparent; 1160 border-bottom: 8px solid #e0e0e0; 1161 } 1162 1163 .referral-notification h4 { 1164 margin: 0 0 8px 0; 1165 color: #2196F3; 1166 font-size: 16px; 1167 font-weight: 600; 1168 } 1169 1170 .referral-notification p { 1171 margin: 0 0 12px 0; 1172 color: #666; 1173 } 1174 1175 .referral-notification .referral-code { 1176 background: #f5f5f5; 1177 padding: 8px; 1178 border-radius: 4px; 1179 font-family: monospace; 1180 font-size: 13px; 1181 text-align: center; 1182 margin: 8px 0; 1183 border: 1px solid #ddd; 1184 } 1185 1186 .referral-notification .close-btn { 1187 position: absolute; 1188 top: 8px; 1189 right: 8px; 1190 background: none; 1191 border: none; 1192 font-size: 18px; 1193 color: #999; 1194 cursor: pointer; 1195 padding: 0;
1196 width: 20px; 1197 height: 20px; 1198 line-height: 1; 1199 } 1200 1201 .referral-notification .close-btn:hover { 1202 color: #333; 1203 } 1204 1205 .referral-notification .action-btn { 1206 background: #2196F3; 1207 color: white; 1208 border: none; 1209 padding: 8px 16px; 1210 border-radius: 4px; 1211 cursor: pointer; 1212 font-size: 12px; 1213 margin-right: 8px; 1214 margin-top: 8px; 1215 } 1216 1217 .referral-notification .action-btn:hover { 1218 background: #1976D2; 1219 } 1220 1221 .referral-notification .dismiss-btn { 1222 background: transparent; 1223 color: #666; 1224 border: 1px solid #ddd; 1225 padding: 8px 16px; 1226 border-radius: 4px; 1227 cursor: pointer; 1228 font-size: 12px; 1229 margin-top: 8px; 1230 } 1231 1232 .referral-notification .dismiss-btn:hover { 1233 background: #f5f5f5; 1234 } 1235 .referral-modal__dialog { 1236 transform: translate(-50%, 0); 1237 transition: transform var(--duration-default) ease, visibility 0s; 1238 z-index: 10000; 1239 position: fixed; 1240 top: 20vh; 1241 left: 50%; 1242 width: 100%; 1243 max-width: 350px; 1244 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 1245 border-radius: 12px; 1246 background-color: #fff; 1247 color: #000; 1248 padding: 20px; 1249 text-align: center; 1250 } 1251 .modal-overlay.referral-modal-overlay { 1252 position: fixed; 1253 top: 0; 1254 left: 0; 1255 width: 100%; 1256 height: 100%; 1257 background-color: rgba(0, 0, 0, 0.7); 1258 z-index: 2001; 1259 display: block; 1260 opacity: 1; 1261 transition: opacity var(--duration-default) ease, visibility 0s; 1262 } 1263</style> 1264 1265<header id="es_header_bar" class="header-bar logo_top-center sticky-topbar"> 1266 <div class="header-bg-wrapper"> 1267 <div class="header-wrapper wrapper"> 1268 1269 1270 <div class="logo-header" role="banner"> 1271 1272 1273 <div class="h1 site-header__logo" itemscope itemtype="http://schema.org/Organization"> 1274 1275 1276 1277 1278 <a href="/" class="logo-wrapper" itemprop="url"> 1279 <img src="https://cdn.store-assets.com/s/325951/f/5065445.png?width=350&format=webp" alt="Prosper Wood çå æ¨å·¥" itemprop="logo"> 1280 </a> 1281 1282 1283 1284 1285 </div> 1286 1287 1288 </div> 1289 1290 <div class="header-nav-bar medium-down--hide"> 1291 1292<ul class="site-nav" id="AccessibleNav"> 1293 1294 1295 1296 <li > 1297 <a href="/" class="site-nav__link">é¦é </a> 1298 </li> 1299 1300 1301 1302 1303 1304 <li class="site-nav--has-dropdown" aria-haspopup="true"> 1305 <a href="/collections/all" class="site-nav__link"> 1306 ææåå 1307 <span class="arrow-icon"> 1308 <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg> 1309 </span> 1310 </a> 1311 <ul class="site-nav__dropdown"> 1312 1313 1314 1315 <li > 1316 <a href="/collections/jimbo" class="site-nav__link">SO-STYLE / JIMBO NK </a> 1317 </li> 1318 1319 1320 1321 1322 1323 <li class="site-nav_has-child"> 1324 <a href="/collections/çé»-實æ¨é¢æ¿" class="site-nav__link"> 1325 çé» å¯¦æ¨é¢æ¿ 1326 </a> 1327 <ul class="site-nav__dropdown_level-3"> 1328 1329 1330 1331 <li > 1332 <a href="/collections/flat-ç´è§é 忬¾" class="site-nav__link">Flat ç´è§é 忬¾ x GLATIMA é§é»(åéç)</a> 1333 </li> 1334 1335 1336 1337 1338 <li > 1339 <a href="/collections/bevel-æé¢" class="site-nav__link">Bevel æé¢é 忬¾ x GLATIMA é§é»(åéç)</a> 1340 </li> 1341 1342 1343 1344 1345 <li > 1346 <a href="/collections/arch-å弧款" class="site-nav__link">Arch åå¼§é 忬¾ x GLATIMA é§é»(åéç)</a> 1347 </li> 1348 1349 1350 </ul> 1351 </li> 1352 1353 1354 1355 1356 1357 <li class="site-nav_has-child"> 1358 <a href="/collections/arch" class="site-nav__link"> 1359 å°ç£ Panasonicï½Archåå¼§é å 1360 </a> 1361 <ul class="site-nav__dropdown_level-3"> 1362 1363 1364 1365 1366 <li class="site-nav_has-child"> 1367 <a href="/collections/arch-risna-h-panasonic" class="site-nav__link"> 1368 Archåå¼§é å 實æ¨é¢æ¿ x RISNA ç°è² (åéç) 1369 </a> 1370 <ul class="site-nav__dropdown_level-4"> 1371 1372 <li> 1373 <a href="/collections/arch-risna-h-panasonic-switch" class="site-nav__link">éé</a> 1374 </li> 1375 1376 <li> 1377 <a href="/collections/arch-risna-h-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1378 </li> 1379 1380 </ul> 1381 </li> 1382 1383 1384 1385 1386 1387 <li class="site-nav_has-child"> 1388 <a href="/collections/arch-risna-w-panasonic" class="site-nav__link"> 1389 Archåå¼§é å 實æ¨é¢æ¿ x RISNA ç½è² (åéç) 1390 </a> 1391 <ul class="site-nav__dropdown_level-4"> 1392 1393 <li> 1394 <a href="/collections/arch-risna-w-panasonic-switch" class="site-nav__link">éé</a> 1395 </li> 1396 1397 <li> 1398 <a href="/collections/arch-risna-w-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1399 </li> 1400 1401 </ul> 1402 </li> 1403 1404 1405 1406 1407 1408 <li class="site-nav_has-child"> 1409 <a href="/collections/arch-rglatima-h-panasonic" class="site-nav__link"> 1410 Archåå¼§é å 實æ¨é¢æ¿ x GLATIMA ç°è² (åéç) 1411 </a> 1412 <ul class="site-nav__dropdown_level-4"> 1413 1414 <li> 1415 <a href="/collections/arch-glatima-h-panasonic-switch" class="site-nav__link">éé</a> 1416 </li> 1417 1418 <li> 1419 <a href="/collections/arch-glatima-h-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1420 </li> 1421 1422 </ul> 1423 </li> 1424 1425 1426 1427 1428 1429 <li class="site-nav_has-child"> 1430 <a href="/collections/arch-rglatima-b-panasonic" class="site-nav__link"> 1431 Archåå¼§é å 實æ¨é¢æ¿ x GLATIMA é§é»è² (åéç) 1432 </a> 1433 <ul class="site-nav__dropdown_level-4"> 1434 1435 <li> 1436 <a href="/collections/arch-glatima-b-panasonic-switch" class="site-nav__link">éé</a> 1437 </li> 1438 1439 <li> 1440 <a href="/collections/arch-glatima-b-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1441 </li> 1442 1443 </ul> 1444 </li> 1445 1446 1447 1448 1449 1450 <li class="site-nav_has-child"> 1451 <a href="/collections/arch-rglatima-cw-panasonic" class="site-nav__link"> 1452 Archåå¼§é å 實æ¨é¢æ¿ x GLATIMA é¶ç·ç½ (åéç) 1453 </a> 1454 <ul class="site-nav__dropdown_level-4"> 1455 1456 <li> 1457 <a href="/collections/arch-glatima-cw-panasonic-switch" class="site-nav__link">éé</a> 1458 </li> 1459 1460 <li> 1461 <a href="/collections/arch-glatima-cw-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1462 </li> 1463 1464 </ul> 1465 </li> 1466 1467 1468 </ul> 1469 </li> 1470 1471 1472 1473 1474 1475 <li class="site-nav_has-child"> 1476 <a href="/collections/bevel" class="site-nav__link"> 1477 å°ç£ Panasonicï½Bevelæé¢é å 1478 </a> 1479 <ul class="site-nav__dropdown_level-3"> 1480 1481 1482 1483 1484 <li class="site-nav_has-child"> 1485 <a href="/collections/bevel-risna-h-panasonic" class="site-nav__link"> 1486 Bevelæé¢é å 實æ¨é¢æ¿ x RISNA ç°è² (åéç) 1487 </a> 1488 <ul class="site-nav__dropdown_level-4"> 1489 1490 <li> 1491 <a href="/collections/bevel-risna-h-panasonic-switch" class="site-nav__link">éé</a> 1492 </li> 1493 1494 <li> 1495 <a href="/collections/bevel-risna-h-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1496 </li> 1497 1498 </ul> 1499 </li> 1500 1501 1502 1503 1504 1505 <li class="site-nav_has-child"> 1506 <a href="/collections/bevel-risna-w-panasonic" class="site-nav__link"> 1507 Bevelæé¢é å 實æ¨é¢æ¿ x RISNA ç½è² (åéç) 1508 </a> 1509 <ul class="site-nav__dropdown_level-4"> 1510 1511 <li> 1512 <a href="/collections/bevel-risna-w-panasonic-switch" class="site-nav__link">éé</a> 1513 </li> 1514 1515 <li> 1516 <a href="/collections/bevel-risna-w-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1517 </li> 1518 1519 </ul> 1520 </li> 1521 1522 1523 1524 1525 1526 <li class="site-nav_has-child"> 1527 <a href="/collections/bevel-glatima-h-panasonic" class="site-nav__link"> 1528 Bevelæé¢é å 實æ¨é¢æ¿ x GLATIMA ç°è² (åéç) 1529 </a> 1530 <ul class="site-nav__dropdown_level-4"> 1531 1532 <li> 1533 <a href="/collections/bevel-glatima-h-panasonic-switch" class="site-nav__link">éé</a> 1534 </li> 1535 1536 <li> 1537 <a href="/collections/bevel-glatima-h-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1538 </li> 1539 1540 </ul> 1541 </li> 1542 1543 1544 1545 1546 1547 <li class="site-nav_has-child"> 1548 <a href="/collections/bevel-glatima-b-panasonic" class="site-nav__link"> 1549 Bevelæé¢é å 實æ¨é¢æ¿ x GLATIMA é§é»è² (åéç) 1550 </a> 1551 <ul class="site-nav__dropdown_level-4"> 1552 1553 <li> 1554 <a href="/collections/bevel-glatima-b-panasonic-switch" class="site-nav__link">éé</a> 1555 </li> 1556 1557 <li> 1558 <a href="/collections/bevel-glatima-b-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1559 </li> 1560 1561 </ul> 1562 </li> 1563 1564 1565 1566 1567 1568 <li class="site-nav_has-child"> 1569 <a href="/collections/bevel-glatima-cw-panasonic" class="site-nav__link"> 1570 Bevelæé¢é å 實æ¨é¢æ¿ x GLATIMA é¶ç·ç½ (åéç) 1571 </a> 1572 <ul class="site-nav__dropdown_level-4"> 1573 1574 <li> 1575 <a href="/collections/bevel-glatima-cw-panasonic-switch" class="site-nav__link">éé</a> 1576 </li> 1577 1578 <li> 1579 <a href="/collections/bevel-glatima-cw-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1580 </li> 1581 1582 </ul> 1583 </li> 1584 1585 1586 1587 1588 1589 <li class="site-nav_has-child"> 1590 <a href="/collections/bevel-deco-lite-panasonic" class="site-nav__link"> 1591 Bevelæé¢é å 實æ¨é¢æ¿ x DECO LITE æå (åéç) 1592 </a> 1593 <ul class="site-nav__dropdown_level-4"> 1594 1595 <li> 1596 <a href="/collections/bevel-deco-lite-panasonic-switch" class="site-nav__link">éé</a> 1597 </li> 1598 1599 <li> 1600 <a href="/collections/bevel-deco-lite-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1601 </li> 1602 1603 </ul> 1604 </li> 1605 1606 1607 </ul> 1608 </li> 1609 1610 1611 1612 1613 1614 <li class="site-nav_has-child"> 1615 <a href="/collections/flat" class="site-nav__link"> 1616 å°ç£ Panasonicï½Flatç´è§é å 1617 </a> 1618 <ul class="site-nav__dropdown_level-3"> 1619 1620 1621 1622 1623 <li class="site-nav_has-child"> 1624 <a href="/collections/flat-risna-h-panasonic" class="site-nav__link"> 1625 Flatç´è§é å 實æ¨é¢æ¿ x RISNA ç°è² (åéç) 1626
1626 </a> 1627 <ul class="site-nav__dropdown_level-4"> 1628 1629 <li> 1630 <a href="/collections/flat-risna-h-panasonic-switch" class="site-nav__link">éé</a> 1631 </li> 1632 1633 <li> 1634 <a href="/collections/flat-risna-h-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1635 </li> 1636 1637 </ul> 1638 </li> 1639 1640 1641 1642 1643 1644 <li class="site-nav_has-child"> 1645 <a href="/collections/flat-risna-w-panasonic" class="site-nav__link"> 1646 Flatç´è§é å 實æ¨é¢æ¿ x RISNA ç½è² (åéç) 1647 </a> 1648 <ul class="site-nav__dropdown_level-4"> 1649 1650 <li> 1651 <a href="/collections/flat-risna-w-panasonic-switch" class="site-nav__link">éé</a> 1652 </li> 1653 1654 <li> 1655 <a href="/collections/flat-risna-w-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1656 </li> 1657 1658 </ul> 1659 </li> 1660 1661 1662 1663 1664 1665 <li class="site-nav_has-child"> 1666 <a href="/collections/flat-glatima-h-panasonic" class="site-nav__link"> 1667 Flatç´è§é å 實æ¨é¢æ¿ x GLATIMA ç°è² (åéç) 1668 </a> 1669 <ul class="site-nav__dropdown_level-4"> 1670 1671 <li> 1672 <a href="/collections/flat-glatima-h-panasonic-switch" class="site-nav__link">éé</a> 1673 </li> 1674 1675 <li> 1676 <a href="/collections/flat-glatima-h-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1677 </li> 1678 1679 </ul> 1680 </li> 1681 1682 1683 1684 1685 1686 <li class="site-nav_has-child"> 1687 <a href="/collections/flat-glatima-b-panasonic" class="site-nav__link"> 1688 Flatç´è§é å 實æ¨é¢æ¿ x GLATIMA é§é» (åéç) 1689 </a> 1690 <ul class="site-nav__dropdown_level-4"> 1691 1692 <li> 1693 <a href="/collections/flat-glatima-b-panasonic-switch" class="site-nav__link">éé</a> 1694 </li> 1695 1696 <li> 1697 <a href="/collections/flat-glatima-b-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1698 </li> 1699 1700 </ul> 1701 </li> 1702 1703 1704 1705 1706 1707 <li class="site-nav_has-child"> 1708 <a href="/collections/flat-glatima-cw-panasonic" class="site-nav__link"> 1709 Flatç´è§é å 實æ¨é¢æ¿ x GLATIMA é¶ç·ç½ (åéç) 1710 </a> 1711 <ul class="site-nav__dropdown_level-4"> 1712 1713 <li> 1714 <a href="/collections/flat-glatima-cw-panasonic-switch" class="site-nav__link">éé</a> 1715 </li> 1716 1717 <li> 1718 <a href="/collections/flat-glatima-cw-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1719 </li> 1720 1721 </ul> 1722 </li> 1723 1724 1725 1726 1727 1728 <li class="site-nav_has-child"> 1729 <a href="/collections/flat-deco-lite-panasonic" class="site-nav__link"> 1730 Flatç´è§é å 實æ¨é¢æ¿ x DECO LITE æå (åéç) 1731 </a> 1732 <ul class="site-nav__dropdown_level-4"> 1733 1734 <li> 1735 <a href="/collections/flat-deco-lite-panasonic-switch" class="site-nav__link">éé</a> 1736 </li> 1737 1738 <li> 1739 <a href="/collections/flat-deco-lite-panasonic-socket" class="site-nav__link">æåº§/å¼±é»/ç²è</a> 1740 </li> 1741 1742 </ul> 1743 </li> 1744 1745 1746 </ul> 1747 </li> 1748 1749 1750 </ul> 1751 </li> 1752 1753 1754 1755 1756 <li > 1757 <a href="/pages/ç¢åç´°ç¯" class="site-nav__link">ç¢åç´°ç¯</a> 1758 </li> 1759 1760 1761 1762 1763 <li > 1764 <a href="/pages/terms-of-service" class="site-nav__link">å¦ä½è³¼è²·</a> 1765 </li> 1766 1767 1768 1769 1770 1771 <li class="site-nav--has-dropdown" aria-haspopup="true"> 1772 <a href="/pages/ç¶é·éå¸-1" class="site-nav__link"> 1773 ç¶é· | å±å®éå¸
1774 <span class="arrow-icon"> 1775 <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>arrow down</title><path d="M50,78.18A7.35,7.35,0,0,1,44.82,76L3.15,34.36A7.35,7.35,0,1,1,13.55,24L50,60.44,86.45,24a7.35,7.35,0,1,1,10.4,10.4L55.21,76A7.32,7.32,0,0,1,50,78.18Z"/></svg> 1776 </span> 1777 </a> 1778 <ul class="site-nav__dropdown"> 1779 1780 1781 1782 <li > 1783 <a href="https://www.prosperwood.com/pages/å°åç¶é·éå¸-èå¿ ä¼æ¥" target="_blank" class="site-nav__link">å°å | èå¿ ä¼æ¥</a> 1784 </li> 1785 1786 1787 1788 1789 <li > 1790 <a href="https://www.prosperwood.com/pages/å°åç¶é·éå¸-æµç³äºé" target="_blank" class="site-nav__link">å°å | æµç³äºé</a> 1791 </li> 1792 1793 1794 1795 1796 <li > 1797 <a href="/pages/æ¡åï½é¹¿éºäºé" class="site-nav__link">æ¡åï½é¹¿éºäºé</a> 1798 </li> 1799 1800 1801 1802 1803 <li > 1804 <a href="https://www.prosperwood.com/pages/å°ä¸ç¶é·éå¸-é¦¬å æ°´é»" target="_blank" class="site-nav__link">å°ä¸ | é¦¬å æ°´é»</a> 1805 </li> 1806 1807 1808 1809 1810 <li > 1811 <a href="https://www.prosperwood.com/pages/å°åç¶é·éå¸-æ³°å¾·äºé" target="_blank" class="site-nav__link">å°å | æ³°å¾·äºé</a> 1812 </li> 1813 1814 1815 1816 1817 <li > 1818 <a href="https://www.prosperwood.com/pages/é«éç¶é·éå¸-æå»·ä¼æ¥" target="_blank" class="site-nav__link">é«é | æå»·ä¼æ¥</a> 1819 </li> 1820 1821 1822 </ul> 1823 </li> 1824 1825 1826 1827 1828 <li > 1829 <a href="https://www.prosperwood.com/pages/å°åå±ç¤º-æ¨å± 空é鏿" target="_blank" class="site-nav__link">å±ç¤ºï½æ¨å± 空é鏿</a> 1830 </li> 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845</ul> 1846 1847 </div> 1848 1849 <div class="desktop-header-nav medium-down--hide"> 1850 1851 1852 <div class="header-subnav"> 1853 1854 1855 1856 1857 1858 <div class="header-icon-nav"> 1859 1860 1861 1862 1863 1864 1865 1866 1867 <div class="header-bar__module"> 1868 1869 <a class="popup-with-form" href="#search-form"> 1870 1871 1872 1873 1874 <svg class="icon-search svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-search</title><path d="M68.5,65.87a35.27,35.27,0,1,0-5.4,4.5l23.11,23.1a3.5,3.5,0,1,0,5-4.94ZM14.82,41A28.47,28.47,0,1,1,43.28,69.43,28.5,28.5,0,0,1,14.82,41Z"/></svg> 1875 1876 1877 1878 </a> 1879 1880 1881 1882<!-- form itself --> 1883<div id="search-form" class="white-popup-block mfp-hide popup-search"> 1884 <div class="popup-search-content"> 1885 <form action="/search" method="get" class="input-group search-bar" role="search"> 1886 1887 <span class="input-group-btn"> 1888 <button type="submit" class="btn"> 1889 1890 1891 1892 1893 <svg class="icon-search svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-search</title><path d="M68.5,65.87a35.27,35.27,0,1,0-5.4,4.5l23.11,23.1a3.5,3.5,0,1,0,5-4.94ZM14.82,41A28.47,28.47,0,1,1,43.28,69.43,28.5,28.5,0,0,1,14.82,41Z"/></svg> 1894 1895 1896 1897 </button> 1898 </span> 1899 <input type="search" name="q" value="" placeholder="æå°" class="input-group-field" aria-label="æå°" placeholder="æå°" autocomplete="off"> 1900 <div class="dropdown" id="searchDropdown"></div> 1901 <input type="hidden" name="search_history" id="search_history"> 1902 </form> 1903 </div> 1904</div> 1905
1906<script src="https://store-themes.easystore.co/325951/themes/3809/assets/magnific-popup.min.js?t=1787072517" type="text/javascript" ></script>
vendor: 1 bytes, line 1906
1906
1907<script> 1908$(document).ready(function() { 1909 $('.popup-with-form').magnificPopup({ 1910 type: 'inline', 1911 preloader: false, 1912 focus: '#name', 1913 mainClass: 'popup-search-bg-wrapper', 1914 1915 // When elemened is focused, some mobile browsers in some cases zoom in 1916 // It looks not nice, so we disable it: 1917 callbacks: { 1918 beforeOpen: function() { 1919 if($(window).width() < 700) { 1920 this.st.focus = false; 1921 } else { 1922 this.st.focus = '#name'; 1923 } 1924 } 1925 } 1926 }); 1927}); 1928</script>
1928 1929 1930
1931<script> 1932 var _search_history_listings = "" 1933 if(_search_history_listings != "") localStorage.setItem('searchHistory', JSON.stringify(_search_history_listings)); 1934 1935 function clearAll() { 1936 localStorage.removeItem('searchHistory'); 1937 1938 var customer = ""; 1939 if(customer) { 1940 // Your logic to clear all data or call an endpoint 1941 fetch('/account/search_histories', { 1942 method: 'DELETE', 1943 headers: { 1944 "Content-Type": "application/json", 1945 "X-Requested-With": "XMLHttpRequest" 1946 }, 1947 body: JSON.stringify({ 1948 _token: "FJgxj1fBF20leLNgGa7ixlAp8rkjvzTgyBUuwqlJ" 1949 }), 1950 }) 1951 .then(response => response.json()) 1952 } 1953 } 1954 // End - store view history in local storage 1955 1956 // search history dropdown 1957 var searchInputs = document.querySelectorAll('input[type=search]'); 1958 1959 if(searchInputs.length > 0) { 1960 1961 searchInputs.forEach((searchInput)=>{ 1962 1963 searchInput.addEventListener('focus', function() { 1964 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 1965 searchDropdown.innerHTML = ''; // Clear existing items 1966 1967 // retrieve data from local storage 1968 var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || []; 1969 1970 // Convert JSON to string 1971 var search_history_json = JSON.stringify(searchHistoryData); 1972 1973 // Set the value of the hidden input 1974 searchInput.closest('form').querySelector("#search_history").value = search_history_json; 1975 1976 // create dropdown items 1977 var clearAllItem = document.createElement('div'); 1978 clearAllItem.className = 'dropdown-item clear-all'; 1979 clearAllItem.textContent = 'Clear'; 1980 clearAllItem.addEventListener('click', function() { 1981 clearAll(); 1982 searchDropdown.style.display = 'none'; 1983 searchInput.classList.remove('is-focus'); 1984 }); 1985 searchDropdown.appendChild(clearAllItem); 1986 1987 // create dropdown items 1988 searchHistoryData.forEach(function(item) { 1989 var dropdownItem = document.createElement('div'); 1990 dropdownItem.className = 'dropdown-item'; 1991 dropdownItem.textContent = item.term; 1992 dropdownItem.addEventListener('click', function() { 1993 searchInput.value = item.term; 1994 searchDropdown.style.display = 'none'; 1995 }); 1996 searchDropdown.appendChild(dropdownItem); 1997 }); 1998 1999 if(searchHistoryData.length > 0){ 2000 // display the dropdown 2001 searchInput.classList.add('is-focus'); 2002 document.body.classList.add('search-input-focus'); 2003 searchDropdown.style.display = 'block'; 2004 } 2005 }); 2006 2007 searchInput.addEventListener("focusout", (event) => { 2008 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 2009 searchInput.classList.remove('is-focus'); 2010 searchDropdown.classList.add('transparent'); 2011 setTimeout(()=>{ 2012 searchDropdown.style.display = 'none'; 2013 searchDropdown.classList.remove('transparent'); 2014 document.body.classList.remove('search-input-focus'); 2015 }, 400); 2016 }); 2017 }) 2018 } 2019 // End - search history dropdown 2020</script>
2020 2021 </div> 2022 2023 2024 2025 2026 2027 2028 2029 <div class="header-bar__module dropdown-wrapper" style="position: relative;"> 2030 2031 <a href="/account/login"> 2032 2033 2034 2035 <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-profile</title><path d="M50,51.8A24.4,24.4,0,1,0,25.6,27.4,24.43,24.43,0,0,0,50,51.8ZM50,10A17.4,17.4,0,1,1,32.6,27.4,17.43,17.43,0,0,1,50,10Z"/><path d="M62.66,57.66H37.34a30.54,30.54,0,0,0-30.5,30.5V93.5a3.5,3.5,0,0,0,3.5,3.5H89.66a3.5,3.5,0,0,0,3.5-3.5V88.16A30.54,30.54,0,0,0,62.66,57.66ZM86.16,90H13.84V88.16a23.53,23.53,0,0,1,23.5-23.5H62.66a23.53,23.53,0,0,1,23.5,23.5Z"/></svg> 2036 2037 2038</a> 2039 2040 <!-- Referral Notification Popup for Desktop --> 2041 <div id="referralNotification" class="referral-notification" style="display: none;"> 2042 <button class="close-btn" onclick="dismissReferralNotification()">×</button> 2043 <div style="text-align: center; margin-bottom: 16px;"> 2044 <div style="width: 100px; height: 100px; margin: 0 auto;"> 2045 <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg"> 2046 </div> 2047 </div> 2048 <p id="referralSignupMessage" style="text-align: center; font-size: 14px; color: #666; margin: 0 0 20px 0;"> 2049 æ¨ç好å鿍 åé¥éï¼ç«å³è¨»åé åã 2050 </p> 2051 <div style="text-align: center;"> 2052 <button class="btn" onclick="goToSignupPage()" style="width: 100%; color: #fff;"> 2053 註å 2054 </button> 2055 </div> 2056 </div> 2057 2058 </div> 2059 2060 2061 <div class="header-bar__module cart-page-link-wrapper"> 2062 <span class="header-bar__sep" aria-hidden="true"></span> 2063 <a class="CartDrawerTrigger cart-page-link"> 2064 2065 2066 2067 2068 <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-bag</title><path d="M91.78,93.11,84.17,24.44a3.5,3.5,0,0,0-3.48-3.11H69.06C67.53,10.94,59.57,3,50,3S32.47,10.94,30.94,21.33H19.31a3.5,3.5,0,0,0-3.48,3.11L8.22,93.11A3.49,3.49,0,0,0,11.69,97H88.31a3.49,3.49,0,0,0,3.47-3.89ZM50,10c5.76,0,10.6,4.83,12,11.33H38.05C39.4,14.83,44.24,10,50,10ZM15.6,90l6.84-61.67h8.23v9.84a3.5,3.5,0,0,0,7,0V28.33H62.33v9.84a3.5,3.5,0,0,0,7,0V28.33h8.23L84.4,90Z"/></svg> 2069 2070 2071 2072 <span class="cart-count header-bar__cart-count hidden-count">0</span> 2073 </a> 2074 </div> 2075 2076 2077 2078 2079 2080 2081 2082 </div> 2083 </div> 2084 2085 2086 2087 </div> 2088 2089 <div class="mobile-header-icons large--hide"> 2090 2091 <div class="large--hide"> 2092 2093 2094 2095 2096 <a href="/account/login"> 2097 2098 2099 2100 <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-profile</title><path d="M50,51.8A24.4,24.4,0,1,0,25.6,27.4,24.43,24.43,0,0,0,50,51.8ZM50,10A17.4,17.4,0,1,1,32.6,27.4,17.43,17.43,0,0,1,50,10Z"/><path d="M62.66,57.66H37.34a30.54,30.54,0,0,0-30.5,30.5V93.5a3.5,3.5,0,0,0,3.5,3.5H89.66a3.5,3.5,0,0,0,3.5-3.5V88.16A30.54,30.54,0,0,0,62.66,57.66ZM86.16,90H13.84V88.16a23.53,23.53,0,0,1,23.5-23.5H62.66a23.53,23.53,0,0,1,23.5,23.5Z"/></svg> 2101 2102 2103</a> 2104 2105 2106 2107 2108 2109 2110 </div> 2111 2112 2113 <!-- Mobile cart --> 2114 <div class="large--hide"> 2115 <a class="CartDrawerTrigger cart-page-link mobile-cart-page-link"> 2116 2117 2118 2119 2120 <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-bag</title><path d="M91.78,93.11,84.17,24.44a3.5,3.5,0,0,0-3.48-3.11H69.06C67.53,10.94,59.57,3,50,3S32.47,10.94,30.94,21.33H19.31a3.5,3.5,0,0,0-3.48,3.11L8.22,93.11A3.49,3.49,0,0,0,11.69,97H88.31a3.49,3.49,0,0,0,3.47-3.89ZM50,10c5.76,0,10.6,4.83,12,11.33H38.05C39.4,14.83,44.24,10,50,10ZM15.6,90l6.84-61.67h8.23v9.84a3.5,3.5,0,0,0,7,0V28.33H62.33v9.84a3.5,3.5,0,0,0,7,0V28.33h8.23L84.4,90Z"/></svg> 2121 2122 2123
2124 <span class="cart-count hidden-count">0</span> 2125 </a> 2126 </div> 2127 2128 <!-- Mobile hamburger --> 2129 <div class="large--hide"> 2130 <a class="mobile-nav-trigger MobileNavTrigger"> 2131 2132 2133 2134 2135 <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><title>icon-nav-menu</title><path d="M6.7,26.34H93a3.5,3.5,0,0,0,0-7H6.7a3.5,3.5,0,0,0,0,7Z"/><path d="M93.3,46.5H7a3.5,3.5,0,0,0,0,7H93.3a3.5,3.5,0,1,0,0-7Z"/><path d="M93.3,73.66H7a3.5,3.5,0,1,0,0,7H93.3a3.5,3.5,0,0,0,0-7Z"/></svg> 2136 2137 2138 2139 </a> 2140 </div> 2141 2142 2143 2144 <!-- Referral Notification Modal for Mobile --> 2145 <details-modal class="referral-modal" id="referralMobileModal"> 2146 <details> 2147 <summary class="referral-modal__toggle" aria-haspopup="dialog" aria-label="Open referral modal" style="display: none;"> 2148 </summary> 2149 <div class="modal-overlay referral-modal-overlay"></div> 2150 <div class="referral-modal__dialog" role="dialog" aria-modal="true" aria-label="Referral notification"> 2151 <div class="referral-modal__content"> 2152 <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;"> 2153 × 2154 </button> 2155 2156 <div style="margin-bottom: 24px;"> 2157 <div style="width: 120px; height: 120px; margin: 0 auto 20px;"> 2158 <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg" style="width: 100%; height: 100%;"> 2159 </div> 2160 </div> 2161 2162 <p id="referralSignupMessageMobile" style="font-size: 16px; color: #333; margin: 0 0 30px 0; line-height: 1.5;"> 2163 æ¨ç好å鿍 åé¥éï¼ç«å³è¨»åé åã 2164 </p> 2165 2166 <button type="button" class="btn" onclick="goToSignupPageFromMobile()" style="width: 100%; color: #fff;"> 2167 註å 2168 </button> 2169 </div> 2170 </div> 2171 </details> 2172 </details-modal> 2173 2174 2175 2176 </div> 2177 2178 </div> 2179 </div> 2180</header> 2181 2182 2183 2184 2185 2186 2187 2188 <main class="wrapper main-content" role="main"> 2189 <div class="grid"> 2190 <div class="grid__item">
vendor: 100 bytes, lines 2190-2194
2190 2191 2192 2193 2194<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=
21946LdMNdIqAAAAALegJp7y4weVcCIlnwmIN8TWseEF
vendor: 12 bytes, line 2194
2194"></script>
2195<link rel="preload" href="https://store-themes.easystore.co/325951/themes/3809/assets/customer.css?t=1787072517" as="style" onload="this.onload=null;this.rel='stylesheet'"> 2196<style> 2197 main.main-content .field > label{ 2198 display: none; 2199 } 2200 .h3{ 2201 font-size: 18px; 2202 } 2203 .button--full-width{ 2204 width: 100%; 2205 } 2206 .tab-wrapper{ 2207 display: inline-flex; 2208 justify-content: center; 2209 align-items: center; 2210 margin: 10px auto 20px; 2211 background-color: #eaeaea; 2212 border-radius: 200px; 2213 padding: 5px; 2214 gap: 10px; 2215 } 2216 .tab-wrapper .tab-label { 2217 display: inline-block; 2218 min-width: 130px; 2219 padding: 8px 15px; 2220 border-radius: 100px; 2221 cursor: pointer; 2222 font-size: 17px; 2223 line-height: 1.1; 2224 user-select: none; 2225 margin: 0; 2226 color: #000; 2227 } 2228 #register-tos a { 2229 display: inline; 2230 } 2231 @media screen and (max-width: 400px){ 2232 .tab-wrapper .tab-label { 2233 min-width: 110px; 2234 } 2235 } 2236 .tab-wrapper input[type='radio']:checked + .tab-label { 2237 background-color: #fff; 2238 box-shadow: 2px 2px 25px -10px #333; 2239 } 2240 2241 @media screen and (min-width: 500px){ 2242 .large--five-twelfths{ 2243 min-width: 420px; 2244 } 2245 } 2246</style> 2247 2248 2249 2250 2251<div class="customer login section-width-control small-width large--five-twelfths text-center wrapper"> 2252 <div class="card"> 2253 <h1 id="login" tabindex="-1" class="mb-0"> 2254 æ¡è¿ 2255 </h1> 2256 <p class="h3 mt-0"> 2257 2258 註åæç»å ¥ä»¥ç¹¼çº 2259 2260 </p> 2261 <div> 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 <div class="tab-wrapper"> 2280 <div> 2281 <input type="radio" name="type" id="tab-register" class="hide hidden" checked> 2282 <label for="tab-register" class="tab-label"> 2283 註å帳è 2284 </label> 2285 </div> 2286 <div> 2287 <input type="radio" name="type" id="tab-login" class="hide hidden"> 2288 <label for="tab-login" class="tab-label"> 2289 ç»å ¥ 2290 </label> 2291 </div> 2292 </div> 2293 2294 2295 <form id="form-login" action="/account/auth" method="post" class="mt-2"> 2296 <input type="hidden" name="_token" value="FJgxj1fBF20leLNgGa7ixlAp8rkjvzTgyBUuwqlJ"> 2297 <input type="hidden" name="location_id" value=""> 2298 <input type="hidden" name="staff_id" value=""> 2299 <input type="hidden" id="recaptchaResponse" name="g-recaptcha-response"> 2300 2301 2302 <div id="error-content"></div> 2303 2304 <div class="field"> 2305 <input 2306 type="text" 2307 name="customer[email_or_phone]" 2308 id="CustomerDetail" 2309 autocorrect="off" 2310 autocapitalize="off" 2311 placeholder="é»åéµä»¶å°å" 2312 required 2313 > 2314 <label for="CustomerDetail"> 2315 é»åéµä»¶å°å 2316 </label> 2317 </div> 2318 2319 <button 2320 type="submit" 2321 form="form-login" 2322 class="btn button--full-width g-recaptcha"> 2323 ç¹¼çº 2324 </button> 2325 2326 <div class="button-snippet"> 2327 2328 <style> 2329 #line-login-btn.btn{ 2330 background-color: #fff; 2331 color: #000; 2332 padding: 0; 2333 overflow: hidden; 2334 display: flex; 2335 justify-content: center; 2336 align-items: center; 2337 width: 100%; 2338 margin: 15px auto; 2339 font-size: 14px; 2340 border: 1px solid currentColor; 2341 box-shadow: none; 2342 } 2343 #line-login-btn.btn:hover{ 2344 background-color: #fff; 2345 } 2346 #line-login-btn.btn svg{ 2347 width: 45px; 2348 vertical-align: middle; 2349 padding: 5px; 2350 } 2351 #line-login-btn.btn .line-login-text{ 2352 padding: 13px 75px 13px 30px; 2353 display: inline-block; 2354 width: calc(100% - 52px); 2355 } 2356 @media screen and (max-width: 500px) { 2357 #line-login-btn.btn .line-login-text{ 2358 padding: 13px 25px 13px 8px; 2359 font-size: 13px; 2360 } 2361 } 2362 </style> 2363 <button type="button" onclick="location.href='/account/oauth/line'" id="line-login-btn" class="btn" style="color: #000; font-weight: normal; margin-bottom: 10px;"> 2364 <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"> 2365 <path d="M27.91,12a8.73,8.73,0,0,0-.53-2,9.84,9.84,0,0,0-2.2-3.31A12.91,12.91,0,0,0,20.85,4a14.67,14.67,0,0,0-4-1A17.13,17.13,0,0,0,15,2.83c-.27,0-.55,0-.82,0l-.82.06a15.07,15.07,0,0,0-1.62.24,14.77,14.77,0,0,0-3,1A12.64,12.64,0,0,0,4.81,6.78a9.82,9.82,0,0,0-2.29,3.55A8.38,8.38,0,0,0,2,13a9.45,9.45,0,0,0,.1,1.5A8.52,8.52,0,0,0,2.88,17a10.52,10.52,0,0,0,3.23,3.84A13.68,13.68,0,0,0,10.5,23a14.8,14.8,0,0,0,2.36.5,2.31,2.31,0,0,1,.69.16,1,1,0,0,1,.58.72,2,2,0,0,1,0,.74c-.05.34-.12.67-.17,1a2.55,2.55,0,0,0,0,.55c0,.38.22.53.59.45a4.21,4.21,0,0,0,.63-.2A11.83,11.83,0,0,0,16.92,26a47.13,47.13,0,0,0,5.68-4c.67-.55,1.31-1.14,2-1.71a10.26,10.26,0,0,0,1.64-1.78,9.31,9.31,0,0,0,1.2-2.16,8.3,8.3,0,0,0,.59-3A9.5,9.5,0,0,0,27.91,12ZM10.26,16.52l-.18,0H7.49a.67.67,0,0,1-.67-.67v-5a.67.67,0,0,1,.66-.66.68.68,0,0,1,.71.7v4.26H10a.66.66,0,0,1,.6.31A.69.69,0,0,1,10.26,16.52Zm2.43-.58a.63.63,0,0,1-.63.6.65.65,0,0,1-.69-.46.89.89,0,0,1,0-.28V11a1.
23651,1.1,0,0,1,0-.26.68.68,0,0,1,.61-.48.64.64,0,0,1,.61.29.92.92,0,0,1,.11.29.72.72,0,0,1,0,.21v4.77A1,1,0,0,1,12.69,15.94Zm6.14,0a.64.64,0,0,1-.5.63.7.7,0,0,1-.76-.27C16.79,15.17,16,14.1,15.22,13c0,0-.06-.11-.16-.14v3a.6.6,0,0,1-.1.39.64.64,0,0,1-.52.3.79.79,0,0,1-.45-.11.66.66,0,0,1-.29-.52v-5a.67.67,0,0,1,.1-.39.7.7,0,0,1,1.14,0c.46.64.93,1.26,1.4,1.89l1,1.33.09.11c.06-.05,0-.1,0-.15V10.89a.65.65,0,0,1,.5-.65.67.67,0,0,1,.87.64v3.67C18.83,15,18.82,15.45,18.83,15.89Zm4.39.62a.93.93,0,0,1-.29,0H20.47a.76.76,0,0,1-.41-.1.62.62,0,0,1-.31-.51,1.09,1.09,0,0,1,0-.18c0-1.59,0-3.19,0-4.78a.88.88,0,0,1,0-.28.66.66,0,0,1,.63-.49H23a.63.63,0,0,1,.6.43.68.68,0,0,1-.16.76.58.58,0,0,1-.39.17H21.14a5.87,5.87,0,0,0,0,1.11h.17c.56,0,1.13,0,1.69,0a.64.64,0,0,1,.65.52.66.66,0,0,1-.66.84H21.14a6.56,6.56,0,0,0,0,1.09l.19,0h1.61a1,1,0,0,1,.24,0,.67.67,0,0,1,.5.63A.63.63,0,0,1,23.22,16.51Z" fill="#02C755"/> 2366 </svg> 2367 <span class="line-login-text">LINE ç»å ¥</span> 2368 </button> 2369 <!-- <p style="font-size: 12px; color: grey;">æåä½¿ç¨æ¨çLINEé»åéµä»¶åµå»ºå®¢æ¶å¸³æ¶</p> --> 2370 2371 </div> 2372 2373 2374 2375 <div id="register-tos"> 2376 䏿¦é»æè¨»åï¼å³è¡¨ç¤ºä½ åæProsper Wood çå æ¨å·¥ç <a target="_blank" href="/legal/terms-of-service">æåæ¢æ¬¾</a>, <a target="_blank" href="/legal/privacy-policy">é±ç§æ¿ç</a> å <a target="_blank" href="/legal/refund-policy">鿬¾æ¿ç</a>ã 2377 </div> 2378 2379 </form> 2380 </div> 2381 </div> 2382 2383</div> 2384 2385 2386
2387<script> 2388 const register_tab = document.querySelector('#tab-register'); 2389 const login_tab = document.querySelector('#tab-login'); 2390 const register_tos = document.querySelector('#register-tos'); 2391 const isRegistrationEnabled = "1"; 2392 2393 if (register_tab) { 2394 register_tab.addEventListener('click', function() { 2395 if (register_tos) { 2396 register_tos.style.display = 'block'; 2397 } 2398 }); 2399 } 2400 if (login_tab) { 2401 login_tab.addEventListener('click', function() { 2402 if (register_tos) { 2403 register_tos.style.display = 'none'; 2404 } 2405 }); 2406 } 2407 2408 const methodSwitchBtn = document.getElementById('phone-login-btn'); 2409 if (methodSwitchBtn) { 2410 methodSwitchBtn.onclick = function () { 2411 var type = (register_tab && register_tab.checked) ? 'register' : 'login'; 2412 window.location.href = '/account/login?method=phone&type=' + type; 2413 }; 2414 } 2415 2416 let lastPathSegment = window.location.pathname.split('/').filter(segment => segment.length > 0).pop(); 2417 2418 // Redirect to login if trying to access register when self registration is disabled 2419 if (!isRegistrationEnabled) { 2420 if (lastPathSegment === 'register') { 2421 window.location.href = '/account/login'; 2422 } else if (lastPathSegment === 'login' || lastPathSegment === 'auth') { 2423 if (register_tos) { 2424 register_tos.style.display = 'none'; 2425 } 2426 } 2427 } else { 2428 // Only proceed with tab logic if not redirecting 2429 if(lastPathSegment === 'login') { 2430 if (login_tab) { 2431 login_tab.checked = true; 2432 } 2433 if (register_tos) { 2434 register_tos.style.display = 'none'; 2435 } 2436 } else { 2437 if (register_tos) { 2438 register_tos.style.display = 'block'; 2439 } 2440 } 2441 } 2442 2443 const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; 2444 const phonePattern = /^(?:\+?\d{1,3}[\s-]?)?(?:\d{1,14}[\s-]?){1,5}$/; 2445 2446 let form = document.querySelector('#form-login'), 2447 input = document.querySelector('#CustomerDetail'), 2448 error_content = document.querySelector('#error-content'); 2449 2450 2451 // One attempt at a time: the reCAPTCHA wait below is async, so without 2452 // this a double-click starts two continuations and posts the form twice. 2453 var submitting = false; 2454 2455 form.addEventListener('submit', async function (event) { 2456 // preventDefault FIRST: a re-entrant submit must still be cancelled, or the 2457 // browser performs a native post with no captcha token. 2458 event.preventDefault(); 2459 if (submitting) return; 2460 2461 let input_value = input.value 2462 error_content.innerHTML = ''; 2463 if (!input_value.match(emailPattern) && !input_value.match(phonePattern)) { 2464 error_content.innerHTML = `<div class="errors note">Invalid Email or Phone</div>`; 2465 return false; 2466 } 2467 2468 submitting = true; 2469 document.querySelector('#form-login .btn').classList.add('btn--loading','loading'); 2470 2471 // reCAPTCHA is unreachable from some regions (google.com is blocked in 2472 // mainland China). Fail open the same way checkout and forgot-password do: 2473 // submit without a token rather than leave the button spinning forever. 2474 try { 2475 if (window.grecaptcha && typeof window.grecaptcha.enterprise === 'object') { 2476 // The loader defines a stub {ready} synchronously and fetches the real 2477 // implementation asynchronously, so execute() may not exist yet. 2478 // ready() queues until it does; the timeout stops a bundle that never 2479 // arrives from hanging the button. 2480 await new Promise(function (resolve) { 2481 setTimeout(resolve, 3000); 2482 try { grecaptcha.enterprise.ready(resolve); } catch (e) { resolve(); } 2483 }); 2484 2485 const token = await grecaptcha.enterprise.execute('6LdMNdIqAAAAALegJp7y4weVcCIlnwmIN8TWseEF', { action: 'LOGIN' }); 2486 document.getElementById('recaptchaResponse').value = token; 2487 } 2488 } catch (e) { /* fail open */ } 2489 2490 document.getElementById('form-login').submit(); 2491 }); 2492 2493 2494</script>
2494 2495 2496 2497 2498 </div> 2499 </div> 2500 2501 2502 2503 </main> 2504 2505 <footer id="es_footer_section" class="site-footer small--text-center" role="contentinfo"> 2506 2507 2508 2509 <div class="wrapper"> 2510 2511 <div class="grid-uniform"> 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 <div class="grid__item large--one-half "> 2535 <a href="/" class="logo-wrapper" itemprop="url" > 2536 2537 <img class="footer-logo" src="https://cdn.store-assets.com/s/325951/f/8174666.png?width=350&format=webp" alt="Prosper Wood çå æ¨å·¥" itemprop="logo"> 2538 2539 </a> 2540 <p class="site-footer__links">Copyright © 2026 Prosper Wood</p> 2541 </div> 2542 2543 2544 <div class="grid__item large--one-quarter medium--one-half"> 2545 2546 <!-- <h4>å¿«éé£çµ</h4> --> 2547 2548 <ul class="site-footer__links"> 2549 2550 <li><a href="https://line.me/R/ti/p/%40401uhtsg" target="_blank" >Contact us </a></li> 2551 2552 2553 </ul> 2554 </div> 2555 2556 2557 2558 <div class="grid__item large--one-quarter medium--one-half"> 2559 <!-- <h4>éæ³¨æå</h4> --> 2560 2561 <ul class="inline-list social-icons"> 2562 2563 2564 <li> 2565 <a class="icon-fallback-text" href="https://www.facebook.com/ProsperWood-%E7%9B%9B%E5%85%83%E6%9C%A8%E5%B7%A5-107645920982397" title="Prosper Wood çå æ¨å·¥å¨Facebookä¸" target="_blank"> 2566 2567 2568 2569 2570 <svg xmlns="http://www.w3.org/2000/svg" class="facebook-icon-svg social-icon-svg" viewBox="0 0 1024 1024"> 2571 <title>icon-facebook</title> 2572 <path d="M837.66,223.9a33.73,33.73,0,0,0-3.11-15c-6.78-13.85-17.87-21.09-33.37-21.09q-288.46,0-576.91,0c-.62,0-1.24,0-1.85,0a34.51,34.51,0,0,0-25.88,12.11c-6.31,7.13-8.85,15.57-8.85,25.07q.08,287.7,0,575.4c0,1,0,1.9,0,2.86A32.93,32.93,0,0,0,190,814.71c4.45,11.79,16.3,23.11,35,23.1q153.61-.1,307.24,0c2.36,0,2.36,0,2.36-2.37q0-123.3,0-246.6c0-2.55,0-2.55-2.53-2.55H452.27c-2.26,0-2.26,0-2.26-2.17v-96.3h84.63v-2.46c0-22.12-.11-44.24.06-66.36.07-8.29.57-16.59,1.28-24.85a129.58,129.58,0,0,1,7.43-33c10.86-30,30.59-51.74,60-64.51A133.44,133.44,0,0,1,653,285.82c12.45-.37,24.93,0,37.38.34,9.64.27,19.27.95,28.9,1.6,5.36.36,10.7,1.07,16.06,1.5,1.46.12,1.65.75,1.65,2q0,42.2,0,84.39c0,.59-.06,1.18-.09,1.85h-2.39c-16.28,0-32.56,0-48.84.05-7.63,0-15.23.54-22.65,2.61-11.61,3.23-19.86,10.09-23.65,21.78a55.66,55.66,0,0,0-2.74,16.86c-.14,22.23-.1,44.47-.13,66.7,0,2.25,0,2.25,2.31,2.25h94.66a15.13,15.13,0,0,1,0,1.54c-.38,2.94-.81,5.88-1.18,8.82-1.17,9.16-2.3,18.33-3.48,27.5-1.29,10-2.63,20-3.94,30-1.23,9.44-2.43,18.88-3.67,28.32-.31,2.32-.35,2.32-2.78,2.32h-79a4.62,4.62,0,0,0-1.67,0,2.5,2.5,0,0,0-1.2,1.16,3.68,3.68,0,0,0,0,1.49V835.21c0,2.56,0,2.56,2.53,2.56H797.83c2.13,0,4.27-.07,6.39-.21,11.56-.78,20.61-6.07,27.23-15.48,4.66-6.6,6.24-14.09,6.24-22.11q-.06-287.19,0-574.38Z" fill="#999"/> 2573 </svg> 2574 2575 2576 2577 <span class="fallback-text">Facebook</span> 2578 </a> 2579 </li> 2580 2581 2582 2583 <li> 2584 <a class="icon-fallback-text" href="https://www.instagram.com/prosper_wood/" title="Prosper Wood çå æ¨å·¥å¨Instagramä¸" target="_blank"> 2585 2586 2587 2588 2589 <svg xmlns="http://www.w3.org/2000/svg" class="instagram-icon-svg social-icon-svg" viewBox="0 0 1024 1024"> 2590 <title>icon-instagram</title> 2591 <path d="M834.35,341.22a231.23,231.23,0,0,0-9.59-46.45,166.71,166.71,0,0,0-52.17-78.33c-17-14.41-36.33-24.44-57.44-31.3-21.52-7-43.69-10.21-66.19-11.12-22.28-.9-44.58-1.73-66.87-1.85-47.68-.26-95.37-.16-143.06,0-27.47.11-54.95.69-82.32,3.39a220.7,220.7,0,0,0-37.43,6.95c-26.2,7.26-50,19-70.24,37.45-18.06,16.4-32.3,35.52-41.87,58.05-9.89,23.29-15.13,47.68-16.69,72.82-1.23,19.78-2.06,39.6-2.32,59.41-.38,28.91-.1,57.82-.1,86.73-.23,39.92-.67,79.85,1,119.76.72,17.66,1.57,35.3,4.6,52.76,3.22,18.52,8.32,36.51,16.71,53.34C232.83,768,268.81,797,317.12,811a246.28,246.28,0,0,0,59.24,9.11c25.3.95,50.63,1.78,75.95,1.94,43.83.28,87.66.1,131.5,0,26-.08,52.08-.72,78.06-2.74a234.52,234.52,0,0,0,45.76-8c24.54-6.92,46.82-18.12,66.22-34.79,24.65-21.17,41.5-47.44,51.3-78.36,6.7-21.14,9.83-42.88,10.73-64.94.9-21.84,1.73-43.69,1.82-65.55q.33-78.21-.15-156.44C837.42,387.82,836.72,364.47,834.35,341.22Zm-55.3,232.84c-.12,20.41-1,40.84-2,61.24-1,19.2-4.13,38.08-11.74,55.92q-18.43,43.24-62.47,60c-14.36,5.48-29.3,8.3-44.55,9.53-27.07,2.18-54.21,2.63-81.36,2.73-21.31.07-42.62,0-63.93,0v-.16c-28.47,0-56.94.22-85.4-.09-17.5-.18-35-1-52.49-1.89-19.94-1-39.51-4.31-57.95-12.38q-41.6-18.2-58-60.68a162.37,162.37,0,0,1-9.95-45.62c-2-24.66-2.62-49.38-2.66-74.1-.09-50.88-.16-101.77.12-152.65.11-19,1-38.09,2-57.11a180,180,0,0,1,8.78-48.23c8.32-24.84,23.63-44.14,45.66-58.12,11.78-7.48,24.85-11.91,38.36-15,15.57-3.61,31.43-4.65,47.34-5.32,54.32-2.28,108.68-1.46,163-1.5,18.67,0,37.34.12,56,.56,15.84.38,31.7,1,47.51,2,18.33,1.18,36.27,4.59,53.19,12q41.67,18.25,58.1,60.83c5.67,14.7,8.64,30,9.91,45.63,2,25,2.63,50,2.67,75.09C779.25,475.82,779.35,524.94,779.05,574.06Z" fill="#999"/><path d="M513,330.12c-92-.34-167,74.55-167.08,166.87s74.71,167,167,167A166.86,166.86,0,0,0,679.77,497.12C679.87,405,605.46,330.45,513,330.12Zm-.29,275.31A108.38,108.38,0,1,1,621.21,497.15,108.38,108.38,0,0,1,512.7,605.43Z" fill="#999"/><path d="M686.47,284.5a39,39,0,1,0,38.92,39.14A39,39,0,0,0,686.47,284.5Z" fill="#999"/> 2592 </svg> 2593 2594 2595
2596 <span class="fallback-text">Instagram</span> 2597 </a> 2598 </li> 2599 2600 2601 2602 2603 2604 2605 2606 <li> 2607 <a class="icon-fallback-text" href="https://lin.ee/2VXlxUpAB" title="Prosper Wood çå æ¨å·¥å¨Lineä¸" target="_blank"> 2608 2609 2610 2611 2612 <svg xmlns="http://www.w3.org/2000/svg" class="line-icon-svg social-icon-svg" viewBox="0 0 1024 1024"> 2613 <title>icon-line</title> 2614 <path d="M837.58,237.47c-15.8-26.86-38.14-46.42-66.73-58.78A128.73,128.73,0,0,0,734,168.78c-4.2-.47-8.42-.74-12.62-1.15a26.81,26.81,0,0,1-2.93-.63H306.1a21,21,0,0,1-3.19.65A141,141,0,0,0,193.7,227.18a136.92,136.92,0,0,0-24.4,60.54c-.5,3.45-.7,6.94-1.18,10.39a21.46,21.46,0,0,1-1.12,3.58V719.55a23.91,23.91,0,0,1,1.1,4.45,132.12,132.12,0,0,0,14.49,54.45c20.58,39.69,52.66,64.84,96.28,75.07a118.63,118.63,0,0,0,21.81,2.91,24.16,24.16,0,0,1,3.22.57H720.66a27.33,27.33,0,0,1,3.21-.57c39.53-2.53,72.32-18.87,98.47-48.43a136.51,136.51,0,0,0,32-65.32c1-4.85,1.26-9.82,1.91-14.73a24.25,24.25,0,0,1,.72-2.88V301.69a15.08,15.08,0,0,1-.69-2.9C855.25,276.76,848.7,256.38,837.58,237.47ZM753.76,544.74a189.6,189.6,0,0,1-23.32,42.11,208.16,208.16,0,0,1-32.15,34.76c-12.76,11.12-25.31,22.48-38.38,33.23-35.07,28.83-71.7,55.51-110.67,78.87-11.12,6.67-22.46,13-34.55,17.76a84.7,84.7,0,0,1-12.35,3.8c-7.29,1.65-11.22-1.26-11.62-8.72a53.45,53.45,0,0,1,.91-10.68c1-6.62,2.39-13.19,3.34-19.83a39.31,39.31,0,0,0-.35-14.26,19.77,19.77,0,0,0-11.3-14.11c-4.23-2-8.76-2.63-13.32-3.21a290.39,290.39,0,0,1-46-9.72c-31.07-9.18-59.84-23-85.77-42.53-26.73-20.1-48.32-44.61-63-74.85a170.66,170.66,0,0,1-17.05-78.18,163.09,163.09,0,0,1,10.07-52c9.7-26.44,25-49.27,44.73-69.19,21.9-22.09,47.44-38.86,75.76-51.51a289.28,289.28,0,0,1,59.46-19.08,260.46,260.46,0,0,1,31.59-4.72c5.31-.44,10.62-.92,15.94-1.22s10.65-.38,16-.56a339.27,339.27,0,0,1,36.88,2.27,290.8,290.8,0,0,1,77.23,19.51c31.72,12.85,60.21,30.74,84.43,55.11,18.57,18.67,33.22,40,43,64.52a172,172,0,0,1,12.08,63.78A164.42,164.42,0,0,1,753.76,544.74Z" fill="#999"/><path d="M569.52,425.37c-6,1.41-9.73,6.4-9.81,12.73-.08,5.62,0,11.23,0,16.84q0,18.63,0,37.26c0,.91.35,2-.72,2.89-.65-.81-1.25-1.5-1.79-2.22L537.86,467c-9.12-12.25-18.3-24.45-27.31-36.77-5.3-7.26-17.63-7.11-22.37.83a14.49,14.49,0,0,0-1.94,7.63q0,47.9,0,95.77c0,.55,0,1.11,0,1.66A13,13,0,0,0,492,546.28a13.78,13.78,0,0,0,8.7,2,12.25,12.25,0,0,0,10.14-5.75A13.27,13.27,0,0,0,513,535q0-26.91,0-53.82v-4a6,6,0,0,1,3,2.76q23,31.39,45.93,62.82c3.87,5.34,9.24,6.5,14.87,5.26a12.45,12.45,0,0,0,9.68-12.22c-.12-8.73,0-17.47,0-26.21,0-23.83-.07-47.66,0-71.49C586.46,430.63,580.05,422.88,569.52,425.37Z" fill="#999"/><path d="M634.92,451.78q15.18,0,30.35,0c1.28,0,2.57,0,3.86-.11a11.71,11.71,0,0,0,7.64-3.38c4.29-4.21,5-9.34,3.15-14.75s-6.18-8-11.81-8.46c-.91-.08-1.83,0-2.75,0h-45.8c-.83,0-1.66,0-2.48,0-6.18.33-11,4-12.41,9.55a23.69,23.69,0,0,0-.41,5.47q0,46.62,0,93.24c0,1.2,0,2.4.07,3.59a12.1,12.1,0,0,0,6.14,9.88,14.75,14.75,0,0,0,7.94,1.92q24,.06,48,0a22,22,0,0,0,5.69-.84c4.58-1.28,9.06-6.21,8.69-13.24-.3-5.93-4-10.89-9.7-12.24a20.57,20.57,0,0,0-4.65-.36c-10.48,0-21,0-31.45,0-1.25,0-2.49-.19-3.65-.28-.6-3.33-.48-19.09.17-21.34,1-.05,2.08-.15,3.16-.15,10.94,0,21.89-.12,32.83,0,7.09.1,15.12-5.73,13-16.47a12.57,12.57,0,0,0-12.66-10.21c-11-.05-22.07,0-33.1,0h-3.35c-.63-3.48-.52-19.31.12-21.54C632.58,451.93,633.75,451.78,634.92,451.78Z" fill="#999"/><path d="M414.9,521.65c-10.76,0-21.52,0-32.29,0h-3.84v-4.26c0-26.3,0-52.61,0-78.92a13.36,13.36,0,0,0-26.72-.65q.1,48.72,0,97.42a13,13,0,0,0,13,13.11c16.83-.14,33.67,0,50.5-.06a13.53,13.53,0,0,0,3.54-.38c10.55-2.9,11.23-14.46,7.49-20.26C423.89,523.39,419.8,521.66,414.9,521.65Z" fill="#999"/><path d="M466.59,436.12a18.43,18.43,0,0,0-2.09-5.59c-2.75-4.22-6.9-5.79-11.87-5.59a12.74,12.74,0,0,0-11.93,9.37,20.25,20.25,0,0,0-.41,4.93q0,23.6,0,47.19t0,47.47a19.84,19.84,0,0,0,.54,5.45c1.7,6,6.6,9.1,13.56,8.94a12.4,12.4,0,0,0,12.32-11.73c.07-1.1.06-2.21.06-3.31q0-46.5,0-93A17.09,17.09,0,0,0,466.59,436.12Z" fill="#999"/> 2615 </svg> 2616 2617 2618 2619 <span class="fallback-text">Line</span> 2620 </a> 2621 </li> 2622 2623 2624 2625</ul> 2626 2627 </div> 2628 2629 </div> 2630 2631 <hr class="hr--small hr--clear"> 2632 2633 2634 2635 <div class="grid"> 2636 <div class="grid__item text-center"> 2637 2638 2639 <p class="site-footer__links"> 2640 2641 2642 2643 <a href="/legal/terms-of-service">æåæ¢æ¬¾</a> 2644 2645 2646 2647 2648 | <a href="/legal/privacy-policy">é±ç§æ¿ç</a> 2649 2650 2651 2652 2653 | <a href="/legal/refund-policy">鿬¾æ¿ç</a> 2654 2655 2656 2657 </p> 2658 2659 </div> 2660 </div> 2661 2662 </div> 2663 </footer> 2664 2665 2666 2667 2668 2669 2670 2671 <div id="scrollTopButton" class="on-right" style="display: none"> 2672 <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2672<path d="M22,18.25a1.21,1.21,0,0,1-.88-.37L12,8.77,2.88,17.88a1.24,1.24,0,0,1-1.76-1.76l10-10a1.24,1.24,0,0,1,1.76,0l10,10a1.24,1.24,0,0,1,0,1.76A1.21,1.21,0,0,1,22,18.25Z"/></svg> 2673 </div> 2674
2674<script> 2675 $( document ).ready(function() { 2676 var winScroll = $(this).scrollTop(), 2677 this_el = $("#scrollTopButton"); 2678 2679 // Header bar 2680 if(winScroll > 400){ 2681 this_el.fadeIn(); 2682 }else{ 2683 this_el.fadeOut(); 2684 } 2685 2686 $("#scrollTopButton").click(function() { 2687 $('html,body').animate({ scrollTop: 0 }); 2688 }); 2689 2690 $(window).scroll(function(){ 2691 var winScroll = $(this).scrollTop(); 2692 2693 // Header bar 2694 if(winScroll > 400){ 2695 this_el.fadeIn(); 2696 }else{ 2697 this_el.fadeOut(); 2698 } 2699 2700 }); 2701 }); 2702 </script>
2702 2703 2704 2705 2706 2707 2708
2708<script src="https://store-themes.easystore.co/325951/themes/3809/assets/fastclick.min.js?t=1787072517" type="text/javascript" ></script>
2708 2709
2709<script src="https://store-themes.easystore.co/325951/themes/3809/assets/timber.js?v1.1?t=1787072517" type="text/javascript" ></script>
2709 2710
2710<script src="https://store-themes.easystore.co/325951/themes/3809/assets/theme.js?t=1787072517" type="text/javascript" ></script>
2710 2711 2712 2713 2714 2715
2715<script> 2716 if (typeof Object.assign !== 'function') { 2717 // Must be writable: true, enumerable: false, configurable: true 2718 Object.defineProperty(Object, "assign", { 2719 value: function assign(target, varArgs) { // .length of function is 2 2720 'use strict'; 2721 if (target === null || target === undefined) { 2722 throw new TypeError('Cannot convert undefined or null to object'); 2723 } 2724 2725 var to = Object(target); 2726 2727 for (var index = 1; index < arguments.length; index++) { 2728 var nextSource = arguments[index]; 2729 2730 if (nextSource !== null && nextSource !== undefined) { 2731 for (var nextKey in nextSource) { 2732 // Avoid bugs when hasOwnProperty is shadowed 2733 if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { 2734 to[nextKey] = nextSource[nextKey]; 2735 } 2736 } 2737 } 2738 } 2739 return to; 2740 }, 2741 writable: true, 2742 configurable: true 2743 }); 2744 } 2745 </script>
2745 2746
2746<script src="https://store-themes.easystore.co/325951/themes/3809/assets/lozad.min.js?t=1787072517" type="text/javascript" ></script>
2746 2747
2747<script> 2748 const observer = lozad('.lozad', { 2749 loaded: function(el) { 2750 // Custom implementation on a loaded element 2751 el.onload = function() { 2752 el.classList.add('loaded'); 2753 }; 2754 } 2755 }); 2756 observer.observe(); 2757 </script>
2757 2758 2759 2760 2761 2762 2763 2764 2765
2766<script src="/assets/currencies.js" type="text/javascript" ></script>
vendor: 1 bytes, line 2766
2766
2767<script src="/assets/jquery.currencies.min.js" type="text/javascript" ></script>
vendor: 1 bytes, line 2767
2767
2768<script src="/assets/currencies_format.js" type="text/javascript" ></script>
2768 2769
2770<script> 2771Currency.format = "money_with_currency_format"; 2772var shopCurrency = 'TWD'; 2773var selectedCurrency = ''; 2774 2775 2776 Currency.convert = function(amount, from, to) { 2777 return amount; 2778 }; 2779 2780 2781if( $.cookie("currency") == null ){ 2782 2783 if( selectedCurrency != false ) { 2784 2785 Currency.convertAll(shopCurrency, selectedCurrency); 2786 jQuery('.selected-currency').text(Currency.currentCurrency); 2787 2788 } 2789 2790} 2791 2792/* Sometimes merchants change their shop currency, let's tell our JavaScript file */ 2793// Currency.moneyFormats[shopCurrency].money_with_currency_format = ""; 2794// Currency.moneyFormats[shopCurrency].money_format = "NT$ {{amount}} "; 2795 2796/* Default currency */ 2797var defaultCurrency = 'TWD'; 2798 2799/* Cookie currency */ 2800var cookieCurrency = Currency.cookie.read(); 2801 2802 cookieCurrency = shopCurrency; 2803 2804$("input[name=current_currency]").val(cookieCurrency); 2805if(cookieCurrency == null){ 2806 cookieCurrency = shopCurrency; 2807 Currency.cookie.write(shopCurrency); 2808} 2809/* Fix for customer account pages */ 2810jQuery('span.money span.money').each(function() { 2811 jQuery(this).parents('span.money').removeClass('money'); 2812}); 2813/* Saving the current price */ 2814jQuery('span.money').each(function() { 2815 jQuery(this).attr('data-currency-TWD', jQuery(this).html()); 2816}); 2817// If there's no cookie. 2818if (cookieCurrency == null) { 2819 if (shopCurrency !== defaultCurrency) { 2820 Currency.convertAll(shopCurrency, defaultCurrency); 2821 } 2822 else { 2823 Currency.currentCurrency = defaultCurrency; 2824 } 2825} 2826// If the cookie value does not correspond to any value in the currency dropdown. 2827else if (jQuery('[name=currencies]').size() && jQuery('[name=currencies] option[value=' + cookieCurrency + ']').size() === 0) { 2828 Currency.currentCurrency = shopCurrency; 2829 Currency.cookie.write(shopCurrency); 2830} 2831else if (cookieCurrency === shopCurrency) { 2832 Currency.currentCurrency = shopCurrency; 2833 Currency.convertAll(shopCurrency, cookieCurrency); 2834} 2835else { 2836 Currency.convertAll(shopCurrency, cookieCurrency); 2837} 2838jQuery('[name=currencies]').val(Currency.currentCurrency).change(function() { 2839 var newCurrency = jQuery(this).val(); 2840 2841 2842 Currency.cookie.write(newCurrency) 2843 if ('customers' == 'cart') { 2844 const params = new URLSearchParams(window.location.search); 2845 params.set('delete_cache', 1); 2846 window.location.search = params; 2847 } else { 2848 window.location.reload(); 2849 } 2850 2851}); 2852var original_selectCallback = window.selectCallback; 2853var selectCallback = function(variant, selector) { 2854 var currencies = null; 2855 original_selectCallback(variant, selector); 2856 if(typeof jQuery('[name=currencies]').val() == "undefined"){ 2857 currencies = shopCurrency; 2858 } 2859 else{ 2860 currencies = jQuery('[name=currencies]').val(); 2861 } 2862 Currency.convertAll(shopCurrency, currencies); 2863 jQuery('.selected-currency').text(Currency.currentCurrency); 2864}; 2865$('body').on('ajaxCart.afterCartLoad', function(cart) { 2866 Currency.convertAll(shopCurrency, jQuery('[name=currencies]').val()); 2867 jQuery('.selected-currency').text(Currency.currentCurrency); 2868}); 2869jQuery('.selected-currency').text(Currency.currentCurrency); 2870</script>
2870 2871 2872 2873
2873<script> 2874 2875 /* 2876 2877 ------ 2878 Events 2879 ------ 2880 2881 pages/viewed 2882 2883 customers/signup 2884 2885 customers/login 2886 2887 products/searched 2888 2889 collections/viewed 2890 2891 products/viewed 2892 2893 products/shared 2894 2895 wishlists/item_added 2896 2897 carts/items_added 2898 2899 carts/viewed 2900 2901 carts/item_removed 2902 2903 checkouts/initiated 2904 2905 checkouts/shipping_info_added 2906 2907 checkouts/payment_info_added 2908 2909 checkouts/completed 2910 2911 orders/placed 2912 2913 orders/purchased 2914 2915 payments/captured 2916 2917 payments/failed 2918 2919 */ 2920 2921 window.__latest_cart = window.__latest_cart || null; 2922 2923 const _selector = document.querySelector.bind(document), 2924 _selectorAll = document.querySelectorAll.bind(document) 2925 2926 document.addEventListener('DOMContentLoaded', (event) => { 2927 2928 const default_currency = getCookie("currency") 2929 const customer_id = window.__st.cid 2930 const template = window.__st.p 2931 2932 onPageView() 2933 2934 //-----------------------// 2935 // Configs // 2936 //-----------------------// 2937 2938 window.dataLayer = window.dataLayer || [] 2939 2940 Array.prototype.last = Array.prototype.last || function() { 2941 return this[this.length - 1] || null 2942 } 2943 2944 Array.prototype.first = Array.prototype.first || function() { 2945 return this[0] || null 2946 } 2947 2948 //----------------------// 2949 // Triggers // 2950 //----------------------// 2951 2952 const XHR = window.XMLHttpRequest 2953 2954 function xhr() { 2955 2956 const xhr = new XHR() 2957 2958 xhr.addEventListener("readystatechange", function() { 2959 2960 if(xhr.readyState != 4) return 2961 2962 try { 2963 2964 const response_url = xhr.responseURL 2965 2966 if (response_url.includes("cart/add")) { 2967 2968 window.__latest_cart = JSON.parse(xhr.response) 2969 2970 onCartItemsAdded() // ok 2971 2972 } 2973 2974 if (response_url.includes("cart/remove_item_quantity")) { 2975 2976 window.__latest_cart = JSON.parse(xhr.response) 2977 2978 onCartItemRemoved() // ok 2979 2980 } 2981 2982 if (response_url.includes("new_cart?retrieve=true")) { 2983 2984 result = JSON.parse(xhr.response) 2985 2986 if (result.cart) { 2987 window.__latest_cart = result.cart 2988 } 2989 2990 } 2991 2992 } catch(e) { 2993 2994 console.error(e) 2995 2996 } 2997 2998 }, false); 2999 3000 return xhr 3001 3002 } 3003 3004 window.XMLHttpRequest = xhr 3005 3006 switch(template) { 3007 3008 case 'cart': onCartView() // ok 3009 break 3010 case 'product': onProductView() // ok 3011 break 3012 case 'collection': onCollectionView() // ok 3013 break 3014 case 'blog': onBlogView() 3015 break 3016 case 'article': onArticleView() 3017 break 3018 case 'payment_completed': onOrderPlace() 3019 break 3020 case 'payment_fail': onPaymentFail() 3021 break 3022 3023 } 3024 3025 // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]'))) 3026 if (_selector('form[action="/checkout/detail"]')) _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))}) // ok 3027 if (_selector('form[action="/checkout/shipping"]')) _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))}) // ok 3028 if (_selector('form[action="/account/register"]')) _selector('form[action="/account/register"]').addEventListener("submit", onSignUp) // ok 3029 if (_selector('form[action="/account/login"]')) _selector('form[action="/account/login"]').addEventListener("submit", onLogin) // ok 3030 if (_selector('form[action="/search"]')) _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok 3031 if (_selector('#line-login-btn')) _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok 3032 if (_selector('#PlaceOrder')) _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))}); // ok 3033 if (_selector('#add_wishlist')) _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok 3034 if (_selectorAll('a[href="/account/logout"]')) _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok 3035 if (_selector('.CartDrawerTrigger.cart-page-link')) _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok 3036 if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link')) _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok 3037 if (_selectorAll('a[class^="share-"]')) _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok 3038 if (_selectorAll('[name$="checkout"]')) _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate)) 3039 3040 // For append elements 3041 const bodyMutationObserver = new MutationObserver(() => { 3042 if (_selector('#form__spc #PlaceOrder')) _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok 3043 if (_selectorAll('[name$="checkout"]')) _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate)) 3044 }); 3045 bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true}); 3046 3047 //------------------------------// 3048 // Event handlers // 3049 //------------------------------// 3050 3051 function onPageView() { 3052 3053 EasyStore.Event.dispatch('pages/viewed', { 3054 page: { 3055 type: template, 3056 title: document.title, 3057 description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null, 3058 url: location.href, 3059 } 3060 }) 3061 3062 } 3063 3064 function onSignUp() { 3065 3066 const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/) 3067 const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/) 3068 3069 const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "") 3070 3071 let data = {} 3072 3073 if (email_regex.test(email_or_phone)) { 3074 data.method = 'email' 3075 data.email = email_or_phone 3076 } 3077 3078 if (phone_regex.test(email_or_phone)) { 3079 data.method = "phone" 3080 data.phone = email_or_phone 3081 } 3082 3083 if (!data.method) return 3084 3085 EasyStore.Event.dispatch('customers/signup', data) 3086 3087 } 3088 3089 function onLogin() { 3090 3091 const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/) 3092 const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/) 3093 3094 const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "") 3095 3096 let data = {} 3097 3098 if (email_regex.test(email_or_phone)) { 3099 data.method = 'email' 3100 data.email = email_or_phone 3101 } 3102 3103 if (phone_regex.test(email_or_phone)) { 3104 data.method = "phone" 3105 data.phone = email_or_phone 3106 } 3107 3108 if (!data.method) return 3109 3110 EasyStore.Event.dispatch('customers/login', data) 3111 3112 } 3113 3114 function onLineLogin() { 3115 3116 EasyStore.Event.dispatch('customers/login', { method: 'line' }) 3117 3118 } 3119 3120 function onLogout() { 3121 3122 EasyStore.Event.dispatch('customers/logout', { customer_id }) 3123 3124 } 3125 3126 function onBlogView() { 3127 3128 const blog = "" 3129 3130 EasyStore.Event.dispatch('blogs/viewed', { blog }) 3131 3132 } 3133 3134 function onArticleView() { 3135 3136 const article = "" 3137 3138 EasyStore.Event.dispatch('articles/viewed', { article }) 3139 3140 } 3141 3142 function onProductSearch() { 3143 3144 const query = _selector('input[name=q]').value 3145 3146 if (!query) return 3147 3148 EasyStore.Event.dispatch('products/searched', { query }) 3149 3150 } 3151 3152 function onCollectionView() { 3153 3154 const collection = "" 3155 3156 EasyStore.Event.dispatch('collections/viewed', { collection }) 3157 3158 } 3159 3160 function onProductView() { 3161 3162 const product = "" 3163 3164 EasyStore.Event.dispatch("products/viewed", { product }) 3165 3166 } 3167 3168 function onProductShare(el) { 3169 3170 const product = "" 3171 3172 const channel = el.getAttribute("class").split("-").last() 3173 3174 EasyStore.Event.dispatch('products/shared', { product, channel }) 3175 3176 } 3177 3178 function onWishlistItemAdded() { 3179 3180 let product = "" 3181 const quantity = _selector("#Quantity").value 3182 3183 EasyStore.Event.dispatch('wishlists/item_added', { product }) 3184 3185 } 3186 3187 async function onCartItemsAdded() { 3188 3189 const cart = await getCart() 3190 3191 if(cart && cart.items != undefined && cart.items.length > 0) { 3192 3193 EasyStore.Event.dispatch('carts/item_added', { cart }) 3194 3195 } 3196 3197 } 3198 3199 async function onCartView() { 3200 3201 const cart = await getCart() 3202 3203 EasyStore.Event.dispatch('carts/viewed', { cart }) 3204 3205 } 3206 3207 async function onCartItemRemoved() { 3208 3209 const cart = await getCart() 3210 3211 cart.items = [] 3212 3213 if(cart) { 3214 3215 EasyStore.Event.dispatch('carts/item_removed', { cart }) 3216 3217 } 3218 3219 } 3220 3221 async function onCheckoutInitiate() { 3222 3223 const cart = await getCart() 3224 3225 EasyStore.Event.dispatch('checkouts/initiated', { cart }) 3226 3227 } 3228 3229 async function onShippingInfoAdded(form) { 3230 let checkout = getCheckout() 3231 3232 let form_data = {} 3233 new FormData(form).forEach((value, key) => form_data[key] = value) 3234 3235 let shipping_tier = null 3236 3237 if (form_data.type && form_data.type.startsWith("r_pickup")) { 3238 shipping_tier = `Pickup - ${form_data.pick_location}` 3239 } 3240 3241 if (form_data.s_id) {
3242 shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name") 3243 } 3244 3245 if (!shipping_tier) return 3246 3247 EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier }) 3248 3249 } 3250 3251 async function onPaymentInfoAdded(form) { 3252 3253 let checkout = getCheckout() 3254 3255 let payment_type = new FormData(form).get('payment_method') 3256 3257 EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type }) 3258 3259 } 3260 3261 async function onOrderPlace() { 3262 3263 let cart_token = getCookie("cart_js") 3264 let previous_cart_token = getCookie("previous_cart_ga4_js") 3265 3266 if (previous_cart_token && previous_cart_token == cart_token) { 3267 // Prevent duplicate purchase tracking 3268 return 3269 } 3270 3271 let order = getOrder() 3272 3273 EasyStore.Event.dispatch('orders/placed', { order }) 3274 3275 if(order.is_manual_payment) { 3276 3277 EasyStore.Event.dispatch('orders/purchased', { order }) 3278 3279 } 3280 3281 const last_transaction = order.transactions.last() 3282 3283 if (last_transaction.status) { 3284 3285 EasyStore.Event.dispatch('orders/purchased', { order }) 3286 EasyStore.Event.dispatch('payments/captured', { order }) 3287 3288 } 3289 3290 } 3291 3292 async function onPaymentFail() { 3293 3294 const order = getOrder() 3295 3296 EasyStore.Event.dispatch('payments/failed', { order }) 3297 3298 } 3299 3300 async function onCheckoutComplete(form) { 3301 3302 onPaymentInfoAdded(form) 3303 3304 const checkout = getCheckout() 3305 3306 EasyStore.Event.dispatch('checkouts/completed', { checkout }) 3307 3308 } 3309 3310 async function onSinglePageCheckout() { 3311 3312 // let checkout = $("[data-app-checkout]").data("app-checkout") 3313 3314 let checkout = getCheckout() 3315 3316 // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text() 3317 const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML 3318 3319 const shipping_method = _selector("#delivery_method").value 3320 3321 let shipping_tier = null 3322 let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content') 3323 if (shipping_method == "shipping") { 3324 shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML 3325 } 3326 3327 if (shipping_method == "pickup") { 3328 shipping_tier = app_spc_customer_info_label[0].innerHTML 3329 } 3330 3331 if (shipping_tier) { 3332 3333 EasyStore.Event.dispatch('checkouts/shipping_info_added', { 3334 checkout, 3335 shipping_tier, 3336 }) 3337 3338 } 3339 3340 if (payment_type) { 3341 3342 EasyStore.Event.dispatch('checkouts/payment_info_added', { 3343 checkout, 3344 payment_type, 3345 }) 3346 3347 } 3348 3349 EasyStore.Event.dispatch('checkouts/completed', { checkout }) 3350 3351 } 3352 3353 }) 3354 3355 3356 //-----------------------// 3357 // Functions // 3358 //-----------------------// 3359 3360 function getCookie(name) { 3361 3362 name += "=" 3363 3364 decodedCookie = decodeURIComponent(document.cookie) 3365 3366 ca = decodedCookie.split(";") 3367 3368 for(i = 0; i < ca.length; i++) { 3369 c = ca[i] 3370 while (c.charAt(0) == " ") { 3371 c = c.substring(1) 3372 } 3373 if (c.indexOf(name) == 0) { 3374 return c.substring(name.length, c.length) 3375 } 3376 } 3377 3378 return "" 3379 3380 } 3381 3382 const parsePrice = price => { 3383 if(typeof price === 'string') { 3384 return parseFloat(price.split(',').join('')) 3385 } 3386 3387 return price 3388 } 3389 3390 const requestCart = async (method, data) => { 3391 3392 let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}}) 3393 result = await response.json() 3394 3395 return result.cart 3396 3397 } 3398 const getCart = async (latest = false) => { 3399 3400 let cart = window.__latest_cart 3401 3402 const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length) 3403 3404 if(latest || cart_invalid) { 3405 cart = await requestCart() 3406 } 3407 3408 cart.items = cart.items || [] 3409 3410 return mapCart(cart) 3411 3412 } 3413 3414 const getCheckout = async () => { 3415 mapCheckout(window.__latest_cart || await requestCart()) 3416 } 3417 3418 const getOrder = async () => { 3419 mapOrder(window.__latest_cart || await requestCart()) 3420 } 3421 3422 //-----------------------// 3423 // Mappers // 3424 //-----------------------// 3425 3426 const fallbackAttribute = (object, attribute) => { 3427 3428 if(!Array.isArray(attribute)) { 3429 attribute = [attribute] 3430 } 3431 3432 let final_value = null 3433 3434 do { 3435 3436 final_value = object[attribute.shift()] 3437 3438 } while(!final_value && attribute.length) 3439 3440 return final_value 3441 3442 } 3443 3444 const map = (object, mapper) => { 3445 3446 const newObject = {} 3447 3448 for(const key in mapper) { 3449 3450 // Handle different keys between new and old format
3451 newObject[key] = fallbackAttribute(object, mapper[key]) 3452 3453 // Cast price to float 3454 if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) { 3455 newObject[key] = parsePrice(newObject[key]) 3456 } 3457 3458 if(newObject[key] === undefined) { 3459 delete newObject[key] 3460 } 3461 3462 } 3463 3464 return newObject 3465 3466 } 3467 3468 const mapCart = cart => { 3469 3470 const oldCart = cart 3471 3472 const mapper = { 3473 id: 'id', 3474 currency: 'currency', 3475 item_count: 'item_count', 3476 items: 'items', 3477 total_price: 'total_price', 3478 latest_items: 'latest_items' 3479 } 3480 3481 cart = map(cart, mapper) 3482 3483 const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || [])) 3484 3485 cart.discount_applications = discounts.map(discount => ({ 3486 title: discount.voucher_code || null, 3487 value: parsePrice(discount.amount), 3488 })) 3489 3490 cart.original_total_price = cart.items.length 3491 ? cart.items 3492 .map(item => item.original_price) 3493 .reduce((sum, price) => sum + price) 3494 : 0 3495 3496 cart.total_discount = cart.discount_applications.length 3497 ? cart.discount_applications 3498 .map(discount => parsePrice(discount.value)) 3499 .reduce((sum, value) => sum + value) 3500 : 0 3501 3502 cart.items = cart.items.map(item => mapLineItem(item)) 3503 3504 return cart 3505 3506 } 3507 3508 const mapCheckout = checkout => { 3509 3510 const mapper = { 3511 note: 'note', 3512 attributes: 'note_attributes', 3513 billing_address: 'billing_address', 3514 currency: 'currency', 3515 customer_id: 'customer_id', 3516 discounts_amount: 'total_discount', 3517 id: 'id', 3518 line_items: 'order_item', 3519 order_number: 'order_number', 3520 shipping_address: 'shipping_address', 3521 shipping_price: 'shipping_tax', 3522 shipping_method: 'shipping_method_name', 3523 tax_price: 'total_tax', 3524 } 3525 3526 checkout = map(checkout, mapper) 3527 3528 checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required) 3529 3530 checkout.line_items = checkout.line_items.map(item => mapLineItem(item)) 3531 3532 return checkout 3533 3534 } 3535 3536 const mapOrder = order => { 3537 3538 const mapper = { 3539 attributes: 'note_attributes', 3540 billing_address: 'billing_address', 3541 cancelled: 'is_cancelled', 3542 cancelled_at: 'cancelled_at', 3543 created_at: 'created_at', 3544 customer_id: 'customer_id', 3545 // discount_applications: 'discount_applications', 3546 email: 'email', 3547 financial_status: 'financial_status', 3548 fulfillment_status: 'fulfillment_status', 3549 line_items: 'order_item', 3550 note: 'note', 3551 order_number: 'order_number', 3552 phone: 'phone', 3553 shipping_address: 'shipping_address', 3554 shipping_methods: 'shipping_methods', 3555 shipping_price: 'total_shipping', 3556 subtotal_price: 'subtotal_price', 3557 // tax_lines: 'tax_lines', 3558 tax_price: 'total_tax', 3559 total_discounts: 'total_discount', 3560 total_net_amount: 'total_amount_include_transaction', 3561 total_price: 'total_price', 3562 transactions: 'transaction_records', 3563 is_manual_payment: 'is_manual_payment', 3564 } 3565 3566 order.email = order.billing_address.email 3567 order.phone = order.billing_address.phone 3568 order.shipping_method = order.shipping_method_name 3569 3570 order = map(order, mapper) 3571 3572 order.line_items = order.line_items.map(item => mapLineItem(item)) 3573 order.transactions = order.transactions.map(transaction => mapTransaction(transaction)) 3574 3575 return order 3576 3577 } 3578 3579 const mapLineItem = line_item => { 3580 3581 const old_line_item = line_item 3582 3583 const mapper = { 3584 final_price: 'price', 3585 image: 'img_url', 3586 message: 'message', 3587 original_line_price: 'original_line_price', 3588 original_price: 'original_price', 3589 properties: 'properties', 3590 quantity: 'quantity', 3591 requires_shipping: 'shipping_required', 3592 sku: 'sku', 3593 taxable: 'taxable', 3594 title: 'product_name', 3595 product_name: 'product_name', 3596 url: 'url', 3597 product_id: 'product_id', 3598 variant_id: 'variant_id', 3599 id: ['id', 'i_id'], 3600 } 3601 3602 line_item = map(line_item, mapper) 3603 3604 line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null 3605 line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null 3606 line_item.image = line_item.image || (old_line_item.image && old_line_item.image.url) || null 3607 3608 return line_item 3609 3610 } 3611 3612 const mapTransaction = transaction => { 3613 3614 const mapper = { 3615 amount: 'amount', 3616 created_at: 'created_at', 3617 gateway: 'gateway_type', 3618 id: 'id', 3619 status: 'status', 3620 } 3621 3622 transaction = map(transaction, mapper) 3623 3624 return transaction 3625 3626 } 3627 3628 3629</script>
3629 3630 3631</div> 3632 3633 3634 <div id="CartDrawer" class="cart-drawer" data-fetch="0"> 3635 3636 3637 <div class="cart-drawer-wrapper"> 3638 3639<!-- Snippet:cart/content_top: Google Analytics 4 --> 3640<div id="CartDataStorage" data-cart='{"item_count":0,"total_price":0,"announcements":[]}'></div> 3641 3642<!-- /Snippet --> 3643<div id="cart-promotion-top"></div> 3644 3645 3646 <div id="CartTemplate"> 3647 3648 3649 3650 3651 <div id="noCartItem" class="cart-drawer-content"> 3652 <div class="cart-drawer-content-wrapper text-center"> 3653 <div class="section-header"> 3654 <span></span> 3655 <span class="CartDrawerTrigger icon icon-x"></span> 3656 </div> 3657 <div class="section-header__title h2">æ¨çè³¼ç©è»ç®åéæ¯ç©ºçã</div> 3658 <a class="btn btn--secondary" href="/collections/all">ç¹¼çºè³¼ç©</a> 3659 </div> 3660 </div> 3661 3662 3663 3664 3665 </div> 3666 3667 <link href="/assets/css/promotion.css?v2.94" rel="stylesheet" type="text/css" media="screen" /> 3668<div id="cart-promotion-section"></div> 3669
3670<script>var shop_money_format = "<span class=money data-ori-price='{{amount}}'>NT$ {{amount}} </span>";</script>
vendor: 1 bytes, line 3670
3670
3671<script src="/assets/js/promotion/promotion.js?v1.11" type="text/javascript"></script>
3671 3672
3673<script> 3674 3675 window.EasyStore = window.EasyStore || {}; 3676 window.EasyStore.Promotion = window.EasyStore.Promotion || {}; 3677 3678 var get_cart_promo_initial = false, 3679 current_template = 'customers'; 3680 3681 window.EasyStore.Promotion.updateCartPromotion = function (){ 3682 get_cart_promo_initial = true 3683 $.ajax({ 3684 type: "GET", 3685 dataType: 'json', 3686 url: "/new_cart/promotion", 3687 success: function(response){ 3688 $("#cart-promotion-section").html(response["cart/content_bottom"].trim()); 3689 $("#cart-promotion-top").html(response["cart/content_top"].trim()); 3690 3691 promoVariantDetailInitial() 3692 }, 3693 error: function(xhr){ 3694 } 3695 }); 3696 } 3697 3698 3699 if(current_template == 'cart') { 3700 document.addEventListener("DOMContentLoaded", function() { 3701 window.EasyStore.Promotion.updateCartPromotion() 3702 }); 3703 } 3704 3705</script>
vendor: 1 bytes, line 3705
3705
3706<script> 3707 document.addEventListener('DOMContentLoaded', function () { 3708 window._getVoucherErrorTranslation = Object.assign(window._getVoucherErrorTranslation || {}, { 3709 "condition_not_matched": "åªæ 代碼æ¢ä»¶ä¸å¹é ", 3710 "promotion_unavailable": "æ¤åªæ ç®åä¸å¯ç¨", 3711 "available_on": "å¯å¨ channels 使ç¨", 3712 "available_on_only": "å éå¨ channels 使ç¨", 3713 "available_with_locations": "å¯å¨ channels 使ç¨ï¼å é locationsï¼", 3714 "pos_at_locations": "å é locations éå¸ä½¿ç¨", 3715 "channel_website": "ç¶²ç«", 3716 "channel_mobile": "æç¨ç¨å¼", 3717 "channel_pos": "éå¸" 3718 }); 3719 }); 3720</script>
3720 3721 3722 </div> 3723 3724 3725 3726</div> 3727 3728<div id="toast"><div id="toastContent"></div></div> 3729<style> 3730 .cart-drawer .cart-drawer-content .cart-sticky-button-wrapper a.btn.CartDrawerTrigger{margin-bottom: 10px !important;} 3731 #toastContent a{color: #fff;text-decoration: underline;margin-top: 10px;display: block;} 3732 #toastContent .svg-icon{margin-right: 8px;margin-top: -1px;} 3733</style> 3734
3735<script type="text/javascript"> 3736 $('body').on("submit", "#CartForm", function() { 3737 $(this).find('[type=submit]').addClass('btn--loading'); 3738 }); 3739 3740 $("input[name=current_currency]").val($( "select.currency-picker" ).val()); 3741 $( "select.currency-picker" ).change(function(){ 3742 $("select.currency-picker").val($(this).val()); 3743 url=window.location.href; 3744 newParam="currency=" + $( "select.currency-picker" ).val(); 3745 if(url.indexOf("currency=")===-1){ 3746 separator = (url.indexOf("?")===-1)?"?":"&"; 3747 newUrl= url + separator + newParam; 3748 }else{ 3749 oldParam= new URL(url); 3750 oldParam = oldParam.searchParams.get("currency"); 3751 newParam= $(this).val(); 3752 newUrl=url.replace(oldParam,newParam); 3753 } 3754 $("input[name=current_currency]").val($( "select.currency-picker" ).val()); 3755 // window.location.href =newUrl; 3756 $('#CartDrawer').attr('data-fetch', 0); 3757 }); 3758 3759 $("body").on("click", ".cart__remove", function() { 3760 $('#CartTemplate').addClass('is-loading'); 3761 $.ajax({ 3762 type: 'POST', 3763 url: '/cart/remove_item_quantity', 3764 data: { 3765 variant_id: $(this).data( "variant-id"), 3766 item_id: $(this).data( "item-id"), 3767 quantity: $(this).data( "quantity"), 3768 i_id: $(this).data("i_id"), 3769 }, 3770 dataType: 'json', 3771 success: function(response){ 3772 3773 theme.cartDrawer(response); 3774 $('#CartTemplate').removeClass('is-loading'); 3775 3776 if (window.checkProductProperties !== undefined){ 3777 window.checkProductProperties(); 3778 } 3779 }, 3780 error: function(xhr){ 3781 console.log('error',xhr); 3782 $('#CartTemplate').removeClass('is-loading'); 3783 } 3784 }); 3785 3786 }); 3787 3788 3789 $('body').on("click", "#applycode",function() { 3790 3791 if($("input[name='voucher_code']").val() != '') { 3792 3793 $('#CartTemplate').addClass('is-loading'); 3794 3795 $.ajax({ 3796 type: 'POST', 3797 url: '/new_cart/voucher', 3798 data: { 3799 voucher_code: $("input[name='voucher_code']").val(), 3800 category: 'create' 3801 }, 3802 dataType: 'json', 3803 success: function(response){ 3804 3805 // console.log(response); 3806 3807 if(response.error != undefined){ 3808 3809 if(response.error.message != undefined) popToast(response.error.message); 3810 3811 $("input[name='voucher_code']").val('') 3812 3813 } 3814 3815 if(response.cart_content != undefined) theme.cartDrawer(response); 3816 3817 $('#CartTemplate').removeClass('is-loading'); 3818 3819 }, 3820 error: function(xhr){ 3821 console.log('error',xhr); 3822 $('#CartTemplate').removeClass('is-loading'); 3823 } 3824 }); 3825 3826 } 3827 3828 }); 3829 3830 3831 $("body").on("click", ".remove_voucher_btn", function() { 3832 $('#CartTemplate').addClass('is-loading'); 3833 $.ajax({ 3834 type: 'DELETE', 3835 url: '/new_cart/voucher', 3836 data: { 3837 category: 'remove', 3838 order_discount_id: $(this).data( "discount-id") 3839 }, 3840 dataType: 'json', 3841 success: function(data){ 3842 // console.log(data); 3843 theme.cartDrawer(data); 3844 $('#CartTemplate').removeClass('is-loading'); 3845 }, 3846 error: function(xhr){ 3847 console.log('error',xhr); 3848 $('#CartTemplate').removeClass('is-loading'); 3849 } 3850 }); 3851 3852 }); 3853 3854 3855 theme.cartDrawer = function(data){ 3856 3857 $('#CartDrawer').attr('data-fetch', 1); 3858 $('#CartTemplate').addClass('is-loading'); 3859 3860 3861 if(typeof data.cart_content == 'string'){ 3862 $('#CartTemplate').html(data.cart_content); 3863 } 3864 3865 let cart_item_count = data.item_count || data.cart.item_count; 3866 3867 if(cart_item_count > 0){ 3868 $('.cart-count').removeClass('hidden-count'); 3869 }else{ 3870 $('.cart-count').addClass('hidden-count'); 3871 } 3872 3873 $('.cart-count').text(cart_item_count); 3874 $('#CartTemplate').removeClass('is-loading'); 3875 $(".cart-drawer-content").animate({ scrollTop: 0 }); 3876 3877 if(window.EasyStore != undefined && window.EasyStore.Promotion != undefined && window.EasyStore.Promotion.updateCartPromotion != undefined) window.EasyStore.Promotion.updateCartPromotion() 3878 3879 } 3880 3881 3882 theme.fetchCartDrawer = function(data){ 3883 $('#CartTemplate').addClass('is-loading'); 3884 $.ajax({ 3885 url: '/new_cart?retrieve=true', 3886 type: 'GET', 3887 success: function(data, status) { 3888 // console.log(data); 3889 theme.cartDrawer(data); 3890 3891 $('#CartTemplate').removeClass('is-loading'); 3892 3893 if (window.checkProductProperties !== undefined){ 3894 window.checkProductProperties(); 3895 } 3896 }, 3897 error: function(XMLHttpRequest, textStatus) { 3898 console.log('error',XMLHttpRequest,textStatus); 3899 $('#CartTemplate').removeClass('is-loading'); 3900 } 3901 }); 3902 } 3903 3904 theme.updateCartDrawer = function(data){ 3905 $('#CartTemplate').addClass('is-loading'); 3906 3907 $.ajax({ 3908 url: '/new_cart/update', 3909 type: 'PUT', 3910 dataType: 'json', 3911 data: $('#CartDrawer form').serialize(), 3912 success: function(data, status) { 3913 theme.cartDrawer(data); 3914 3915 if (window.checkProductProperties !== undefined){ 3916 window.checkProductProperties(); 3917 } 3918 }, 3919 error: function(XMLHttpRequest, textStatus) { 3920 console.log('error',XMLHttpRequest,textStatus); 3921 } 3922 }); 3923 } 3924 3925 function debounce(func, wait, immediate) { 3926 var timeout; 3927 return function() { 3928 var context = this, args = arguments; 3929 var later = function() { 3930 timeout = null;
3931 if (!immediate) func.apply(context, args); 3932 }; 3933 var callNow = immediate && !timeout; 3934 clearTimeout(timeout); 3935 timeout = setTimeout(later, wait); 3936 if (callNow) func.apply(context, args); 3937 }; 3938 }; 3939 3940 $('body').on("change", 'input.cart__quantity-selector', function (){ 3941 theme.updateCartDrawer(); 3942 }); 3943 3944 3945 $('#updateCartDrawer').click(function() { 3946 theme.updateCartDrawer(); 3947 }); 3948 3949 $('body').on("click", ".btn-qty-adjust", function() { 3950 3951 var $button = $(this); 3952 var oldValue = $button.parent().find("input.cart__quantity-selector").val(); 3953 3954 if ($button.attr('data-adjust') == 1) { 3955 var newVal = parseFloat(oldValue) + 1; 3956 } else { 3957 // Don't allow decrementing below zero 3958 if (oldValue > 0) { 3959 var newVal = parseFloat(oldValue) - 1; 3960 } else { 3961 newVal = 0; 3962 } 3963 } 3964 3965 $button.parent().find("input").val(newVal); 3966 }); 3967 3968 $('body').on("click", ".btn-qty-adjust", debounce(function() { 3969 theme.updateCartDrawer(); 3970 },350)); 3971 3972 $('button.checkout').click(function() { 3973 $(this).addClass('btn--loading'); 3974 }); 3975 3976 var add_cart_success_html = '<svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <g> <g> <path d="M383.841,171.838c-7.881-8.31-21.02-8.676-29.343-0.775L221.987,296.732l-63.204-64.893 c-8.005-8.213-21.13-8.393-29.35-0.387c-8.213,7.998-8.386,21.137-0.388,29.35l77.492,79.561 c4.061,4.172,9.458,6.275,14.869,6.275c5.134,0,10.268-1.896,14.288-5.694l147.373-139.762 C391.383,193.294,391.735,180.155,383.841,171.838z"/> </g> </g> <g> <g> <path d="M256,0C114.84,0,0,114.84,0,256s114.84,256,256,256s256-114.84,256-256S397.16,0,256,0z M256,470.487 c-118.265,0-214.487-96.214-214.487-214.487c0-118.265,96.221-214.487,214.487-214.487c118.272,0,214.487,96.221,214.487,214.487 C470.487,374.272,374.272,470.487,256,470.487z"/> </g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> </svg>'; 3977 add_cart_success_html += 'å·²å å ¥è³¼ç©è» <br><a class="CartDrawerTrigger">æ¥çè³¼ç©è»</a>'; 3978 3979 function popToast(content) { 3980 var x = document.getElementById("toast"), 3981 y = document.getElementById("toastContent"); 3982 3983 y.innerHTML = content; 3984 x.className += " show"; 3985 3986 var hideToast = setTimeout(function(){ x.className = x.className.replace(" show", ""); }, 3000); 3987 } 3988 3989 3990</script>
3990 3991 3992<style> 3993 vouchers-modal .vouchers-modal.active , 3994 vouchers-modal #vouchers-modal-backdrop.active{ 3995 z-index: 2147483647; 3996 } 3997</style> 3998 3999<link href="/assets/css/vouchers.css?v1.2" rel="stylesheet" type="text/css" media="screen" /> 4000<link href="/assets/account/vouchers/vouchers.css" rel="stylesheet" type="text/css" media="screen" /> 4001<link href="/assets/account/vouchers/voucher-widget.css" rel="stylesheet" type="text/css" media="screen" />
4002<script src="/assets/js/promotion/vouchers.js?v1.3" type="text/javascript" ></script>
vendor: 1 bytes, line 4002
4002
4003<script src="/assets/account/vouchers/voucher-widget.js" type="text/javascript" ></script>
4003 4004 4005<vouchers-modal> 4006 <div id="vouchers-modal-backdrop" class="vouchers-modal__close"></div> 4007 <div class="vouchers-modal-wrapper page-width"> 4008 <div id="vouchers-modal" class="vouchers-modal focus-inset" aria-modal="true" role="dialog" tabindex="-1"> 4009 <div class="vouchers-modal__header"> 4010 <div class="vouchers-modal__heading">åªæ å¸</div> 4011 <button type="button" class="vouchers-modal__close modal__close-button link link--text focus-inset" aria-label="accessibility.close"> 4012 <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"> 4013 <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"> 4014 </path> 4015 </svg> 4016 </button> 4017 </div> 4018 4019 <discount-input> 4020 <div class="field"> 4021 <input type="text" id="input-discount_code" class="search__input field__input" name="voucher_code" placeholder="ææ£ç¢¼"> 4022 <button type="button" name="apply" class="btn btn--secondary button button--secondary">å¥ç¨</button> 4023 </div> 4024 <div class="form__message hidden" tabindex="-1" autofocus> 4025 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-error " viewBox="0 0 13 13"> 4026 <circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2"></circle> 4027 <circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width="0.7"></circle> 4028 <path d="M5.87413 3.52832L5.97439 7.57216H7.02713L7.12739 3.52832H5.87413ZM6.50076 9.66091C6.88091 9.66091 7.18169 9.37267 7.18169 9.00504C7.18169 8.63742 6.88091 8.34917 6.50076 8.34917C6.12061 8.34917 5.81982 8.63742 5.81982 9.00504C5.81982 9.37267 6.12061 9.66091 6.50076 9.66091Z" fill="white"></path> 4029 <path d="M5.87413 3.17832H5.51535L5.52424 3.537L5.6245 7.58083L5.63296 7.92216H5.97439H7.02713H7.36856L7.37702 7.58083L7.47728 3.537L7.48617 3.17832H7.12739H5.87413ZM6.50076 10.0109C7.06121 10.0109 7.5317 9.57872 7.5317 9.00504C7.5317 8.43137 7.06121 7.99918 6.50076 7.99918C5.94031 7.99918 5.46982 8.43137 5.46982 9.00504C5.46982 9.57872 5.94031 10.0109 6.50076 10.0109Z" fill="white" stroke="#EB001B" stroke-width="0.7"></path> 4030 </svg> 4031 <div class="js-error-content"></div> 4032 </div> 4033 </discount-input> 4034 <br> 4035 4036 4037 4038 <div class="empty-vouchers_placeholder">ç®åç¡å¯ç¨çåªæ å¸</div> 4039 4040 4041 <!-- For voucher widget --> 4042
4042<script type="text/javascript"> 4043 let settings = {"logo_use_image":"1","logo_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/5065445.png?width=350&format=webp","footer_logo_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/8174666.png?width=350&format=webp","nav_below_logo":"logo_top-center","logo_alignment":"center","left_aligned_logo":"0","favicon_enable":"1","favicon_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/7606122.png","header_message":"","header_search_enable":true,"topbar_sticky":"1","footer_quicklinks_enable":true,"footer_quicklinks_linklist":"footer","footer_social_enable":"1","footer_show_credit_card_logo":0,"footer_show_methods_of_payment":0,"footer_visa":0,"footer_master":0,"footer_american_express":0,"footer_jcb":0,"footer_diners_club":0,"footer_discover":0,"footer_ssl":0,"show_footer_lines":"1","home_section_1":"parallax-section","home_section_2":"highlight-section","home_section_3":"featured-product","home_section_4":"","home_section_5":"","home_section_6":"","home_section_7":"","featured_title":"","featured_1_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/12126156.jpg?width=650&format=webp","featured_1_text":"","featured_1_link_text":"","featured_1_link":"https:\/\/www.prosperwood.com\/pages\/%E7%94%A2%E5%93%81%E7%B4%B0%E7%AF%80","featured_2_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/12126167.jpg?width=650&format=webp","featured_2_text":"","featured_2_link_text":"","featured_2_link":"https:\/\/www.prosperwood.com\/pages\/%E7%94%A2%E5%93%81%E7%B4%B0%E7%AF%80","featured_3_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/12126168.jpg?width=650&format=webp","featured_3_text":"","featured_3_link_text":"","featured_3_link":"https:\/\/www.prosperwood.com\/pages\/%E7%94%A2%E5%93%81%E7%B4%B0%E7%AF%80","featured_4_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/12126169.jpg?width=650&format=webp","featured_4_text":"","featured_4_link_text":"","featured_4_link":"https:\/\/www.prosperwood.com\/pages\/%E7%94%A2%E5%93%81%E7%B4%B0%E7%AF%80","featured_5_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/13329659.jpeg?width=650&format=webp","featured_5_text":"","featured_5_link_text":"","featured_5_link":"https:\/\/www.prosperwood.com\/collections\/jimbo","featured_6_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/13329508.jpeg?width=650&format=webp","featured_6_text":"","featured_6_link_text":"","featured_6_link":"https:\/\/www.prosperwood.com\/collections\/jimbo","featured_7_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/7573281.png?width=650&format=webp","featured_7_text":"","featured_7_link_text":"","featured_7_link":"https:\/\/www.prosperwood.com\/collections\/bevel-risna-w-panasonic-socket","featured_8_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/13328541.jpeg?width=650&format=webp","featured_8_text":"","featured_8_link_text":"","featured_8_link":"https:\/\/www.prosperwood.com\/collections\/jimbo","parallax_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/16218110.png?width=1500&format=webp","parallax_mobile_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/16218110.png?width=900&format=webp","parallax_title":"","parallax_subtitle":"","parallax_button_text":"","parallax_button_link":"https:\/\/osmo.carytrad.com.tw\/","parallax_full_width":"1","slider_home_auto":"1","slider_home_show_dots":"1","slider_home_rate":"5000","slider_home_transition":"fade","slider_full_screen":"0","slide_1":"1","slide_1_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/12540501.jpg?width=1500&format=webp","slide_1_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10976344.jpg?width=900&format=webp","slide_1_link":"https:\/\/www.prosperwood.com\/collections\/%E7%82%AD%E9%BB%91-%E5%AF%A6%E6%9C%A8%E9%9D%A2%E6%9D%BF","slide_1_alt":"","slide_1_title":"","slide_1_subtitle":"","slide_1_button_text":"","slide_2":"1","slide_2_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10219499.jpg?width=1500&format=webp","slide_2_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10219148.jpg?width=900&format=webp","slide_2_link":"https:\/\/www.prosperwood.com\/collections\/arch-risna-h-panasonic","slide_2_alt":"","slide_2_title":"","slide_2_subtitle":"","slide_2_button_text":"","slide_3":"","slide_3_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10219500.jpg?width=1500&format=webp","
4043slide_3_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10219149.jpg?width=900&format=webp","slide_3_link":"https:\/\/www.prosperwood.com\/collections\/bevel","slide_3_alt":"","slide_3_title":"","slide_3_subtitle":"","slide_3_button_text":"","slide_4":"","slide_4_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10219501.jpg?width=1500&format=webp","slide_4_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10219151.jpg?width=900&format=webp","slide_4_link":"https:\/\/www.prosperwood.com\/collections\/bevel-glatima-h-panasonic","slide_4_alt":"","slide_4_title":"","slide_4_subtitle":"","slide_4_button_text":"","slide_5":"","slide_5_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10219502.jpg?width=1500&format=webp","slide_5_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10219152.jpg?width=900&format=webp","slide_5_link":"https:\/\/www.prosperwood.com\/collections\/arch-rglatima-h-panasonic","slide_5_alt":"","slide_5_title":"","slide_5_subtitle":"","slide_5_button_text":"","slide_6":"","slide_6_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10976339.jpg?width=1500&format=webp","slide_6_mobile_jpg":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/10976341.jpg?width=900&format=webp","slide_6_link":"https:\/\/www.prosperwood.com\/collections\/bevel-risna-h-panasonic-socket\/products\/%E8%83%A1%E6%A1%83%E6%9C%A8-%E6%A2%A3%E6%9C%A8-%E5%85%A8%E5%AF%A6%E6%9C%A8%E5%B0%81%E5%8F%A3%E8%93%8B%E6%9D%BF-%E7%9B%B2%E8%93%8B-","slide_6_alt":"","slide_6_title":"","slide_6_subtitle":"","slide_6_button_text":"","testimonial_slide_img_crop":"1","testimonial_slide_1_img":"https:\/\/cdn.store-assets.com\/s\/278885\/f\/3915980.jpeg?width=1500&format=webp","testimonial_slide_1_title":"Aleksejs Bergmanis","testimonial_slide_1_content":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur non mattis dui, sit amet hendrerit nibh. Duis congue volutpat urna ut accumsan.","testimonial_slide_1_text_link":"Read more","testimonial_slide_1_link":"#","testimonial_slide_2_img":"https:\/\/cdn.store-assets.com\/s\/278885\/f\/3915981.jpeg?width=1500&format=webp","testimonial_slide_2_title":"Thiago Japyassu","testimonial_slide_2_content":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur non mattis dui, sit amet hendrerit nibh. Duis congue volutpat urna ut accumsan. Vivam mauris augue, ultrices at faucibus vitae, mattis eu lacus.","testimonial_slide_2_text_link":"Read more","testimonial_slide_2_link":"#","testimonial_slide_3_img":"","testimonial_slide_3_title":"","testimonial_slide_3_content":"","testimonial_slide_3_text_link":"","testimonial_slide_3_link":"","testimonial_slide_4_img":"","testimonial_slide_4_title":"","testimonial_slide_4_content":"","testimonial_slide_4_text_link":"","testimonial_slide_4_link":"","testimonial_slide_5_img":"","testimonial_slide_5_title":"","testimonial_slide_5_content":"","testimonial_slide_5_text_link":"","testimonial_slide_5_link":"","testimonial_slide_6_img":"","testimonial_slide_6_title":"","testimonial_slide_6_content":"","testimonial_slide_6_text_link":"","testimonial_slide_6_link":"","logo_list_on_footer":0,"logo_list_title":"","logo_list_1_img":"https:\/\/cdn.store-assets.com\/s\/278885\/f\/3916892.png?width=350&format=webp","logo_list_1_link":"\/collections\/all","logo_list_2_img":"https:\/\/cdn.store-assets.com\/s\/278885\/f\/3916893.png?width=350&format=webp","logo_list_2_link":"\/collections\/all","logo_list_3_img":"https:\/\/cdn.store-assets.com\/s\/278885\/f\/3916894.png?width=350&format=webp","logo_list_3_link":"\/collections\/all","logo_list_4_img":"https:\/\/cdn.store-assets.com\/s\/278885\/f\/3916895.png?width=350&format=webp","logo_list_4_link":"\/collections\/all","logo_list_5_img":"","logo_list_5_link":"\/collections\/all","logo_list_6_img":"","logo_list_6_link":"\/collections\/all","logo_list_7_img":"","logo_list_7_link":"\/collections\/all","logo_list_8_img":"","logo_list_8_link":"\/collections\/all","home_featured_products":"feature-on-homepage","home_featured_products_num":"20","home_featured_products_row_num":"7","home_featured_products_show_heading":"","home_page_content":"home","home_page_show_heading":"0","home_page_add_to_cart":true,"scroll_to_top_button":"on-right","product_quantity_enable":"1","product_image_zoom_type":"lightbox","product_thumbnails_position":"below","product_related_enable":true,"products_per_row":4,"products_list_per_row":"5","collection_products_list_per_row":"4","product_page_float_bt
4043n":"1","product_page_variants_tag":"1","featured_product_title":"Featured products","product_img_res":"grande","product_img_crop":"product_img-crop ratio_1-1_3","collections_show_sale_circle":"1","collections_show_sold_out_circle":"1","collections_sort_enable":true,"collections_tags_enable":"0","collections_products_per_row":"3","collections_rows":"6","footer_bar":0,"footer_bar_icon_product_page":"1","footer_bar_icon_1":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5590.png?width=150&format=webp","footer_bar_icon_1_text":"Home","footer_bar_icon_1_link":"\/","footer_bar_icon_2":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5591.png?width=150&format=webp","footer_bar_icon_2_text":"All products","footer_bar_icon_2_link":"\/collections\/all","footer_bar_icon_3":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5592.png?width=150&format=webp","footer_bar_icon_3_text":"Promotions","footer_bar_icon_3_link":"\/collections\/all","footer_bar_icon_4":"https:\/\/cdn.easystore.blue\/s\/201\/f\/5593.png?width=150&format=webp","footer_bar_icon_4_text":"Account","footer_bar_icon_4_link":"\/account\/login","cart_enable_ajax":"1","social_sharing_products":"1","social_sharing_blog":"1","social_sharing_count":"1","share_facebook":"1","share_twitter":"1","share_line":"1","share_pinterest":"1","facebook_url":"https:\/\/www.facebook.com\/ProsperWood-%E7%9B%9B%E5%85%83%E6%9C%A8%E5%B7%A5-107645920982397","twitter_url":"","pinterest_url":"","instagram_url":"https:\/\/www.instagram.com\/prosper_wood\/","tumblr_url":"","youtube_url":"","vimeo_url":"","wechat_url":"","whatsapp_url":"","line_url":"https:\/\/lin.ee\/2VXlxUpAB","featured_blog":"","featured_blog_title":"Blog Post","articles_handle_1":"news\/\u65b0\u5e97\u958b\u5f35","articles_handle_2":"","articles_handle_3":"","video_section_id":"https:\/\/www.youtube.com\/watch?v=o-LMDW0dN9A","video_section_img":"https:\/\/cdn.store-assets.com\/s\/326197\/f\/4480409.jpeg?width=1500&format=webp","img_text_section_img":"https:\/\/cdn.store-assets.com\/s\/325951\/f\/4576482.jpeg?width=1200&format=webp","img_text_section_heading":"\u5be6\u6728\u958b\u95dc\u9762\u677f - \u80e1\u6843\u6728","img_text_section_text":"\u53ef\u9078\u914d - Panasonic GLATIMA \/ RISNA \/ DECO LITE \u661f\u5149 - \u7cfb\u5217","img_text_section_link_text":"SHOP NOW","img_text_section_url":"","img_text_section_class":"image-right","lazy_loader":"1","featured_single_product_handle":"\u5be6\u6728\u958b\u95dc\u9762\u677f-\u80e1\u6843\u6728","placeholder":{"featured-single-product":"https:\/\/s3-ap-southeast-1.amazonaws.com\/eesb.themes\/onboarding\/candy\/en_placeholder_featured-single-product.jpg","featured-blog":"https:\/\/s3-ap-southeast-1.amazonaws.com\/eesb.themes\/onboarding\/candy\/en_placeholder_featured-blog.jpg"},"use_original_image":0,"promotion_uis":{"primary_color":"#4089e4","header_bg_color":"#4089e4","header_text_color":"#fff","recommendation":{"is_show_product_page":true,"is_show_cart_page_top":true,"is_show_cart_page_bottom":true},"voucher_widget":{"primary_color":"#4089e4"}},"show_multiple_currencies":true,"supported_currencies":"TWD ","theme_id":3809,"theme_is_edited":1,"theme_updated_at":"2026-08-18T17:01:57.000Z","phone_account_enabled":false,"line_login_enabled":true,"apple_login_enabled":false,"timezone":"Asia\/Taipei","is_server_side_currency_conversion":true,"is_self_registration_enabled":true,"is_highlight_enabled":false,"is_auto_gen_highlight_enabled":false,"is_common_question_enabled":false,"is_auto_gen_common_question_enabled":false,"highlight_section_title":"Highlights","common_question_section_title":"Frequently asked questions","is_new_promotion_enabled":true} 4044 if (settings.promotion_uis.voucher_widget != null) { 4045 setVoucherTheme(settings.promotion_uis.voucher_widget) 4046 } 4047 var shop = { 4048 money_prefix: "", 4049 format_decimals: "" 4050 }; 4051 var _getEntitlementTranslation = { 4052 "free_shipping": "å éè²»", 4053 "free_of_charge": "å è²»è´å", 4054 } 4055 var _getTargetTypeTranslation = { 4056 "amount_credit": " åé¥é", 4057 "amount_off": " ææ£", 4058 } 4059 var _getPrerequisiteTranslation = { 4060 "min_quantity": "è³å°è³¼è²· formatValue ä»¶åå", 4061 "every_quantity": "æ¯è³¼è²· formatValue ä»¶åå", 4062 "min_amount": "æä½æ¶è²» formatCurrency", 4063 "every_amount": "æ¯æ¶è²» formatCurrency" 4064 } 4065 var _getPrerequisiteConditionTranslation = { 4066 "selected_items": "æå®åå", 4067 "selected_collections": "æå®åé¡", 4068 "storewide": "å ¨åº", 4069 "order_subtotal": "è¨å®éé¡" 4070 } 4071 var _getVoucherButtonTextTranslation = { 4072 "apply": "å¥ç¨", 4073 } 4074 var _getVoucherErrorTranslation = { 4075 "condition_not_matched": "åªæ 代碼æ¢ä»¶ä¸å¹é " 4076 } 4077 </script>
4077 4078 4079 </div> 4080 </div> 4081</vouchers-modal> 4082 4083 <!--Start of Tawk.to Script-->
4084<script type="text/javascript"> 4085var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date(); 4086(function(){ 4087var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0]; 4088s1.async=true; 4089s1.src='https://embed.tawk.to/5f005dac223d045fcb7b4c45/default'; 4090s1.charset='UTF-8'; 4091s1.setAttribute('crossorigin','*'); 4092s0.parentNode.insertBefore(s1,s0); 4093})(); 4094</script>
4094 4095<!--End of Tawk.to Script--> 4096</body> 4097</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.