1<!doctype html> 2<html class="no-js" lang="zh-TW" dir="ltr"> 3<head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 6 <meta name="viewport" content="width=device-width,initial-scale=1"> 7 <meta name="theme-color" content="#365fdd"> 8 <meta name="google-site-verification" content="T7OVHRRWslXwgqk-lmEJUr6OR0nIJk89sZ1p_zUwGM4" /> 9 <link rel="canonical" href="https://unovoyage.com/zh-us/account/login"> 10 <link rel="preconnect" href="https://cdn.shopify.com"> 11 <link rel="preconnect" href="https://fonts.shopifycdn.com"> 12 <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com"> 13 <link rel="dns-prefetch" href="https://ajax.googleapis.com"> 14 <link rel="dns-prefetch" href="https://maps.googleapis.com"> 15 <link rel="dns-prefetch" href="https://maps.gstatic.com"> 16<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 16-17
16 17<script async src="https://www.googletagmanager.com/gtag/js?id=
17G-LRSJWSY7Q6
vendor: 12 bytes, line 17
17"></script>
18<script> 19
vendor: 134 bytes, lines 19-23
19window.dataLayer = window.dataLayer || []; 20 function gtag(){dataLayer.push(arguments);} 21 gtag('js', new Date()); 22 23 gtag('config', '
23G-LRSJWSY7Q6
vendor: 4 bytes, line 23
23');
24</script>
24<link rel="shortcut icon" href="//unovoyage.com/cdn/shop/files/logo0608-01_32x32.png?v=1623135608" type="image/png" /><title>帳è 25– unovoyage 26</title> 27<meta property="og:site_name" content="unovoyage"> 28 <meta property="og:url" content="https://unovoyage.com/zh-us/account/login"> 29 <meta property="og:title" content="帳è"> 30 <meta property="og:type" content="website"> 31 <meta property="og:description" content="ã æ è¡ç§»å | å°ç£ç¬¬ä¸åç ãæ è¡å è¢ / ä¼ç é ¸æ / éåæ¶ç´ / ææ©è£åãUNO® VOYAGE çºä½ è¨è¨æå°æ¥å¯é çãæ è¡ç§»åç¢åãè®ä½ ç¡æ æ¢ç´¢ï¼ææçæ´»ä¸æç²¾å½©çæ äºç¯ç« Never Stop Being Uã 32"><meta property="og:image" content="http://unovoyage.com/cdn/shop/files/coverbanner.jpg?v=1640004903"> 33 <meta property="og:image:secure_url" content="https://unovoyage.com/cdn/shop/files/coverbanner.jpg?v=1640004903"> 34 <meta property="og:image:width" content="1200"> 35 <meta property="og:image:height" content="628"><meta name="twitter:site" content="@"> 36 <meta name="twitter:card" content="summary_large_image"> 37 <meta name="twitter:title" content="帳è"> 38 <meta name="twitter:description" content="ã æ è¡ç§»å | å°ç£ç¬¬ä¸åç ãæ è¡å è¢ / ä¼ç é ¸æ / éåæ¶ç´ / ææ©è£åãUNO® VOYAGE çºä½ è¨è¨æå°æ¥å¯é çãæ è¡ç§»åç¢åãè®ä½ ç¡æ æ¢ç´¢ï¼ææçæ´»ä¸æç²¾å½©çæ äºç¯ç« Never Stop Being Uã 39"> 40<style data-shopify>@font-face { 41 font-family: Poppins; 42 font-weight: 900; 43 font-style: normal; 44 font-display: swap; 45 src: url("//unovoyage.com/cdn/fonts/poppins/poppins_n9.eb6b9ef01b62e777a960bfd02fc9fb4918cd3eab.woff2") format("woff2"), 46 url("//unovoyage.com/cdn/fonts/poppins/poppins_n9.6501a5bd018e348b6d5d6e8c335f9e7d32a80c36.woff") format("woff"); 47} 48 49 @font-face { 50 font-family: Poppins; 51 font-weight: 400; 52 font-style: normal; 53 font-display: swap; 54 src: url("//unovoyage.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"), 55 url("//unovoyage.com/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff"); 56} 57 58 59 @font-face { 60 font-family: Poppins; 61 font-weight: 600; 62 font-style: normal; 63 font-display: swap; 64 src: url("//unovoyage.com/cdn/fonts/poppins/poppins_n6.aa29d4918bc243723d56b59572e18228ed0786f6.woff2") format("woff2"), 65 url("//unovoyage.com/cdn/fonts/poppins/poppins_n6.5f815d845fe073750885d5b7e619ee00e8111208.woff") format("woff"); 66} 67 68 @font-face { 69 font-family: Poppins; 70 font-weight: 400; 71 font-style: italic; 72 font-display: swap; 73 src: url("//unovoyage.com/cdn/fonts/poppins/poppins_i4.846ad1e22474f856bd6b81ba4585a60799a9f5d2.woff2") format("woff2"), 74 url("//unovoyage.com/cdn/fonts/poppins/poppins_i4.56b43284e8b52fc64c1fd271f289a39e8477e9ec.woff") format("woff"); 75} 76 77 @font-face { 78 font-family: Poppins; 79 font-weight: 600; 80 font-style: italic; 81 font-display: swap; 82 src: url("//unovoyage.com/cdn/fonts/poppins/poppins_i6.bb8044d6203f492888d626dafda3c2999253e8e9.woff2") format("woff2"), 83 url("//unovoyage.com/cdn/fonts/poppins/poppins_i6.e233dec1a61b1e7dead9f920159eda42280a02c3.woff") format("woff"); 84} 85 86</style><link href="//unovoyage.com/cdn/shop/t/36/assets/theme.css?v=142825720248652837611770370273" rel="stylesheet" type="text/css" media="all" /> 87<style data-shopify>:root { 88 --typeHeaderPrimary: Poppins; 89 --typeHeaderFallback: sans-serif; 90 --typeHeaderSize: 28px; 91 --typeHeaderWeight: 900; 92 --typeHeaderLineHeight: 1.3; 93 --typeHeaderSpacing: 0.025em; 94 95 --typeBasePrimary:Poppins; 96 --typeBaseFallback:sans-serif; 97 --typeBaseSize: 16px; 98 --typeBaseWeight: 400; 99 --typeBaseSpacing: 0.0em; 100 --typeBaseLineHeight: 1.6; 101 102 --typeCollectionTitle: 24px; 103 104 --iconWeight: 4px; 105 --iconLinecaps: miter; 106 107 108 --buttonRadius: 3px; 109 110 111 --colorGridOverlayOpacity: 0.2; 112 } 113 114 .placeholder-content { 115 background-image: linear-gradient(100deg, #e5e5e5 40%, #dddddd 63%, #e5e5e5 79%); 116 }</style>
116<script> 117 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 118 119 window.theme = window.theme || {}; 120 theme.routes = { 121 home: "/zh-us", 122 cart: "/zh-us/cart.js", 123 cartPage: "/zh-us/cart", 124 cartAdd: "/zh-us/cart/add.js", 125 cartChange: "/zh-us/cart/change.js" 126 }; 127 theme.strings = { 128 soldOut: "è£è²¨ä¸", 129 unavailable: "æ²ææä¾", 130 stockLabel: "庫ååªå© [count] åå®ä½ï¼", 131 willNotShipUntil: "[date] åç¡æ³å¯é", 132 willBeInStockAfter: "[date] 徿ææåº«å", 133 waitingForStock: "åº«åæºåä¸", 134 savePrice: "ç [saved_amount]", 135 cartEmpty: "ä½ çè³¼ç©è»ç®åæ¯ç©ºç", 136 cartTermsConfirmation: "å¨çµå¸³ä¹åï¼ä½ å¿ é å åæè³¼ç©çæ¢æ¬¾åæ¢ä»¶", 137 searchCollections: "ç³»åï¼", 138 searchPages: "é æ¸ï¼", 139 searchArticles: "æç« ï¼" 140 }; 141 theme.settings = { 142 dynamicVariantsEnable: true, 143 dynamicVariantType: "button", 144 cartType: "page", 145 isCustomerTemplate: true, 146 moneyFormat: "\u003cspan class=\"money\"\u003eNT${{amount_no_decimals}}\u003c\/span\u003e", 147 saveType: "percent", 148 recentlyViewedEnabled: false, 149 productImageSize: "square", 150 productImageCover: false, 151 predictiveSearch: true, 152 predictiveSearchType: "product,article,page,collection", 153 inventoryThreshold: 20, 154 quickView: false, 155 themeName: 'Impulse', 156 themeVersion: "4.1.1" 157 }; 158 </script>
158 159 160
160<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
160<meta name="google-site-verification" content="vf04fz-7MP-1fPv0rKGJ3Lmcy2zGqZlKFBW9lY4hTx0"> 161<meta name="facebook-domain-verification" content="qh9c892orv3s031g9no0kqs8h0tfs2"> 162<meta name="facebook-domain-verification" content="5f0qj8tdb4mfh5eyi9pen2txpbtyzw"> 163<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/41735291040/digital_wallets/dialog"> 164<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://unovoyage.com/account/login"> 165<link rel="alternate" hreflang="zh-Hant" href="https://unovoyage.com/account/login"> 166<link rel="alternate" hreflang="zh-Hant-US" href="https://unovoyage.com/zh-us/account/login"> 167<link rel="alternate" hreflang="en-US" href="https://unovoyage.com/en-us/account/login">
168<script async="async" src="/checkouts/internal/preloads.js?locale=zh-US"></script>
vendor: 1 bytes, line 168
168
169<script id="shopify-features" type="application/json">{"accessToken":"09a7f57f835e6b5440804cc7dc0a97d6","betas":["rich-media-storefront-analytics"],"domain":"unovoyage.com","predictiveSearch":false,"shopId":41735291040,"locale":"zh-tw"}</script>
vendor: 1 bytes, line 169
169
170<script>var Shopify = Shopify || {}; 171Shopify.shop = "unovoyage.myshopify.com"; 172Shopify.locale = "zh-TW"; 173Shopify.currency = {"active":"TWD","rate":"1.0"}; 174Shopify.country = "US"; 175Shopify.theme = {"name":"2024-1","id":137033482400,"schema_name":"Impulse","schema_version":"4.1.1","theme_store_id":857,"role":"main"}; 176Shopify.theme.handle = "null"; 177Shopify.theme.style = {"id":null,"handle":null}; 178Shopify.cdnHost = "unovoyage.com/cdn"; 179Shopify.routes = Shopify.routes || {}; 180Shopify.routes.root = "/zh-us/"; 181Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 182Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 183Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 184Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 184
184
185<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 185
185
186<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 186
186
187<script> 188 window.Shopify = window.Shopify || {}; 189 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 190 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 191 window.Shopify.SignInWithShop.eligible = true; 192</script>
vendor: 1 bytes, line 192
192
193<script id="shop-js-analytics" type="application/json">{"pageType":"customers/login"}</script>
vendor: 1 bytes, line 193
193
194<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts.zh-TW.esm.js"></script>
vendor: 1 bytes, line 194
194
195<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts-sign-up.zh-TW.esm.js"></script>
vendor: 1 bytes, line 195
195
196<script type="module"> 197 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts.zh-TW.esm.js"); 198await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts-sign-up.zh-TW.esm.js"); 199 200 window.Shopify.SignInWithShop?.initCustomerAccounts?.(true, {"fedCMEnabled":true,"windoidEnabled":true}); 201window.Shopify.SignInWithShop?.initCustomerAccountsSignUp?.({"fedCMEnabled":true,"windoidEnabled":true}); 202 203</script>
vendor: 1 bytes, line 203
203
204<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.zh-TW.esm.js"></script>
vendor: 1 bytes, line 204
204
205<script type="module"> 206 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.zh-TW.esm.js"); 207 208 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 209 210</script>
vendor: 1 bytes, line 210
210
211<script> 212 window.Shopify = window.Shopify || {}; 213 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 214 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.zh-TW.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.zh-TW.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.zh-TW.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.zh-TW.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.zh-TW.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.zh-TW.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.zh-TW.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.zh-TW.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.zh-TW.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.zh-TW.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.zh-TW.esm.js"],"listener":["modules/v2/loader.listener.zh-TW.esm.js"],"pay-button":["modules/v2/loader.pay-button.zh-TW.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.zh-TW.esm.js"],"shop-button":["modules/v2/loader.shop-button.zh-TW.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.zh-TW.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.zh-TW.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.zh-TW.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.zh-TW.esm.js"],"shop-login":["modules/v2/loader.shop-login.zh-TW.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.zh-TW.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.zh-TW.esm.js"]}; 215</script>
vendor: 1 bytes, line 215
215
216<script>(function() { 217 var isLoaded = false; 218 function asyncLoad() { 219 if (isLoaded) return; 220 isLoaded = true; 221 var urls = ["https:\/\/cdn-app.cart-bot.net\/public\/js\/append.js?shop=unovoyage.myshopify.com"]; 222 for (var i = 0; i < urls.length; i++) { 223 var s = document.createElement('script'); 224 s.type = 'text/javascript'; 225 s.async = true; 226 s.src = urls[i]; 227 var x = document.getElementsByTagName('script')[0]; 228 x.parentNode.insertBefore(s, x); 229 } 230 }; 231 if(window.attachEvent) { 232 window.attachEvent('onload', asyncLoad); 233 } else { 234 window.addEventListener('load', asyncLoad, false); 235 } 236})();</script>
vendor: 1 bytes, line 236
236
237<script id="__st">var __st={"a":41735291040,"offset":28800,"reqid":"4a5cd5fd-f39d-4fbf-9c33-3d982ae9b025-1791400471","pageurl":"unovoyage.com\/zh-us\/account\/login?return_url=%2Fzh-us%2Faccount","u":"e174ac1fad2e"};</script>
vendor: 1 bytes, line 237
237
238<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 238
238
239<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 239
239
240<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//unovoyage.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 240
240
241<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//unovoyage.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
241<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 241
241
242<script> 243 window.Shopify = window.Shopify || {}; 244 window.Shopify.MCP = window.Shopify.MCP || {}; 245 window.Shopify.MCP.enabled = true; 246 window.Shopify.MCP.shop = "unovoyage.myshopify.com"; 247 window.Shopify.MCP.mcpEndpoint = "https:\/\/unovoyage.com\/api\/mcp"; 248 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 249</script>
vendor: 1 bytes, line 249
249
250<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/unovoyage.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 251</script>
vendor: 1 bytes, line 251
251
252<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://unovoyage.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.zh-tw.js",t.type="module",document.head.appendChild(t)}}; 253</script>
vendor: 1 bytes, line 253
253
254<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 255 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 256</script>
vendor: 1 bytes, line 256
256
257<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 258</script>
vendor: 1 bytes, line 258
258
259<script id='scb4127' type='text/javascript' async='' src='https://unovoyage.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
vendor: 1 bytes, line 259
259
260<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
260 261
262<script>window.BOLD = window.BOLD || {}; 263 window.BOLD.common = window.BOLD.common || {}; 264 window.BOLD.common.Shopify = window.BOLD.common.Shopify || {}; 265 window.BOLD.common.Shopify.shop = { 266 domain: 'unovoyage.com', 267 permanent_domain: 'unovoyage.myshopify.com', 268 url: 'https://unovoyage.com', 269 secure_url: 'https://unovoyage.com/zh-us', 270 money_format: "\u003cspan class=\"money\"\u003eNT${{amount_no_decimals}}\u003c\/span\u003e", 271 currency: "TWD" 272 }; 273 window.BOLD.common.Shopify.customer = { 274 id: null, 275 tags: null, 276 }; 277 window.BOLD.common.Shopify.cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"TWD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 278 window.BOLD.common.template = 'customers/login';window.BOLD.common.Shopify.formatMoney = function(money, format) { 279 function n(t, e) { 280 return "undefined" == typeof t ? e : t 281 } 282 function r(t, e, r, i) { 283 if (e = n(e, 2), 284 r = n(r, ","), 285 i = n(i, "."), 286 isNaN(t) || null == t) 287 return 0; 288 t = (t / 100).toFixed(e); 289 var o = t.split(".") 290 , a = o[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + r) 291 , s = o[1] ? i + o[1] : ""; 292 return a + s 293 } 294 "string" == typeof money && (money = money.replace(".", "")); 295 var i = "" 296 , o = /\{\{\s*(\w+)\s*\}\}/ 297 , a = format || window.BOLD.common.Shopify.shop.money_format || window.Shopify.money_format || "$ {{ amount }}"; 298 switch (a.match(o)[1]) { 299 case "amount": 300 i = r(money, 2, ",", "."); 301 break; 302 case "amount_no_decimals": 303 i = r(money, 0, ",", "."); 304 break; 305 case "amount_with_comma_separator": 306 i = r(money, 2, ".", ","); 307 break; 308 case "amount_no_decimals_with_comma_separator": 309 i = r(money, 0, ".", ","); 310 break; 311 case "amount_with_space_separator": 312 i = r(money, 2, " ", ","); 313 break; 314 case "amount_no_decimals_with_space_separator": 315 i = r(money, 0, " ", ","); 316 break; 317 case "amount_with_apostrophe_separator": 318 i = r(money, 2, "'", "."); 319 break; 320 } 321 return a.replace(o, i); 322 }; 323 window.BOLD.common.Shopify.saveProduct = function (handle, product) { 324 if (typeof handle === 'string' && typeof window.BOLD.common.Shopify.products[handle] === 'undefined') { 325 if (typeof product === 'number') { 326 window.BOLD.common.Shopify.handles[product] = handle; 327 product = { id: product }; 328 } 329 window.BOLD.common.Shopify.products[handle] = product; 330 } 331 }; 332 window.BOLD.common.Shopify.saveVariant = function (variant_id, variant) { 333 if (typeof variant_id === 'number' && typeof window.BOLD.common.Shopify.variants[variant_id] === 'undefined') { 334 window.BOLD.common.Shopify.variants[variant_id] = variant; 335 } 336 };window.BOLD.common.Shopify.products = window.BOLD.common.Shopify.products || {}; 337 window.BOLD.common.Shopify.variants = window.BOLD.common.Shopify.variants || {}; 338 window.BOLD.common.Shopify.handles = window.BOLD.common.Shopify.handles || {};window.BOLD.common.Shopify.saveProduct(null, null);window.BOLD.apps_installed = {"Currency":1,"Customer Pricing":3} || {};window.BOLD.common.Shopify.metafields = window.BOLD.common.Shopify.metafields || {};window.BOLD.common.Shopify.metafields["bold_rp"] = {};window.BOLD.common.Shopify.metafields["bold_csp_defaults"] = {};window.BOLD.common.cacheParams = window.BOLD.common.cacheParams || {}; 339 window.BOLD.common.cacheParams.csp = 1688111393; 340</script>
340<script src="//unovoyage.com/cdn/shop/t/36/assets/vendor-scripts-v9.js" defer="defer"></script>
340<script src="//unovoyage.com/cdn/shop/t/36/assets/theme.min.js?v=160175878507049542031724481865" defer="defer"></script>
340<script src="//unovoyage.com/cdn/shopifycloud/storefront/assets/themes_support/shopify_common-5f594365.js" defer="defer"></script>
340<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
340 341 342 343
343<script src="https://cdnjs.cloudflare.com/ajax/libs/vex-js/4.1.0/js/vex.combined.min.js"></script>
343 344
344<script>vex.defaultOptions.className = 'vex-theme-default'</script>
344 345 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vex-js/4.1.0/css/vex.css" /> 346 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vex-js/4.1.0/css/vex-theme-default.css" /> 347 348 349 <meta name="facebook-domain-verification" content="svovyrld2rs2vf3v3n2s4kwudc4bzw" /> 350 351 352<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 353 354<!-- BEGIN app block: shopify://apps/simple-affiliate/blocks/sa-tracker/da6b7ee2-2e27-43e4-9184-0df8dc5be07a --> 355
356<script id="saets" data-cmp-ab="1">(()=>{function _(){return new Promise((t,o)=>{window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],async r=>{r?o(r):window.Shopify.customerPrivacy.userCanBeTracked()?t():document.addEventListener("trackingConsentAccepted",()=>t())})})}var U=4320*60;var s="Affiliate code";var E="sacode";var i="sa_signup";var a="saetc";var A="sa_email";var c=3600*24*7;function e(t){return new URLSearchParams(window.location?.search).get(t)}function S(t){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}var n=e(E);if(n){let t={[s]:n};fetch(window.Shopify.routes.root+"cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:t})}).then()}_().then(()=>{n&&(document.cookie=`${a}=${n}_${new Date().getTime()};Path=/;Max-Age=${c}`)});var p=e(A);p&&S(()=>{let t=document.querySelector('form[action="/account/login"] input[type=email]');t&&(t.value=p)});var I=e(i);I!==null&&(document.documentElement.dataset.sasignup="true");})(); 357</script>
vendor: 1 bytes, line 357
357
358<script> 359 (() => { 360 const script = document.createElement("script"); 361 script.src = "https:\/\/cdn.shopify.com\/extensions\/01a116dd-44a5-7867-b757-b12714380cd0\/SA-217533-ghrun-37640613849-1\/assets\/notification-5OV6Q6LA.js"; 362 document.head.appendChild(script); 363 })(); 364</script>
364 365 366<!-- END app block --><!-- BEGIN app block: shopify://apps/easy-wholesale/blocks/wholesale-embed-product-widget/c6525ccf-51e5-4e20-978f-8d080c13d285 --><link href="//cdn.shopify.com/extensions/01a0ed46-dec7-7186-ac26-4e9cc4646172/wholesale-new-135/assets/wholesale-2.8.0.min.css" rel="stylesheet" type="text/css" media="all" /> 367<!-- BEGIN app snippet: wholesale-product --> 368 369<span style="display: none !important" id="nm_ew_money_format">NT${{amount_no_decimals}}</span> 370 371<input type="hidden" id="nm_wholesale_qtyStep_product" value="1"> 372<input type="hidden" id="nm_wholesale_qtyMin" value="1"> 373<input type="hidden" id="nm_wholesale_qtyMax" value="0"> 374<!-- END app snippet --> 375 376<!-- END app block -->
376<script src="https://cdn.shopify.com/extensions/01a0f6ed-716e-7bcb-9b26-cd9173669680/countdown-timer-30-98/assets/countdown_timer_essential_apps.min.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 376
376
377<script src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-selleasy.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 377
377
378<script src="https://cdn.shopify.com/extensions/01a0ed46-dec7-7186-ac26-4e9cc4646172/wholesale-new-135/assets/wholesale-2.8.34.min.js" type="text/javascript" defer="defer"></script>
378 379<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
380<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 41735291040,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "customers/login"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 380
380
381<script> 382 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 383</script>
vendor: 1 bytes, line 383
383
384<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
384).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 41735291040,storefrontBaseUrl: "https://unovoyage.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://unovoyage.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b"],webPixelsConfigList: [{"id":"1425277088","configuration":"{\"accountID\":\"unovoyage\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4f82d0323b06a4642fbff9b42c9979eb","type":"APP","apiClientId":12388204545,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"563511456","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-877301115\\\",\\\"GT-PB6755H\\\"],\\\"target_country\\\":\\\"TW\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"AW-877301115\\\/Wtv1CIfXjYwDEPuaqqID\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"AW-877301115\\\/8r79CIrXjYwDEPuaqqID\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-877301115\\\/stIQCM3VjYwDEPuaqqID\\\",\\\"MC-BD05NT3BGL\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-877301115\\\/lsUVCMrVjYwDEPuaqqID\\\",\\\"MC-BD05NT3BGL\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-877301115\\\/jCNlCMfVjYwDEPuaqqID\\\",\\\"MC-BD05NT3BGL\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"AW-877301115\\\/1UDTCI3XjYwDEPuaqqID\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"AW-877301115\\\/6K00CNDVjYwDEPuaqqID\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
384,{"id":"148897952","configuration":"{\"pixel_id\":\"569601124148059\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"57639072","configuration":"{\"accountID\":\"selleasy-metrics-track\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"50acfdcd7b118f50e52df83f64624d06","type":"APP","apiClientId":5519923,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"38338720","configuration":"{\"sh_shop\":\"unovoyage.myshopify.com\",\"sh_shop_id\":\"41735291040\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"913af02b02ba3bd1e6022c45db467386","type":"APP","apiClientId":2395080,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"98074784","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"unovoyage","paymentSettings":{"currencyCode":"TWD"},"myshopifyDomain":"unovoyage.myshopify.com","countryCode":"TW","storefrontUrl":"https:\/\/unovoyage.com\/zh-us"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://unovoyage.com/cdn","87a86122w399bf3b8pd0403c97m2c07468c",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"137033482400","themeStoreId":"857","themePublished":"true","eventMetadataId":"45c862a3-1ac5-4b8d-acf7-9d78b04c3c66","shopId":"41735291040","storefrontBaseUrl":"https:\/\/unovoyage.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"87a86122w399bf3b8pd0403c97m2c07468c","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
384<script> 385 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 386 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 387 window.ShopifyAnalytics.meta.currency = 'TWD'; 388 var meta = {"page":{"requestId":"4a5cd5fd-f39d-4fbf-9c33-3d982ae9b025-1791400471"}}; 389 for (var attr in meta) { 390 window.ShopifyAnalytics.meta[attr] = meta[attr]; 391 } 392</script>
vendor: 1 bytes, line 392
392
393<script class="analytics"> 394 (function () { 395 var customDocumentWrite = function(content) { 396 var jquery = null; 397 398 if (window.jQuery) { 399 jquery = window.jQuery; 400 } else if (window.Checkout && window.Checkout.$) { 401 jquery = window.Checkout.$; 402 } 403 404 if (jquery) { 405 jquery('body').append(content); 406 } 407 }; 408 409 var hasLoggedConversion = function(token) { 410 if (token) { 411 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 412 } 413 return false; 414 } 415 416 var setCookieIfConversion = function(token) { 417 if (token) { 418 var twoMonthsFromNow = new Date(Date.now()); 419 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 420 421 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 422 } 423 } 424 425 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 426 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 427 if (trekkie.integrations) { 428 return; 429 } 430 trekkie.methods = [ 431 'identify', 432 'page', 433 'ready', 434 'track', 435 'trackForm', 436 'trackLink' 437 ]; 438 trekkie.factory = function(method) { 439 return function() { 440 var args = Array.prototype.slice.call(arguments); 441 args.unshift(method); 442 trekkie.push(args); 443 if (method == 'track' || method == 'page') { 444 var pageUrl; 445 try { 446 pageUrl = window.location.href; 447 } catch (e) {} 448 var pageReferrer; 449 try { 450 pageReferrer = document.referrer; 451 } catch (e) {} 452 try { 453 if (window.__TREKKIE_SHIM_QUEUE == null) { 454 window.__TREKKIE_SHIM_QUEUE = []; 455 } 456 window.__TREKKIE_SHIM_QUEUE.push({ 457 from: 'trekkie-stub', 458 method: method, 459 args: args.slice(1), 460 pageContext: { 461 url: pageUrl, 462 referrer: pageReferrer 463 } 464 }); 465 } catch (e) { 466 // no-op 467 } 468 } 469 return trekkie; 470 }; 471 }; 472 for (var i = 0; i < trekkie.methods.length; i++) { 473 var key = trekkie.methods[i]; 474 trekkie[key] = trekkie.factory(key); 475 } 476 trekkie.load = function(config) { 477 trekkie.config = config || {}; 478 trekkie.config.initialDocumentCookie = document.cookie; 479 var first = document.getElementsByTagName('script')[0]; 480var script = document.createElement('script'); 481script.type = 'text/javascript'; 482script.onerror = function(e) { 483 var scriptFallback = document.createElement('script'); 484 scriptFallback.type = 'text/javascript'; 485 scriptFallback.onerror = function(error) { 486 var Monorail = { 487 produce: function produce(monorailDomain, schemaId, payload) { 488 var currentMs = new Date().getTime(); 489 var event = { 490 schema_id: schemaId, 491 payload: payload, 492 metadata: { 493 event_created_at_ms: currentMs, 494 event_sent_at_ms: currentMs 495 } 496 }; 497 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 498 }, 499 sendRequest: function sendRequest(endpointUrl, payload) { 500 // Try the sendBeacon API 501 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 502 var blobData = new window.Blob([payload], { 503 type: 'text/plain' 504 }); 505 506 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 507 return true; 508 } // sendBeacon was not successful 509 510 } // XHR beacon 511 512 var xhr = new XMLHttpRequest(); 513 514 try { 515 xhr.open('POST', endpointUrl); 516 xhr.setRequestHeader('Content-Type', 'text/plain'); 517 xhr.send(payload); 518 } catch (e) { 519 console.log(e); 520 } 521 522 return false; 523 }, 524 isIos12: function isIos12() { 525 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 526 } 527 }; 528 Monorail.produce('monorail-edge.shopifysvc.com', 529 'trekkie_storefront_load_errors/1.1', 530 {shop_id: 41735291040, 531 theme_id: 137033482400, 532 app_name: "storefront", 533 context_url: window.location.href, 534 source_url: "//unovoyage.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 535 536 }; 537 scriptFallback.async = true; 538 scriptFallback.src = '//unovoyage.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 539 first.parentNode.insertBefore(scriptFallback, first); 540}; 541script.async = true; 542script.src = '//unovoyage.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 543first.parentNode.insertBefore(script, first); 544 545 }; 546 trekkie.load( 547 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":41735291040,"isMerchantRequest":null,"themeId":137033482400,"themeCityHash":"1425505215769083012","contentLanguage":"zh-TW","currency":"TWD","eventMetadataId":"45c862a3-1ac5-4b8d-acf7-9d78b04c3c66"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 548 ); 549 550 var loaded = false;
551 trekkie.ready(function() { 552 if (loaded) return; 553 loaded = true; 554 555 window.ShopifyAnalytics.lib = window.trekkie; 556 557 var originalDocumentWrite = document.write; 558 document.write = customDocumentWrite; 559 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 560 document.write = originalDocumentWrite; 561 562 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 563 var token = match? match[1]: undefined; 564 if (!hasLoggedConversion(token)) { 565 setCookieIfConversion(token); 566 567 } 568 }); 569 570 window.ShopifyAnalytics.lib.page(null,{"requestId":"4a5cd5fd-f39d-4fbf-9c33-3d982ae9b025-1791400471","shopifyEmitted":true}); 571 572 var eventsListenerScript = document.createElement('script'); 573 eventsListenerScript.async = true; 574 eventsListenerScript.src = "//unovoyage.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 575 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 576})();</script>
576 577
577<script> 578 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 579 window.ga = function ga() { 580 (window.ga.q = window.ga.q || []).push(arguments); 581 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 582 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 583 } 584 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 585 }; 586 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 587 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 588 } 589 } 590</script>
vendor: 1 bytes, line 590
590
591<script 592 defer 593 src="https://unovoyage.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.6.min.js" 594 data-application="storefront-renderer" 595 data-shop-id="41735291040" 596 data-render-region="gcp-us-central1" 597 data-page-type="customers/login" 598 data-theme-instance-id="137033482400" 599 data-theme-name="Impulse" 600 data-theme-version="4.1.1" 601 data-monorail-region="shop_domain" 602 data-resource-timing-sampling-rate="10" 603 data-shs="true" 604 data-shs-beacon="true" 605 data-shs-export-with-fetch="true" 606 data-shs-logs-sample-rate="1" 607 data-shs-beacon-endpoint="https://unovoyage.com/api/collect" 608></script>
608 609<meta name="shopify-y" content="1cba4865-e7c7-4f63-8bd6-17aa01866c44" data-expiration="1822958071000"><meta name="shopify-s" content="89419efc-fd8a-4be3-89e9-f9f66d6616ab" data-expiration="1791402271000"><meta name="new-cookie-storage-activated" content="t"> 610</head> 611 612<body class="template-customers-login" data-center-text="true" data-button_style="round-slight" data-type_header_capitalize="false" data-type_headers_align_text="false" data-type_product_capitalize="false" data-swatch_style="round" > 613 614 <a class="in-page-link visually-hidden skip-link" href="#MainContent">ç¥é</a> 615 616 <div id="PageContainer" class="page-container"> 617 <div class="transition-body"><div id="shopify-section-header" class="shopify-section"> 618 619 620 621 622<div id="NavDrawer" class="drawer drawer--left"> 623 <div class="drawer__contents"> 624 <div class="drawer__fixed-header"> 625 <div class="drawer__header appear-animation appear-delay-1"> 626 <div class="h2 drawer__title"></div> 627 <div class="drawer__close"> 628 <button type="button" class="drawer__close-button js-drawer-close"> 629 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg> 630 <span class="icon__fallback-text">ééèå®</span> 631 </button> 632 </div> 633 </div> 634 </div> 635 <div class="drawer__scrollable"> 636 <ul class="mobile-nav" role="navigation" aria-label="Primary"><li class="mobile-nav__item appear-animation appear-delay-2"><div class="mobile-nav__has-sublist"><a href="/zh-us#" 637 class="mobile-nav__link mobile-nav__link--top-level" 638 id="Label-zh-us1" 639 > 640 æ è¡&æ¶å¤ 641 </a> 642 <div class="mobile-nav__toggle"> 643 <button type="button" 644 aria-controls="Linklist-zh-us1" 645 aria-labelledby="Label-zh-us1" 646 class="collapsible-trigger collapsible--auto-height"><span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 647 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 648</span> 649</button> 650 </div></div><div id="Linklist-zh-us1" 651 class="mobile-nav__sublist collapsible-content collapsible-content--all" 652 > 653 <div class="collapsible-content__inner"> 654 <ul class="mobile-nav__sublist"><li class="mobile-nav__item"> 655 <div class="mobile-nav__child-item"><a href="/zh-us/collections/uno-knit-travel-pillow" 656 class="mobile-nav__link" 657 id="Sublabel-zh-us-collections-uno-knit-travel-pillow1" 658 > 659 ç¡ç 660 </a><button type="button" 661 aria-controls="Sublinklist-zh-us1-zh-us-collections-uno-knit-travel-pillow1" 662 aria-labelledby="Sublabel-zh-us-collections-uno-knit-travel-pillow1" 663 class="collapsible-trigger"><span class="collapsible-trigger__icon collapsible-trigger__icon--circle collapsible-trigger__icon--open" role="presentation"> 664 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 665</span> 666</button></div><div 667 id="Sublinklist-zh-us1-zh-us-collections-uno-knit-travel-pillow1" 668 aria-labelledby="Sublabel-zh-us-collections-uno-knit-travel-pillow1" 669 class="mobile-nav__sublist collapsible-content collapsible-content--all" 670 > 671 <div class="collapsible-content__inner"> 672 <ul class="mobile-nav__grandchildlist"><li class="mobile-nav__item"> 673 <a href="/zh-us/collections/uno-knit-travel-pillow" class="mobile-nav__link"> 674 UNO KNIT ç¹éº»æ è¡æ 675 </a> 676 </li><li class="mobile-nav__item"> 677 <a href="/zh-us/collections/uno-relax" class="mobile-nav__link"> 678 å¤åè½æ è¡æ 679 </a> 680 </li></ul> 681 </div> 682 </div></li><li class="mobile-nav__item"> 683 <div class="mobile-nav__child-item"><a href="/zh-us/collections/carry-on" 684 class="mobile-nav__link" 685 id="Sublabel-zh-us-collections-carry-on2" 686 > 687 æ è¡ 688 </a><button type="button" 689 aria-controls="Sublinklist-zh-us1-zh-us-collections-carry-on2" 690 aria-labelledby="Sublabel-zh-us-collections-carry-on2" 691 class="collapsible-trigger"><span class="collapsible-trigger__icon collapsible-trigger__icon--circle collapsible-trigger__icon--open" role="presentation"> 692 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewB
692ox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 693</span> 694</button></div><div 695 id="Sublinklist-zh-us1-zh-us-collections-carry-on2" 696 aria-labelledby="Sublabel-zh-us-collections-carry-on2" 697 class="mobile-nav__sublist collapsible-content collapsible-content--all" 698 > 699 <div class="collapsible-content__inner"> 700 <ul class="mobile-nav__grandchildlist"><li class="mobile-nav__item"> 701 <a href="/zh-us/collections/carry-on" class="mobile-nav__link"> 702 æå¸¶ 703 </a> 704 </li></ul> 705 </div> 706 </div></li></ul> 707 </div> 708 </div></li><li class="mobile-nav__item appear-animation appear-delay-3"><div class="mobile-nav__has-sublist"><a href="/zh-us#" 709 class="mobile-nav__link mobile-nav__link--top-level" 710 id="Label-zh-us2" 711 > 712 è»ç¨ææ©æ¶ 713 </a> 714 <div class="mobile-nav__toggle"> 715 <button type="button" 716 aria-controls="Linklist-zh-us2" 717 aria-labelledby="Label-zh-us2" 718 class="collapsible-trigger collapsible--auto-height"><span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 719 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 720</span> 721</button> 722 </div></div><div id="Linklist-zh-us2" 723 class="mobile-nav__sublist collapsible-content collapsible-content--all" 724 > 725 <div class="collapsible-content__inner"> 726 <ul class="mobile-nav__sublist"><li class="mobile-nav__item"> 727 <div class="mobile-nav__child-item"><a href="/zh-us/collections/guardamper" 728 class="mobile-nav__link" 729 id="Sublabel-zh-us-collections-guardamper1" 730 > 731 GR-23 732 </a></div></li><li class="mobile-nav__item"> 733 <div class="mobile-nav__child-item"><a href="https://thegua.cc/zh/collections/next-phone-mount" 734 class="mobile-nav__link" 735 id="Sublabel-https-thegua-cc-zh-collections-next-phone-mount2" 736 > 737 Next æ°ç³»å 738 </a></div></li><li class="mobile-nav__item"> 739 <div class="mobile-nav__child-item"><a href="/zh-us/collections/components" 740 class="mobile-nav__link" 741 id="Sublabel-zh-us-collections-components3" 742 > 743 é ä»¶ 744 </a></div></li></ul> 745 </div> 746 </div></li><li class="mobile-nav__item mobile-nav__item--secondary"> 747 <div class="grid"><div class="grid__item one-half appear-animation appear-delay-4"> 748 <a href="/zh-us/account" class="mobile-nav__link">ç»å ¥ 749</a> 750 </div></div> 751 </li></ul><ul class="mobile-nav__social appear-animation appear-delay-5"><li class="mobile-nav__social-item"> 752 <a target="_blank" rel="noopener" href="https://www.instagram.com/unovoyage/" title="unovoyage å¨ Instagram"> 753 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 32 32"><path fill="#444" d="M16 3.094c4.206 0 4.7.019 6.363.094 1.538.069 2.369.325 2.925.544.738.287 1.262.625 1.813 1.175s.894 1.075 1.175 1.813c.212.556.475 1.387.544 2.925.075 1.662.094 2.156.094 6.363s-.019 4.7-.094 6.363c-.069 1.538-.325 2.369-.544 2.925-.288.738-.625 1.262-1.175 1.813s-1.075.894-1.813 1.175c-.556.212-1.387.475-2.925.544-1.663.075-2.156.094-6.363.094s-4.7-.019-6.363-.094c-1.537-.069-2.369-.325-2.925-.544-.737-.288-1.263-.625-1.813-1.175s-.894-1.075-1.175-1.813c-.212-.556-.475-1.387-.544-2.925-.075-1.663-.094-2.156-.094-6.363s.019-4.7.094-6.363c.069-1.537.325-2.369.544-2.925.287-.737.625-1.263 1.175-1.813s1.075-.894 1.813-1.175c.556-.212 1.388-.475 2.925-.544 1.662-.081 2.156-.094 6.363-.094zm0-2.838c-4.275 0-4.813.019-6.494.094-1.675.075-2.819.344-3.819.731-1.037.4-1.913.944-2.788 1.819S1.486 4.656 1.08 5.688c-.387 1-.656 2.144-.731 3.825-.
753075 1.675-.094 2.213-.094 6.488s.019 4.813.094 6.494c.075 1.675.344 2.819.731 3.825.4 1.038.944 1.913 1.819 2.788s1.756 1.413 2.788 1.819c1 .387 2.144.656 3.825.731s2.213.094 6.494.094 4.813-.019 6.494-.094c1.675-.075 2.819-.344 3.825-.731 1.038-.4 1.913-.944 2.788-1.819s1.413-1.756 1.819-2.788c.387-1 .656-2.144.731-3.825s.094-2.212.094-6.494-.019-4.813-.094-6.494c-.075-1.675-.344-2.819-.731-3.825-.4-1.038-.944-1.913-1.819-2.788s-1.756-1.413-2.788-1.819c-1-.387-2.144-.656-3.825-.731C20.812.275 20.275.256 16 .256z"/><path fill="#444" d="M16 7.912a8.088 8.088 0 0 0 0 16.175c4.463 0 8.087-3.625 8.087-8.088s-3.625-8.088-8.088-8.088zm0 13.338a5.25 5.25 0 1 1 0-10.5 5.25 5.25 0 1 1 0 10.5zM26.294 7.594a1.887 1.887 0 1 1-3.774.002 1.887 1.887 0 0 1 3.774-.003z"/></svg> 754 <span class="icon__fallback-text">Instagram</span> 755 </a> 756 </li><li class="mobile-nav__social-item"> 757 <a target="_blank" rel="noopener" href="https://www.facebook.com/unclesign/" title="unovoyage å¨ Facebook"> 758 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 32 32"><path fill="#444" d="M18.56 31.36V17.28h4.48l.64-5.12h-5.12v-3.2c0-1.28.64-2.56 2.56-2.56h2.56V1.28H19.2c-3.84 0-7.04 2.56-7.04 7.04v3.84H7.68v5.12h4.48v14.08h6.4z"/></svg> 759 <span class="icon__fallback-text">Facebook</span> 760 </a> 761 </li><li class="mobile-nav__social-item"> 762 <a target="_blank" rel="noopener" href="https://www.youtube.com/c/unovoyage" title="unovoyage å¨ YouTube"> 763 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube" viewBox="0 0 21 20"><path fill="#444" d="M-.196 15.803q0 1.23.812 2.092t1.977.861h14.946q1.165 0 1.977-.861t.812-2.092V3.909q0-1.23-.82-2.116T17.539.907H2.593q-1.148 0-1.969.886t-.82 2.116v11.894zm7.465-2.149V6.058q0-.115.066-.18.049-.016.082-.016l.082.016 7.153 3.806q.066.066.066.164 0 .066-.066.131l-7.153 3.806q-.033.033-.066.033-.066 0-.098-.033-.066-.066-.066-.131z"/></svg> 764 <span class="icon__fallback-text">YouTube</span> 765 </a> 766 </li></ul> 767 </div> 768 </div> 769</div> 770<style> 771 .site-nav__link, 772 .site-nav__dropdown-link:not(.site-nav__dropdown-link--top-level) { 773 font-size: 16px; 774 } 775 776 .site-nav__link, .mobile-nav__link--top-level { 777 text-transform: uppercase; 778 letter-spacing: 0.2em; 779 } 780 .mobile-nav__link--top-level { 781 font-size: 1.1em; 782 } 783 784 785 786 787 788</style> 789 790<div data-section-id="header" data-section-type="header"> 791 792 793<div class="header-sticky-wrapper"> 794 <div id="HeaderWrapper" class="header-wrapper"><header 795 id="SiteHeader" 796 class="site-header" 797 data-sticky="true" 798 data-overlay="false"> 799 <div class="page-width"> 800 <div 801 class="header-layout header-layout--center-left" 802 data-logo-align="center"><div class="header-item header-item--left header-item--navigation"><ul 803 class="site-nav site-navigation small--hide" 804 805 role="navigation" aria-label="Primary" 806 ><li 807 class="site-nav__item site-nav__expanded-item site-nav--has-dropdown site-nav--is-megamenu" 808 aria-haspopup="true"> 809 810 <a href="/zh-us#" class="site-nav__link site-nav__link--underline site-nav__link--has-dropdown" 811 style=""> 812 æ è¡&æ¶å¤ 813 814 </a><div class="site-nav__dropdown megamenu text-left"> 815 <div class="page-width"> 816 <div class="grid"> 817 <div class="grid__item medium-up--one-fifth appear-animation appear-delay-1"><div class="h5"> 818 <a href="/zh-us/collections/uno-knit-travel-pillow" class="site-nav__dropdown-link site-nav__dropdown-link--top-level">ç¡ç </a> 819 </div><div> 820 <a href="/zh-us/collections/uno-knit-travel-pillow" class="site-nav__dropdown-link"> 821 UNO KNIT ç¹éº»æ è¡æ 822 </a> 823 </div><div> 824 <a href="/zh-us/collections/uno-relax" class="site-nav__dropdown-link"> 825 å¤åè½æ è¡æ 826 </a> 827 </div></div><div class="grid__item medium-up--one-fifth appear-animation appear-delay-2"><div class="h5"> 828 <a href="/zh-us/collections/carry-on" class="site-nav__dropdown-link site-nav__dropdown-link--top-level">æ è¡</a> 829 </div><div> 830 <a href="/zh-us/collections/carry-on" class="site-nav__dropdown-link"> 831 æå¸¶ 832 </a> 833 </div></div> 834 </div> 835 </div> 836 </div></li><li 837 class="site-nav__item site-nav__expanded-item site-nav--has-dropdown" 838 aria-haspopup="true"> 839 840 <a href="/zh-us#" class="site-nav__link site-nav__link--underline site-nav__link--has-dropdown" 841 style=""> 842 è»ç¨ææ©æ¶ 843 844 </a><ul class="site-nav__dropdown text-left"><li class=""> 845 <a href="/zh-us/collections/guardamper" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 846 GR-23 847</a></li><li class=""> 848 <a href="https://thegua.cc/zh/collections/next-phone-mount" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 849 Next æ°ç³»å 850</a></li><li class=""> 851 <a href="/zh-us/collections/components" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 852 é ä»¶ 853</a></li></ul></li></ul> 854<div class="site-nav medium-up--hide"> 855 <button 856 type="button" 857 class="site-nav__link site-nav__link--icon js-drawer-open-nav" 858 aria-controls="NavDrawer"> 859 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-hamburger" viewBox="0 0 64 64"><path d="M7 15h51M7 32h43M7 49h51"/></svg>
860 <span class="icon__fallback-text">Site navigation</span> 861 </button> 862 </div> 863 </div><div class="header-item header-item--logo"><style data-shopify>.header-item--logo, 864 .header-layout--left-center .header-item--logo, 865 .header-layout--left-center .header-item--icons { 866 -webkit-box-flex: 0 1 200px; 867 -ms-flex: 0 1 200px; 868 flex: 0 1 200px; 869 } 870 871 @media only screen and (min-width: 769px) { 872 .header-item--logo, 873 .header-layout--left-center .header-item--logo, 874 .header-layout--left-center .header-item--icons { 875 -webkit-box-flex: 0 0 240px; 876 -ms-flex: 0 0 240px; 877 flex: 0 0 240px; 878 } 879 } 880 881 .site-header__logo a { 882 width: 200px; 883 } 884 .is-light .site-header__logo .logo--inverted { 885 width: 200px; 886 } 887 @media only screen and (min-width: 769px) { 888 .site-header__logo a { 889 width: 240px; 890 } 891 892 .is-light .site-header__logo .logo--inverted { 893 width: 240px; 894 } 895 }</style><div class="h1 site-header__logo" itemscope itemtype="http://schema.org/Organization"> 896 <a 897 href="/zh-us" 898 itemprop="url" 899 class="site-header__logo-link"> 900 <img 901 class="small--hide" 902 src="//unovoyage.com/cdn/shop/files/UNOVOYAGE_logo-02_6b43b251-a401-4a7b-ba58-82a781c48a6a_240x.png?v=1732173478" 903 srcset="//unovoyage.com/cdn/shop/files/UNOVOYAGE_logo-02_6b43b251-a401-4a7b-ba58-82a781c48a6a_240x.png?v=1732173478 1x, //unovoyage.com/cdn/shop/files/UNOVOYAGE_logo-02_6b43b251-a401-4a7b-ba58-82a781c48a6a_240x@2x.png?v=1732173478 2x" 904 alt="unovoyage" 905 itemprop="logo"> 906 <img 907 class="medium-up--hide" 908 src="//unovoyage.com/cdn/shop/files/UNOVOYAGE_logo-02_6b43b251-a401-4a7b-ba58-82a781c48a6a_200x.png?v=1732173478" 909 srcset="//unovoyage.com/cdn/shop/files/UNOVOYAGE_logo-02_6b43b251-a401-4a7b-ba58-82a781c48a6a_200x.png?v=1732173478 1x, //unovoyage.com/cdn/shop/files/UNOVOYAGE_logo-02_6b43b251-a401-4a7b-ba58-82a781c48a6a_200x@2x.png?v=1732173478 2x" 910 alt="unovoyage"> 911 </a></div></div><div class="header-item header-item--icons"><div class="site-nav"> 912 <div class="site-nav__icons"> 913 914<span style="display:none;" class="BOLD-mc-picker-mnt" data-open="down" g-bold-mc-picker-mnt></span> 915<a class="site-nav__link site-nav__link--icon small--hide" href="/zh-us/account"> 916 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-user" viewBox="0 0 64 64"><path d="M35 39.84v-2.53c3.3-1.91 6-6.66 6-11.41 0-7.63 0-13.82-9-13.82s-9 6.19-9 13.82c0 4.75 2.7 9.51 6 11.41v2.53c-10.18.85-18 6-18 12.16h42c0-6.19-7.82-11.31-18-12.16z"/></svg> 917 <span class="icon__fallback-text">ç»å ¥ 918</span> 919 </a><a href="/zh-us/cart" class="site-nav__link site-nav__link--icon js-drawer-open-cart" aria-controls="CartDrawer" data-icon="cart"> 920 <span class="cart-link"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-cart" viewBox="0 0 64 64"><path fill="none" d="M14 17.44h46.79l-7.94 25.61H20.96l-9.65-35.1H3"/><circle cx="27" cy="53" r="2"/><circle cx="47" cy="53" r="2"/></svg><span class="icon__fallback-text">è³¼ç©è»</span> 921 <span id="CartBubble" class="cart-link__bubble"></span> 922 </span> 923 </a> 924 </div> 925</div> 926</div> 927 </div></div> 928 <div class="site-header__search-container"> 929 <div class="site-header__search"> 930 <div class="page-width"> 931 <form action="/zh-us/search" method="get" role="search" 932 id="HeaderSearchForm" 933 class="site-header__search-form"> 934 <input type="hidden" name="type" value="product,article,page,collection"> 935 <button type="submit" class="text-link site-header__search-btn site-header__search-btn--submit"> 936 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 64 64"><path d="M47.16 28.58A18.58 18.58 0 1 1 28.58 10a18.58 18.58 0 0 1 18.58 18.58zM54 54L41.94 42"/></svg>
937 <span class="icon__fallback-text">æå°</span> 938 </button> 939 <input type="search" name="q" value="" placeholder="æå°æåçç¶²ç«" class="site-header__search-input" aria-label="æå°æåçç¶²ç«"> 940 </form> 941 <button type="button" id="SearchClose" class="js-search-header-close text-link site-header__search-btn"> 942 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg> 943 <span class="icon__fallback-text">"éé (esc)"</span> 944 </button> 945 </div> 946 </div><div id="PredictiveWrapper" class="predictive-results hide" data-image-size="square"> 947 <div class="page-width"> 948 <div id="PredictiveResults" class="predictive-result__layout"></div> 949 <div class="text-center predictive-results__footer"> 950 <button type="button" class="btn btn--small" data-predictive-search-button> 951 <small> 952 æ¥çæ´å¤ 953 </small> 954 </button> 955 </div> 956 </div> 957 </div></div> 958 </header> 959 </div> 960 </div></div> 961 962 963</div><main class="main-content" id="MainContent"> 964 <div class="page-width page-width--tiny page-content"> 965 <header class="section-header"> 966 <h1 class="section-header__title">ç»å ¥</h1> 967 </header> 968 969 <div class="note note--success hide" id="ResetSuccess"> 970 æåå·²ç¶å¯äºä¸å°éææ´æ°å¯ç¢¼é£çµçé»åéµä»¶çµ¦ä½ ã 971 </div> 972 973 <div id="CustomerLoginForm" class="form-vertical"><form method="post" action="/zh-us/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true"><input type="hidden" name="form_type" value="customer_login" /><input type="hidden" name="utf8" value="â" /><!-- Return to previous page !--> 974 <input type="hidden" name="checkout_url" id="redirect_url" value="" /> 975
975<script> 976 $(document).ready(function() { 977 var url = document.referrer; 978 $("#redirect_url").val(url); 979 }); 980 </script>
980 981 <!-- end !--> 982 983 984 985 <label for="CustomerEmail">é»åä¿¡ç®±</label> 986 <input type="email" name="customer[email]" id="CustomerEmail" class="input-full" autocorrect="off" autocapitalize="off" autofocus><div class="grid"> 987 <div class="grid__item one-half"> 988 <label for="CustomerPassword">å¯ç¢¼</label> 989 </div> 990 <div class="grid__item one-half text-right"> 991 <small class="label-info"> 992 <a href="#recover" id="RecoverPassword"> 993 484 å¿è¨å¯ç¢¼äºï¼ 994 </a> 995 </small> 996 </div> 997 </div> 998 <input type="password" value="" name="customer[password]" id="CustomerPassword" class="input-full"><p> 999 <button type="submit" class="btn btn--full"> 1000 ç»å ¥ 1001 </button> 1002 </p> 1003 <p><a href="/zh-us/account/register" id="customer_register_link">建ç«å¸³æ¶</a></p><input type="hidden" name="return_url" value="/zh-us/account" /></form></div> 1004 1005 <div id="RecoverPasswordForm" class="hide"> 1006 <div class="form-vertical"> 1007 <h2>éç½®ä½ çå¯ç¢¼</h2> 1008 <p>æåå°æå¯ä¸å°éç½®å¯ç¢¼çé»åéµä»¶çµ¦ä½ ã</p><form method="post" action="/zh-us/account/recover" accept-charset="UTF-8"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="â" /> 1009<label for="RecoverEmail">é»åä¿¡ç®±</label> 1010 <input type="email" value="" name="email" id="RecoverEmail" class="input-full" autocorrect="off" autocapitalize="off"> 1011 1012 <p> 1013 <button type="submit" class="btn"> 1014 æäº¤ 1015 </button> 1016 </p> 1017 <button type="button" id="HideRecoverPasswordLink">åæ¶</button></form></div> 1018 1019 </div></div> 1020 1021 </main><div id="shopify-section-footer-promotions" class="shopify-section index-section--footer"> 1022</div><div id="shopify-section-footer" class="shopify-section"><footer class="site-footer" data-section-id="footer" data-section-type="footer-section"> 1023 <div class="page-width"> 1024 1025 <div class="grid"><div class="grid__item footer__item--3d401ed3-7587-4d5b-b4b4-63d8835e54ea" data-type="newsletter"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 1026 .footer__item--3d401ed3-7587-4d5b-b4b4-63d8835e54ea { 1027 width: 50%; 1028 padding-top: 40px; 1029 } 1030 .footer__item--3d401ed3-7587-4d5b-b4b4-63d8835e54ea:nth-child(2n + 1) { 1031 clear: left; 1032 } 1033 } 1034 @media only screen and (min-width: 960px) { 1035 .footer__item--3d401ed3-7587-4d5b-b4b4-63d8835e54ea { 1036 width: 25%; 1037 } 1038 1039 }</style><div class="footer__item-padding"><div 1040 > 1041 <div class="collapsible-content__inner"> 1042 <div class="footer__collapsible footer_collapsible--disabled"> 1043<form method="post" action="/zh-us/contact#newsletter-footer" id="newsletter-footer" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><label for="Email-3d401ed3-7587-4d5b-b4b4-63d8835e54ea" class="hidden-label">è¼¸å ¥ä½ ç email</label> 1044 <input type="hidden" name="contact[tags]" value="prospect,newsletter"> 1045 <input type="hidden" name="contact[context]" value="footer"> 1046 <div class="footer__newsletter"> 1047 <input type="email" value="" placeholder="è¼¸å ¥ä½ ç email" name="contact[email]" id="Email-3d401ed3-7587-4d5b-b4b4-63d8835e54ea" class="footer__newsletter-input" autocorrect="off" autocapitalize="off"> 1048 <button type="submit" class="footer__newsletter-btn" name="commit" aria-label="è¨é±ä¸å»"> 1049 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-email" viewBox="0 0 64 64"><path d="M63 52H1V12h62zM1 12l25.68 24h9.72L63 12M21.82 31.68L1.56 51.16m60.78.78L41.27 31.68"/></svg> 1050 <span class="footer__newsletter-btn-label"> 1051 è¨é±ä¸å» 1052 </span> 1053 </button> 1054 </div></form><ul class="no-bullets footer__social"><li> 1055 <a target="_blank" rel="noopener" href="https://www.instagram.com/unovoyage/" title="unovoyage å¨ Instagram"> 1056 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 32 32">
1056<path fill="#444" d="M16 3.094c4.206 0 4.7.019 6.363.094 1.538.069 2.369.325 2.925.544.738.287 1.262.625 1.813 1.175s.894 1.075 1.175 1.813c.212.556.475 1.387.544 2.925.075 1.662.094 2.156.094 6.363s-.019 4.7-.094 6.363c-.069 1.538-.325 2.369-.544 2.925-.288.738-.625 1.262-1.175 1.813s-1.075.894-1.813 1.175c-.556.212-1.387.475-2.925.544-1.663.075-2.156.094-6.363.094s-4.7-.019-6.363-.094c-1.537-.069-2.369-.325-2.925-.544-.737-.288-1.263-.625-1.813-1.175s-.894-1.075-1.175-1.813c-.212-.556-.475-1.387-.544-2.925-.075-1.663-.094-2.156-.094-6.363s.019-4.7.094-6.363c.069-1.537.325-2.369.544-2.925.287-.737.625-1.263 1.175-1.813s1.075-.894 1.813-1.175c.556-.212 1.388-.475 2.925-.544 1.662-.081 2.156-.094 6.363-.094zm0-2.838c-4.275 0-4.813.019-6.494.094-1.675.075-2.819.344-3.819.731-1.037.4-1.913.944-2.788 1.819S1.486 4.656 1.08 5.688c-.387 1-.656 2.144-.731 3.825-.075 1.675-.094 2.213-.094 6.488s.019 4.813.094 6.494c.075 1.675.344 2.819.731 3.825.4 1.038.944 1.913 1.819 2.788s1.756 1.413 2.788 1.819c1 .387 2.144.656 3.825.731s2.213.094 6.494.094 4.813-.019 6.494-.094c1.675-.075 2.819-.344 3.825-.731 1.038-.4 1.913-.944 2.788-1.819s1.413-1.756 1.819-2.788c.387-1 .656-2.144.731-3.825s.094-2.212.094-6.494-.019-4.813-.094-6.494c-.075-1.675-.344-2.819-.731-3.825-.4-1.038-.944-1.913-1.819-2.788s-1.756-1.413-2.788-1.819c-1-.387-2.144-.656-3.825-.731C20.812.275 20.275.256 16 .256z"/><path fill="#444" d="M16 7.912a8.088 8.088 0 0 0 0 16.175c4.463 0 8.087-3.625 8.087-8.088s-3.625-8.088-8.088-8.088zm0 13.338a5.25 5.25 0 1 1 0-10.5 5.25 5.25 0 1 1 0 10.5zM26.294 7.594a1.887 1.887 0 1 1-3.774.002 1.887 1.887 0 0 1 3.774-.003z"/></svg> 1057 <span class="icon__fallback-text">Instagram</span> 1058 </a> 1059 </li><li> 1060 <a target="_blank" rel="noopener" href="https://www.facebook.com/unclesign/" title="unovoyage å¨ Facebook"> 1061 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 32 32"><path fill="#444" d="M18.56 31.36V17.28h4.48l.64-5.12h-5.12v-3.2c0-1.28.64-2.56 2.56-2.56h2.56V1.28H19.2c-3.84 0-7.04 2.56-7.04 7.04v3.84H7.68v5.12h4.48v14.08h6.4z"/></svg> 1062 <span class="icon__fallback-text">Facebook</span> 1063 </a> 1064 </li><li> 1065 <a target="_blank" rel="noopener" href="https://www.youtube.com/c/unovoyage" title="unovoyage å¨ YouTube"> 1066 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube" viewBox="0 0 21 20"><path fill="#444" d="M-.196 15.803q0 1.23.812 2.092t1.977.861h14.946q1.165 0 1.977-.861t.812-2.092V3.909q0-1.23-.82-2.116T17.539.907H2.593q-1.148 0-1.969.886t-.82 2.116v11.894zm7.465-2.149V6.058q0-.115.066-.18.049-.016.082-.016l.082.016 7.153 3.806q.066.066.066.164 0 .066-.066.131l-7.153 3.806q-.033.033-.066.033-.066 0-.098-.033-.066-.066-.066-.131z"/></svg> 1067 <span class="icon__fallback-text">YouTube</span> 1068 </a> 1069 </li></ul> 1070 </div> 1071 </div> 1072 </div> 1073</div> 1074</div><div class="grid__item footer__item--6bea8d76-0644-4d14-9ef6-804186e29642" data-type="menu"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 1075 .footer__item--6bea8d76-0644-4d14-9ef6-804186e29642 { 1076 width: 50%; 1077 padding-top: 40px; 1078 } 1079 .footer__item--6bea8d76-0644-4d14-9ef6-804186e29642:nth-child(2n + 1) { 1080 clear: left; 1081 } 1082 } 1083 @media only screen and (min-width: 960px) { 1084 .footer__item--6bea8d76-0644-4d14-9ef6-804186e29642 { 1085 width: 25%; 1086 } 1087 1088 }</style> 1089 <p class="footer__title small--hide" style="font-weight: bold;font-size: 15px;"> 1090 購買 1091 </p> 1092 <button type="button" class="h4 footer__title collapsible-trigger collapsible-trigger-btn medium-up--hide" aria-controls="Footer-6bea8d76-0644-4d14-9ef6-804186e29642"> 1093 購買 1094<span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 1095 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewB
1095ox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 1096</span> 1097</button><div 1098 1099 id="Footer-6bea8d76-0644-4d14-9ef6-804186e29642" class="collapsible-content collapsible-content--small" 1100 > 1101 <div class="collapsible-content__inner"> 1102 <div class="footer__collapsible"> 1103 <ul class="no-bullets site-footer__linklist"><li><a href="/zh-us/collections/uno-relax">UNO® ç¶å ¸æ è¡æ</a></li> 1104 1105<li><a href="/zh-us/collections/carry-on">UNO® Carry ã¤</a></li> 1106 1107<li><a href="/zh-us/collections/guardamper">UNO® GUARDAMPERâ¢ï¸</a></li> 1108 1109<li><a href="/zh-us/collections/design-for-coivd-19">UNO® é²ç«å°å</a></li> 1110 1111</ul> 1112 </div> 1113 </div> 1114 </div></div><div class="grid__item footer__item--7c5cf38e-ce92-4696-958f-f7db38ef3497" data-type="menu"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 1115 .footer__item--7c5cf38e-ce92-4696-958f-f7db38ef3497 { 1116 width: 50%; 1117 padding-top: 40px; 1118 } 1119 .footer__item--7c5cf38e-ce92-4696-958f-f7db38ef3497:nth-child(2n + 1) { 1120 clear: left; 1121 } 1122 } 1123 @media only screen and (min-width: 960px) { 1124 .footer__item--7c5cf38e-ce92-4696-958f-f7db38ef3497 { 1125 width: 25%; 1126 } 1127 1128 }</style> 1129 <p class="footer__title small--hide" style="font-weight: bold;font-size: 15px;"> 1130 æ¶è²»è é ç¥ 1131 </p> 1132 <button type="button" class="h4 footer__title collapsible-trigger collapsible-trigger-btn medium-up--hide" aria-controls="Footer-7c5cf38e-ce92-4696-958f-f7db38ef3497"> 1133 æ¶è²»è é ç¥ 1134<span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 1135 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 1136</span> 1137</button><div 1138 1139 id="Footer-7c5cf38e-ce92-4696-958f-f7db38ef3497" class="collapsible-content collapsible-content--small" 1140 > 1141 <div class="collapsible-content__inner"> 1142 <div class="footer__collapsible"> 1143 <ul class="no-bullets site-footer__linklist"><li><a href="/zh-us/pages/store-locator">GUARDAMPERç³»å éå¸è³è¨</a></li> 1144 1145<li><a href="/zh-us/policies/shipping-policy">ééè追蹤</a></li> 1146 1147<li><a href="https://unovoyage.com/apps/product-registration">ç¢åä¿åºè¨»å</a></li> 1148 1149<li><a href="/zh-us/pages/warranty">ä¿åºç¶ä¿®ç³è«</a></li> 1150 1151<li><a href="/zh-us/policies/refund-policy">é貨æ¿ç</a></li> 1152 1153<li><a href="/zh-us/policies/privacy-policy">é±ç§æ¿ç</a></li> 1154 1155</ul> 1156 </div> 1157 </div> 1158 </div></div><div class="grid__item footer__item--656e4a95-d586-4091-9cbf-94f934261e9c" data-type="menu"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 1159 .footer__item--656e4a95-d586-4091-9cbf-94f934261e9c { 1160 width: 50%; 1161 padding-top: 40px; 1162 } 1163 .footer__item--656e4a95-d586-4091-9cbf-94f934261e9c:nth-child(2n + 1) { 1164 clear: left; 1165 } 1166 } 1167 @media only screen and (min-width: 960px) { 1168 .footer__item--656e4a95-d586-4091-9cbf-94f934261e9c { 1169 width: 25%; 1170 } 1171 1172 }</style> 1173 <p class="footer__title small--hide" style="font-weight: bold;font-size: 15px;"> 1174 UNO® VOYAGE 1175 </p> 1176 <button type="button" class="h4 footer__title collapsible-trigger collapsible-trigger-btn medium-up--hide" aria-controls="Footer-656e4a95-d586-4091-9cbf-94f934261e9c"> 1177 UNO® VOYAGE 1178<span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 1179 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewB
1179ox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 1180</span> 1181</button><div 1182 1183 id="Footer-656e4a95-d586-4091-9cbf-94f934261e9c" class="collapsible-content collapsible-content--small" 1184 > 1185 <div class="collapsible-content__inner"> 1186 <div class="footer__collapsible"> 1187 <ul class="no-bullets site-footer__linklist"><li><a href="/zh-us/pages/about-unovoyage">éæ¼ UNO®</a></li> 1188 1189<li><a href="/zh-us/pages/contact">è¯çµ¡ã¤å£</a></li> 1190 1191<li><a href="/zh-us/pages/lets-do-some-business">忥åä½</a></li> 1192 1193</ul> 1194 </div> 1195 </div> 1196 </div></div><div class="footer__clear small--hide"></div><div class="grid__item footer__item--custom_UEUXNx" data-type="custom"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 1197 .footer__item--custom_UEUXNx { 1198 width: 50%; 1199 padding-top: 40px; 1200 } 1201 .footer__item--custom_UEUXNx:nth-child(2n + 1) { 1202 clear: left; 1203 } 1204 } 1205 @media only screen and (min-width: 960px) { 1206 .footer__item--custom_UEUXNx { 1207 width: 95%; 1208 } 1209 1210 }</style><div class="footer__item-padding"><div 1211 > 1212 <div class="collapsible-content__inner"> 1213 <div class="footer__collapsible footer_collapsible--disabled"> 1214 </div> 1215 </div> 1216 </div> 1217</div> 1218</div></div><p class="footer__small-text"> 1219 © 2026 unovoyage 1220</p> 1221 1222 </div> 1223</footer> 1224 1225 1226</div></div> 1227 </div><div id="shopify-section-newsletter-popup" class="shopify-section index-section--hidden"> 1228</div><div class="hide"> 1229 <button data-id="prevArrowTemplate" class="slick-prev" aria-label="ä¸ä¸é " type="button"> 1230 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-left" viewBox="0 0 284.49 498.98"><path d="M249.49 0a35 35 0 0 1 24.75 59.75L84.49 249.49l189.75 189.74a35.002 35.002 0 1 1-49.5 49.5L10.25 274.24a35 35 0 0 1 0-49.5L224.74 10.25A34.89 34.89 0 0 1 249.49 0z"/></svg> 1231 <span class="icon__fallback-text">ä¸ä¸é </span> 1232 </button> 1233 <button data-id="nextArrowTemplate" class="slick-next" aria-label="ä¸ä¸é " type="button"> 1234 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98"><path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"/></svg> 1235 <span class="icon__fallback-text">ä¸ä¸é </span> 1236 </button> 1237 </div><div id="VideoModal" class="modal modal--solid"> 1238 <div class="modal__inner"> 1239 <div class="modal__centered page-width text-center"> 1240 <div class="modal__centered-content"> 1241 <div class="video-wrapper video-wrapper--modal"> 1242 <div id="VideoHolder"></div> 1243 </div> 1244 </div> 1245 </div> 1246 </div> 1247 1248 <button type="button" class="modal__close js-modal-close text-link"> 1249 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg> 1250 <span class="icon__fallback-text">"éé (esc)"</span> 1251 </button> 1252</div> 1253<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true"> 1254 <div class="pswp__bg"></div> 1255 <div class="pswp__scroll-wrap"> 1256 <div class="pswp__container"> 1257 <div class="pswp__item"></div> 1258 <div class="pswp__item"></div> 1259 <div class="pswp__item"></div> 1260 </div> 1261 1262 <div class="pswp__ui pswp__ui--hidden"> 1263 <button class="btn btn--body btn--circle pswp__button pswp__button--arrow--left" title="ä¸ä¸é "> 1264 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-left" viewBox="0 0 284.49 498.98"><path d="M249.49 0a35 35 0 0 1 24.75 59.75L84.49 249.49l189.75 189.74a35.002 35.002 0 1 1-49.5 49.5L10.25 274.24a35 35 0 0 1 0-49.5L224.74 10.25A34.89 34.89 0 0 1 249.49 0z"/></svg> 1265 </button> 1266 1267 <button class="btn btn--body btn--circle btn--large pswp__button pswp__button--close" title="éé (esc)"> 1268 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg> 1269 </button> 1270 1271 <button class="btn btn--body btn--circle pswp__button pswp__button--arrow--right" title="ä¸ä¸é "> 1272 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98"><path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"/></svg> 1273 </button> 1274 </div> 1275 </div> 1276</div>
1277<!--çºäºä¿åºé é¢é»åç§ä¸åæåç¨ http://jsfiddle.net/isherwood/mzneo2sr/2--> 1278
1278<script> 1279 $('.content-link button').click(function () { 1280 var idx = $(this).closest('.content-link').index(); 1281 1282 $('.content-link button').removeClass('active-link'); 1283 $(this).addClass('active-link'); 1284 1285 $('.content-panel').hide(); 1286 $('.content-panel').eq(idx).show(); 1287}); 1288 </script>
1288 1289 1290<!--鿝tabç¨ https://community.shopify.com/c/Shopify-Design/Product-pages-Add-tabs-to-product-descriptions/td-p/615138 --> 1291
1291<script> 1292 $(document).ready(function() { 1293 $('ul.tabs').each(function(){ 1294 var active, content, links = $(this).find('a'); 1295 active = links.first().addClass('active'); 1296 content = $(active.attr('href')); 1297 links.not(':first').each(function () { 1298 $($(this).attr('href')).hide(); 1299 }); 1300 $(this).find('a').click(function(e){ 1301 active.removeClass('active'); 1302 content.hide(); 1303 active = $(this); 1304 content = $($(this).attr('href')); 1305 active.addClass('active'); 1306 content.show(); 1307 return false; 1308 }); 1309 }); 1310 }); 1311 </script>
1311 1312 1313
1313<script> 1314const video = document.querySelector("video"); 1315 1316const onVisibilityChange = () => { 1317 if (document.hidden) { 1318 video.pause(); 1319 } else { 1320 video.play(); 1321 } 1322}; 1323 1324document.addEventListener("visibilitychange", onVisibilityChange); 1325 </script>
1325 1326 <!-- counter --> 1327
1327<script> 1328 $('.counting').each(function() { 1329 var $this = $(this), 1330 countTo = $this.attr('data-count'); 1331 1332 $({ countNum: $this.text()}).animate({ 1333 countNum: countTo 1334 }, 1335 1336 { 1337 1338 duration: 3000, 1339 easing:'linear', 1340 step: function() { 1341 $this.text(Math.floor(this.countNum)); 1342 }, 1343 complete: function() { 1344 $this.text(this.countNum); 1345 //alert('finished'); 1346 } 1347 1348 }); 1349 1350 1351});</script>
1351 1352 <!-- counter --> 1353 1354
1355<script> 1356 // ensure these are available to the global window, for use in the bootstrap js asset 1357 window.BOLD_mc_bootstrapSettings = { 1358 shopDomainUrl: 'https://mc.boldapps.net/unovoyage.myshopify.com', 1359 flagsAssetUrl: '//unovoyage.com/cdn/shop/t/36/assets/flags.min.css?v=96997777027052313421724481865', 1360 pickerCssAssetUrl: '//unovoyage.com/cdn/shop/t/36/assets/bold-currency-picker.css?v=64007812089720857901724481865', 1361 productOriginalPrice: "" 1362 }; 1363</script>
vendor: 1 bytes, line 1363
1363
1364<script src="https://mc.boldapps.net/install_assets/bold.multicurrency.js" defer></script>
vendor: 1 bytes, line 1364
1364
1365<script src="//unovoyage.com/cdn/shop/t/36/assets/bold-currency-bootstrap.js?v=172784488555041320471724481865" defer></script>
vendor: 1 bytes, line 1365
1365
1366<script type="text/template" id="bold-currency-picker-template"> 1367 <div class="BOLD-mc-picker multi faux-select"> 1368 <div class="currentCurrency loading" data-current-currency> 1369 <span class="flag flag-loading" data-flag></span> 1370 <span class="name" data-name>•••</span> 1371 1372 </div> 1373 <ul class="currencyList" data-currency-list></ul> 1374 </div> 1375</script>
1375 1376
1377<script type="text/template" id="bold-currency-picker-mount-template"> 1378 1379<span style="display:none;" class="BOLD-mc-picker-mnt" data-open="up" g-bold-mc-picker-mnt></span> 1380</script>
1380 1381<style> </style> 1382<div id="shopify-block-AWFNNenlBR2N5d2ZuU__12657775114333427046" class="shopify-block shopify-app-block">
1382<script> 1383 1384 window.essentialCountdownTimerConfigs = []; 1385 1386 const essentialCollectionId = null; 1387 window.essentialCountdownTimerMeta = { 1388 productData: null, 1389 productCollections: null, 1390 }; 1391 window.essentialProductId = null 1392 window.essentialProductTags = null 1393 window.essentialCollectionId = null 1394 window.essentialCountdownTimerPageTemplate = "customers\/login" 1395 1396</script>
1396 1397 1398 1399 1400<style> 1401 .essential-countdown-timer-img-reset { 1402 /* wipe common globals */ 1403 box-sizing: content-box; 1404 display: inline; 1405 width: auto; 1406 height: auto; 1407 max-width: none; 1408 max-height: none; 1409 margin: 0; 1410 padding: 0; 1411 border: none; 1412 border-radius: 0; 1413 box-shadow: none; 1414 background: none; 1415 object-fit: fill; 1416 object-position: 50% 50%; 1417 filter: none; 1418 opacity: 1; 1419 position: static; 1420 float: none; 1421 clear: none; 1422 vertical-align: baseline; 1423 transform: none; 1424 transition: none; 1425 animation: none; 1426 /* typography sometimes leaks via universal selectors */ 1427 font: inherit; 1428 line-height: normal; 1429 letter-spacing: normal; 1430 text-align: start; 1431 } 1432</style> 1433 1434 1435</div><div id="shopify-block-AaUY3TDlOK3J2UVAyQ__4015264832934714879" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: ecomsend-app -->
1435<script type="text/javascript"> 1436 //SendWILL APPS COMMON JS CODE 1437 window.EcomSendApps = window.EcomSendApps || {} 1438 1439 window.EcomSendApps.design_mode = false 1440 1441 1442 window.EcomSendApps.common = window.EcomSendApps.common || {} 1443 window.EcomSendApps.common.shop = { 1444 permanent_domain: 'unovoyage.myshopify.com', 1445 currency: "TWD", 1446 money_format: "\u003cspan class=\"money\"\u003eNT${{amount_no_decimals}}\u003c\/span\u003e", 1447 id: 41735291040, 1448 } 1449 1450 1451 1452 window.EcomSendApps.common.customer = { 1453 id: null, 1454 tags: null, 1455 email: null, 1456 accepts_marketing: null, 1457 first_name: null, 1458 } 1459 1460 1461 1462 window.EcomSendApps.common.template = 'customers/login' 1463</script>
1463 1464<!-- END app snippet --> 1465
1466<script> 1467 window.EcomSendApps = window.EcomSendApps || {} 1468 /** @description shared localStorage key used by web-pixel sandbox to read storefront GDPR mode */ 1469 const ECOMSEND_GDPR_ENABLED_STORAGE_KEY = "ECOMSEND:GDPR_ENABLED" 1470 /** @description storefront main bundle asset url */ 1471 const ECOMSEND_MAIN_SCRIPT_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/ecomsend.js' 1472 /** @description storefront style asset url */ 1473 const ECOMSEND_MAIN_STYLE_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/style.css' 1474 /** @description storefront wasm asset url for runtime signature module */ 1475 const ECOMSEND_WASM_ASSET_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/client_safe.wasm' 1476 /** @description fallback delay when requestIdleCallback is unavailable */ 1477 const ECOMSEND_IDLE_TIMEOUT_MS = 800 1478 /** @description user interaction events used to trigger lazy init earlier */ 1479 const ECOMSEND_INTERACTION_EVENTS = ["pointerdown", "keydown", "touchstart"] 1480 /** @description global flag key for emergency immediate loading */ 1481 const ECOMSEND_FORCE_IMMEDIATE_FLAG = window.EcomSendApps?.forceImmediateLoad === true 1482 /** @description default GDPR mode comes from block setting and can be overridden on window.EcomSendApps.GDPR */ 1483 const ECOMSEND_DEFAULT_GDPR_FLAG = false 1484 /** @description default CWTracks mode comes from block setting and can be overridden on window.EcomSendApps.CWTracksEnabled */ 1485 const ECOMSEND_DEFAULT_CWTRACKS_ENABLED = false 1486 1487 /** @description normalize merchant-provided GDPR switch into a strict boolean value */ 1488 function normalizeEcomsendBooleanFlag(rawValue) { 1489 if (typeof rawValue === "boolean") { 1490 return rawValue 1491 } 1492 if (typeof rawValue === "number") { 1493 return rawValue === 1 1494 } 1495 if (typeof rawValue === "string") { 1496 const normalizedValue = rawValue.trim().toLowerCase() 1497 return normalizedValue === "true" || normalizedValue === "1" || normalizedValue === "yes" 1498 } 1499 return false 1500 } 1501 1502 /** @description lock runtime switch value on EcomSendApps to reduce accidental console overwrite. */ 1503 function lockEcomsendReadonlyFlag(flagName, flagValue) { 1504 try { 1505 Object.defineProperty(window.EcomSendApps, flagName, { 1506 value: flagValue, 1507 writable: false, 1508 configurable: false, 1509 enumerable: true, 1510 }) 1511 return 1512 } catch (error) {} 1513 window.EcomSendApps[flagName] = flagValue 1514 } 1515 1516 /** @description resolve storefront GDPR mode from merchant theme override */ 1517 function resolveEcomsendGdprMode() { 1518 if (typeof window.EcomSendApps.GDPR === "undefined") { 1519 window.EcomSendApps.GDPR = ECOMSEND_DEFAULT_GDPR_FLAG 1520 } 1521 const gdprEnabled = normalizeEcomsendBooleanFlag(window.EcomSendApps.GDPR) 1522 window.EcomSendApps.GDPR = gdprEnabled 1523 return gdprEnabled 1524 } 1525 1526 /** @description resolve storefront CWTracks mode from merchant theme block setting and runtime override */ 1527 function resolveEcomsendCwTracksMode() { 1528 if (typeof window.EcomSendApps.CWTracksEnabled === "undefined") { 1529 window.EcomSendApps.CWTracksEnabled = ECOMSEND_DEFAULT_CWTRACKS_ENABLED 1530 } 1531 const cwTracksEnabled = normalizeEcomsendBooleanFlag(window.EcomSendApps.CWTracksEnabled) 1532 window.EcomSendApps.CWTracksEnabled = cwTracksEnabled 1533 return cwTracksEnabled 1534 } 1535 1536 /** @description persist storefront GDPR mode so web-pixel sandbox can consume the same switch */ 1537 function syncEcomsendGdprModeToStorage(gdprEnabled) { 1538 if (!window.localStorage) { 1539 return 1540 } 1541 if (gdprEnabled) { 1542 window.localStorage.setItem(ECOMSEND_GDPR_ENABLED_STORAGE_KEY, "true") 1543 return 1544 } 1545 window.localStorage.removeItem(ECOMSEND_GDPR_ENABLED_STORAGE_KEY) 1546 } 1547 1548 /** @description enable GDPR gating only when merchant explicitly turns on storefront GDPR mode */ 1549 const ECOMSEND_GDPR_ENABLED = resolveEcomsendGdprMode() 1550 /** @description enable CWTracks callback/event emit only when merchant turns on CWTracks mode. */ 1551 const ECOMSEND_CWTRACKS_ENABLED = resolveEcomsendCwTracksMode() 1552 lockEcomsendReadonlyFlag("GDPR", ECOMSEND_GDPR_ENABLED) 1553 lockEcomsendReadonlyFlag("CWTracksEnabled", ECOMSEND_CWTRACKS_ENABLED) 1554 1555 try { 1556 syncEcomsendGdprModeToStorage(ECOMSEND_GDPR_ENABLED) 1557 } catch (error) {} 1558 1559 /** @description create main stylesheet node for storefront runtime */ 1560 function createEcomSendMainStyleEle() { 1561 const ecomsendMainStyleEle = document.createElement("link") 1562 ecomsendMainStyleEle.rel = "stylesheet" 1563 ecomsendMainStyleEle.href = ECOMSEND_MAIN_STYLE_URL 1564 ecomsendMainStyleEle.dataset.ecomsendTag = "main-style" 1565 return ecomsendMainStyleEle 1566 } 1567 1568 /** @description append runtime stylesheet exactly once */ 1569 function ensureEcomSendMainStyleLoaded() { 1570 if (document.querySelector('link[data-ecomsend-tag="main-style"]')) { 1571 return 1572 } 1573 const ecomsendMainStyleEle = createEcomSendMainStyleEle() 1574 document.head.appendChild(ecomsendMainStyleEle) 1575 } 1576 1577 /** @description remove interaction listeners after first lazy-init trigger */ 1578 function clearInteractionListeners() {
1579 ECOMSEND_INTERACTION_EVENTS.forEach((eventName) => { 1580 window.removeEventListener(eventName, scheduleMainBundleLoad) 1581 }) 1582 } 1583 1584 /** @description run low-priority task via idle callback with timeout fallback */ 1585 function scheduleLowPriorityTask(taskRunner, timeoutMs) { 1586 if (window.requestIdleCallback) { 1587 window.requestIdleCallback(() => { 1588 taskRunner() 1589 }, { timeout: timeoutMs }) 1590 return 1591 } 1592 window.setTimeout(() => { 1593 taskRunner() 1594 }, timeoutMs) 1595 } 1596 1597 /** @description load main storefront bundle once and keep rollback override */ 1598 function loadEcomsendMainBundle() { 1599 if (window.__ecomsendMainBundleLoaded) { 1600 return 1601 } 1602 window.__ecomsendMainBundleLoaded = true 1603 clearInteractionListeners() 1604 /** @description ensure storefront runtime css is loaded together with main bundle */ 1605 ensureEcomSendMainStyleLoaded() 1606 const ecomsendMainScriptEle = document.createElement("script") 1607 ecomsendMainScriptEle.src = ECOMSEND_MAIN_SCRIPT_URL 1608 ecomsendMainScriptEle.async = true 1609 ecomsendMainScriptEle.dataset.ecomsendTag = "main-script" 1610 document.body.appendChild(ecomsendMainScriptEle) 1611 } 1612 1613 /** @description schedule heavy bundle with idle-first strategy to reduce main-thread contention */ 1614 function scheduleMainBundleLoad() { 1615 if (window.__ecomsendMainBundleLoadScheduled) { 1616 return 1617 } 1618 /** @description dedupe idle scheduling from DOMContentLoaded and first interactions */ 1619 window.__ecomsendMainBundleLoadScheduled = true 1620 if (ECOMSEND_FORCE_IMMEDIATE_FLAG) { 1621 loadEcomsendMainBundle() 1622 return 1623 } 1624 scheduleLowPriorityTask(loadEcomsendMainBundle, ECOMSEND_IDLE_TIMEOUT_MS) 1625 } 1626 1627 /** @description cache marketing params for pixel/report flows before heavy bundle starts */ 1628 function cacheMarketingParams() { 1629 const urlParams = new URLSearchParams(window.location.search) 1630 const marketingId = urlParams.get("ec_marketing_id") 1631 const ecEmailId = urlParams.get("ec_email_id") 1632 const ecMarketingSign = urlParams.get("ec_marketing_sign") 1633 1634 if (marketingId && window.localStorage) { 1635 window.localStorage.setItem("ec_marketing_id", marketingId) 1636 } 1637 if (ecEmailId && window.localStorage) { 1638 window.localStorage.setItem("ec_email_id", ecEmailId) 1639 } 1640 if (ecMarketingSign && window.localStorage) { 1641 window.localStorage.setItem("ec_marketing_sign", ecMarketingSign) 1642 } 1643 } 1644 1645 /** @description check whether marketing storage is allowed under Shopify customer privacy state */ 1646 function isMarketingStorageAllowedByCustomerPrivacy() { 1647 const customerPrivacy = window?.Shopify?.customerPrivacy 1648 if (!customerPrivacy) { 1649 return false 1650 } 1651 const marketingAllowed = typeof customerPrivacy.marketingAllowed === "function" && customerPrivacy.marketingAllowed() 1652 if (marketingAllowed) { 1653 return true 1654 } 1655 if (typeof customerPrivacy.currentVisitorConsent === "function") { 1656 const consent = customerPrivacy.currentVisitorConsent() 1657 return consent?.marketing === "yes" 1658 } 1659 return false 1660 } 1661 1662 /** @description check whether analytics storage is allowed under Shopify customer privacy state */ 1663 function isAnalyticsStorageAllowedByCustomerPrivacy() { 1664 const customerPrivacy = window?.Shopify?.customerPrivacy 1665 if (!customerPrivacy) { 1666 return false 1667 } 1668 const analyticsAllowed = typeof customerPrivacy.analyticsProcessingAllowed === "function" && customerPrivacy.analyticsProcessingAllowed() 1669 if (analyticsAllowed) { 1670 return true 1671 } 1672 if (typeof customerPrivacy.currentVisitorConsent === "function") { 1673 const consent = customerPrivacy.currentVisitorConsent() 1674 return consent?.analytics === "yes" 1675 } 1676 return false 1677 } 1678 1679 /** @description execute marketing param caching with GDPR guard: functional off when GDPR disabled */ 1680 function cacheMarketingParamsWithGdprGuard() { 1681 if (!ECOMSEND_GDPR_ENABLED) { 1682 cacheMarketingParams() 1683 return 1684 } 1685 if (isMarketingStorageAllowedByCustomerPrivacy()) { 1686 cacheMarketingParams() 1687 } 1688 } 1689 1690 /** @description cache shop id used by pixel report branches */ 1691 function cacheShopIdForPixel() { 1692 if (!window.EcomSendApps?.common?.shop?.id || !window.localStorage) { 1693 return 1694 } 1695 window.localStorage.setItem("ECOMSEND:ES_SHOP_ID", window.EcomSendApps.common.shop.id) 1696 } 1697 1698 /** 1699 * Flow client config (e.g. browserStaySeconds) is fetched by the main ecomsend.js bundle: 1700 * bootstrapFlowClientConfig â POST /api/automation/v2/clientFlowConfig (API Sign) 1701 * â localStorage ECOMSEND:FLOW_CLIENT_CONFIG.byEventId â read by web-pixel. 1702 * Keep new C-end Flow config on this path; do not scatter fetches in liquid. 1703 */ 1704 1705 /** @description execute shop id caching with GDPR guard and shared consent policy */ 1706 function cacheShopIdWithGdprGuard() { 1707 if (!ECOMSEND_GDPR_ENABLED) { 1708 cacheShopIdForPixel() 1709 return 1710 } 1711 if (isAnalyticsStorageAllowedByCustomerPrivacy()) { 1712 cacheShopIdForPixel() 1713 } 1714 } 1715 1716 /** @description load Shopify consent-tracking API before GDPR-gated cache writes */ 1717 function withCustomerPrivacyApiReady(onReady) { 1718 if (!ECOMSEND_GDPR_ENABLED) { 1719 onReady() 1720 return 1721 } 1722 if (window?.Shopify?.customerPrivacy) { 1723 onReady() 1724 return 1725 } 1726 if (typeof window?.Shopify?.loadFeatures !== "function") { 1727 return 1728 } 1729 window.Shopify.loadFeatures( 1730 [{ name: "consent-tracking-api", version: "0.1" }], 1731 (error) => { 1732 if (error) { 1733 return 1734 } 1735 onReady() 1736 } 1737 ) 1738 } 1739 1740 try { 1741 withCustomerPrivacyApiReady(() => { 1742 cacheMarketingParamsWithGdprGuard() 1743 cacheShopIdWithGdprGuard() 1744 }) 1745 if (ECOMSEND_GDPR_ENABLED) { 1746 document.addEventListener("visitorConsentCollected", () => { 1747 cacheMarketingParamsWithGdprGuard() 1748 cacheShopIdWithGdprGuard() 1749 }) 1750 } 1751 } catch (e) {} 1752 1753 /** @description inject wasm asset url into shared namespace before main bundle executes */ 1754 window.EcomSendApps.wasmURL = ECOMSEND_WASM_ASSET_URL 1755
1756 ECOMSEND_INTERACTION_EVENTS.forEach((eventName) => { 1757 window.addEventListener(eventName, scheduleMainBundleLoad, { once: true, passive: true }) 1758 }) 1759 1760 if (document.readyState === "loading") { 1761 document.addEventListener("DOMContentLoaded", scheduleMainBundleLoad, { once: true }) 1762 } else { 1763 scheduleMainBundleLoad() 1764 } 1765</script>
1765 1766 1767<style id="ecomsend-custom-style"></style> 1768
1769<script>window.shopLocale = 'zh-TW'</script>
1769 1770
1771<script> 1772 /** @description timeout used for deferred discount request scheduling */ 1773 const ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS = 1500 1774 1775 /** @description apply discount code from url query only when parameter exists */ 1776 function applyWillDiscountCode() { 1777 const urlParams = new URLSearchParams(window.location.search) 1778 const willDiscountCode = urlParams.get("willDiscountCode") 1779 if (!willDiscountCode || /[\u0000-\u001F\u007F]/.test(willDiscountCode)) { 1780 return 1781 } 1782 fetch("/cart/update.js", { 1783 method: "POST", 1784 headers: { 1785 "Content-Type": "application/json", 1786 }, 1787 body: JSON.stringify({ 1788 discount: willDiscountCode, 1789 }), 1790 }) 1791 } 1792 1793 try { 1794 if (!window.__ecomsendDeferredTasksScheduled) { 1795 /** @description global guard to avoid duplicate deferred task scheduling */ 1796 window.__ecomsendDeferredTasksScheduled = true 1797 if (window.requestIdleCallback) { 1798 window.requestIdleCallback(() => { 1799 applyWillDiscountCode() 1800 }, { timeout: ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS }) 1801 } else { 1802 window.setTimeout(() => { 1803 applyWillDiscountCode() 1804 }, ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS) 1805 } 1806 } 1807 } catch (error) {} 1808</script>
1808 1809 1810 1811 1812</div><div id="shopify-block-AM05QbkZpaG5MWU93V__18228966181090706294" class="shopify-block shopify-app-block"> 1813 1814 1815
1815<script type="module" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell.js" defer="defer"></script>
1815 1816
1816<script type="module" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell-components.esm.js" defer="defer"></script>
1816 1817 1818 1819
1820<script> 1821 1822 1823 1824</script>
1824 1825
1826<script> 1827 1828 window.lbInitMode = "immediate"; 1829 1830 window.lbComponentSrc = "https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell-components.esm.js";</script>
1830 1831
1832<script type="text/javascript" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-utils.js" defer="defer"></script>
1832 1833 1834</div>
1834<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
1834 1835</body> 1836</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.