PageSourceSearch

https://unovoyage.com/zh-us/account/login?return_url=%2Fzh-us%2Faccount

html unovoyage.com collected 2026-10-07 19:14:31 UTC 114,842 bytes, 1,836 lines download raw bytes

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&ndash; 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        &copy; 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>&bull;&bull;&bull;</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.