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