CINXE.COM

OnePlus Shopping Cart - OnePlus (United States)

<!doctype html> <html from="CMS-Render:OnePlus Overseas"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> <title>OnePlus Shopping Cart - OnePlus (United States)</title> <link rel="canonical" href="https://www.oneplus.com/us/jcart" /> <link rel="alternate" hreflang="x-default" href="https://www.oneplus.com/jcart" /> <link rel="alternate" hreflang="en-US" href="https://www.oneplus.com/us/jcart" /> <link rel="alternate" hreflang="es-US" href="https://www.oneplus.com/us_es/jcart" /> <link rel="alternate" hreflang="fr-CA" href="https://www.oneplus.com/ca_fr/jcart" /> <link rel="alternate" hreflang="en-CA" href="https://www.oneplus.com/ca_en/jcart" /> <link rel="alternate" hreflang="es-MX" href="https://www.oneplus.com/mx/jcart" /> <link rel="alternate" hreflang="es-CL" href="https://www.oneplus.com/cl/jcart" /> <link rel="alternate" hreflang="de-AT" href="https://www.oneplus.com/at/jcart" /> <link rel="alternate" hreflang="nl-BE" href="https://www.oneplus.com/be_nl/jcart" /> <link rel="alternate" hreflang="fr-BE" href="https://www.oneplus.com/be_fr/jcart" /> <link rel="alternate" hreflang="bg-BG" href="https://www.oneplus.com/bg/jcart" /> <link rel="alternate" hreflang="hr-HR" href="https://www.oneplus.com/hr/jcart" /> <link rel="alternate" hreflang="el-CY" href="https://www.oneplus.com/cy_gr/jcart" /> <link rel="alternate" hreflang="tr-CY" href="https://www.oneplus.com/cy_tr/jcart" /> <link rel="alternate" hreflang="cs-CZ" href="https://www.oneplus.com/cz/jcart" /> <link rel="alternate" hreflang="da-DK" href="https://www.oneplus.com/dk/jcart" /> <link rel="alternate" hreflang="ee-EE" href="https://www.oneplus.com/ee/jcart" /> <link rel="alternate" hreflang="fi-FI" href="https://www.oneplus.com/fi/jcart" /> <link rel="alternate" hreflang="fr-FR" href="https://www.oneplus.com/fr/jcart" /> <link rel="alternate" hreflang="de-DE" href="https://www.oneplus.com/de/jcart" /> <link rel="alternate" hreflang="el-GR" href="https://www.oneplus.com/gr/jcart" /> <link rel="alternate" hreflang="hu-HU" href="https://www.oneplus.com/hu/jcart" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/ie/jcart" /> <link rel="alternate" hreflang="it-IT" href="https://www.oneplus.com/it/jcart" /> <link rel="alternate" hreflang="lv-LV" href="https://www.oneplus.com/lv/jcart" /> <link rel="alternate" hreflang="lt-LT" href="https://www.oneplus.com/lt/jcart" /> <link rel="alternate" hreflang="fr-LU" href="https://www.oneplus.com/lu_fr/jcart" /> <link rel="alternate" hreflang="de-LU" href="https://www.oneplus.com/lu_de/jcart" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/mt/jcart" /> <link rel="alternate" hreflang="nl-NL" href="https://www.oneplus.com/nl/jcart" /> <link rel="alternate" hreflang="pl-PL" href="https://www.oneplus.com/pl/jcart" /> <link rel="alternate" hreflang="pt-PT" href="https://www.oneplus.com/pt/jcart" /> <link rel="alternate" hreflang="ro-RO" href="https://www.oneplus.com/ro/jcart" /> <link rel="alternate" hreflang="es-ES" href="https://www.oneplus.com/es/jcart" /> <link rel="alternate" hreflang="sk-SK" href="https://www.oneplus.com/sk/jcart" /> <link rel="alternate" hreflang="sl-SI" href="https://www.oneplus.com/si/jcart" /> <link rel="alternate" hreflang="sv-SE" href="https://www.oneplus.com/se/jcart" /> <link rel="alternate" hreflang="en-GB" href="https://www.oneplus.com/uk/jcart" /> <link rel="alternate" hreflang="nb-NO" href="https://www.oneplus.com/no/jcart" /> <link rel="alternate" hreflang="ru-RU" href="https://www.oneplus.com/ru/jcart" /> <link rel="alternate" hreflang="tr-TR" href="https://www.oneplus.com/tr/jcart" /> <link rel="alternate" hreflang="ru-BY" href="https://www.oneplus.com/by/jcart" /> <link rel="alternate" hreflang="ru-KZ" href="https://www.oneplus.com/kz/jcart" /> <link rel="alternate" hreflang="uk-UA" href="https://www.oneplus.com/ua/jcart" /> <link rel="alternate" hreflang="sr-RS" href="https://www.oneplus.com/rs/jcart" /> <link rel="alternate" hreflang="zh" href="https://www.oneplus.com/cn/jcart" /> <link rel="alternate" hreflang="zh-HK" href="https://www.oneplus.com/hk/jcart" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/hk_en/jcart" /> <link rel="alternate" hreflang="en-IN" href="https://www.oneplus.in/jcart" /> <link rel="alternate" hreflang="th-TH" href="https://www.oneplus.com/th/jcart" /> <link rel="alternate" hreflang="en-MY" href="https://www.oneplus.com/my/jcart" /> <link rel="alternate" hreflang="vi-VN" href="https://www.oneplus.com/vn/jcart" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/au/jcart" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/sg/jcart" /> <link rel="alternate" hreflang="en-NP" href="https://www.oneplus.com/np/jcart" /> <link rel="alternate" hreflang="my-MM" href="https://www.oneplus.com/mm/jcart" /> <link rel="alternate" hreflang="en-PH" href="https://www.oneplus.com/ph/jcart" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/bd/jcart" /> <link rel="alternate" hreflang="ar-AE" href="https://www.oneplus.com/ae/jcart" /> <link rel="alternate" hreflang="ar-SA" href="https://www.oneplus.com/sa/jcart" /> <link rel="alternate" hreflang="en-IL" href="https://www.oneplus.com/il/jcart" /> <link rel="alternate" hreflang="en-PK" href="https://www.oneplus.com/pk/jcart" /> <link rel="alternate" hreflang="ar-IQ" href="https://www.oneplus.com/iq/jcart" /> <link rel="alternate" hreflang="ar-EG" href="https://www.oneplus.com/eg/jcart" /> <link rel="alternate" hreflang="ar-BH" href="https://www.oneplus.com/bh/jcart" /> <link rel="alternate" hreflang="ar-OM" href="https://www.oneplus.com/om/jcart" /> <link rel="alternate" hreflang="ar-JO" href="https://www.oneplus.com/jo/jcart" /> <link rel="alternate" hreflang="ar-QA" href="https://www.oneplus.com/qa_ar/jcart" /> <link rel="alternate" hreflang="en-QA" href="https://www.oneplus.com/qa_en/jcart" /> <link rel="alternate" hreflang="fr-TN" href="https://www.oneplus.com/tn_fr/jcart" /> <link rel="alternate" hreflang="en-TN" href="https://www.oneplus.com/tn_en/jcart" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/za/jcart" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/global/jcart" /> <meta name="description" content="Add items to your OnePlus shopping cart and check out securely. Enjoy fast shipping and easy returns on our premium smartphones, accessories, and more." /> <meta name="keywords" content="" /> <meta name="robots" content="INDEX,FOLLOW" /> <meta name="referrer" content="no-referrer-when-downgrade"> <meta http-equiv="x-dns-prefetch-control" content="on"> <link rel="preconnect" href="https://oasis.opstatics.com"> <link rel="preconnect" href="https://cdn.opstatics.com"> <link rel="preconnect" href="https://mallapi-na.oneplus.com"> <link rel="preconnect" href="https://image01.oneplus.net"> <link rel="preconnect" href="https://storeapi-na.oneplus.com"> <link rel="preconnect" href="https://image01.oneplus.net"> <link rel="dns-prefetch" href="https://www.googletagmanager.com"> <link rel="dns-prefetch" href="https://www.googleadservices.com"> <link rel="dns-prefetch" href="https://www.google-analytics.com"> <link rel="dns-prefetch" href="https://googleads.g.doubleclick.net"> <link rel="dns-prefetch" href="https://stats.g.doubleclick.net"> <link rel="dns-prefetch" href="https://www.facebook.com"> <link rel="dns-prefetch" href="https://connect.facebook.net"> <link rel="dns-prefetch" href="https://privacy-policy.truste.com"> <meta property="og:title" content="Never Settle - OnePlus.com" /> <meta property="og:image" content="https://www.oneplus.com/content/dam/oasis/page/common/logo/OnePlus_Logo.png" /> <meta property="og:description" content="OnePlus creates beautifully designed products with premium build quality & brings the best technology to users around the world. No tradeoffs, we #NeverSettle." /> <meta name="title:webview" content="Shopping Cart"> <script>window.isNewLoginConfig = {callbackUrl: window.location.origin + '/account/login', bizAppKey: 'DkPXNvHbK1uQrd4nG5drut', environment: 'prod', userCenter: 'https://accounts.oneplus.com/v2/profile.html'};;window.op=window.op||{};window.op.initTime=new Date();window.isEncrypt=true;window.isXman = false;window.isXmanObj = { mallTradeCartInviteCheck: true, mallTradeCartFetch: true, mallTradeCartAdd: true, mallProductDetailFetch: true, mallTradeCartUpdate: true, mallTradeCartGiftFetch: true, mallTradeCartRecommendFetch: true, mallTradeCheckoutInit: true, mallTradeCheckoutSettle: true, mallTradeCheckoutSubmit: true, mallTradeCheckoutCaptchaCheck: true, mallTradeCheckoutCaptchaRefresh: true, mallTradeCheckoutCurrencyCheck: true };window.mallUrl="https://mallapi-na.oneplus.com/v2/api/router";window.emialUseMall=true;window.isXmanOffInvite= true;window.isXmanOffImei= true;window.isXmanOffDevice= false;window.isXmanOffPay = true;window.isXmanOff = true;window.isXmanOffTradeIn = false;window.isXmanEnd = true;window.isXmanOffSubscribeEmail=true;window.isXmanOffSendCode=true;window.rccPlanOrderCheckout=true;;window.isWcsmOpen = false; window.closeReplaceEntry = true; window.isAnnouncementOpen = false;window.isPreLoadLoginPopup = true; window.preLoadLoginPopupSrc = 'https://accounts.oneplus.com/v2/popper.html?bizAppKey=DkPXNvHbK1uQrd4nG5drut&callback=https%3A%2F%2Fwww.oneplus.com%2Faccount%2Flogin';window.preLoadHtmlSrc= 'https://accounts.oneplus.com/v2/popper.html?bizAppKey=DkPXNvHbK1uQrd4nG5drut&callback=https%3A%2F%2Fwww.oneplus.com%2Faccount%2Flogin';window.isCheckGroupExpireTime = false</script> <script src="https://cdn.opstatics.com/js/packages/account_web_sdk/index.umd.js"></script> <link rel="preload" href="https://cdn.opstatics.com/store/20170907/assets/styles/vendor.css?v=1739957465703" as="style" crossorigin> <link rel="preload" href="https://cdn.opstatics.com/store/20170907/shopping-cart/index.css?v=1739957465703" as="style" crossorigin> <link rel="preload" href="https://oasis.opstatics.com/content/dam/statics/oasis/font/aem-font/index-v3.css?version=v1" as="style" crossorigin> <link rel="preload" href="https://cdn.opstatics.com/store/20170907/assets/scripts/vendor.js?v=1739957465703" as="script" crossorigin> <link rel="preload" href="https://cdn.opstatics.com/store/20170907/shopping-cart/index.js?v=1739957465703" as="script" crossorigin> <style> #header.new-nav .icon-header.ico-header-logo { margin-right: 0; } #header.new-nav .user-info-nav .user-info-content .user-avatar { display: flex; } @media screen and (max-width: 1024px) { #header.new-nav.nav-fixed .nav .nav-right .header-search.show-in-mobile { display: none; } } </style> <script>window.isCommunity=!!(typeof window.COMMUNITY_APP_ACCOUNT !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN === 'function')</script> <script>window.obusCountryCode = "us";window.isAccessObus=true;window.isProductionEnv='https://www.oneplus.com/us'.indexOf('test')==-1&&'https://www.oneplus.com/us'.indexOf('dev')==-1</script> <style> .choose-store dl dd li .store-currency { width: 20% } .choose-store dl dd li .store-lang { width: 30% } </style> <link rel="icon" href="https://oasis.opstatics.com/content/dam/oasis/oneplus.ico" type="image/x-icon" /> <link rel="shortcut icon" href="https://oasis.opstatics.com/content/dam/oasis/oneplus.ico" type="image/x-icon" /> <style> .payments-container .payments.payments-india em { color: #000; } @media screen and (min-width: 769px) { .container-text { max-width: 90pc; } } .nav-bread { width: 100%; display: flex; width: 100%; display: flex; color: #000; font-size: 16px; min-height: auto; line-height: inherit; } .home { display: inline-block; margin-right: 12px; padding: 13px 0; } .home a { text-decoration: none; color: #000; } .bread-link { color: #000; } .bread-ol { display: flex; flex-wrap: wrap; padding: 0; margin: 0; list-style: none; } .bread-ol li { padding: 13px 0; } .bread-ol li span { display: inline-block; margin: 0 12px; } .bread-ol li .bread-goods-name { display: inline-block; margin: 0 12px; font-size: 16px; } .bread-ol li a { display: inline-flex; color: #000; } .bread-ol li:before { content: ""; width: 15px; height: 20px; background-size: 8px 18px; display: inline-block; vertical-align: sub; background: url("https://image01.oneplus.net/shop/201903/21/1591/5c27720e66ff7447e055c6f86f8907b5.svg") center no-repeat; } @media screen and (max-width: 768px) { .icon-svg { display: none; } .nav-bread { width: 100%; display: flex; width: 100%; display: flex; color: #000; } .payments.payments-india.no-wrap { white-space: unset; } } @media screen and (min-width: 736px) { .payments-and-delivery.payments-and-delivery-india .logo-icons { text-align: left; } } .our-phone .logo-icons i { margin-bottom: 5px; } #header .nav .nav-pages .page-order { display: none; } @media screen and (max-width: 1050px) { #header .nav .nav-pages .page-order, #header .nav .nav-pages .page-member:after { display: block; } } @media screen and (max-width: 1050px) { #header .nav .nav-pages .page-order:after { display: none; } } </style> </head> <body class="cms-index-index cms-home hide-body "> <style type="text/css" id="universal-loading-canvas-style"> .hide-body{height:0;overflow:hidden}body,html{overflow-x:hidden}.universal-loading-canvas{position:fixed;top:0;height:100%;width:100%}.universal-loading-canvas .univesal-loading-container{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.univesal-loading-container{display:block;width:48px;height:48px}@media screen and (max-width:735px){.univesal-loading-container{width:40px;height:40px}}.univesal-loading-container .universal-spinner{-webkit-animation:1.4s linear infinite rotator;animation:1.4s linear infinite rotator;width:100%;height:100%}.univesal-loading-container .path{stroke-dasharray:187;stroke-dashoffset:0;-webkit-transform-origin:center;transform-origin:center;stroke:#000 !important;-webkit-animation:1.4s ease-in-out infinite dash;animation:1.4s ease-in-out infinite dash}@-webkit-keyframes rotator{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@keyframes rotator{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes white-colors{0%,25%,50%,75%,to{stroke:#fff}}@keyframes white-colors{0%,25%,50%,75%,to{stroke:#fff}}@-webkit-keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;-webkit-transform:rotate(135deg);transform:rotate(135deg)}to{stroke-dashoffset:187;-webkit-transform:rotate(450deg);transform:rotate(450deg)}}@keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;-webkit-transform:rotate(135deg);transform:rotate(135deg)}to{stroke-dashoffset:187;-webkit-transform:rotate(450deg);transform:rotate(450deg)}} </style> <section class="universal-loading-canvas" id="universal-loading-canvas"> <i class="univesal-loading-container"> <svg class="universal-spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> <circle class="path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle> </svg> </i> </section> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5HW9RGK');</script> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5HW9RGK"height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <input type="hidden" id="local_price_format" value="%7B%22pattern%22%3A%22%24%25s%22%2C%22precision%22%3A2%2C%22requiredPrecision%22%3A2%2C%22decimalSymbol%22%3A%22.%22%2C%22groupSymbol%22%3A%22%2C%22%2C%22groupLength%22%3A3%2C%22integerRequired%22%3A1%7D"> <input type="hidden" id="mark-currency-format" name="mark-currency-format" value="%7B%22pattern%22%3A%22%24%25s%22%2C%22precision%22%3A2%2C%22requiredPrecision%22%3A2%2C%22decimalSymbol%22%3A%22.%22%2C%22groupSymbol%22%3A%22%2C%22%2C%22groupLength%22%3A3%2C%22integerRequired%22%3A1%7D"> <input type="hidden" id="_current_store" value="us"> <input type="hidden" id="link-home" name="link-home" value="https://www.oneplus.com/us/"> <input type="hidden" id="_india_host" value="https://www.oneplus.in"> <input type="hidden" id="_net_host" value="https://www.oneplus.com"> <input type="hidden" id="_cn_host" value="https://www.oneplus.com/cn"> <input type="hidden" id="_in_account" value="https://account.oneplus.in"> <input type="hidden" id="_com_account" value="https://account.oneplus.com"> <input type="hidden" id="assets-public-path" name="assets-public-path" value="https://cdn.opstatics.com"> <input type="hidden" id="sign-in-url" name="sign-in-url" value="https://account.oneplus.com/json/store/signIn"> <input type="hidden" id="link-user-center" name="link-user-center" value="https://www.oneplus.com/us/customer/info"> <input type="hidden" id="mark-current-store" name="mark-current-store" value="us"> <input type="hidden" name="mark-currency-code" id="mark-currency-code" value="USD"> <input type="hidden" name="risk-jump-url" id="risk-jump-url" value="https://www.oneplus.com/us/account/sign-in/security_warning"> <input type="hidden" id="user-behavior-url" name="user-behavior-url" value="https://mallapi-na.oneplus.com/v2/api/router"> <input type="hidden" id="mall-api-url" name="mall-api-url" value="https://mallapi-na.oneplus.com/v2/api/router"> <input type="hidden" id="member-api-url" name="member-api-url" value="https://memberapi-na.oneplus.com/v2/api/router"> <input type="hidden" id="membership-api-url" name="membership-api-url" value="https://membershipapi-na.oneplus.com/api/2.0"> <input type="hidden" id="mall-rest-url" name="mall-rest-url" value="https://mallapi-na.oneplus.com/v2/api/rest"> <input type="hidden" id="mall-api-url-rest" name="mall-api-url" value="https://mallapi-na.oneplus.com/v2/api/rest"> <input type="hidden" id="domain_rest_levin" name="domain_rest_levin" value="https://mallapi-na.oneplus.com/v2/api/rest"> <script type="text/javascript"> var onloadCallback = function() { $('#g_recaptcha').removeClass('hidden'); grecaptcha.render('g_recaptcha_placeholder', { 'sitekey' : '6LcXjQcUAAAAANKDft8a25E8PRogqCPKENK2LCnv', 'theme' : 'white', 'tabindex' : 5, 'size' : 'width: 304px; height: 80px;' }); }; </script> <script type="application/json" id="header-data-email-list"> ["@gmail.com","@hotmail.com","@yahoo.com","@outlook.com","@yahoo.co.in","@googlemail.com","@hotmail.co.uk","@hotmail.fr","@yahoo.in","@hotmail.it","@ymail.com","@msn.com","@yahoo.co.uk","@mail.ru","@hotmail.com","@foxmail.com"] </script> </script> <script type="application/json" id="header-data-email-err-list"> { "180085": "Oops! Please try again.", "180082": "Subscribe too many. Try again later.", "180080": "Oops, you have already subscribed." } </script> <script type="application/json" id="header-data-translation"> { "emailTooFast":"Subscribe too many. Try again later.", "emailFail":"Oops! Please try again.", "emailPlaceholder": "Email address", "phonePlaceholder": "Enter phone number", "emailOrPhonePlaceholder": "Your e-mail or phone number", "phonePlaceholder": "Enter phone number", "emailOrPhonePlaceholder": "Your e-mail or phone number", "emailEmptyErrorTip":"The email address field cannot be empty.", "emailInvalidErrorTip":"Invalid email address. Please retry.", "emailSystemErrorTip":"System error, please try again later.", "emailSubscribedErrorTip":"Oops, you have already subscribed.", "emailFrequentErrorTip":"System busy, please try again later.", "succeedTip":"Thanks for subscribing!", "source":"auto-subscribe-source", "listId":"7a427be021", "event":"Subscribe", "form":"Subscription_for_Gift", "event_click":"Subscribe_Click", "form_click":"Gift_for_Subscription_Ribbon_Click", "iconImg":"https://image01.oneplus.net/shop/201811/15/1755/5ccb72c2de1ce47220a0e1fad8e79915.png", "day":7, "twitterUrl":"https://twitter.com/OnePlus_USA", "instagramUrl":"https://www.instagram.com/oneplus_usa/", "facebookUrl":"https://business.facebook.com/oneplusna", "forumUrl":"https://forums.oneplus.com", "isReportData":false, "questionTips":"How would you rate your experience on this page?", "shareFeedBack":"Rate now" } </script> <script type="application/json" id="header-data-url-list"> [] </script> <script> window.AJAX_OPTIONS = { timeout: 60000, tips: 'Oops, the spaceship just got lost! We are trying to get it back to earth.' } </script> <script type="application/json" id="data-top-navigation"> { "topNav": { "left":[ { "name":"Phones", "url":"https://www.oneplus.com/us/store/phone", "secondNav":[ { "name":"OnePlus 12", "url":"https://www.oneplus.com/us/oneplus-12", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2024/nav/in/waffle-green.png", "new":"New" }, { "name":"OnePlus 12R", "url":"https://www.oneplus.com/us/oneplus-12r", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2024/nav/in/aston-blue.png", "new":"New" }, { "name":"OnePlus Open", "url":"https://www.oneplus.com/us/oneplus-open", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/green-pc2.png", "new":"New" }, { "name":"OnePlus Nord N30 5G", "url":"https://www.oneplus.com/us/oneplus-n30-5g", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/nav-larry-black.png", "new":"" } ], "linkList":[ { "text":"Flagship Series", "url":"https://www.oneplus.com/us/store/phone?groupName=Series&sortName=Flagship%20Series" }, { "text":"OnePlus Nord N Series", "url":"https://www.oneplus.com/us/store/phone?groupName=Series&sortName=Nord%20Series" } ], "buttonList":[ { "btnText":"Compare", "link":"https://www.oneplus.com/us/phone/compare", "type":"ghost" }, { "btnText":"View All", "link":"https://www.oneplus.com/us/store/phone", "type":"secondary" } ] }, { "name":"Audio", "url":"https://www.oneplus.com/us/store/audio", "secondNav":[ { "name":"OnePlus Buds 3", "new":"New", "url":"https://www.oneplus.com/us/product/oneplus-buds-3", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2024/nav/in/eular.png" }, { "name":"OnePlus Nord Buds 2", "new":"", "url":"https://www.oneplus.com/us/product/oneplus-nord-buds-2", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/tesla1.png" }, { "name":"OnePlus Buds Pro 2", "new":"", "url":"https://www.oneplus.com/us/product/oneplus-buds-pro-2", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/OnePlusBudsPro2.png" }, { "name":"OnePlus Nord Wired Earphones", "new":"", "url":"https://www.oneplus.com/us/product/oneplus-nord-wired-earphones", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2022/new-navi/nord-wired-earphones/Edison.png" } ], "buttonList":[ { "btnText":"Compare", "link":"https://www.oneplus.com/us/audio/compare", "type":"ghost" }, { "btnText":"View All", "link":"https://www.oneplus.com/us/store/audio", "type":"secondary" } ] }, { "name":"Tablet", "url":"https://www.oneplus.com/us/store/tablet", "secondNav":[ { "name":"OnePlus Pad", "new":"new", "url":"https://www.oneplus.com/us/buy-oneplus-pad", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/pad-nav.png" }, { "name":"Pad Accessories", "new":"", "url":"https://www.oneplus.com/us/store/tablet", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/shelltopnav.png" } ] }, { "name":"Wearables", "url":"https://www.oneplus.com/us/store/wearables", "secondNav":[ { "name":"OnePlus Watch 2", "new":"new", "url":"https://www.oneplus.com/us/buy-oneplus-watch-2", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2024/nav/common/almond-silver.png" } ] }, { "name":"Accessories", "url":"https://www.oneplus.com/us/store/power-cables", "secondNav":[ { "name":"Cases & Protection", "new":"", "url":"https://www.oneplus.com/us/store/cases-protection", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2024/nav/us/waffle-case.png" }, { "name":"Power & Cables", "new":"", "url":"https://www.oneplus.com/us/store/power-cables", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/events/ovaltine/Power-Cables.png" }, { "name":"Bundles", "new":"", "url":"https://www.oneplus.com/us/store/bundles", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/events/ovaltine/Bundles.png" }, { "name":"Keyboard 81 Pro", "new":"", "url":"https://www.oneplus.com/us/product/keyboard-81-pro", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/keyboard81.png" } ] }, { "name":"Offers", "url":"", "secondNav":[ { "name":"Trade-in & Upgrade", "new":"", "url":"https://www.oneplus.com/us/trade-in", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/na-trade-in/Frame270989638.png" }, { "name":"Student Discounts", "new":"", "url":"https://www.oneplus.com/us/discount-program?verify=education_program", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/na-trade-in/Frame270989639.png" }, { "name":"Link OnePlus Devices", "new":"", "url":"https://www.oneplus.com/us/event/link-device-introduction", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/na-trade-in/Frame270989640-2.png" }, { "name":"Employee Discount Program", "new":"", "url":"https://www.oneplus.com/us/employee-groups?verify=employee", "imgUrl":"https://oasis.opstatics.com/content/dam/oasis/page/2023/nav/na-trade-in/Frame270989640-1.png" } ] } ], "right":[ { "name":"Store", "url":"https://www.oneplus.com/us/store" }, { "name":"OneTopia", "url":"https://www.oneplus.com/us/onetopia" }, { "name":"OnePlus Featuring", "url":"https://www.oneplus.com/us/oneplus-featuring" }, { "name":"Community", "url":"https://forums.oneplus.com" }, { "name":"Support", "url":"https://www.oneplus.com/us/support" } ] }, "userMenu":[ { "text":"Orders", "url":"https://www.oneplus.com/us/check-order?from=head", "iconName":"ico-header-order" }, { "text":"Account", "url":"https://www.oneplus.com/us/customer/info?from=head", "iconName":"ico-header-account" }, { "text":"Achievement", "url":"https://www.oneplus.com/us/rcc/badge?from=head", "iconName":"ico-badge" }, { "text":"RedCoins", "url":"https://www.oneplus.com/us/redcoins-center#/", "iconName":"ico-header-redcoins", "hidden":"" }, { "text":"Red Cable Club", "url":"https://www.oneplus.com/us/redcableclub", "iconName":"ico-header-rcc", "hidden":"" } ], "hideUserCard":"", "hideShoppingCart":"", "allNavRight":"" } </script> <script type="application/json" id="signin-locale-data"> { "signInPage": { "creatRegister":"Your phone number is not registered. Would you like to register now ?", "registerTerms":"I agree to <a href=\"https://www.oneplus.com/us/legal/user-agreement\" class=\"link-blue\" target=\"_blank\">User Agreement</a>. Please see our <a href=\"https://www.oneplus.com/us/legal/privacy-policy\" class=\"link-blue\" target=\"_blank\">Privacy Policy</a>.", "creatRegisterBtn":"Creat and log in", "signInTitle":"Welcome", "bindMobileTitle": "Bind Mobile Number", "verifyMobileTitle": "Confirm Mobile Number", "verifyEmailTitle": "Confirm Your Email", "verifyAccountTitle": "Confirm Your Account", "createPwdTitle": "Create Your Password", "signInSubtitle": "Please use OnePlus account to log in.", "signInTips":"Or login with", "createAccount": "Create Account", "signIn": "Sign in", "signUp": "Sign up", "password": "Password", "confirm":"Confirm", "cancel": "Cancel", "facebook": "Facebook", "google": "Google", "forgotPassword": "Forgot password", "email": "Email", "emailOrNumber": "Email/Mobile Number", "mobileNumber": "Mobile Number", "change": "Change", "edit": "Edit", "otp": "Enter the OTP", "getOtp": "Get code", "otpTerms": "If you never register with your phone number, a new account will be created when you use OTP to login.", "terms": "Protected by reCAPTCHA and subject to the OnePlus <a href=\"https://www.oneplus.com/us/legal/user-agreement\" class=\"link-blue\" target=\"_blank\">User Agreement</a> and <a href=\"https://www.oneplus.com/us/legal/privacy-policy\" class=\"link-blue\" target=\"_blank\">Privacy Policy</a>.", "emailCode": "Email code", "getEmailCode": "Get email code", "signUseOTP": "Phone number", "signUsePwd": "Password", "verifyMobile": "Verify Mobile Number", "hasSendEmail": "We have sent a verification code to your", "hasSendCode": "We have sent a verification code to your", "sendAgain": "Send again", "later": " later", "sendedText":"", "sendSucceedToast": "Verification code is sent.", "sendMobileSucceed": "The verification code has been sent.", "sendVerifyCodeSucceed": "The verification code has been sent.", "bindMobileTips": "For account security and normal use, please bind your mobile number according to the Cyber ​​Security Law.", "verifyMobileTips": "For account security and normal use, you need to verify your mobile number.", "verifyEmailTips": "For account security and normal use, you need to verify your email account.", "kindlyRemind":"Kindly Remind", "richContentDialogTip":"Login failed. Your account is set to be deactivated. Please reactivate your account before logging in.", "closeWindow":"Close window", "richRecover": "Reactive account", "bindAgree": "By submitting this form, you agree to our <br><a href=\"{privacyLegalLink}\" class=\"text-black text-strong text-underline\">Privacy Policy</a> and <a href=\"{termsConditionsLink}\" class=\"text-black text-strong text-underline\">Terms of Use</a>", "format":{ "dd":"days", "hh": "hour", "mm": "min", "ss": "s" }, "passwordRulesTips":{ "letterRule":"2 or more of letters, numbers and symbols", "lengthRule":"8 ~16 characters" } }, "accountTips": { "mobileErrorTip": "Please enter a valid mobile number.", "emailErrorTip":"Please ensure the email follows this format: name@example.com", "mobileEmptyErrorTip": "Please enter a valid mobile number.", "emailEmptyErrorTip":"Please enter a valid email address.", "mobileOrEmailEmptyErrorTip":"Please enter a valid email address or phone number", "emailPatternErrorTip":"Please ensure the email follows this format: name@example.com", "emailUnConfirmTip": "Your account may not be confirmed. Check your email for the confirmation link. Please &nbsp;&nbsp;<a href=\"{verifyEmailLink}\" class=\"link-action link-underline\">Confirm</a>", "emailNoExistedTip": "The email does not exist. Please &nbsp;&nbsp;<a href=\"{signUpLink}\" class=\"link-action link-underline\">Sign up</a>", "emailDeactivatedErrorTip":"The account is deactivated.", "pwdErrorTip":"Password does not meet minimal requirements.", "pwdPatternErrorTip":"Password does not meet minimal requirements.", "pwdEmptyErrorTip":"Please enter a valid password.", "pwdFormatErrorTip": "Please enter a valid password.", "pwdRulesErrorTip":"Please ensure your password meets all requirements listed below.", "pwdNoMatchError":"Password or email is incorrect. Please try again.", "paramsError":"Password or email is incorrect. Please try again.", "tooManyAttemptsErrorTip":"Too Many Attempts. Please try again later.", "googleVerifyErrorTip":"Google verification error. Please try again.", "verifyErrorTip": "VerifyCode incorrect, please input again." } } </script> <script> window.GLOBAL_ACCOUNT_CONFIG = { "DOMAIN_ACCOUNT_CENTER_OATH": "https://account.oneplus.com/service", "DOMAIN_ACCOUNT_CENTER": "https://account.oneplus.com/service", "DOMAIN_ACCOUNT": "https://account.oneplus.com", "DOMAIN_XMAN": "https://storeapi-na.oneplus.com", "HOME_URL": "https://www.oneplus.com/us", "recaptcha": { "size": "invisible", "tabindex": 5 }, "defaultUrl": "https://www.oneplus.com/us", "signInLink": "https://account.oneplus.com/signin", "signUpLink": "https://account.oneplus.com/signup", "forgotLink": "https://account.oneplus.com/forgot", "verifyEmailLink": "https://account.oneplus.com/signup#/email?rt=1", "verifyUrlLink": "https://account.oneplus.com/confirm-url", "setUserNameLink": "https://account.oneplus.com/update-username", "userAgreementLink": "https://www.oneplus.com/us/legal/user-agreement", "privacyPolicy": "https://www.oneplus.com/us/legal/privacy-policy", "privacyLegalLink": "https://www.oneplus.com/us/privacy-and-legal", "termsConditionsLink": "https://www.oneplus.com/us/privacy-and-legal#terms-and-conditions", "isGray": true, "isSupportOTP": false, "supportType": "email", "isSnsFacebook": false, loginConfig: { app: 10, client: 1 }, telConfig: { cn: { // 中国 name: 'China', reg: /^1[1|2|3|4|5|6|7|8|9]\d{9}$/, prefix: '+86', mc: 'cn' }, in: { // 印度 name: 'India', reg: /^[6789]\d{9}$/, prefix: '+91', mc: 'in' }, us: { // 美国 name: 'United States', reg: /^[0-9-+()\s]{10}$/, prefix: '+1', mc: 'us' }, uk: { name: 'United Kingdom', reg: /^[0-9(\-+)\s]{7,}$/i, prefix: '+44', mc: 'uk' } }, grayConfig: { signIn: ['https://account.oneplus.com/signin', 'https://www.oneplus.com/us/account/sign-in'], signUp: ['https://account.oneplus.com/signup', 'https://www.oneplus.com/us/account/sign-up'], forgot: ['https://account.oneplus.com/forgot', 'https://www.oneplus.com/us/account/forgot-password'] } } function checkGray(pageName, isOld) { var search = window.location.search if (window.GLOBAL_ACCOUNT_CONFIG.isGray) { if (isOld) { var grayConfig = window.GLOBAL_ACCOUNT_CONFIG.grayConfig if (grayConfig && grayConfig[pageName] && grayConfig[pageName][1]) { window.location.href = grayConfig[pageName][0] + search } } } else { if (!isOld) { var grayConfig = window.GLOBAL_ACCOUNT_CONFIG.grayConfig if (grayConfig && grayConfig[pageName] && grayConfig[pageName][1]) { window.location.href = grayConfig[pageName][1] + search } } } } </script> <script type="application/json" id="localize-domain-data"> { "localizeDomain": { "mainapi": "https://storeapi-na.oneplus.com", "reviewapi": "https://reviewapi-na.oneplus.com", "accountapi": "https://accountapi-na.oneplus.com", "payapi": "https://payapi-na.oneplus.com", "supportapi": "https://supportapi-na.oneplus.com", "mallapi":"https://mallapi-na.oneplus.com" } } </script> <link rel="stylesheet" crossorigin href="https://oasis.opstatics.com/content/dam/statics/oasis/font/aem-font/index-v3.css?version=v1"/> <link rel="stylesheet" crossorigin href="https://cdn.opstatics.com/store/20170907/assets/styles/vendor.css?v=1739957465703" /> <link rel="stylesheet" crossorigin href="https://cdn.opstatics.com/store/20170907/shopping-cart/index.css?v=1739957465703"> <script crossorigin src="https://cdn.opstatics.com/store/20170907/assets/scripts/vendor.js?v=1739957465703"></script> <script crossorigin src="https://cdn.opstatics.com/mage/scripts/vendor/jquery.js?v=1739957465703"></script> <div v-if="isShowFloating" id="floating-layer"> <online-chat></online-chat> <store-download></store-download> </div> <div id="page-header"> <slide-question :search-result-length="hasSearchResult" :is-re-search="isReSearch"></slide-question> <div class="hidden-in-member-app hidden-in-store-app"> <div class="hidden-in-bbs-app"> <bar-store-confirm></bar-store-confirm> <bar-hint> <p class="text-white" slot="rich"></p> <p class="text-white" slot="compact"></p> <div slot="subscribe-text"> <div class="text-content"> <div class="title">Sign up for our newsletter</div> <div class="subtitle">Get a free gift coupon.</div> </div> </div> <div slot="subscribe-btn"> <span>Subscribe</span> </div> </bar-hint> </div> <one-dialog no-padding ref="chooseStore"> <choose-store></choose-store> </one-dialog> <sign-in-toast> <span slot="text">Welcome to OnePlus</span> </sign-in-toast> </div> <div id="header-auto-subscribe"></div> <one-dialog ref="errMsg" class-name="err-msg">{{errMsg}}</one-dialog> <current-limiting-dialog ref="currentLimitingDialog"></current-limiting-dialog> <script type="application/json" id="current-limiting-translation"> { "title": "Hold on a minute!", "subtitle": "Too many people are trying to load this page.Please give the servers a little time to process.", "refresh": "Refresh page" } </script> <!-- 公共错误弹窗 --> <one-dialog-v2 v-model="errDialog.show" :title="errDialog.title" :message="errDialog.message" :show-confirm-button="errDialog.showConfirmButton" :show-cancel-button="errDialog.showCancelButton" :confirm-button-text="errDialog.confirmButtonText" :cancel-button-text="errDialog.cancelButtonText" @confirm="errDialog.confirm" @cancel="errDialog.cancel" :is-show-close-icon="errDialog.isShowCloseIcon" :is-close-on-click-overlay="errDialog.isCloseOnClickOverlay" :confirm-button-disabled="errDialog.confirmButtonDisabled" :position="errDialog.position" :button-align="errDialog.buttonAlign"></one-dialog-v2> <!-- 遮罩 --> <div class="overlay" :class="showOverlay?'show':''" @click="clickOverlay"></div> </div> <script src="https://cdn.opstatics.com/mage/scripts/vendor/jquery.js?v=1706773921577"></script> <script> window.newCheckout = { url:"https://www.oneplus.com/us/checkout/payment" } </script> <link href="https://www.oneplus.com/content/dam/statics/oasis/header/layout.css" rel="stylesheet" /> <div vue-comp="headerV3" id="header"> <div class="hidden-in-store-app hidden-in-member-app hidden-in-heytap-app"> <header id="header-v3" class="header-v3 nav-opacity"> <div :class="['top-header', {'fixed' : isXsMenu}]"> <div class="nav"> <!-- S logo --> <div class="nav-logo logo op-lazyload"> <transition name="xsLogo-fade"> <a @click="ga4Event({button_name:'Oneplus Logo', function_type:'back to homepage'}, 'function_entry')" v-show="!productMenuFlag" href="https://www.oneplus.com/us" :target="headerData.logoLinkNewPage"> <svg class="ico svg-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 24"> <path fill-rule="evenodd" clip-rule="evenodd" d="M.998 3.75V24h20.25V12.438h-2.25v9.312H3.248V6h9.313V3.75H.998zM18.996 0v3.75h-3.75V6h3.75v3.75h2.25V6h3.75V3.75h-3.75V0h-2.25z"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M12.56 18.75V8.875h-2c0 .68-.229 1.192-.576 1.496-.362.304-.911.441-1.548.441h-.25v1.626h2.124v6.312h2.25zm23.264-5.087c0-2.278-1.023-4.046-3.116-4.046s-3.163 1.768-3.163 4.046c0 2.263 1.07 4.031 3.163 4.031s3.116-1.768 3.116-4.03zm-8.642 0c0-3.41 2.14-5.942 5.511-5.942 3.372 0 5.496 2.533 5.496 5.942 0 3.41-2.124 5.927-5.496 5.927-3.37 0-5.511-2.517-5.511-5.927zm12.986-5.719h2.349l3.802 6.357c.367.62.798 1.593.798 1.593h.033s-.064-1.18-.064-1.976V7.944h2.284v11.39h-2.236l-3.899-6.292c-.367-.605-.814-1.577-.814-1.577h-.032s.064 1.195.064 1.991v5.879h-2.285V7.944zm11.836 0h8.403v1.943h-6.086v2.55h5.336v1.895H54.32v3.075h6.134v1.928h-8.451V7.944zm13.086 5.385h2.396c1.214 0 1.853-.67 1.853-1.705 0-1.067-.67-1.673-1.82-1.673h-2.43v3.378zm-2.4-5.385h5.017c1.326 0 2.316.382 2.987 1.068.64.653 1.023 1.545 1.023 2.596 0 2.15-1.422 3.6-3.818 3.6h-2.812v4.127h-2.396V7.945zm10.74 0h2.316v9.463h5.368v1.928H73.43V7.944zm8.912 7.726V7.945h2.317v7.727c0 1.178.59 2.007 2.14 2.007 1.47 0 2.157-.86 2.157-2.039V7.944h2.317v7.727c0 2.437-1.502 3.855-4.425 3.855-2.956 0-4.506-1.386-4.506-3.855zm10.56.144h2.269c.16 1.37.942 1.912 2.572 1.912 1.182 0 2.22-.414 2.22-1.466 0-1.115-1.085-1.338-2.827-1.736-2.045-.462-3.914-1.004-3.914-3.378 0-2.246 1.837-3.409 4.377-3.409 2.573 0 4.234 1.258 4.41 3.553h-2.221c-.128-1.148-1.022-1.721-2.205-1.721-1.246 0-2.06.526-2.06 1.338 0 .924.798 1.195 2.492 1.562 2.348.51 4.265 1.067 4.265 3.52 0 2.31-1.869 3.6-4.44 3.6-3.1 0-4.858-1.37-4.938-3.775z"></path> </svg> </a> </transition> <transition name="xsBack-fade"> <div v-show="productMenuFlag" class="go-back" @click="goBack"> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </div> </transition> </div> <!-- E logo --> <!-- S product nav --> <div class="nav-center"> <ul v-if="headerData.productItems && headerData.productItems.length > 0"> <template v-for="(item, k) in headerData.productItems"> <li v-if="(isDtbMode && Number(item.isDtb)) || (!isDtbMode && !Number(item.isDtb)) || item.navType == 'commonNav'" class="first-product" :class="item.navStyle" @mouseenter="showSecondMenu(k, $event, item.nav)" @mouseleave="showSecondMenu(-1, $event)"> <a @click="ga4Event({level: 'first',nav_group: 'none',nav_name: item.navItem})" class="font-body-md first-product-name black95" :href="initLink(item.navItemLink)">{{item.nav}}</a> <!-- S PC二级导航 --> <transition name="nav-fade"> <template v-if="(item.leftItems && item.leftItems.length > 0) || (item.rightItems && item.rightItems.length > 0)"> <nav :class="['product-list', {'nav-show': navIndex == k}]" v-show="navIndex == k"> <div class="product-box"> <div class="list-left"> <div class="list-left-box list-box"> <a @click="ga4Event({nav_group:item.nav, method:'Big Title', nav_name:item.leftTitle, level: 'second', position: 'Left'})" v-if="item.leftTitle" :href="initLink(item.secondTitleLink)" class="list-title font-subheading-md">{{item.leftTitle}} <svg class="icon svg-icon arrow-icon" viewBox="0 0 20 20"> <g clip-path="url(#icon-arrow-right-simple_clip0_430_12888)"> <path d="M15.19 10.75H2v-1.5h13.19l-4.72-4.72 1.06-1.06L18.06 10l-6.53 6.53-1.06-1.06 4.72-4.72z"></path> </g> <defs> <clipPath id="icon-arrow-right-simple_clip0_430_12888"> <path d="M0 0h20v20H0z"></path> </clipPath> </defs> </svg> </a> <!-- 产品列表 --> <div v-for="list in item.leftItems" class="product-series"> <a @click="ga4Event({nav_group:item.nav, method:list.title, nav_name:item.leftTitle, level: 'second', position: 'Left'})" :href="initLink(list.titleLink)" :class="[list.subItem && list.subItem.length > 0 ? 'font-note-sm black55 product-series-title' : 'emptyList font-body-md black95']">{{list.title}}</a> <ul v-if="list.subItem && list.subItem.length > 0" class="product-series-main"> <li v-for="product in list.subItem"> <a @click="ga4Event({nav_group:item.nav, method:list.title, nav_name:product.name, level: 'second', position: 'Left'})" :href="initLink(product.link)" :target="product.newPage"> <div class="img-box" v-if="product.img"> <img class="op-lazyload" :data-src-2x="product.img" alt=""> </div> <div class="product-name font-body-md black95">{{product.name}}</div> <div v-if="product.tag" class="product-tag font-note-xs">{{product.tag}}</div> </a> </li> </ul> </div> </div> </div> <div :class="['list-right', {'list-right-empty': !item.rightTitle && !item.rightItems && !headerData.appDownload}]"> <div class="list-right-box list-box"> <a @click="ga4Event({nav_group:item.nav, method:'Big Title', nav_name:item.rightTitle, level: 'second', position: 'Right'})" v-if="item.rightTitle" class="font-body-md black95" :href="initLink(item.titleLink)">{{item.rightTitle}}</a> <div v-for="link in item.rightItems" class="link-series"> <p v-if="link.title" class="font-note-sm black55">{{link.title}}</p> <ul v-if="link.subItem && link.subItem.length > 0"> <li v-for="subLink in link.subItem"> <a @click="ga4Event({nav_group:item.nav, method:subLink.text, nav_name:link.title, level: 'second', position: 'Right'})" class="font-body-md black95" :href="initLink(subLink.textLink)" :target="subLink.newPage">{{subLink.text}}</a> </li> </ul> </div> <div class="app-download" v-if="headerData.appDownload"> <a @click="ga4Event({nav_group:item.nav, method:'Get APP', nav_name:headerData.appDownload, level: 'second', position: 'Right'})" class="font-body-md black95" :href="initLink(headerData.appDownloadLink)" :target="headerData.appDownloadnewpage">{{headerData.appDownload}} <svg class="icon svg-icon arrow-icon" viewBox="0 0 20 20"> <g clip-path="url(#icon-arrow-right-simple_clip0_430_12888)"> <path d="M15.19 10.75H2v-1.5h13.19l-4.72-4.72 1.06-1.06L18.06 10l-6.53 6.53-1.06-1.06 4.72-4.72z"></path> </g> <defs> <clipPath id="icon-arrow-right-simple_clip0_430_12888"> <path d="M0 0h20v20H0z"></path> </clipPath> </defs> </svg> </a> </div> </div> </div> </div> </nav> </template> </transition> <!-- E PC二级导航 --> </li> </template> </ul> </div> <!-- E product nav --> <!-- S nav right --> <ul class="nav-right"> <!-- S 搜索 --> <template v-if="!isDtbMode && Number(headerData.searchDisplay)"> <transition name="xsMenu-fade"> <li v-show="!isXsMenu" class="header-search" @mouseenter="getSearchInfo(1)" @mouseleave="getSearchInfo(0)"> <a @click="getSearchInfo(1, true)"> <svg class="svg-icon ico-header-search" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path fill-rule="evenodd" clip-rule="evenodd" d="M16.6918 10.8959C16.6918 14.0969 14.0969 16.6918 10.8959 16.6918C7.69492 16.6918 5.1 14.0969 5.1 10.8959C5.1 7.69492 7.69492 5.1 10.8959 5.1C14.0969 5.1 16.6918 7.69492 16.6918 10.8959ZM15.5294 16.6608C14.2616 17.6812 12.6501 18.2918 10.8959 18.2918C6.81127 18.2918 3.5 14.9806 3.5 10.8959C3.5 6.81127 6.81127 3.5 10.8959 3.5C14.9806 3.5 18.2918 6.81127 18.2918 10.8959C18.2918 12.6501 17.6812 14.2616 16.6608 15.5294L20.5011 19.3697L19.3697 20.5011L15.5294 16.6608Z" fill="black"/> </svg> </a> <!-- S 搜索弹窗 --> <div class="search-card" :class="searchFocused ? 'active' : '' "> <one-search ref="searchInput" v-if="searchInit" @submit="searchWord" focused-on @cancel="cancelXsSearch"></one-search> </div> <!-- E 搜索弹窗 --> </li> </transition> </template> <!-- E 搜索 --> <!-- S 购物车 --> <template v-if="!isDtbMode && Number(headerData.cartDisplay)"> <transition name="xsMenu-fade"> <li v-show="!isXsMenu" :class="['mini-cart', {'active': showMiniCart}]" @mouseenter="fetchCartInfo" @mouseleave="closeMiniCart" ref="shopBag"> <a :class="{'active': showMiniCart}" @click="clickMiniCart"> <svg class="ico svg-icon ico-cart show-number" viewBox="0 0 24 24" fill="none"> <path d="M3 4.75h1.825l.588 5.588.557 5.852A2 2 0 007.961 18h10.077a2 2 0 001.991-1.81l.762-8A2 2 0 0018.801 6H7.198c-.254 0-.497.047-.72.134L6.246 3.92a.75.75 0 00-.746-.67H3v1.5zm4.214 8.675l.032-.004-.34-3.233-.204-2.14a.5.5 0 01.497-.548H18.8a.5.5 0 01.498.547l-.762 8a.5.5 0 01-.498.453H7.961a.5.5 0 01-.497-.453l-.25-2.622z"></path> <path d="M10 13.75a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5h-4.5a.75.75 0 01-.75-.75zM11 20a1 1 0 11-2 0 1 1 0 012 0zm6 0a1 1 0 11-2 0 1 1 0 012 0z"></path> </svg> <span class="red-dot font-note-xs" v-if="cart.itemNum && cart.itemNum > 0">{{cart.itemNum}}</span> </a> <!-- mini购物车-S --> <div :class="['cart-warper', {'active': showMiniCart}]"> <nav class="basket-info-nav"> <div class="basket-main"> <div class="cart-items-placeholder" v-if="cart.loading"> <one-spinner></one-spinner> <div class="loading-text">{{searchData.loading}}</div> </div> <div v-else class="minicart-container" :class="{'empty-cart':!(cart.cartGoods && cart.cartGoods.length)}"> <ul class="cart-products" v-if="cart.cartGoods && cart.cartGoods.length && !cart.loading"> <li v-for="(item,index) in cart.cartGoods" class="products-link" :class="{'gift-item': item.buyType == 2}"> <a :href="item.urlPath"> <div class="cart-item-warper"> <div class="cart-item-td td-image"> <span class="image-placeholder"> <img :src="clipImage(item.imageUrl, '160x160')" :srcset="clipImage(item.imageUrl, '160x160') + ' 1x,' + clipImage(item.imageUrl, '160x160') + ' 2x'" :alt="item.displayName" :srcset="item.imageUrl+ ' 1x,' + item.imageUrl+ ' 2x'"> </span> </div> <div class="cart-item-info"> <span class="main-item-warper"> <div class="main-item"> <!-- 商品名称 --> <div class="cart-item-name"> <!-- 商品名 --> <div class="font-body-md"> <template v-if="item.attachment && item.attachment.productDisplayName">{{item.attachment.productDisplayName}}</template> <template v-else>{{item.displayName}}</template> <!-- 赠品标签 --> <span class="tag-gift-tag font-note-xs" v-if="item.buyType == 2">{{searchData.gift}}</span> </div> <!-- 商品选型 --> <template v-for="option in item.attachment.skuSelectOptions"> <span class="item-attr font-note-sm">{{option.optLabel}}</span> </template> </div> <!-- 价格信息 --> <div class="item-price-info no-wrap font-note-sm"> <span class="now-price">{{formatCurrency(item.nowPrice)}}</span> <span class="item-qty"> x {{item.skuCount}} </span> </div> </div> </span> <span v-for="childItem in item.childItems" v-if="childItem.buyType == 2 || childItem.itemType == 4" class="cart-sku-gift-item"> <div class="cart-item-name font-body-md"> <span>{{childItem.displayName}}</span> <!-- 赠品标签 --> <span v-if="childItem.buyType == 2" class="tag-gift-tag font-note-xs">{{searchData.gift}}</span> <!-- 保险标签 --> <span v-else-if="childItem.itemType == 4" class="font-note-xs tag-gift-tag">{{searchData.insurance}}</span> </div> <span class="item-price-info no-wrap font-note-sm"> <span v-if="childItem.buyType == 2" class="now-price">{{searchData.free}}</span> <span v-else-if="childItem.itemType == 4" class="now-price">{{formatCurrency(childItem.nowPrice)}}</span> <span class="item-qty">x {{childItem.skuCount}}</span> </span> </span> <!-- 以旧换新 --> <span v-if="item.evaluateOrder" class="cart-sku-gift-item" :class="item.evaluateOrder && item.evaluateOrder.evaluationIsExpired?'expired':''"> <div class="cart-item-name font-body-md"> <span>{{searchData.exchangeProgram}}</span> <span class="tag-gift-tag font-note-xs expired-tag">{{searchData.expired}}</span> </div> <span class="item-price-info no-wrap font-note-sm"> <span class="now-price">-{{formatCurrency(item.evaluateOrder.evaluateTotalPrice)}}</span> </span> </span> </div> </div> </a> </li> </ul> <!-- 购物车为空 --> <div class="cart-no-products" v-if="cart.cartGoods && !cart.cartGoods.length && !cart.loading"> <div class="text-container font-body-lg"> <p v-if="!cart.showError"> {{searchData.emptyCart}} </p> <p v-if="cart.showError"> {{searchData.oopsText}} </p> </div> <div class="icon-container"> <svg class="ico svg-icon ico-shop-bag" viewBox="0 0 120 120" fill="none"> <path d="M35.25 46.517a1.03 1.03 0 011.022-1.165h57.517a1.03 1.03 0 011.022 1.165l-4.148 31.54a1.03 1.03 0 01-1.021.897H40.419a1.03 1.03 0 01-1.022-.896L35.25 46.517z" stroke="#000" stroke-width="1.237"></path> <path d="M15 36.358h11.872a3.092 3.092 0 013.066 2.689l6.726 51.065a3.092 3.092 0 003.065 2.688h48.04" stroke="#000" stroke-width="1.237"></path> <ellipse cx="77.235" cy="96.354" rx="2.826" ry="2.955" stroke="#000" stroke-width="1.237"></ellipse> <ellipse cx="52.055" cy="96.354" rx="2.826" ry="2.955" stroke="#000" stroke-width="1.237"></ellipse> <path d="M39.4 76.6h-4.803m-3.354-26.214h4.625" stroke="#000" stroke-width="1.237"></path> <path d="M29.701 40.413h-13.47a1.03 1.03 0 01-1.03-1.031v-3.594M36.2 89h50.37c.569 0 1.03.462 1.03 1.031v3.37M35.868 50.334h58.496" stroke="#000" stroke-width=".618"></path> <path opacity=".45" d="M55.35 53.317l-11.774 10.19L56.03 77.895l11.773-10.19L55.35 53.316zm19.691 3.034l9.132 5.51-9.361 16.073-9.14-5.276 9.369-16.307zm-7.827 7.195a4.625 4.625 0 100-9.25 4.625 4.625 0 000 9.25z" stroke="#F50514" stroke-width=".412" stroke-miterlimit="10" stroke-linecap="round" stroke-dasharray="0.82 0.82"></path> <circle cx="65.11" cy="31" r="11" stroke="#F50514" stroke-width=".412" stroke-linecap="round" stroke-dasharray="1.24 1.24"></circle> <path d="M65.621 29.477c.535-.366 1.037-.76 1.037-1.554 0-.633-.308-1.613-1.619-1.613-1.31 0-1.555.996-1.634 1.534h-1.33c0-1.091.682-2.705 2.93-2.705 2.009 0 2.98 1.282 2.98 2.8 0 1.392-.808 2.01-1.36 2.39-.777.538-1.343.934-1.343 1.994v.98h-1.327V32.29c0-1.643.955-2.322 1.666-2.813zm-1.86 6.018c0-.252.101-.493.284-.671a.983.983 0 011.373 0c.183.178.285.42.285.671a.939.939 0 01-.285.672.983.983 0 01-.687.277.983.983 0 01-.686-.278.939.939 0 01-.285-.67z" fill="#F50514"></path> </svg> </div> <div class="cart-free-limit free-text font-body-md"> <span> {{searchData.youAre}} <span class="shipping-fee" v-if="cart.cartGoods && cart.cartGoods.length">{{freeShippingPrice}}</span> <span v-else class="shipping-fee">$100</span> {{searchData.freeShipping}} </span> </div> </div> </div> </div> <div class="cart-info" v-if="!cart.loading && !isEmptyCart"> <div class="cart-link" v-if="!cart.showError"> <div class="text"> <div class="total-price font-body-lg"> <span class="label">{{searchData.total}}</span> <span class="value">{{formatCurrency(cart.totalPrice)}}</span> </div> <div class="gifts-tips" v-if="cart.giftsTips">{{searchData.freeGift}}</div> </div> <div class="cart-free-limit font-note-sm" v-if="!cart.loading"> <span v-if="cart.freeShopping">{{searchData.getGift}}</span> <span v-else> {{searchData.youAre}} <span class="shipping-fee" v-if="cart.cartGoods && cart.cartGoods.length">{{freeShippingPrice}}</span> <span v-else class="shipping-fee">$100</span> {{searchData.freeShipping}} </span> </div> <div class="buttons"> <div class="item"> <a @click="ga4Event({button_name:searchData.checkCart, function_type: 'Shopping cart'}, 'function_entry')" class="new-button new-button--secondary btn-text full-width is-block" :href="initLink('/jcart?from=mini_cart')" >{{searchData.checkCart}}</a> </div> <div class="item"> <a @click="ga4Event({button_name:searchData.checkout, function_type: 'Shopping cart'}, 'function_entry')" class="new-button new-button--primary btn-text full-width is-block" href="https://www.oneplus.com/us/checkout/payment" @click.prevent="checkGift">{{searchData.checkout}}</a> </div> </div> </div> </div> </nav> </div> <!-- mini购物车-E --> </li> </transition> </template> <!-- E 购物车 --> <!-- S 移动端汉堡按钮 --> <li class="menu-icon"> <a @click="showMenu" :class="{'show-menu': isXsMenu}"> <i class="icon-show-menu"></i> </a> </li> <!-- E 移动端汉堡按钮 --> <!-- S 个人信息 --> <li v-if="Number(headerData.accountDisplay)" class="header-info" @mouseenter="showUserInfo(1)" @mouseleave="showUserInfo(0)"> <a @click="goUserIconLogin({button_name:'Account center', function_type:'entry'}, 'function_entry')"> <img v-if="user.signedIn && user.avatar" class="pc-user-img" :src="user.avatar" alt="Avatar"> <svg v-else class="ico svg-icon ico-user" viewBox="0 0 24 24"> <path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 12a7.5 7.5 0 1015 0 7.5 7.5 0 00-15 0zM3 12a9 9 0 1018 0 9 9 0 00-18 0z"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 12.535a2 2 0 100-4 2 2 0 000 4zm0 1.5a3.5 3.5 0 100-7 3.5 3.5 0 000 7z"></path> <path d="M18.063 18.651a6.502 6.502 0 00-12.126 0 9.058 9.058 0 01-1.105-1.207A8 8 0 0112 13a8 8 0 017.168 4.443c-.331.436-.701.84-1.105 1.208z"></path> </svg> </a> <div class="user-info-pc"> <div class="user-info-box"> <!-- dtb模式下 小标题 --> <div class="user-info-dtb-title font-note-sm" v-if="isDtbMode"> {{searchData.onePlusBusiness}} </div> <div class="sigin-box"> <a :class="['user-img', {'user-img-dtb': isDtbMode || user.isMembership}]" @click="goUserIconLogin({function_type: 'entry', button_name: 'Account center'}, 'function_entry')"> <img v-if="user.signedIn && user.avatar" :src="user.avatar" alt="Avatar"> <img v-else class="op-lazyload" data-src-2x="https://image01.oneplus.net/shop/202207/12/1-M00-3D-6B-rB8LB2LM696ARA9oAAACNk-7O5M305.svg" alt="Avatar"> <span v-if="isDtbMode" class="user-dtb"></span> <span v-else-if="user.isMembership" class="user-membership"> <svg class="ico ico-membership" fill="none" viewBox="0 0 16 16"> <path d="M0 8a8 8 0 1116 0A8 8 0 110 8z" fill="#fff"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 2a6 6 0 100 12A6 6 0 008 2zm3.292 9.382a4.724 4.724 0 01-6.674 0 4.724 4.724 0 010-6.674 4.724 4.724 0 016.674 0 4.724 4.724 0 010 6.674z" fill="#F50514"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 4.657a3.342 3.342 0 10-.001 6.685 3.342 3.342 0 000-6.685zm-.025 5.406a2.04 2.04 0 01-2.04-2.04 2.04 2.04 0 012.04-2.038 2.04 2.04 0 012.039 2.039 2.041 2.041 0 01-2.04 2.039z" fill="#F50514"></path> </svg> </span> </a> <div class="user-sigin"> <p class="font-body-md black95">{{user.signedIn ? user.name : searchData.welcome}}</p> <p v-if="!user.signedIn" class="sigin font-body-md"> <a href="javascript:void(0)" @click="goUserIconLogin({module:searchData.signUp,button_name: 'Entry'},'account_setting')">{{searchData.signUp}}</a> <i></i> <a href="javascript:void(0)" @click="goUserIconLogin({module:searchData.signIn,button_name: 'Entry'},'account_setting')">{{searchData.signIn}}</a> </p> <p v-else class="font-body-md sigin"> <a href="javascript:void(0)" @click="userSignOut({module:searchData.signOut,button_name: 'Entry'},'account_setting')">{{searchData.signOut}}</a> </p> </div> </div> <div class="user-menu"> <ul> <li> <a v-if="user.signedIn" @click="ga4Event({function_type:'Account center', button_name: searchData.order}, 'function_entry')" :href="initLink('/sales/order/history?from=head')"> <div class="img-box"> <img class="op-lazyload" data-src-2x="https://image01-in.oneplus.net/shop/202206/14/1-M00-3D-46-rB8LB2KoUleAUUNsAAABv1Ho6hY193.svg" alt=""> <span class="font-body-md black95">{{searchData.order}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> <a v-else @click="ga4Event({function_type:'Account center', button_name: searchData.order}, 'function_entry')" :href="initLink('/check-order?from=head')"> <div class="img-box"> <img class="op-lazyload" data-src-2x="https://image01-in.oneplus.net/shop/202206/14/1-M00-3D-46-rB8LB2KoUleAUUNsAAABv1Ho6hY193.svg" alt=""> <span class="font-body-md black95">{{searchData.order}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> </li> <li> <a @click="ga4Event({function_type:'Account center', button_name: searchData.account}, 'function_entry')" :href="initLink('/customer/info?from=head')"> <div class="img-box"> <img class="op-lazyload" data-src-2x="https://image01-in.oneplus.net/shop/202206/09/1-M00-3C-FD-rB8LB2KhoROAB5tdAAAEVeKlMcI807.svg" alt=""> <span class="font-body-md black95">{{searchData.account}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> </li> <li class="nav-badge nav-badge-mo" v-if="headerData.achievementDisplay"> <a @click="ga4Event({function_type:'Account center', button_name: searchData.achievement}, 'function_entry')" class="user-menu-item font-body-md" :href="initLink('/rcc/badge?from=head')"> <div class="img-box"> <img class="op-lazyload" data-src-2x="https://image01.oneplus.net/shop/202311/15/1-M00-48-89-CkvTlmVUbrqAHXt3AAAFepATGcY166.svg" alt=""> <span class="font-body-md black95">{{searchData.achievement}}</span> </div> <div class="nav-badge-right"> <div class="badge-icon"> <img class="op-lazyload" v-for="item in badgeList" :data-src-2x="item" alt=""> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </div> </a> </li> <template v-for="data in headerData.membersItems"> <li @click="ga4Event({function_type:'Account center', button_name: data.title}, 'function_entry')" v-if="(Number(data.isDtb) && isDtbMode) || (!isDtbMode && !Number(data.isDtb))"> <a :href="initLink(data.link)" :target="data.newPage"> <div class="img-box"> <img class="op-lazyload" :data-src-2x="data.icon || 'https://image01.oneplus.net/shop/202206/17/1-M00-3D-5A-rB8bwmKsMNiAJlS1AAADtHsnzMM635.svg'" alt=""> <span class="font-body-md black95">{{data.title}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> </li> </template> </ul> </div> <!-- dtb 切换模式 --> <div v-if="hasDtbAuth"> <div class="dtb-switch-mode font-note-sm flex" @click="switchDtbMode">{{isDtbMode ? searchData.personalMode : searchData.businessMode}}</div> </div> </div> </div> </li> <!-- E 个人信息 --> </ul> <!-- E nav right --> </div> <!-- 移动端菜单栏 --> <transition name="xsNav-fade"> <div v-show="isXsMenu" :class="['xs-nav-list', {'xs-nav-show': isXsMenu}]"> <div class="xs-nav-box"> <transition name="xsFirstNav-fade"> <div v-show="!productMenuFlag"> <!-- 产品列表 --> <div class="product-list" v-if="xsMenuProductData && xsMenuProductData.length > 0"> <ul> <template v-for="item in xsMenuProductData"> <li :class="['navList', item.navStyle]" v-if="(isDtbMode && Number(item.isDtb)) || (!isDtbMode && !Number(item.isDtb)) || item.navType == 'commonNav'" @click="goProductMenu(item)"> <div class="title-box"> <div class="img-box"> <img class="op-lazyload" :data-src-2x="item.navImg" alt=""> </div> <span class="font-body-md black95">{{item.nav}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </li> </template> </ul> </div> <!-- 纯外链列表 --> <div class="product-link product-list"> <ul> <template v-for="item in xsMenuLinkData"> <li :class="['navList', item.navStyle]" v-if="(isDtbMode && Number(item.isDtb)) || (!isDtbMode && !Number(item.isDtb)) || item.navType == 'commonNav'"> <a :href="initLink(item.navItemLink)" @click="ga4Event({level: 'first',nav_group: 'none',nav_name: item.navItem})"> <div class="title-box"> <span class="font-body-md black95">{{item.nav}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> </li> </template> </ul> </div> <!-- 个人信息栏 --> <template v-if="Number(headerData.accountDisplay)"> <div class="user-info"> <div class="user-info-box"> <!-- dtb模式下 小标题 --> <div class="user-info-dtb-title font-note-sm" v-if="isDtbMode"> {{searchData.onePlusBusiness}} </div> <div class="sigin-box"> <a :class="['user-img', {'user-img-dtb': isDtbMode || user.isMembership}]" @click="goUserIconLogin({function_type: 'entry', button_name: 'Account center'}, 'function_entry')"> <img v-if="user.signedIn && user.avatar" class="op-lazyload" :data-src-2x="user.avatar" alt="Avatar"> <img v-else class="op-lazyload" data-src-2x="https://image01.oneplus.net/shop/202207/12/1-M00-3D-6B-rB8LB2LM696ARA9oAAACNk-7O5M305.svg" alt="Avatar"> <span v-if="isDtbMode" class="user-dtb"></span> <span v-else-if="user.isMembership" class="user-membership"> <svg class="ico ico-membership" fill="none" viewBox="0 0 16 16"> <path d="M0 8a8 8 0 1116 0A8 8 0 110 8z" fill="#fff"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 2a6 6 0 100 12A6 6 0 008 2zm3.292 9.382a4.724 4.724 0 01-6.674 0 4.724 4.724 0 010-6.674 4.724 4.724 0 016.674 0 4.724 4.724 0 010 6.674z" fill="#F50514"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 4.657a3.342 3.342 0 10-.001 6.685 3.342 3.342 0 000-6.685zm-.025 5.406a2.04 2.04 0 01-2.04-2.04 2.04 2.04 0 012.04-2.038 2.04 2.04 0 012.039 2.039 2.041 2.041 0 01-2.04 2.039z" fill="#F50514"></path> </svg> </span> </a> <div class="user-sigin"> <p class="font-body-md black95">{{user.signedIn ? user.name : searchData.welcome}}</p> <p v-if="!user.signedIn" class="sigin font-body-md"> <a href="javascript:void(0)" @click="goUserIconLogin({module:searchData.signUp,button_name: 'Entry'},'account_setting')">{{searchData.signUp}}</a> <i></i> <a href="javascript:void(0)" @click="goUserIconLogin({module:searchData.signIn,button_name: 'Entry'},'account_setting')">{{searchData.signIn}}</a> </p> <p v-else class="font-body-md sigin"> <a href="javascript:void(0)" @click="userSignOut({module:searchData.signOut,button_name: 'Entry'},'account_setting')">{{searchData.signOut}}</a> </p> </div> </div> <div class="user-menu"> <ul> <li> <a v-if="user.signedIn" @click="ga4Event({function_type:'Account center', button_name: searchData.order}, 'function_entry')" :href="initLink('/sales/order/history?from=head')"> <div class="img-box"> <img class="op-lazyload" data-src-2x="https://image01-in.oneplus.net/shop/202206/14/1-M00-3D-46-rB8LB2KoUleAUUNsAAABv1Ho6hY193.svg" alt=""> <span class="font-body-md black95">{{searchData.order}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> <a v-else @click="ga4Event({function_type:'Account center', button_name: searchData.order}, 'function_entry')" :href="initLink('/check-order?from=head')"> <div class="img-box"> <img class="op-lazyload" data-src-2x="https://image01-in.oneplus.net/shop/202206/14/1-M00-3D-46-rB8LB2KoUleAUUNsAAABv1Ho6hY193.svg" alt=""> <span class="font-body-md black95">{{searchData.order}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> </li> <li> <a @click="ga4Event({function_type:'Account center', button_name: searchData.account}, 'function_entry')" :href="initLink('/customer/info?from=head')"> <div class="img-box"> <img class="op-lazyload" data-src-2x="https://image01-in.oneplus.net/shop/202206/09/1-M00-3C-FD-rB8LB2KhoROAB5tdAAAEVeKlMcI807.svg" alt=""> <span class="font-body-md black95">{{searchData.account}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> </li> <li class="nav-badge nav-badge-mo" v-if="Number(headerData.achievementDisplay)"> <a @click="ga4Event({function_type:'Account center', button_name: searchData.achievement}, 'function_entry')" class="user-menu-item font-body-md" :href="initLink('/rcc/badge?from=head')"> <div class="img-box"> <img class="op-lazyload" data-src-2x="https://image01.oneplus.net/shop/202311/15/1-M00-48-89-CkvTlmVUbrqAHXt3AAAFepATGcY166.svg" alt=""> <span class="font-body-md black95">{{searchData.achievement}}</span> </div> <div class="nav-badge-right"> <div class="badge-icon"> <img class="op-lazyload" v-for="item in badgeList" :data-src-2x="item" alt=""> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </div> </a> </li> <template v-for="data in headerData.membersItems"> <li v-if="(Number(data.isDtb) && isDtbMode) || (!isDtbMode && !Number(data.isDtb))"> <a @click="ga4Event({function_type:'Account center', button_name: data.title}, 'function_entry')" :href="initLink(data.link)" :target="data.newPage"> <div class="img-box"> <img class="op-lazyload" :data-src-2x="data.icon || 'https://image01.oneplus.net/shop/202206/17/1-M00-3D-5A-rB8bwmKsMNiAJlS1AAADtHsnzMM635.svg'" alt=""> <span class="font-body-md black95">{{data.title}}</span> </div> <svg class="ico svg-icon" viewBox="0 0 20 20"> <path clip-rule="evenodd" d="M13 10.41l-5.25 5.506-.861-.905L11.667 10 6.889 4.988l.861-.905L13 9.589c.22.226.22.594 0 .821z"></path> </svg> </a> </li> </template> </ul> </div> <!-- dtb 切换模式 --> <div v-if="hasDtbAuth"> <div class="dtb-switch-mode font-note-sm flex" @click="switchDtbMode">{{isDtbMode ? searchData.personalMode : searchData.businessMode}}</div> </div> </div> </div> </template> </div> </transition> <!-- S 二级菜单 --> <transition name="xsSecNav-fade"> <div v-if="productMenuFlag" class="product-info"> <div class="product-info-top"> <a v-if="xsMenuData.leftTitle" :href="initLink(xsMenuData.secondTitleLink)" class="product-info-title" @click="ga4Event({nav_group:xsMenuData.nav, method:'Big Title', nav_name:xsMenuData.leftTitle, level: 'second', position: 'Left'})"> <span class="font-body-xl black95">{{xsMenuData.leftTitle}}</span> <svg class="icon svg-icon arrow-icon" viewBox="0 0 20 20"> <g clip-path="url(#icon-arrow-right-simple_clip0_430_12888)"> <path d="M15.19 10.75H2v-1.5h13.19l-4.72-4.72 1.06-1.06L18.06 10l-6.53 6.53-1.06-1.06 4.72-4.72z"></path> </g> <defs> <clipPath id="icon-arrow-right-simple_clip0_430_12888"> <path d="M0 0h20v20H0z"></path> </clipPath> </defs> </svg> </a> <div v-for="list in xsMenuData.leftItems" class="product-info-list"> <a v-if="list.title" :href="initLink(list.titleLink)" :class="[list.subItem && list.subItem.length > 0 ? 'font-note-sm black55' : 'emptyList font-body-md black95', 'list-title']" @click="ga4Event({nav_group:xsMenuData.nav, method:list.title, nav_name:xsMenuData.leftTitle, level: 'second', position: 'Left'})">{{list.title}}</a> <ul v-if="list.subItem && list.subItem.length > 0"> <li v-for="product in list.subItem"> <a @click="ga4Event({nav_group:xsMenuData.nav, method:list.title, nav_name:product.name, level: 'second', position: 'Left'})" :href="initLink(product.link)" :target="product.newPage"> <div class="list-img-box"> <img :src="product.img" alt=""> </div> <p class="product-info-name font-body-md black95">{{product.name}}</p> <p v-if="product.tag" class="product-info-tag font-note-xs">{{product.tag}}</p> </a> </li> </ul> </div> </div> <div class="product-info-bottom" v-if="(xsMenuData.rightItems && xsMenuData.rightItems.length> 0) || headerData.appDownload"> <a v-if="xsMenuData.rightTitle" :href="initLink(xsMenuData.titleLink)" class="list-bottom-title font-body-md black95" @click="ga4Event({nav_group:xsMenuData.nav, method:'Big Title', nav_name:xsMenuData.title, level: 'second', position: 'Right'})">{{xsMenuData.rightTitle}}</a> <div v-for="link in xsMenuData.rightItems" class="product-info-link"> <div v-if="link.title" class="product-link-title font-note-sm black55">{{link.title}}</div> <ul> <li v-for="subLink in link.subItem"> <a @click="ga4Event({nav_group:xsMenuData.nav, method:subLink.text, nav_name:link.title, level: 'second', position: 'Right'})" class="font-body-md black95" :href="initLink(subLink.textLink)" :target="subLink.newPage">{{subLink.text}}</a> </li> </ul> </div> <div class="app-download" v-if="headerData.appDownload"> <a class="font-body-md black95" :href="initLink(headerData.appDownloadLink)" :target="headerData.appDownloadnewpage"> {{headerData.appDownload}} <svg class="icon svg-icon arrow-icon" viewBox="0 0 20 20"> <g clip-path="url(#icon-arrow-right-simple_clip0_430_12888)"> <path d="M15.19 10.75H2v-1.5h13.19l-4.72-4.72 1.06-1.06L18.06 10l-6.53 6.53-1.06-1.06 4.72-4.72z"></path> </g> <defs> <clipPath id="icon-arrow-right-simple_clip0_430_12888"> <path d="M0 0h20v20H0z"></path> </clipPath> </defs> </svg> </a> </div> </div> </div> </transition> <!-- E 二级菜单 --> </div> </div> </transition> <!-- 移动端菜单栏 --> </div> <!-- mask overlay --> <transition name="mask-fade"> <div v-show="showOverlay" class="overlay" @click="clickOverlay"></div> </transition> </header> </div> </div> <script type="application/json" id="data-search-translation"> { "cancel": "Cancel", "loading": "Loading...", "hot": "Hot", "noMatch": "Sorry, no matches were found.", "popular": "Popular", "search": "Search", "history": "Search history", "gift": "Gift", "insurance": "Insurance", "free": "Free", "exchangeProgram": "Exchange Program", "expired": "Expired", "emptyCart": "Your cart is empty", "oopsText": "Oops, something went wrong in your shopping cart. See what needs to be adjusted.", "youAre": "You are", "freeShipping": "away from free shipping.", "total": "Total", "freeGift": "Please remember to add free gift on the cart.", "getGift": "Congratulations! You get free shipping", "checkCart": "Check my cart", "checkout": "Checkout", "onePlusBusiness": "OnePlus Business", "welcome": "Welcome to OnePlus", "signUp": "Sign up", "signIn": "Sign in", "signOut": "Sign out", "order": "Orders", "account": "Account", "achievement": "Achievement", "personalMode": "Switch to Personal Mode", "businessMode": "Switch to Business Mode" } </script> <script type="application/json" id="header-data"> { "appDownloadnewpage": "_self", "productItems": [ { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/common/store.png", "nav": "Store", "isDtb": "0", "leftTitle": "Go to Official Store", "navType": "commonNav", "secondTitleLink": "/store", "leftItems": [ { "subItem": [ { "img": "/content/dam/oasis/page/2024/nav/in/waffle-green.png", "newPage": "_blank", "link": "/store/phone", "name": "Phone" }, { "img": "/content/dam/oasis/page/2023/nav/pad-nav.png", "newPage": "_blank", "link": "/store/tablet", "name": "Tablet" }, { "img": "/content/dam/oasis/page/2024/nav/common/almond-silver.png", "newPage": "_blank", "link": "/store/wearables", "name": "Wearables" }, { "img": "/content/dam/oasis/page/2024/nav/in/eular.png", "newPage": "_blank", "link": "/store/audio", "name": "Audio" }, { "img": "/content/dam/oasis/page/2024/nav/us/nav-more-products-NA.png", "newPage": "_blank", "link": "/store/power-cables", "name": "Accessories" }, { "img": "/content/dam/oasis/page/2024/nav/common/bundles.png", "newPage": "_blank", "link": "/store/all", "name": "More Products" } ] } ], "navItemLink": "/store" }, { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/common/phone.png", "nav": "Phone", "isDtb": "0", "leftTitle": "Explore All Phone", "navType": "commonNav", "secondTitleLink": "/store/phone", "leftItems": [ { "subItem": [ { "img": "/content/dam/oneplus/2024/nav/13-Black.png", "newPage": "_blank", "link": "/oneplus-13", "name": "OnePlus 13", "tag": "New" }, { "img": "/content/dam/oneplus/2024/nav/13r-black.png", "newPage": "_blank", "link": "/oneplus-13r", "name": "OnePlus 13R", "tag": "New" }, { "img": "/content/dam/oasis/page/2024/nav/in/waffle-green.png", "newPage": "_blank", "link": "/oneplus-12", "name": "OnePlus 12" }, { "img": "/content/dam/oasis/page/2024/nav/in/aston-blue.png", "newPage": "_blank", "link": "/oneplus-12r", "name": "OnePlus 12R" }, { "img": "/content/dam/oasis/page/2023/nav/green-pc2.png", "newPage": "_blank", "link": "/oneplus-open", "name": "OnePlus Open" }, { "img": "/content/dam/oasis/page/2023/nav/nav-larry-black.png", "newPage": "_blank", "link": "/oneplus-n30-5g", "name": "OnePlus Nord N30 5G" } ] } ], "navItemLink": "/store/phone", "navNewPage": "_self", "rightTitle": "Compare Phones", "titleLink": "/phone/compare" }, { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/common/tablet.png", "nav": "Tablet", "isDtb": "0", "leftTitle": "Explore All Tablet", "navType": "commonNav", "secondTitleLink": "/store/tablet", "leftItems": [ { "subItem": [ { "img": "/content/dam/oasis/page/2024/nav/eu/pad2-nav-new.png", "newPage": "_blank", "link": "/buy-oneplus-pad-2", "name": "OnePlus Pad 2" }, { "img": "/content/dam/oasis/page/2023/nav/shelltopnav.png", "newPage": "_blank", "link": "/store/tablet", "name": "Tablet Accessories" } ] } ], "navItemLink": "/store/tablet" }, { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/common/wearable.png", "nav": "Wearables", "isDtb": "0", "leftTitle": "Explore All Wearables", "navType": "commonNav", "secondTitleLink": "/store/wearables", "leftItems": [ { "subItem": [ { "img": "/content/dam/oneplus/2025/nav/OnePlusWatch3.png", "newPage": "_blank", "link": "/buy-oneplus-watch-3", "name": "OnePlus Watch 3", "tag": "New" }, { "img": "/content/dam/oasis/page/2024/nav/common/Green-watch-2r-0816.png", "newPage": "_blank", "link": "/buy-oneplus-watch-2r", "name": "OnePlus Watch 2R" }, { "img": "/content/dam/oasis/page/2024/nav/common/almond-silver.png", "newPage": "_blank", "link": "/buy-oneplus-watch-2", "name": "OnePlus Watch 2" } ] } ], "navItemLink": "/store/wearables" }, { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/common/audio.png", "nav": "Audio", "isDtb": "0", "leftTitle": "Explore All Audio", "navType": "commonNav", "secondTitleLink": "/store/audio", "leftItems": [ { "subItem": [ { "img": "/content/dam/oasis/page/2024/nav/in/white.png", "newPage": "_blank", "link": "/product/oneplus-buds-pro-3", "name": "OnePlus Buds Pro 3" }, { "img": "/content/dam/oasis/page/2024/nav/in/green-buds3-pro.png", "newPage": "_blank", "link": "/product/oneplus-nord-buds-3-pro", "name": "OnePlus Nord Buds 3 Pro" }, { "img": "/content/dam/oasis/page/2024/nav/in/eular.png", "newPage": "_blank", "link": "/product/oneplus-buds-3", "name": "OnePlus Buds 3" } ] } ], "navItemLink": "/store/audio", "navNewPage": "_self", "rightTitle": "Compare Audio", "titleLink": "/audio/compare" }, { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/us/nav-more-products-NA.png", "nav": "More Products", "isDtb": "0", "leftTitle": "Explore More Products", "navType": "commonNav", "secondTitleLink": "/store/all", "leftItems": [ { "subItem": [ { "img": "/content/dam/oasis/page/2024/nav/us/waffle-case.png", "newPage": "_blank", "link": "/store/cases-protection", "name": "Cases \u0026 Protection" }, { "img": "/content/dam/oasis/page/2022/nav/power-cables/NA-Power-Cables.png", "newPage": "_blank", "link": "/store/power-cables", "name": "Power \u0026 Cables" } ] } ], "navItemLink": "/store/all" }, { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/common/onetopia.png", "nav": "OneTopia", "isDtb": "0", "leftTitle": "Evolve your digital life", "navType": "commonNav", "secondTitleLink": "/oneplus-featuring", "leftItems": [ { "title": "Brand", "titleLink": "/brand" }, { "title": "2025 OnePlus Photography Awards", "titleLink": "/photography-awards-2025" }, { "title": "OxygenOS", "titleLink": "/oxygenos15" } ], "navItemLink": "/oneplus-featuring" }, { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/common/community.png", "nav": "Community", "isDtb": "0", "leftTitle": "Welcome to OnePlus Community", "navType": "commonNav", "secondTitleLink": "https://community.oneplus.com", "leftItems": [ { "title": "Community", "titleLink": "https://community.oneplus.com" }, { "title": "Power of Community", "titleLink": "https://community.oneplus.com/powerOfCommunity?utm_medium\u003dnavigation\u0026utm_source\u003dofficial_website" } ], "navItemLink": "https://community.oneplus.com" }, { "0": "-", "rightItems": [ { "subItem": [ { "newPage": "_blank", "text": "Invite Friends", "textLink": "/invite-friends?activityId=21" }, { "newPage": "_blank", "text": "Trade-in \u0026 Upgrade", "textLink": "/trade-in" }, { "newPage": "_blank", "text": "Students Discounts", "textLink": "/discount-program?verify\u003deducation_program" }, { "newPage": "_blank", "text": "Employee Discounts", "textLink": "/employee-groups?verify\u003demployee" }, { "newPage": "_blank", "text": "Membership Benefits", "textLink": "/rcc#/membership" }, { "newPage": "_blank", "text": "Exclusive savings in OnePlus Store App", "textLink": "https://www.oneplus.com/us/deep-link?app_page\u003doneplusstore%3A%2F%2Foneplus%2Fapp%3Furi%3Dcom.oneplus.mall.action.main%26tabIndex%3D0" } ], "title": "Offers" } ], "navImg": "/content/dam/oasis/page/2024/nav/common/service.png", "nav": "Support", "isDtb": "0", "leftTitle": "Welcome to OnePlus Support", "navType": "commonNav", "secondTitleLink": "/support", "leftItems": [ { "title": "Repair Service", "titleLink": "/support/repair" }, { "title": "Protection Plan", "titleLink": "/support/product/protection-service" }, { "title": "Repair Pricing", "titleLink": "/support/repair-pricing" } ], "navItemLink": "/support" } ], "cartDisplay": "1", "searchDisplay": "0", "achievementDisplay": "1", "accountDisplay": "1", "membersItems": [ { "isDtb": "0", "newPage": "_self", "icon": "/content/dam/oasis/coupon.svg", "link": "/customer/voucher#/", "title": "Coupon" }, { "isDtb": "0", "newPage": "_self", "icon": "https://image01.oneplus.net/shop/202206/17/1-M00-3D-5A-rB8LB2KsMNmAAfPlAAAHqNPsTMM380.svg", "link": "/redcoins-center#/", "title": "RedCoins" }, { "isDtb": "0", "newPage": "_self", "icon": "https://image01.oneplus.net/shop/202206/17/1-M00-3D-5A-rB8bwmKsMNiAJlS1AAADtHsnzMM635.svg", "link": "/redcableclub", "title": "Red Cable Club" } ] } </script> <script src="https://www.oneplus.com/content/dam/statics/oasis/header/vendor.js" async></script> <script src="https://www.oneplus.com/content/dam/statics/oasis/header/layout.js" async></script> <style> .header-v3 .phone-hidden { display: none!important; } #preLoadPopper, .notice-ribbon {display: none;} </style> <style> body{ padding-bottom: 60px; } .cart .cart-summary .cart-items .trade-in .trade-in__desc .desc-right.font-title { display:none; } .cart-static-tips { background-color: #fff; display: flex; justify-content: center; padding: 20px 0; } .cart-static-tips .cart-static-tips-content { max-width: 1312px; width: 100%; min-height: 112px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; } .store-app-env #page-shopping-cart { padding-bottom: 94px; } @media screen and (min-width:768px){ .promise-badge{ width:250px; } } @media screen and (max-width: 735px) { #floating-layer { bottom: 136px; } } #floating-layer .store-download { display: none !important; } </style> <input type="hidden" name="get-user-url" id="get-user-url" value="https://mallapi-na.oneplus.com/v2/api/rest/mallapp/query/user/info"> <main class="main-section check-out-cart" role="main" id="page-shopping-cart"> <!-- discount-program 频道选择是否参与 start--> <div class="discount-program-channel flex" :class="stickToTop" v-if="isFromProgram & !isEmptyCart"> <div class="user"> <img class="icon" v-if="userGroupIcon" :src="userGroupIcon" /> <span class="text_font font-body-md">{{isDiscountActive ? showText : showExistText }}</span> </div> <div class="exit-btn"> <div class="line"> | </div> <template v-if="isLoading"> <one-loading color-type="white" :size="14" :border-width="2"></one-loading> </template> <template v-else> <span class="text font-body-md" v-if="isDiscountActive" @click="goExit"> Exit </span> <span class="text font-body-md" v-if="!isDiscountActive" @click="goActive"> Active </span> </template> </div> </div> <!-- discount-program 频道选择是否参与 end--> <div class="container-infinite bg-paper-gray"> <div class="container-text"> <div class="cart"> <div class="top-header font-title"> <!-- PC --> <p class="hander-title text-center hidden-xs"> <span class="text-black font-title">Cart</span> <span v-if="productItemsList.length">({{totalQuantity}})</span> </p> <!-- 移动 --> <p class="hander-title text-black flex flex-content-between hidden-not-xs"> <span class="font-title">Cart <span v-if="productItemsList.length">({{totalQuantity}})</span></span> <span v-if="productItemsList.length" @click="clickEditCart">{{isEditForCart ? $t('cancel') : $t('edit')}}</span> </p> <!-- 包邮提醒 --> <div v-if="productItemsList.length" class="top-nav-box top-free-limit"> <div class="top-nav-box-wrapper transition-move"> <div class="top-nav-box-content flex flex-align-center"> <img class="free-image image" src="https://image01.oneplus.net/shop/202108/31/1-M00-2B-7E-rB8LB2EtoyiAdq5wAAAL3kORvXo657.svg"> <!-- 还未包邮文案 --> <div v-if="!freeShopping"> <span class="font-body-2 away-text">You are <span class="text-red">{{freeShippingPrice}}</span> away from free shipping</span> <a class="text-blue font-body-1 pointer" href="https://www.oneplus.com/us/store">Go shopping now<i class="ico ico-arrow-right" style="margin-left: 8px;font-size: 12px;vertical-align: middle;"></i></a> </div> <!-- 可包邮文案 --> <div v-else> <span class="font-body-2 away-text text-black">Congratulations!</span> <span class="font-body-1">You get free shipping</span> </div> </div> <!-- 积分抵扣提示 --> <div v-if="redCoinsStoreOn && rewardRedCoins" class="top-nav-box-content flex flex-align-center"> <img class="image" src="https://image01.oneplus.net/shop/202112/31/1-M00-32-B9-rB8LB2HOhOCAddVLAAAMi3BnliI234.svg" alt=""> <div> <span class="font-body-2 text-black">RedCoins</span> <span class="display-block font-body-1 m-t-xs">Earn up to <span class="text-red">{{rewardRedCoins}}</span> RedCoins on this order.</span> </div> </div> </div> </div> </div> <div class="cart-summary"> <div v-if="productItemsList.length" class="summary-charge"> <!-- 购物车列表组件 --> <product-items :is-edit="isEditForCart" :product-items-list="productItemsList" @click-remove-product="removeProduct" @remove-trade-in="removeTradeInEvaluateOrder" @click-update-product-items="updateCartItems" @edit-select-items="editSelectItems"></product-items> <!-- 底部按钮区域 --> <div :class="['charge-btns clearfix font-body-1 hidden',{'block':isVueLoader}]"> <div v-if="allFullGifts && allFullGifts.items" class="full-free-gifts flex flex-content-center flex-align-center"> <span class="text-black m-r-sm"><img src="https://image01.oneplus.net/shop/202108/31/1-M00-2B-81-rB8bwmEt0AaAaW27AAAIxB3VzwM983.svg" /> You can get a free gift!</span> <span class="text-blue pointer" @click="clickSelectFullGifts">Select <i class="ico ico-arrow-right font-descriptions"></i></span> </div> <!-- 动画条 --> <div class="cart-content-loading trans-bg-loading"> <span class="span"></span> </div> <div v-if="!isEditForCart" class="charge-btns-content"> <div class="total-price text-black font-title"><span class="value">{{formatMoney(subtotalPrice)}}</span> </div> <a v-if="isShowNoStock" class="one-button btn-red btn btn-checkout" href="javascript:;" id="final_checkout" @click="onClickError" >Checkout ({{totalQuantity}})</a> <a v-if="!isShowNoStock && !isShowError&&showGoCheckoutLoading" class="one-button btn-red btn btn-checkout" href="javascript:;"> <one-spinner v-if="showGoCheckoutLoading"></one-spinner> </a> <a v-if="!isShowNoStock&&!showGoCheckoutLoading" @click="onClickGoCheckOut($event)" class="one-button btn-red btn btn-checkout" href="https://www.oneplus.com/us/checkout/payment" id="final_checkout">Checkout ({{totalQuantity}})</a> <a app-track-data="FB_Continue_shopping" tm-eventcategory="Store - Cart page" tm-eventaction="Continue shopping" tm-eventlabel="Continue shopping" class="one-button btn-ghost btn-black btn btn-shopping" href="https://www.oneplus.com/us/store">Continue Shopping</a> </div> <!-- 编辑状态 --> <div v-else class="charge-btns-content flex flex-content-between flex-align-center"> <div class="flex flex-align-center text-black"> <input id="edit-select-all" type="checkbox" @change="editForClickAll"> <label for="edit-select-all">All</label> </div> <one-button class="one-button btn-ghost btn-black btn" @click="editForRemoveItems"> Remove</one-button> </div> </div> </div> <!-- 购物车没有数据 --> <div v-show="!productItemsList.length" class="cart-hint"> <div class="text-misty-gray text-center hint-empty"> <img class="shipping-cart-empty" src="https://image01.oneplus.net/shop/202110/21/1-M00-2E-C3-rB8bwmFxeeOAX3lEAAAFrSNz1a4226.svg" alt=""> </div> <div class="hint-msg text-center"> <p class="font-title text-black">Your shopping cart is empty</p> <p>but it doesn’t have to be.</p> </div> <!-- 用户登录 --> <div class="text-center" v-if="!isShowSignIn"> <a href="https://www.oneplus.com/us/store" class="one-button btn-red frozen btn-shopping">Go Shopping</a> </div> <!-- 用户未登录 --> <div class="text-center flex flex-content-center" v-else> <div><a href="javascript:;" class="one-button btn-red btn-ghost frozen btn-shopping" @click="onClickShowSign">Sign In</a></div> <div> <a href="https://www.oneplus.com/us/store" tm-eventCategory="Cart Page" tm-eventAction="Go_Shopping" tm-eventLabel="Go shopping" class="one-button btn-red frozen">Go Shopping</a></div> </div> </div> </div> </div> </div> <!-- 推荐商品列表 --> <recommend @add-item-cart="addItemCart"></recommend> <!-- 还未加载完毕动画条 --> <div v-if="!productItemsList.length" class="cart-content-loading trans-bg-loading"> <span class="span"></span> </div> <!-- 底部静态条款 --> <div class="text-center cart-static-tips"> <div class="cart-static-tips-content"> <div class="replace-nav clearfix padding-bottom-4x"> <promise-badge link-tab fb-eventname="FB_Return_policy" fb-btn-name="Replacement" href="https://www.oneplus.com/us/legal/terms-of-sales#return-and-replacement-policy"> <div class="text-black text-strong font-body-1"><span class="ico-replacement"></span><span class="replace-text">Return and Replacement Policy</span></div> </promise-badge> <promise-badge link-tab fb-eventname="FB_Return_policy" fb-btn-name="1 Year warranty" href="https://www.oneplus.com/us/legal/terms-of-sales#limited-warranty-policy"> <div class="text-black text-strong font-body-1"><span class="ico-warranty"></span><span class="replace-text">1 Year Warranty</span></div> </promise-badge> </div> </div> </div> <!-- S 缺货弹窗 --> <one-dialog ref="cartStockDialog" id="cart-stock-dialog" no-title> <div class="text-left error-wrapper"> <p v-if="giftNoStock" class="text-left">Your selected gift is out of stock. Please back to cart and reselect an available gift or delete the invalid gift.</p> <p v-else>Some of your added products are out of stock. Please back to cart to edit or clear invalid items and checkout.</p> </div> <div class="btn-warper"> <new-button class="left-button" v-if="!giftNoStock" type="secondary" @click="closeStockDialog" block>Back to cart</new-button> <new-button v-if="giftNoStock" @click="confirmNoStock" block>Confirm</new-button> <new-button v-else @click="confirmNoStock" id="jump_checkout" link="https://www.oneplus.com/us/checkout/payment" block>Clear invalid items and checkout</new-button> </div> </one-dialog> <!-- E 缺货弹窗 --> <one-dialog ref="signInDialog" :class="{'displayTitle':noTitle}" no-padding> <one-sign :no-check-sign-in="true" :type="1" :is-get-localhost="true" @canceled-account="canceledAccount"> <span slot="sign-in">Sign In</span> <span slot="sign-up" class="text-strong">Sign Up</span> <span slot="forgot-password" class="text-strong">Forgot Password</span> </one-sign> </one-dialog> <!--买赠提醒---> <one-dialog ref="giftTipsDialog" :has-footer="true" :has-confirm="true" :has-reject="true" id="gift-tips-dialog"> <p class="font-body-2">The selected gift will be invalid if you delete the product.</p> </one-dialog> <one-dialog ref="reachAmountTip" :has-footer="true" :has-confirm="true" :has-reject="false" id="reach-amount-dialog"> <p class="font-body-2">Please remove the selected free gift first.</p> </one-dialog> <one-dialog ref="deleteGiftTip" :has-footer="false" id="delete-gift-dialog"> <p class="font-body-2">Please remove your previous invalid gift item before you select another item.</p> </one-dialog> <!--买赠提醒---> <!--S 估价过期提醒 --> <one-dialog ref="tradeUpdateTip" :has-footer="true" confirm-text="Add now" cancel-text="Later" id="trade-update-dialog" @confirm="jumpToPurchase"> Your Exchange device information {{oldPhoneName}} has expired. Please return to the purchase page and add it again. </one-dialog> <valuate-order-expired v-if="popValuateOrderExpired" v-model="popValuateOrderExpired" :expire-valuated-order="expireValuatedOrderList" :cart-type="expireCartType"></valuate-order-expired> <!-- E 估价过期提醒--> <!--S 删除以旧换新弹框 --> <one-dialog ref="removeTradeInConfirmDialog" :has-footer="true" @confirm="confirmRemoveTradeIn"> Are you sure you want to remove the exchange device? </one-dialog> <!--E 删除以旧换新弹框 --> <!-- S 全场买赠组件 --> <one-dialog ref="fullGiftsDialog" class="full-gifts-dialog" :has-footer="false"> <full-gifts v-if="allFullGifts && allFullGifts.items" :gifts-data="allFullGifts" :product-items-list="productItemsList" @remove-item="removeCartItem"></full-gifts> </one-dialog> <!-- E 全场买赠组件 --> <!-- 拆单弹窗 --> <split-order-dialog ref="splitOrderDialog" :warehouse-cart-items="warehouseCartItems"></split-order-dialog> <!--排队自定义弹窗--> <queue-dialog ref="queueDialog" @api-add-to-bag="apiAddToBag"></queue-dialog> </main> <script> // 控制客服悬浮入口是否显示 window.customerServiceShow = true var CART_TIPS = { free: "Free", freeShop: "Eligible for free shipping.", freeShop1: "You are", freeShop2: "away from free shipping." }; var cartApiList = { batch: "/xman/cart/batch-add", update: "/xman/cart/update", cartqty: "/xman/cart/cartqty", recoms: "/xman/cart/recoms", recommend: "/xman/recommend/cart", init: "/xman/cart/index", clean: "/xman/cart/clean", del: "/xman/cart/batch-delete", removeCoupon: "jcart/checkout_cart/removeCoupon", checkInvite: "/xman/invite/check-cart-invite", getGifts: "/xman/cart/cart-gift-info", checkGifts: "/xman/cart/check-cart-gift-status", checkChange: "/xman/cart/check-cart-gift-change", addSkuGift: "/xman/cart/batch-add-gift", deleteTrade: "/xman/cart/delete-evaluate-order" }; var cartData = { maxNumber: 40, isShowMemberTag:false }; var moneyFormats = { ca_en: { symbol: "CA$", // default currency symbol is '$' format: "%s %v", // controls output: %s = symbol, %v = value/number (can be object: see below) decimal: ".", // decimal point separator thousand: ",", // thousands separator precision: 2 // decimal places }, ca_fr: { symbol: "$CA", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, cz: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, dk: { symbol: "kr.", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, at: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, be_nl: { symbol: "€", format: "%s %v", decimal: ",", thousand: ".", precision: 2 }, be_fr: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, bg: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, cy_tr: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, cy_gr: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, de: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, ee: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, es: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, fi: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, fr: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, gr: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, hr: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, ie: { symbol: "€", format: "%s%v", decimal: ".", thousand: ",", precision: 2 }, it: { symbol: "€", format: "%s %v", decimal: ",", thousand: ".", precision: 2 }, lt: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, lu_fr: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, lu_de: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, lv: { symbol: "€", format: "%s%v", decimal: ",", thousand: " ", precision: 2 }, mt: { symbol: "€", format: "%s%v", decimal: ".", thousand: ",", precision: 2 }, nl: { symbol: "€", format: "%s %v", decimal: ",", thousand: ".", precision: 2 }, pt: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, ro: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, si: { symbol: "€", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, sk: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, uk: { symbol: "£", format: "%s%v", decimal: ".", thousand: ",", precision: 2 }, hk: { symbol: "HK$", format: "%s %v", decimal: ".", thousand: ",", precision: 2 }, hk_en: { symbol: "HK$", format: "%s %v", decimal: ".", thousand: ",", precision: 2 }, hu: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, in: { symbol: "₹", format: "%s %v", decimal: ".", thousand: ",", precision: 0 }, id: { symbol: "Rp", format: "%s%v", decimal: ",", thousand: ".", precision: 2 }, my: { symbol: "RM", format: "%s%v", decimal: ".", thousand: ",", precision: 2 }, pl: { symbol: "€", format: "%v %s", decimal: ",", thousand: " ", precision: 2 }, se: { symbol: "kr", format: "%v %s", decimal: ",", thousand: ".", precision: 2 }, sg: { symbol: "S$", format: "%s%v", decimal: ".", thousand: ",", precision: 2 }, us: { symbol: "$", format: "%s%v", decimal: ".", thousand: ",", precision: 2 }, au: { symbol: "A$", format: "%s%v", decimal: ".", thousand: ",", precision: 2 } }; var queueSettings = { interval: 5000, // 间隔时间 intervalFn: function () { // 间隔时间算法,可设置为随机数,间隔时间优先 return Math.random() * 4000 + 1000 // 1000 ~ 5000 }, autoLimit: 5 // 自动尝试次数 }; // 错误码配置 var errCodes = { unlongin: [800, 'ERROR_USER_UNLOGIN'], appeal: ['ERROR_ACCOUNT_ABNORMAL'], queue: ['ERROR_TOKEN_FETCH_FAILED', 60] }; var GLOBAL_PARAMS = { // 排队 queue1: { pc: 'https://image01.oneplus.cn/shop/201909/19/879/c6bff070c180a2f209a49fee20aa94f0.gif', mo: 'https://image01.oneplus.cn/shop/201909/19/879/c6bff070c180a2f209a49fee20aa94f0.gif' }, queue2: { pc: 'https://image01.oneplus.cn/shop/201909/20/1547/2d1b355cbecbc9e11357c0bb36fd2871.png', mo: 'https://image01.oneplus.cn/shop/201909/20/1547/2d1b355cbecbc9e11357c0bb36fd2871.png' } }; </script> <script id="floating-data-translation" type="application/json"> { "whatsAppUrlApp": "https://oneplus.custhelp.com/app/chat/chat_launch?channel=1", "whatsAppUrl": "https://oneplus.custhelp.com/app/chat/chat_launch?channel=2" } </script> <script type="application/json" id="data-sign-in"> { "signUpTitle":"Welcome", "signInTips":"Or continue with your social account", "defaultUrl":"https://www.oneplus.com/us", "forgotLink":"https://www.oneplus.com/us/account/forgot-password", "googleUrl":"https://account.oneplus.com/snslogin/google", "facebookUrl":"https://account.oneplus.com/snslogin/facebook", "signUpLink":"https://www.oneplus.com/us/account/sign-up", "whatsappLink":"https://wa.me/12063398988", "verifyEmailLink":"https://www.oneplus.com/us/account/confirm-email", "emailErrorTip":"Please ensure the email follows this format: name@example.com", "emailEmptyErrorTip":"Please enter a valid email address.", "emailPatternErrorTip":"Please ensure the email follows this format: name@example.com", "emailUnConfirmTip_0":"Your account may not be confirmed. Check your email for the confirmation link. Please &nbsp;&nbsp;<a href=\"", "emailUnConfirmTip_1":"\" class=\"link-action link-underline\">Confirm</a>", "emailNoExistedTip_0":"The email no existed. Please &nbsp;&nbsp;<a href=\"", "emailNoExistedTip_1":"\" class=\"link-action link-underline\">Sign up</a>", "emailDeactivatedErrorTip":"The email deactivated", "pwdErrorTip":"Password does not meet minimal requirements.", "patternPwdErrorTip":"Password does not meet minimal requirements.", "pwdEmptyErrorTip":"Please enter a valid password", "pwdNoMatchError":"Passowrd or email invalid. please try again", "paramsError":"Passowrd or email invalid. please try again", "tooManyAttemptsErrorTip":"too Many Attempts ,Please try again later", "googleVerifyErrorTip":"google verify error,please try again", "kindlyRemind":"Kindly Remind", "richContentDialogTip":"Login failed. Your account is set to be deactivated. Please reactivate your account before logging in.", "Confirm":"Close window", "Cancel":"Reactive account", "recaptcha":{ "size":"invisible", "tabindex":100 } } </script> <script type="application/json" id="data-translation"> { "valuateOrderExpired": { "title": "", "confirmText": "Confirm", "message": "We're sorry that the old device value has just changed. please refresh the page to update your cart." }, "pick-up-text": { "dialog-title": "Some products are unavailable.", "content-title": "Your order contains products that cannot be delivered at this time. Here's what can be delivered to you.", "back-cart": "Back to cart", "available-product": "Available Products:" }, "invitionMark": "Invitation", "errorToken": "You’re in line to complete your purchase. Please be patient and do not refresh.", "gift": { "giftNoStock": "Sorry,the gift has no sufficient stock", "freePrice": "Free", "chooseGiftTxt": "Free Gift", "change": "Change", "done": "Done", "add": "Add", "remove": "Remove", "outOfStock": "Out Of Stock", "notSale": "Not Sale", "giftBuyTypeTxt": "Gift", "ChooseFreeGift": "Choose a Free Gift", "chooseFixedGiftTxt":"Fixed Gift", "chooseFreeTxt":"Optional Gift", "fixedGiftTxt" : "Fixed Gift" }, "edit": "Edit", "cancel":"Cancel", "outOfStock": "Out Of Stock", "appExclusive": "APP Exclusive Discount", "limited-stock": "Limited stock", "add-to-cart": "Add to Cart", "clearAll": "Clear All", "insurance":"Insurance", "clearDesc": "Are you sure to empty all expired goods?", "unSaleTitle": "The following items cannot be purchased", "recomTitle": "You Might Also Like", "show-more": "Show more", "isDeviceMethod":false, "isTradeInDevice": true, "isTradeInBonus": true, "trade-in": { "device": "Device", "device-value": "Device value", "tips": "", "device-total":"Trade-in value:", "limited-bonus": "Limited-time bonus", "exchange": "Trade-in", "deferred-total":"Trade-in Value", "deferred-rcc-bonus":"RCC exclusive cashback", "rcc-bonus":"RCC exclusive bonus", "euro-value":"Currently only support Euro payments, equivalent to {price}", "device-method":"Exchange method", "deferred-title":"Flexi exchange", "instant-title":"Instant exchange", "expired-desc": " Your Exchange device information ({name}) has expired. Please re-add the device." }, "tips": { "removeOutOfStock": "The product is invalid and can't be purchased, you can browse other products", "removeSelectGift": "Please remove the selected free gift first.", "removeInvalidGift": "Please remove your previous invalid gift item before you select another item.", "addFullGiftsSuccess": "Gift added !" }, "flashSale":{ "cartHint":"This product is in Flash Sale, you can buy it to product detail page.", "titleUrl": "https://image01.oneplus.net/shop/202110/29/1-M00-2F-31-rB8bwmF7y76AYE47AAATFGfFNDM136.svg", "cartH5PicUrl":"https://image01.oneplus.net/shop/202111/01/1-M00-2F-56-rB8bwmF_TYeAZfVQAAD_UQow4Yg814.svg", "cartPcPicUrl":"https://image01.oneplus.net/shop/202111/03/1-M00-2F-74-rB8LB2GB8yCARjuoAAOa72ClOTY582.svg" }, "queue": { "queue-text": "Adding items to shopping cart... Attempt:", "hide": "Hide", "user-tips": "A large number of customers are accessing the system right now. We're trying our best to automatically add your selected items to your shopping cart. Please bear with us!", "cancel-purchase": "Cancel Purchase", "cancel": "cancel", "try-again": "Try Again", "try-text": "There are too many people purchasing right now! Please try again!" }, "dtbCommon": { "switchToPersonalTitle": "Switch to personal account", "switchToPersonalDesc": "You're in Business Mode right now. Price for items might be different for retailers and individual users. Do you want to switch to Personal Mode and continue?", "switchToPersonal": "Switch to Personal Mode", "shopAsRetailer": "Shop as Retailer" }, "group-offer-map": { "Senior": "Senior Exclusive", "student": "Student Exclusive", "Teacher": "Teacher Exclusive", "Military": "Military Exclusive", "Police and Firefighters": "Police and Firefighters Exclusive", "Healthcare workers": "Healthcare workers Exclusive", "Transport Staff": "Transport Staff Exclusive", "Supermarket staff": "Supermarket staff Exclusive", "Postal and delivery staff": "Postal and delivery staff Exclusive", "For age over 60S": "For age over 60S Exclusive", "Medical Professional": "Medical Professional Exclusive", "First Responder": "First Responder Exclusive", "Age": "Age Exclusive", "Recent Mover": "Recent Mover Exclusive", "Under 26s:15-25": "Under 26s: 15-25 Exclusive", "employee": "Employee Exclusive", "0": "Explore Exclusive", "1": "Insider Exclusive", "2": "Elite Exclusive", "3": "Supreme Exclusive" } } </script> <script type="application/json" id="add-group-text-maps"> { "discountProgram": { "Senior": "Senior Discount Channel" }, "discountProgramExist": { "Senior": "You can enjoy senior discount" } } </script> <script type="application/json" id="data-group-name"> { "discount": { "exit": "Exit", "active": "Active", "educationChannelText": "Student Discount Channel", "Teacher": "Teacher Discount Channel", "Military": "Military Discount Channel", "Police and Firefighters": "Police & Firefighters Discount Channel", "Healthcare workers": "Healthcare workers Discount Channel", "Transport Staff": "Transport Staff Discount Channel", "Supermarket staff": "Supermarket staff Discount Channel", "Postal and delivery staff": "Postal & delivery staff Discount Channel", "For age over 60S": "For age over 60S Discount Channel", "Medical Professional": "Medical Professional Discount Channel", "First Responder": "First Responder Discount Channel", "Age": "Age Discount Channel", "Recent Mover": "Recent Mover Discount Channel", "Under 26s:15-25": "Youth Discount Channel", "employee": "Employee Discounts Program" }, "discountExist": { "educationChannelText": "You can enjoy student discount", "Teacher": "You can enjoy teacher discount", "Military": "You can enjoy military discount", "Police and Firefighters": "You can enjoy police & firefighters discount", "Healthcare workers": "You can enjoy healthcare workers discount", "Transport Staff": "You can enjoy transport staff discount", "Supermarket staff": "You can enjoy supermarket staff discount", "Postal and delivery staff": "You can enjoy postal & delivery staff discount", "For age over 60S": "You can enjoy age over 60S discount", "Medical Professional": "You can enjoy medical professional discount", "First Responder": "You can enjoy first responder discount", "Age": "You can enjoy age discount", "Recent Mover": "You can enjoy recent mover discount", "Under 26s:15-25": "You can enjoy youth discount", "employee": "You can enjoy employee discount" }, "iconUrls": { "Senior": "https://image01.oneplus.net/media/202410/10/c416ec979a57a784b36d8669340099c1.svg", "student": "https://image01.oneplus.net/ebp/202404/12/1-M00-4A-25-CkvTlmYY__KAL3J0AAAGhdoftwI895.svg", "Teacher": "https://image01.oneplus.net/ebp/202404/12/1-M00-4A-25-CkvTlmYY__KAL3J0AAAGhdoftwI895.svg", "Military": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Police and Firefighters": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Healthcare workers": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Transport Staff": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Supermarket staff": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Postal and delivery staff": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "For age over 60S": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Medical Professional": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "First Responder": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Age": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Recent Mover": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "Under 26s:15-25": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg", "employee": "https://image01.oneplus.net/ebp/202404/12/1-M00-49-90-CkvLh2YY__OAPu2lAAAEitk8bwM165.svg" } } </script> <script> ;; window.addEventListener('load', function () { var $hint = document.querySelector('.as-finance-hint'); $hint && $hint.classList.remove('hidden'); (function addAffirmScript () { var _affirm_config = { public_api_key: 'ZCV7ILFPHLC6NE1X', script: 'https://cdn1.affirm.com/js/v2/affirm.js' }; (function(l,g,m,e,a,f,b){var d,c=l[m]||{},h=document.createElement(f),n=document.getElementsByTagName(f)[0],k=function(a,b,c){return function(){a[b]._.push([c,arguments])}};c[e]=k(c,e,"set");d=c[e];c[a]={};c[a]._=[];d._=[];c[a][b]=k(c,a,b);a=0;for(b="set add save post open empty reset on off trigger ready setProduct".split(" ");a<b.length;a++)d[b[a]]=k(c,e,b[a]);a=0;for(b=["get","token","url","items"];a<b.length;a++)d[b[a]]=function(){};h.async=!0;h.src=g[f];n.parentNode.insertBefore(h,n);delete g[f];d(g);l[m]=c})(window,_affirm_config,"affirm","checkout","ui","script","ready"); })() }) </script> <script> window.MemberTierMap = { '2_1': 'https://image01.oneplus.net/shop/202007/03/1-M00-15-B3-rB8LB17-pxuAGUjRAAAFgHagJQA478.png' } window.MemberLearnMoreHref = 'https://www.oneplus.com/redcableclub?from=nordearly' </script> <script type="application/json" id="data-email-list"> ["@gmail.com","@hotmail.com","@yahoo.com","@outlook.com","@yahoo.co.in","@googlemail.com","@web.de","@gmx.de","@live.com","@rediffmail.com","@hotmail.co.uk","@hotmail.fr","@yahoo.in","@hotmail.it","@ymail.com","@msn.com","@yahoo.co.uk","@mail.ru","@aol.com","@qq.com","@163.com","@126.com","@sina.com","@hotmail.com","@sohu.com","@foxmail.com","@yeah.net","@vip.qq.com","@139.com","@hggame.com","@love11.com","@buston.cn","@kcidc.com","@sfba.cn","@hensao.com","@tour0.com","@ytgame.com","@pay55.com","@oneplus.net","@oneplus.cn"] </script> <div id="customer-service-entrance" class="customer-service-entrance"> <a href="javascript:;" class="icon-btn" onclick="onClickCustomerServiceEnt()" > <div class="icon-btn-svg"> <img src="https://opsg-img-cdn-gl.heytapimg.com/epb/202210/12/NujgdjSAIGaFvgnH.svg" alt=""> </div> </a> </div> <style> .customer-service-entrance { z-index: 99; position: fixed; bottom: 96px; left: 64px; width: 48px; height: 48px; text-align: center; border-radius: 24px; box-shadow: 0px 5px 12px 0px rgba(0,0,0,0.08); background: #fff; display: none !important; } .customer-service-entrance .icon-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: 24px; } .customer-service-entrance .icon-btn-svg { width: 24px; height: 24px; display: flex; } @media screen and (max-width: 649px) { .customer-service-entrance { left: unset; bottom: 64px; right: 16px; width: 40px; height: 40px; } } </style> <script> window.addEventListener('DOMContentLoaded', () => { // 页面通过配置window.customerServiceShow来决定是否展示悬浮入口 var isShow = window.customerServiceShow var customerDom = document.getElementById('customer-service-entrance') if (isShow) customerDom.style.display = 'block' }) function onClickCustomerServiceEnt () { // 埋点 window.dataLayer.push({ event: 'ga4Event', event_name: 'Live_chat', event_parameters: { current_screen: window.location.href, page_content: window.location.href, module: 'Live_chat_entry', button_name: '', title: 2 } }) // app与web区分跳转链接 var chat_launch_url = '' if (window.OnePlusClientBaseJS !== undefined) { chat_launch_url = 'https://oneplus.custhelp.com/app/chat/chat_launch?channel=1' } else { chat_launch_url = 'https://oneplus.custhelp.com/app/chat/chat_launch?channel=2' } window.open(chat_launch_url, 'blank') } </script> <div id="page-footer" class="hidden-in-member-app hidden-in-store-app web-6-class"> <footer id="footer"> <div class="container-text"> <nav class="nav-bread hidden-in-store-app"> <div class="home"> <a class="font-body-md" tm-eventCategory="Bread crumb" tm-eventAction="pageName" tm-eventLabel="Back to home" href="https://www.oneplus.com/us/" > Home </a> </div> <ol class="bread-ol"> <li> <a class="font-body-md" href="https://www.oneplus.com/us/store" > <span>Store</span> </a> </li> <li> <span>Shopping Cart</span> </li> </ol> </nav> </div> <div class="container-text"> <div class="footer-nav"> <dl v-for="(item, index) in products" :key="index"> <dt class="nav-trigger collapsed font-body-md">{{item.title}}<i class="icon-fold"></i></dt> <dd class="nav-slide"> <ul> <li v-for="(product, index1) in item.productList" :key="index" class="font-note-sm white-55"> <a tm-eventCategory="Bottom navigation" tm-eventAction="pageName" tm-eventLabel="Phones+OnePlus 11 5G" :href="product.link">{{product.name}}</a> </li> </ul> </dd> </dl> </div> </div> <div class="container-text"> <!-- 中间层 一套pc 一套移动 --> <div> <!-- 大屏1024+ --> <div class="contact-us" v-if="!isFooterXs"> <div class="payments-img-box"> <template v-if="countryCookie !== 'in'"> <img v-for="item in paymentIcons" :src="item" :key="item" alt=""> </template> <template v-else> <div v-for="item in indiaIconList" :key="item.name" class="font-note-sm"> <i :class="item.icon"></i>{{ item.name }} </div> </template> </div> <div class="customer-support"> <p class="social-media"> <a tm-eventCategory="Social media" tm-eventAction="pageName" tm-eventLabel="Facebook" href="https://facebook.com/oneplus" class="link-gray" target="_blank"><i class="ico ico-facebook-solid svg-icon"></i></a> <a tm-eventCategory="Social media" tm-eventAction="pageName" tm-eventLabel="Twitter" href="https://twitter.com/oneplus" class="link-gray" target="_blank"><i class="ico ico-twitter-solid svg-icon"></i></a> <a tm-eventCategory="Social media" tm-eventAction="pageName" tm-eventLabel="Instagram" href="https://www.instagram.com/oneplus" class="link-gray" target="_blank"><i class="ico ico-instagram-footer svg-icon"></i></a> </p> <div class="div-line"></div> <div class="font-body-md white-95 open-chat-online-box"> Get Support From OnePlus <i class="right-icon ico ico-arrow-right-footer"></i> <!-- 浮窗 --> <div class="chat-online-box"> <!-- 欧美客服 --> <div id="customer-service-footer" onclick="onClickCustomerService()" class="item-box" style="display: none;"> <div class="font-body-md left-msg-box"> <div class="icon-title"> <i class="icon-btn-svg"> <img src="https://opsg-img-cdn-gl.heytapimg.com/epb/202210/12/NujgdjSAIGaFvgnH.svg" alt=""> </i> <span>Contact us</span> </div> <div class="desc font-note-sm">9 am - 9 pm EST, Mon to Fri; 10 am - 8 pm EST, Sat to Sun</div> </div> <div class="icon-right-box"> <i class="ico ico-arrow-right-footer"></i> </div> </div> <div v-if="siteBol && ONLINE_CHAT" class="online-chat" id="live-chat-footer" @click="onlineService" class="item-box"> <div class="font-body-md left-msg-box"> <div class="icon-title"> <i class="ico ico-Message"></i> <span>Live Chat</span> </div> </div> <div class="icon-right-box"> <i class="ico ico-arrow-right-footer"></i> </div> </div> <!-- <div class="item-box" id="chat-old-class" style="display: none;"> <div class="font-body-md left-msg-box"> <div class="icon-title"> <i class="ico ico-tab_Communication_Call "></i> <a class="black95" :href="getHrefTel(phoneTimeObj.phoneNumber)"><span>{{phoneTimeObj.phoneNumber}}</span></a> </div> <div v-for="(item,index) in phoneTimeObj.phoneTime" :key="index" class="desc font-note-sm">{{item}}</div> </div> </div> --> <div class="item-box"> <div class="font-body-md left-msg-box"> <a href="https://oneplus.custhelp.com/app/ask"> <div class="icon-title black95"> <i class="ico ico-Mail "></i> <span>Email Us</span> </div> <div class="desc font-note-sm">support@oneplus.com</div> </a> </div> <div class="icon-right-box"> <i class="ico ico-arrow-right-footer"></i> </div> </div> </div> </div> </div> </div> <!-- 1024- --> <div v-else class="contact-us-xs"> <div class="customer-support" @click="openChatLiveDialog"> <div class="font-body-md white-95 open-chat-online-box"> Get Support From OnePlus <i class="right-icon ico ico-arrow-right-footer"></i> </div> </div> <div class="media-site"> <p class="social-media"> <a tm-eventCategory="Social media" tm-eventAction="pageName" tm-eventLabel="Facebook" href="https://facebook.com/oneplus" class="link-gray" target="_blank"><i class="ico ico-facebook-solid svg-icon"></i></a> <a tm-eventCategory="Social media" tm-eventAction="pageName" tm-eventLabel="Twitter" href="https://twitter.com/oneplus" class="link-gray" target="_blank"><i class="ico ico-twitter-solid svg-icon"></i></a> <a tm-eventCategory="Social media" tm-eventAction="pageName" tm-eventLabel="Instagram" href="https://www.instagram.com/oneplus" class="link-gray" target="_blank"><i class="ico ico-instagram-footer svg-icon"></i></a> </p> <div @click="openChooseStore" class="site"><i class="ico ico-Language"></i>United States (English)</div> </div> <div class="payments-img-box"> <template v-if="countryCookie !== 'in'"> <img v-for="item in paymentIcons" :src="item" :key="item" alt=""> </template> <template v-else> <div v-for="item in indiaIconList" :key="item.name" class="font-note-sm"> <i :class="item.icon"></i>{{ item.name }} </div> </template> </div> </div> </div> <!-- 下层 一套pc 一套移动 --> <div v-if="!isFooterXs" class="bottom-container"> <!-- <div class="div-line"></div> --> <div class="copy-left link font-descriptions"> <ul class="font-note-sm"> <li><a href="https://www.oneplus.com/us/legal/us-privacy-policy">Privacy Policy</a></li> <li><a href="https://www.oneplus.com/us/legal/state-privacy-policy">State Privacy Policy</a></li> <li><a href="https://www.oneplus.com/us/legal/state-privacy-policy/do-not-sell-or-share-my-personal-information">Do Not Sell or Share My Personal Information </a></li> <li><a href="https://www.oneplus.com/us/legal/user-agreement">User Agreement</a></li> <li><a href="https://www.oneplus.com/us/legal/terms-of-sales">Terms of Sale</a></li> <li><a href="https://security.oneplus.com" rel="nofollow me noopener noreferrer">Security Response Center (OneSRC)</a></li> </ul> <div class="reserved font-note-sm">© 2013 - 2025 OnePlus. All Rights Reserved.</div> <!-- <div class="trustee-area"> <a href="//privacy.truste.com/privacy-seal/validation?rid=6a741fd9-5e13-4555-8e7b-0182e4cc7ed2" rel="me noopener noreferrer" target="_blank"> <img style="border: none" src="https://image01.oneplus.net/shop/202307/14/1-M00-46-89-CkvTlmSxGVyABjEvAAAMWxG1ttA783.png" alt="TRUSTe"> </a> </div> --> </div> <div class="copy-right" @click="openChooseStore"> United States (English) <i class="ico ico-Language"></i> </div> </div> <div v-else class="bottom-container-xs"> <ul class="copy-top font-note-sm"> <li><a href="https://www.oneplus.com/us/legal/us-privacy-policy">Privacy Policy</a></li> <li><a href="https://www.oneplus.com/us/legal/state-privacy-policy">State Privacy Policy</a></li> <li><a href="https://www.oneplus.com/us/legal/state-privacy-policy/do-not-sell-or-share-my-personal-information">Do Not Sell or Share My Personal Information </a></li> <li><a href="https://www.oneplus.com/us/legal/user-agreement">User Agreement</a></li> <li><a href="https://www.oneplus.com/us/legal/terms-of-sales">Terms of Sale</a></li> <li><a href="mailto:security@oneplus.com" rel="nofollow me noopener noreferrer">Security Feedback</a></li> </ul> <div class="copy-middle"> <div class="reserved font-note-sm">© 2013 - 2025 OnePlus. All Rights Reserved.</div> <!-- <div class="trustee-area"> <a href="//privacy.truste.com/privacy-seal/validation?rid=6a741fd9-5e13-4555-8e7b-0182e4cc7ed2" rel="me noopener noreferrer" target="_blank"> <img style="border: none" src="https://image01.oneplus.net/shop/202307/14/1-M00-46-89-CkvTlmSxGVyABjEvAAAMWxG1ttA783.png" alt="TRUSTe"> </a> </div> --> </div> </div> </div> <new-dialog no-padding v-model="chooseStoredialogVisable" :show-cancel-button="false" :show-confirm-button="false" :duration="0.24" :is-need-transition="true" :title="chooseStoredialogVisableTitle" size="large" class="chosse-store-box-dialog-wrapper"> <choose-store></choose-store> </new-dialog> <new-dialog v-if="isFooterXs" no-padding v-model="dialogVisable" :show-cancel-button="false" :show-confirm-button="false" :is-show-close-icon="false" :is-use-button-slot="true" class="chat-online-box-dialog-wrapper"> <div class="chat-online-box-dialog"> <div class="chat-online-box"> <!-- 欧美客服 --> <div id="customer-service-footer" onclick="onClickCustomerService()" class="item-box" style="display: none;"> <div class="font-body-md left-msg-box"> <div class="chat-box"> <div class="icon-title"> <i class="icon-btn-svg"> <img src="https://opsg-img-cdn-gl.heytapimg.com/epb/202210/12/NujgdjSAIGaFvgnH.svg" alt=""> </i> <span>Contact us</span> </div> <div class="desc font-note-sm">9 am - 9 pm EST, Mon to Fri; 10 am - 8 pm EST, Sat to Sun</div> </div> <div class="icon-right-box"> <i class="ico ico-arrow-right-footer"></i> </div> </div> </div> <!-- 印度 --> <div v-if="countryCookie === 'in' && isFooterXs" class="item-box"> <div class="font-body-lg left-msg-box"> <div class="icon-title"> <i class="ico ico-WhatsApp"></i> <a class="black95" href="https://www.oneplus.com/us/support/contact/whatsapp"><span>WhatsApp</span></a> </div> </div> <div class="icon-right-box"> <i class="ico ico-arrow-right-footer"></i> </div> </div> <div v-else-if="siteBol && ONLINE_CHAT" id="live-chat-footer" @click="onlineService" class="item-box"> <div class="font-body-lg left-msg-box"> <div class="icon-title"> <i class="ico ico-Message"></i> <span>Live Chat</span> </div> </div> <div> <i class="ico ico-arrow-right-footer"></i> </div> </div> <!-- <div class="item-box" id="chat-old-class" style="display: none;"> <div class="font-body-lg left-msg-box"> <div class="icon-title"> <i class="ico ico-tab_Communication_Call "></i> <a class="black95" :href="getHrefTel(phoneTimeObj.phoneNumber)"><span>{{phoneTimeObj.phoneNumber}}</span></a> </div> <div v-for="(item,index) in phoneTimeObj.phoneTime" :key="index" class="desc font-note-sm">{{item}}</div> </div> <div> <i class="ico ico-arrow-right-footer"></i> </div> </div> --> <div class="item-box"> <div class="font-body-lg left-msg-box"> <div class="icon-title"> <i class="ico ico-Mail "></i> <span>Email Us</span> </div> <div class="desc font-note-sm"><a href="https://oneplus.custhelp.com/app/ask">support@oneplus.com</a></div> </div> <div> <i class="ico ico-arrow-right-footer"></i> </div> </div> </div> </new-dialog> </footer> </div> <script id="footer_time_phone_json" type="application/json" > { "phoneTimeObj": { "phoneNumber": "+1 (833) 777-3633", "phoneTime": [ "9 am - 9 pm EST, Mon to Fri;", "10 am - 8 pm EST, Sat to Sun" ] } } </script> <script id="footer_payment_icons_json" type="application/json" > { "paymentIcons": [ "https://image01.oneplus.net/shop/202306/26/1-M00-45-8C-CkvLh2SY_oSAGH7-AAAX5iaX_00055.svg", "https://image01.oneplus.net/shop/202306/26/1-M00-46-22-CkvTlmSZAt2AA3qdAAAKV2TLG30120.svg", "https://image01.oneplus.net/shop/202306/26/1-M00-45-8C-CkvLh2SY_sCAYzQkAAAGMWOABJI491.svg", "https://image01.oneplus.net/shop/202306/26/1-M00-45-8C-CkvLh2SY_smAHSAeAAAUiYSrcbU903.svg", "https://image01.oneplus.net/shop/202306/26/1-M00-46-22-CkvTlmSY_tCAaAV5AAAYILEeNHs553.svg", "https://image01.oneplus.net/shop/202306/26/1-M00-46-22-CkvTlmSY_tWAUmb5AAAfRsSQRfw761.svg" ] } </script> <style> .web-6-class #footer .chat-online-box-dialog-wrapper .chat-online-box-dialog #customer-service-footer .left-msg-box { display: flex; width: 100%; justify-content: space-between; align-items: center; } </style> <script> window.addEventListener('DOMContentLoaded', () => { // 页面通过配置window.customerServiceShow来决定是否展示悬浮入口 var isShow = window.customerServiceShow var customerDom = document.getElementById('customer-service-footer') if (isShow) customerDom.style.display = 'flex' }) function onClickCustomerService() { // 埋点 window.dataLayer.push({ event: 'ga4Event', event_name: 'Live_chat', event_parameters: { current_screen: window.location.href, page_content: window.location.href, module: 'Live_chat_entry', button_name: document.querySelector('#customer-service-footer .icon-title span').innerText, title: 1 } }) // app与web区分跳转链接 let chat_launch_url = '' if (window.OnePlusClientBaseJS !== undefined) { chat_launch_url = 'https://oneplus.custhelp.com/app/chat/chat_launch?channel=1' } else { chat_launch_url = 'https://oneplus.custhelp.com/app/chat/chat_launch?channel=2' } window.open(chat_launch_url, 'blank') } </script> <script id="footer_json_data" type="application/json" > { "products": [ { "title": "Phones", "productList": [ { "name": "OnePlus 13", "link": "https://www.oneplus.com/us/oneplus-13" }, { "name": "OnePlus 13R", "link": "https://www.oneplus.com/us/oneplus-13r" }, { "name": "OnePlus 12", "link": "https://www.oneplus.com/us/oneplus-12" }, { "name": "OnePlus 12R", "link": "https://www.oneplus.com/us/oneplus-12r" }, { "name": "OnePlus Open", "link": "https://www.oneplus.com/us/oneplus-open" }, { "name": "OnePlus Nord N30 5G", "link": "https://www.oneplus.com/us/oneplus-n30-5g" } ] }, { "title": "Accessories", "productList": [ { "name": "Audio", "link": "https://www.oneplus.com/us/store/audio" }, { "name": "Tablet", "link": "https://www.oneplus.com/us/store/tablet" }, { "name": "Wearables", "link": "https://www.oneplus.com/us/store/wearables" }, { "name": "Case & Protection", "link": "https://www.oneplus.com/us/store/cases-protection" }, { "name": "Power & Cables", "link": "https://www.oneplus.com/us/store/power-cables" } ] }, { "title": "Programs", "productList": [ { "name": "Invite Friends", "link": "https://www.oneplus.com/us/invite-friends?activityId=21" }, { "name": "Trade-in Program", "link": "https://www.oneplus.com/us/trade-in" }, { "name": "Student Discount Program", "link": "https://www.oneplus.com/us/discount-program?verify=education_program" }, { "name": "Graduates Discount Program", "link": "https://www.oneplus.com/us/graduates-groups?verify=graduate" }, { "name": "Employee Discount Program", "link": "https://www.oneplus.com/us/employee-groups?verify=employee" }, { "name": "Affiliates Program", "link": "https://www.oneplus.com/us/affiliate-program" } ] }, { "title": "Support", "productList": [ { "name": "OnePlus Store app", "link": "https://www.oneplus.com/us/store-app" }, { "name": "Shopping FAQs", "link": "https://www.oneplus.com/us/support/shopping-help/details" }, { "name": "User Manuals", "link": "https://www.oneplus.com/us/support/manuals" }, { "name": "Software Upgrade", "link": "https://www.oneplus.com/us/support/softwareupgrade" }, { "name": "Repair Service", "link": "https://www.oneplus.com/us/support/repair" }, { "name": "Contact Us", "link": "https://service.oneplus.com/us/contact" } ] }, { "title": "Company", "productList": [ { "name": "About OnePlus", "link": "https://www.oneplus.com/us/brand" }, { "name": "Community", "link": "https://forums.oneplus.com" }, { "name": "Sustainability", "link": "https://www.oneplus.com/us/sustainability" }, { "name": "Accessibility", "link": "https://www.oneplus.com/us/accessibility" }, { "name": "Press", "link": "https://www.oneplus.com/us/press" }, { "name": "Featured Stories", "link": "https://www.oneplus.com/us/blog" } ] } ] } </script> <script id="online-chat-data" type="application/json"> { "whatsAppUrlApp": "https://oneplus.custhelp.com/app/chat/chat_launch?channel=1", "whatsAppUrl": "https://oneplus.custhelp.com/app/chat/chat_launch?channel=2", "chatTitle": "Need shopping help?", "chatSubTitle": "9 am - 9 pm EST, Mon to Fri;<br/>10 am - 8 pm EST, Sat to Sun", "chatEmptyTitle": "Need shopping help?", "chatEmptySubTitle": "9 am - 9 pm EST, Mon to Fri;<br/>10 am - 8 pm EST, Sat to Sun", "customerLogo": "https://www.oneplus.com/content/dam/oasis/page/2024/imagine/na-service.png", "times": 4000, "waitTimes": 4000, "isShowAlert": true } </script> <script crossorigin src="https://cdn.opstatics.com/store/20170907/shopping-cart/index.js?v=1739957465703"></script> <script type="application/json" id="common-scripts"> [ "https://cdn.opstatics.com/store/20170907/assets/scripts/gtm-business.min.js?v=1739957465703", "//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js?v=1739957465703" ] </script> <script> window.newCheckout = { url:"https://www.oneplus.com/us/checkout/payment" } </script> <script> (function () { function async_load_resources() { function _loadScript(src, callback) { var r = false, s = document.createElement('script'); s.type = 'text/javascript'; s.src = src; s.onload = s.onreadystatechange = function () { if (!r && (!this.readyState || this.readyState == 'complete')) { r = true; typeof callback == 'function' && callback(); } }; document.head.appendChild(s); } var scripts = document.getElementById('common-scripts').innerHTML; try { scripts = JSON.parse(scripts); } catch (e) { scripts = []; } for (var i = 0; i < scripts.length; i++) { _loadScript(scripts[i]); } } window.addEventListener('load', async_load_resources); })(); </script> <script type="text/javascript" id="d5c2a8d6b2d8"> (function () { var merchantConfig = { csp: false }; var siteId = "d5c2a8d6b2d8"; function t(t,e){for(var n=t.split(""),r=0;r<n.length;++r)n[r]=String.fromCharCode(n[r].charCodeAt(0)+e);return n.join("")}function e(e){return t(e,-_).replace(/%SN%/g,siteId)}function n(t){try{if("number"==typeof t&&window.location&&window.location.pathname){for(var e=window.location.pathname.split("/"),n=[],r=0;r<=Math.min(e.length-1,Math.abs(t));r++)n.push(e[r]);return n.join("/")||"/"}}catch(t){}return"/"}function r(t){try{Q.ex=t,o()&&-1===Q.ex.indexOf(X.uB)&&(Q.ex+=X.uB),i()&&-1===Q.ex.indexOf(X.uBr)&&(Q.ex+=X.uBr),a()&&-1===Q.ex.indexOf(X.nIL)&&(Q.ex+=X.nIL),window.ftr__snp_cwc||(Q.ex+=X.s),B(Q)}catch(t){}}function o(){var t="no"+"op"+"fn",e="g"+"a",n="n"+"ame";return window[e]&&window[e][n]===t}function i(){return!(!navigator.brave||"function"!=typeof navigator.brave.isBrave)}function a(){return document.currentScript&&document.currentScript.src}function c(t,e){function n(o){try{o.blockedURI===t&&(e(),document.removeEventListener(r,n))}catch(t){document.removeEventListener(r,n)}}var r="securitypolicyviolation";document.addEventListener(r,n),setTimeout(function(){document.removeEventListener(r,n)},2*60*1e3)}function u(t,e,n,r){var o=!1;t="https://"+t,c(t,function(){r(!0),o=!0});var i=document.createElement("script");i.onerror=function(){if(!o)try{r(!1),o=!0}catch(t){}},i.onload=n,i.type="text/javascript",i.id="ftr__script",i.async=!0,i.src=t;var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(i,a)}function f(){tt(X.uDF),setTimeout(w,N,X.uDF)}function s(t,e,n,r){var o=!1,i=new XMLHttpRequest;if(c("https:"+t,function(){n(new Error("CSP Violation"),!0),o=!0}),"//"===t.slice(0,2)&&(t="https:"+t),"withCredentials"in i)i.open("GET",t,!0);else{if("undefined"==typeof XDomainRequest)return;i=new XDomainRequest,i.open("GET",t)}Object.keys(r).forEach(function(t){i.setRequestHeader(t,r[t])}),i.onload=function(){"function"==typeof e&&e(i)},i.onerror=function(t){if("function"==typeof n&&!o)try{n(t,!1),o=!0}catch(t){}},i.onprogress=function(){},i.ontimeout=function(){"function"==typeof n&&n("tim"+"eo"+"ut",!1)},setTimeout(function(){i.send()},0)}function d(t,siteId,e){function n(t){var e=t.toString(16);return e.length%2?"0"+e:e}function r(t){if(t<=0)return"";for(var e="0123456789abcdef",n="",r=0;r<t;r++)n+=e[Math.floor(Math.random()*e.length)];return n}function o(t){for(var e="",r=0;r<t.length;r++)e+=n(t.charCodeAt(r));return e}function i(t){for(var e=t.split(""),n=0;n<e.length;++n)e[n]=String.fromCharCode(255^e[n].charCodeAt(0));return e.join("")}e=e?"1":"0";var a=[];return a.push(t),a.push(siteId),a.push(e),function(t){var e=40,n="";return t.length<e/2&&(n=","+r(e/2-t.length-1)),o(i(t+n))}(a.join(","))}function h(){function t(){F&&(tt(X.dUAL),setTimeout(w,N,X.dUAL))}function e(t,e){r(e?X.uAS+X.uF+X.cP:X.uAS+X.uF),F="F"+"T"+"R"+"A"+"U",setTimeout(w,N,X.uAS)}window.ftr__fdad(t,e)}function l(){function t(){F&&setTimeout(w,N,X.uDAD)}function e(t,e){r(e?X.uDS+X.uF+X.cP:X.uDS+X.uF),F="F"+"T"+"R"+"A"+"U",setTimeout(w,N,X.uDS)}window.ftr__radd(t,e)}function w(t){try{var e;switch(t){case X.uFP:e=O;break;case X.uDF:e=M;break;default:e=F}if(!e)return;var n=function(){try{et(),r(t+X.uS)}catch(t){}},o=function(e){try{et(),Q.td=1*new Date-Q.ts,r(e?t+X.uF+X.cP:t+X.uF),t===X.uFP&&f(),t===X.uDF&&(I?l():h()),t!==X.uAS&&t!==X.dUAL||I||l(),t!==X.uDS&&t!==X.uDAD||I&&h()}catch(t){r(X.eUoe)}};if(e==="F"+"T"+"R"+"A"+"U")return void o();u(e,void 0,n,o)}catch(e){r(t+X.eTlu)}}var g="22ge:t7mj8unkn;1forxgiurqw1qhw2vwdwxv",v="fort",p="erTo",m="ken",_=3;window.ftr__config={m:merchantConfig,s:"24",si:siteId};var y=!1,U=!1,T=v+p+m,x=400*24*60,A=10,S={write:function(t,e,r,o){void 0===o&&(o=!0);var i=0;window.ftr__config&&window.ftr__config.m&&window.ftr__config.m.ckDepth&&(i=window.ftr__config.m.ckDepth);var a,c,u=n(i);if(r?(a=new Date,a.setTime(a.getTime()+60*r*1e3),c="; expires="+a.toGMTString()):c="",!o)return void(document.cookie=escape(t)+"="+escape(e)+c+"; path="+u);for(var f=1,s=document.domain.split("."),d=A,h=!0;h&&s.length>=f&&d>0;){var l=s.slice(-f).join(".");document.cookie=escape(t)+"="+escape(e)+c+"; path="+u+"; domain="+l;var w=S.read(t);null!=w&&w==e||(l="."+l,document.cookie=escape(t)+"="+escape(e)+c+"; path="+u+"; domain="+l),h=-1===document.cookie.indexOf(t+"="+e),f++,d--}},read:function(t){var e=null;try{for(var n=escape(t)+"=",r=document.cookie.split(";"),o=32,i=0;i<r.length;i++){for(var a=r[i];a.charCodeAt(0)===o;)a=a.substring(1,a.length);0===a.indexOf(n)&&(e=unescape(a.substring(n.length,a.length)))}}finally{return e}}},D=window.ftr__config.s;D+="ck";var L=function(t){var e=!1,n=null,r=function(){try{if(!n||!e)return;n.remove&&"function"==typeof n.remove?n.remove():document.head.removeChild(n),e=!1}catch(t){}};document.head&&(!function(){n=document.createElement("link"),n.setAttribute("rel","pre"+"con"+"nect"),n.setAttribute("cros"+"sori"+"gin","anonymous"),n.onload=r,n.onerror=r,n.setAttribute("href",t),document.head.appendChild(n),e=!0}(),setTimeout(r,3e3))},E=e(g||"22ge:t7mj8unkn;1forxgiurqw1qhw2vwdwxv"),C=t("[0Uhtxhvw0LG",-_),R=t("[0Fruuhodwlrq0LG",-_),P=t("Li0Qrqh0Pdwfk",-_),k=e("dss1vlwhshuirupdqfhwhvw1qhw"),q=e("2241414142gqv0txhu|"),F,b="fgq71iruwhu1frp",M=e("(VQ(1"+b+"2vq2(VQ(2vfulsw1mv"),V=e("(VQ(1"+b+"2vqV2(VQ(2vfulsw1mv"),O;window.ftr__config&&window.ftr__config.m&&window.ftr__config.m.fpi&&(O=window.ftr__config.m.fpi+e("2vq2(VQ(2vfulsw1mv"));var I=!1,N=10;window.ftr__startScriptLoad=1*new Date;var j=function(t){var e="ft"+"r:tok"+"enR"+"eady";window.ftr__tt&&clearTimeout(window.ftr__tt),window.ftr__tt=setTimeout(function(){try{delete window.ftr__tt,t+="_tt";var n=document.createEvent("Event");n.initEvent(e,!1,!1),n.detail=t,document.dispatchEvent(n)}catch(t){}},1e3)},B=function(t){var e=function(t){return t||""},n=e(t.id)+"_"+e(t.ts)+"_"+e(t.td)+"_"+e(t.ex)+"_"+e(D),r=x;!isNaN(window.ftr__config.m.ckTTL)&&window.ftr__config.m.ckTTL&&(r=window.ftr__config.m.ckTTL),S.write(T,n,r,!0),j(n),window.ftr__gt=n},G=function(){var t=S.read(T)||"",e=t.split("_"),n=function(t){return e[t]||void 0};return{id:n(0),ts:n(1),td:n(2),ex:n(3),vr:n(4)}},H=function(){for(var t={},e="fgu",n=[],r=0;r<256;r++)n[r]=(r<16?"0":"")+r.toString(16);var o=function(t,e,r,o,i){var a=i?"-":"";return n[255&t]+n[t>>8&255]+n[t>>16&255]+n[t>>24&255]+a+n[255&e]+n[e>>8&255]+a+n[e>>16&15|64]+n[e>>24&255]+a+n[63&r|128]+n[r>>8&255]+a+n[r>>16&255]+n[r>>24&255]+n[255&o]+n[o>>8&255]+n[o>>16&255]+n[o>>24&255]},i=function(){if(window.Uint32Array&&window.crypto&&window.crypto.getRandomValues){var t=new window.Uint32Array(4);return window.crypto.getRandomValues(t),{d0:t[0],d1:t[1],d2:t[2],d3:t[3]}}return{d0:4294967296*Math.random()>>>0,d1:4294967296*Math.random()>>>0,d2:4294967296*Math.random()>>>0,d3:4294967296*Math.random()>>>0}},a=function(){var t="",e=function(t,e){for(var n="",r=t;r>0;--r)n+=e.charAt(1e3*Math.random()%e.length);return n};return t+=e(2,"0123456789"),t+=e(1,"123456789"),t+=e(8,"0123456789")};return t.safeGenerateNoDash=function(){try{var t=i();return o(t.d0,t.d1,t.d2,t.d3,!1)}catch(t){try{return e+a()}catch(t){}}},t.isValidNumericalToken=function(t){return t&&t.toString().length<=11&&t.length>=9&&parseInt(t,10).toString().length<=11&&parseInt(t,10).toString().length>=9},t.isValidUUIDToken=function(t){return t&&32===t.toString().length&&/^[a-z0-9]+$/.test(t)},t.isValidFGUToken=function(t){return 0==t.indexOf(e)&&t.length>=12},t}(),X={uDF:"UDF",dUAL:"dUAL",uAS:"UAS",uDS:"UDS",uDAD:"UDAD",uFP:"UFP",mLd:"1",eTlu:"2",eUoe:"3",uS:"4",uF:"9",tmos:["T5","T10","T15","T30","T60"],tmosSecs:[5,10,15,30,60],bIR:"43",uB:"u",uBr:"b",cP:"c",nIL:"i",s:"s"};try{var Q=G();try{Q.id&&(H.isValidNumericalToken(Q.id)||H.isValidUUIDToken(Q.id)||H.isValidFGUToken(Q.id))?window.ftr__ncd=!1:(Q.id=H.safeGenerateNoDash(),window.ftr__ncd=!0),Q.ts=window.ftr__startScriptLoad,B(Q),window.ftr__snp_cwc=!!S.read(T),window.ftr__snp_cwc||(M=V);for(var $="for"+"ter"+".co"+"m",z="ht"+"tps://c"+"dn9."+$,J="ht"+"tps://"+Q.id+"-"+siteId+".cd"+"n."+$,K="http"+"s://cd"+"n3."+$,W=[z,J,K],Y=0;Y<W.length;Y++)L(W[Y]);var Z=new Array(X.tmosSecs.length),tt=function(t){for(var e=0;e<X.tmosSecs.length;e++)Z[e]=setTimeout(r,1e3*X.tmosSecs[e],t+X.tmos[e])},et=function(){for(var t=0;t<X.tmosSecs.length;t++)clearTimeout(Z[t])};window.ftr__fdad=function(e,n){if(!y){y=!0;var r={};r[P]=d(window.ftr__config.s,siteId,window.ftr__config.m.csp),s(E,function(n){try{var r=n.getAllResponseHeaders().toLowerCase();if(r.indexOf(R.toLowerCase())>=0){var o=n.getResponseHeader(R);window.ftr__altd2=t(atob(o),-_-1)}if(r.indexOf(C.toLowerCase())<0)return;var i=n.getResponseHeader(C),a=t(atob(i),-_-1);if(a){var c=a.split(":");if(c&&2===c.length){for(var u=c[0],f=c[1],s="",d=0,h=0;d<20;++d)s+=d%3>0&&h<12?siteId.charAt(h++):Q.id.charAt(d);var l=f.split(",");if(l.length>1){var w=l[0],g=l[1];F=u+"/"+w+"."+s+"."+g}}}e()}catch(t){}},function(t,e){n&&n(t,e)},r)}},window.ftr__radd=function(t,e){function n(e){try{var n=e.response,r=function(t){function e(t,o,i){try{if(i>=n)return{name:"",nextOffsetToProcess:o,error:"Max pointer dereference depth exceeded"};for(var a=[],c=o,u=t.getUint8(c),f=0;f<r;){if(f++,192==(192&u)){var s=(63&u)<<8|t.getUint8(c+1),d=e(t,s,i+1);if(d.error)return d;var h=d.name;return a.push(h),{name:a.join("."),nextOffsetToProcess:c+2}}if(!(u>0)){if(0!==u)return{name:"",nextOffsetToProcess:c,error:"Unexpected length at the end of name: "+u.toString()};return{name:a.join("."),nextOffsetToProcess:c+1}}for(var l="",w=1;w<=u;w++)l+=String.fromCharCode(t.getUint8(c+w));a.push(l),c+=u+1,u=t.getUint8(c)}return{name:"",nextOffsetToProcess:c,error:"Max iterations exceeded"}}catch(t){return{name:"",nextOffsetToProcess:o,error:"Unexpected error while parsing response: "+t.toString()}}}for(var n=4,r=100,o=16,i=new DataView(t),a=i.getUint16(0),c=i.getUint16(2),u=i.getUint16(4),f=i.getUint16(6),s=i.getUint16(8),d=i.getUint16(10),h=12,l=[],w=0;w<u;w++){var g=e(i,h,0);if(g.error)throw new Error(g.error);if(h=g.nextOffsetToProcess,!Number.isInteger(h))throw new Error("invalid returned offset");var v=g.name,p=i.getUint16(h);h+=2;var m=i.getUint16(h);h+=2,l.push({qname:v,qtype:p,qclass:m})}for(var _=[],w=0;w<f;w++){var g=e(i,h,0);if(g.error)throw new Error(g.error);if(h=g.nextOffsetToProcess,!Number.isInteger(h))throw new Error("invalid returned offset");var y=g.name,U=i.getUint16(h);if(U!==o)throw new Error("Unexpected record type: "+U.toString());h+=2;var T=i.getUint16(h);h+=2;var x=i.getUint32(h);h+=4;var A=i.getUint16(h);h+=2;for(var S="",D=h,L=0;D<h+A&&L<r;){L++;var E=i.getUint8(D);D+=1;S+=(new TextDecoder).decode(t.slice(D,D+E)),D+=E}if(L>=r)throw new Error("Max iterations exceeded while reading TXT data");h+=A,_.push({name:y,type:U,class:T,ttl:x,data:S})}return{transactionId:a,flags:c,questionCount:u,answerCount:f,authorityCount:s,additionalCount:d,questions:l,answers:_}}(n);if(!r)throw new Error("Error parsing DNS response");if(!("answers"in r))throw new Error("Unexpected response");var o=r.answers;if(0===o.length)throw new Error("No answers found");var i=o[0].data;if(i=i.replace(/^"(.*)"$/,"$1"),decodedVal=function(t){var e=40,n=32,r=126;try{for(var o=atob(t),i="",a=0;a<o.length;a++)i+=function(t){var o=t.charCodeAt(0),i=o-e;return i<n&&(i=r-(n-i)+1),String.fromCharCode(i)}(o[a]);return atob(i)}catch(t){return}}(i),!decodedVal)throw new Error("failed to decode the value");var a=function(t){var e="_"+"D"+"L"+"M"+"_",n=t.split(e);if(!(n.length<2)){var r=n[0],o=n[1];if(!(r.split(".").length-1<1))return{jURL:r,eURL:o}}}(decodedVal);if(!a)throw new Error("failed to parse the value");var c=a.jURL,u=a.eURL;F=function(t){for(var e="",n=0,r=0;n<20;++n)e+=n%3>0&&r<12?siteId.charAt(r++):Q.id.charAt(n);return t.replace("/PRM1","").replace("/PRM2","/main.").replace("/PRM3",e).replace("/PRM4",".js")}(c),window.ftr__altd3=u,t()}catch(t){}}function r(t,n){e&&e(t,n)}if(!U){window.ftr__config.m.dr==="N"+"D"+"R"&&e(new Error("N"+"D"+"R"),!1),q&&k||e(new Error("D"+"P"+"P"),!1),U=!0;try{var o=function(t){for(var e=new Uint8Array([0,0]),n=new Uint8Array([1,0]),r=new Uint8Array([0,1]),o=new Uint8Array([0,0]),i=new Uint8Array([0,0]),a=new Uint8Array([0,0]),c=t.split("."),u=[],f=0;f<c.length;f++){var s=c[f];u.push(s.length);for(var d=0;d<s.length;d++)u.push(s.charCodeAt(d))}u.push(0);var h=16,l=new Uint8Array([0,h]),w=new Uint8Array([0,1]),g=new Uint8Array(e.length+n.length+r.length+o.length+i.length+a.length+u.length+l.length+w.length);return g.set(e,0),g.set(n,e.length),g.set(r,e.length+n.length),g.set(o,e.length+n.length+r.length),g.set(i,e.length+n.length+r.length+o.length),g.set(a,e.length+n.length+r.length+o.length+i.length),g.set(u,e.length+n.length+r.length+o.length+i.length+a.length),g.set(l,e.length+n.length+r.length+o.length+i.length+a.length+u.length),g.set(w,e.length+n.length+r.length+o.length+i.length+a.length+u.length+l.length),g}(k);!function(t,e,n,r,o){var i=!1,a=new XMLHttpRequest;if(c("https:"+t,function(){o(new Error("CSP Violation"),!0),i=!0}),"//"===t.slice(0,2)&&(t="https:"+t),"withCredentials"in a)a.open("POST",t,!0);else{if("undefined"==typeof XDomainRequest)return;a=new XDomainRequest,a.open("POST",t)}a.responseType="arraybuffer",a.setRequestHeader("Content-Type",e),a.onload=function(){"function"==typeof r&&r(a)},a.onerror=function(t){if("function"==typeof o&&!i)try{o(t,!1),i=!0}catch(t){}},a.onprogress=function(){},a.ontimeout=function(){"function"==typeof o&&o("tim"+"eo"+"ut",!1)},setTimeout(function(){a.send(n)},0)}(q,"application/dns-message",o,n,r)}catch(t){e(t,!1)}}};var nt=O?X.uFP:X.uDF;tt(nt),setTimeout(w,N,nt)}catch(t){r(X.mLd)}}catch(t){}})(); </script> <script type="application/json" id="show-ppg-section">0</script> <script> var CC_OrgID = "k8vif92e"; var CC_MerchantID = "gphk088010429800"; var CC_CreditEnable = parseInt(1); function addFingerPrint() { var oneplusId = ''; if(document.cookie){ var items = document.cookie.split("; "); for(var i=0; i<items.length; i++){ var item = items[i]; var p = item.indexOf('='); var name = item.substring(0,p); if(name === 'ONEPLUSID') { oneplusId = decodeURIComponent(item.substring(p+1)); } } } var CC_OrgIDv = ((typeof CC_OrgID) != "undefined") ? CC_OrgID : ''; var CC_MerchantIDv = ((typeof CC_MerchantID) != "undefined") ? CC_MerchantID : ''; var CC_SessionID = oneplusId; if(!!CC_SessionID && !document.getElementById('FingerPrintCombox')){ var htmlStr = '<p style="background:url(https://h.online-metrix.net/fp/clear.png?org_id='+CC_OrgIDv+'&amp;session_id='+CC_MerchantIDv+CC_SessionID+'&amp;m=1)"></p><img src="https://h.online-metrix.net/fp/clear.png?org_id='+CC_OrgIDv+'&amp;session_id='+CC_MerchantIDv+CC_SessionID+'&amp;m=2" alt=""> <object type="application/x-shockwave-flash" data="https://h.online-metrix.net/fp/fp.swf?org_id='+CC_OrgIDv+'&amp;session_id='+CC_MerchantIDv+CC_SessionID+'" width="1" height="1" id="thm_fp"><param name="movie" value="https://h.online-metrix.net/fp/fp.swf?org_id='+CC_OrgIDv+'&amp;session_id='+CC_MerchantIDv+CC_SessionID+'" /></object> <script src="https://h.online-metrix.net/fp/check.js?org_id='+CC_OrgIDv+'&amp;session_id='+CC_MerchantIDv+CC_SessionID+'" type="text/javascript"><\/script>'; var fingerPrintCombox = document.createElement('div'); fingerPrintCombox.setAttribute('id','FingerPrintCombox'); fingerPrintCombox.setAttribute('style','width:0;height:0; overflow:hidden;'); fingerPrintCombox.innerHTML = htmlStr; document.body.appendChild(fingerPrintCombox); } //credit card fingerprint if(!!document.getElementById('FingerPrintCombox') && document.getElementById('FingerPrintCombox').getElementsByTagName('script').length){ if(typeof ga == 'function'){ ga('send', 'event', 'Stats', 'Checkout', 'DFLoaded',''+CC_MerchantIDv + CC_SessionID, { nonInteraction: true }); } } } addFingerPrint(); </script> <style> html .bbs-app-env .hidden-in-app { display: block; } html .bbs-app-env .account-list-container .hidden-in-app { display: none; } </style> <script> // firebase 埋点 if ((typeof window.COMMUNITY_APP_ACCOUNT !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN === 'function') || typeof window.OnePlusClientBaseJS !== 'undefined') { function logEvent(name, params) { if (!name) { return; } if (window.AnalyticsWebInterface) { // Call Android interface window.AnalyticsWebInterface.logEvent(name, JSON.stringify(params)); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase) { // Call iOS interface var message = { command: 'logEvent', name: name, parameters: params }; window.webkit.messageHandlers.firebase.postMessage(message); } else { // No Android or iOS interface found console.log("No native APIs found."); } } function setUserProperty(name, value) { if (!name || !value) { return; } if (window.AnalyticsWebInterface) { // Call Android interface window.AnalyticsWebInterface.setUserProperty(name, value); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase) { // Call iOS interface var message = { command: 'setUserProperty', name: name, value: value }; window.webkit.messageHandlers.firebase.postMessage(message); } else { // No Android or iOS interface found console.log("No native APIs found."); } } window.onload = function(){ const screen_key = location.pathname if(typeof window.COMMUNITY_APP_ACCOUNT !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN === 'function'){ logEvent("screen_view", { screen_name: screen_key, screen_class: 'bbs_screen_class'}); } } } </script> <script> function getPageName () { var pathArr = location.pathname.split('/') var urlName = pathArr.concat([]).pop() var pageName = '' if (window.isHome) { // 首页 pageName = 'home' } else if (urlName === 'store') { // 配件主页 pageName = 'store' } else if (/www.+\/store\/phone($|\?)/.test(location.href)) { // 手机列表页 pageName = 'storeProduct' } else if (/www.+\/store\/power-cables($|\?)/.test(location.href)) { // 电源列表页 pageName = 'storeProduct' } else if (/www.+\/store\/cases-protection($|\?)/.test(location.href)) { // 保护壳配件列表页 pageName = 'storeProduct' } else if (/www.+\/store\/audio($|\?)/.test(location.href)) { // 耳机列表页 pageName = 'storeProduct' } else if (/www.+\/store\/bundles($|\?)/.test(location.href)) { // 套装列表页 pageName = 'storeProduct' } else if (/www.+\/store\/gear($|\?)/.test(location.href)) { // 背包列表页 pageName = 'storeProduct' } else if (urlName === 'jcart') { // 购物车页 pageName = 'jcart' } else if (urlName === 'onepage') { // checkout 页 pageName = 'checkout' } else if (location.pathname.indexOf('jcart/falcon/success') >= 0) { // 支付成功页 pageName = 'paymentSuccess' } else if (location.pathname.indexOf('sales/order/history') >= 0 && location.search.indexOf('payment_status=error') >= 0) { // 支付失败页 pageName = 'paymentFail' } else if (urlName.indexOf('oneplus-') === 0 && document.getElementById('data-device')) { // 手机购买页 pageName = 'phoneModels' } else if (document.getElementById('data-recom')) { // 配件购买页 pageName = 'accessoryDetail' } else if (/www.+\/transaction\/pay($|\?)/.test(location.href)) { // 收银台页面 pageName = 'cashRegister' } else if (/\/transaction\/pay($|\?)/.test(location.href)) { pageName = 'cashRegister' } else if (/\/account\//.test(location.href)) { // 账号页 pageName = 'account' } return pageName } const screen_path= location.pathname const page_group = getPageName () const screen_view_params =JSON.stringify( {"screen_name": screen_path, "screen_class": page_group}) if(typeof window.OnePlusAnalyticsWebJs !== 'undefined'){ window.OnePlusAnalyticsWebJs.logEvent("screen_view", screen_view_params) } </script> <script type="text/javascript"> var isXs if(window.matchMedia("(max-width: 1024px)").matches) { isXs = true; } else { isXs = false; } function twofunction() { var imgs = document.querySelectorAll('.second-nav-img'); if (imgs.length) { for (var i = 0; i < imgs.length; i++) { if (isXs && imgs[i].getAttribute('data-src-mo')) { imgs[i].src = imgs[i].getAttribute('data-src-mo'); } else { imgs[i].src = imgs[i].getAttribute('data-src'); } } } // 旧页面导航图片加载 var imgsOld = document.querySelectorAll('.navImg'); if(imgsOld.length){ for (var i = 0; i < imgsOld.length; i++) { if (isXs) { imgsOld[i].src = imgsOld[i].getAttribute('data-src-mo'); }else { imgsOld[i].src = imgsOld[i].getAttribute('data-src'); } } } } // load之后就加载 function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else{ window.onload = function() { oldonload(); func(); } } } // 到导航栏才加载 function addLoadIMG(func) { var item = document.querySelectorAll("#nav-pages-slide .page") for(let i = 0; i < item.length; i ++) { item[i].addEventListener("mouseover", func, false); } } addLoadIMG(twofunction) </script> <script> window.omoGetUsetLocation = false window.omoGetUserLocation = false </script> <!-- 风控指纹接入 --> <script> var oneplusWebFP = oneplusWebFP || undefined; var oneplusWebFPConfig = { src: 'https://cdn.opstatics.com/store/20170907/assets/scripts/WebFingerprint.min.js', initParams:{ uploadUrl: 'https://bsp-di-us.heytapmobile.com/v1/js/d', appId: 'dd4e4d48b9664f8da2cc0796e4f6f9d3' } } function WebFingerLoad() { window.oneplusWebFP = new window.WebFingerprint(window.oneplusWebFPConfig.initParams) } </script> <script src="https://cdn.opstatics.com/store/20170907/assets/scripts/WebFingerprint.min.js" onload="WebFingerLoad()" async></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10