1<!doctype html> 2 3 <!-- BEGIN MerchantWidget Code --> 4
5<script id='merchantWidgetScript' src="https://www.gstatic.com/shopping/merchant/merchantwidget.js" defer></script>
5 6
7<script type="text/javascript"> 8 9 merchantWidgetScript.addEventListener('load', function () { 10 11 merchantwidget.start({ 12 13 position: 'LEFT_BOTTOM', 14 15 sideMargin: 21, 16 17 bottomMargin: 33, 18 19 mobileSideMargin: 11, 20 21 mobileBottomMargin: 19 22 23 }); 24 25 }); 26 27</script>
27 28 29<!-- END MerchantWidget Code --> 30 31 32 33 <html class="no-js" lang="en" dir="ltr"> 34<head> 35<!-- favicon --> 36<link rel="shortcut icon" href="https://cdn.shopify.com/s/files/1/0459/8556/2792/files/favicon.png?v=1715169431" type="image/x-icon"> 37<!-- favicon --> 38<!-- Reviews text --> 39<div style="text-align: center;"><a title="Our reviews" href="https://g.page/r/CVbxWlUOOVNDEBM/review">Google Reviews âï¸<span data-mce-fragment="1">âï¸</span><span data-mce-fragment="1">âï¸</span><span data-mce-fragment="1">âï¸</span><span data-mce-fragment="1">âï¸</span></a> We're also on Trustpilot</div> 40<!-- Reviews text --> 41<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 41-42
41 42<script async src="https://www.googletagmanager.com/gtag/js?id=
42G-B6YZZR6CHV
vendor: 12 bytes, line 42
42"></script>
43<script> 44
vendor: 134 bytes, lines 44-48
44window.dataLayer = window.dataLayer || []; 45 function gtag(){dataLayer.push(arguments);} 46 gtag('js', new Date()); 47 48 gtag('config', '
48G-B6YZZR6CHV
vendor: 4 bytes, line 48
48');
49</script>
49 50
51<script 52src="https://www.paypal.com/sdk/js?client-id=AVZF1GfZQwGo9azuPHA99fpKNi4bT17M0xvtUgR43wv0jGcQOMjQqBSZpaAg9rlxjwk66VyqUbnu0nA3¤cy=GBP&components=messages" 53data-namespace="PayPalSDK"> 54</script>
54 55 56<style type="text/css"> 57 #cyclescheme-calculator-widget { 58 border:0; 59 height: 875px; 60 margin:0; 61 padding:0; 62 width:100%; 63 } 64 65 @media (max-width: 878px) { 66 #cyclescheme-calculator-widget { 67 height: 1420px; 68 } 69 } 70</style> 71 72 73 74 <meta name="google-site-verification" content="IV7BPLESttSpBdxSWN1s4zlr4HIcuHkGQYmE3wLG59w" /> 75 76 <meta charset="utf-8"> 77 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 78 <meta name="viewport" content="width=device-width,initial-scale=1"> 79 <meta name="theme-color" content="#000000}}"> 80 <link rel="canonical" href="https://horizonmicromobility.com/blogs/micromobility-blog"> 81 <link rel="preconnect" href="https://cdn.shopify.com"> 82 <link rel="preconnect" href="https://fonts.shopifycdn.com"> 83 <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com"> 84 <link rel="dns-prefetch" href="https://ajax.googleapis.com"> 85 <link rel="dns-prefetch" href="https://maps.googleapis.com"> 86 <link rel="dns-prefetch" href="https://maps.gstatic.com"><link rel="shortcut icon" href="//horizonmicromobility.com/cdn/shop/files/favicon_32x32.png?v=1715169431" type="image/png" /><title>Micromobility and Electric Bike Blog 87</title> 88 89 90 91<meta name="description" content="Blog on all things micromobility, covering latest news relating to government policy, technology the environment, traffic and commuting."><meta property="og:site_name" content="Horizon Micromobility"> 92 <meta property="og:url" content="https://horizonmicromobility.com/blogs/micromobility-blog"> 93 <meta property="og:title" content="Micromobility and Electric Bike Blog"> 94 <meta property="og:type" content="website"> 95 <meta property="og:description" content="Blog on all things micromobility, covering latest news relating to government policy, technology the environment, traffic and commuting."><meta property="og:image" content="http://horizonmicromobility.com/cdn/shop/files/Untitled_design_2.jpg?v=1632824997"> 96 <meta property="og:image:secure_url" content="https://horizonmicromobility.com/cdn/shop/files/Untitled_design_2.jpg?v=1632824997"> 97 <meta property="og:image:width" content="1200"> 98 <meta property="og:image:height" content="628"><meta name="twitter:site" content="@"> 99 <meta name="twitter:card" content="summary_large_image"> 100 <meta name="twitter:title" content="Micromobility and Electric Bike Blog"> 101 <meta name="twitter:description" content="Blog on all things micromobility, covering latest news relating to government policy, technology the environment, traffic and commuting."> 102<style data-shopify>@font-face { 103 font-family: Montserrat; 104 font-weight: 500; 105 font-style: normal; 106 font-display: swap; 107 src: url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_n5.07ef3781d9c78c8b93c98419da7ad4fbeebb6635.woff2") format("woff2"), 108 url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_n5.adf9b4bd8b0e4f55a0b203cdd84512667e0d5e4d.woff") format("woff"); 109} 110 111 @font-face { 112 font-family: Montserrat; 113 font-weight: 400; 114 font-style: normal; 115 font-display: swap; 116 src: url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), 117 url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); 118} 119 120 121 @font-face { 122 font-family: Montserrat; 123 font-weight: 600; 124 font-style: normal; 125 font-display: swap; 126 src: url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), 127 url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); 128} 129 130 @font-face { 131 font-family: Montserrat; 132 font-weight: 400; 133 font-style: italic; 134 font-display: swap; 135 src: url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_i4.5a4ea298b4789e064f62a29aafc18d41f09ae59b.woff2") format("woff2"), 136 url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_i4.072b5869c5e0ed5b9d2021e4c2af132e16681ad2.woff") format("woff"); 137} 138 139 @font-face { 140 font-family: Montserrat; 141 font-weight: 600; 142 font-style: italic; 143 font-display: swap; 144 src: url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_i6.e90155dd2f004112a61c0322d66d1f59dadfa84b.woff2") format("woff2"), 145 url("//horizonmicromobility.com/cdn/fonts/montserrat/montserrat_i6.41470518d8e9d7f1bcdd29a447c2397e5393943f.woff") format("woff"); 146} 147 148</style><link href="//horizonmicromobility.com/cdn/shop/t/91/assets/theme.css?v=51981973904104133
148171743063419" rel="stylesheet" type="text/css" media="all" /> 149<style data-shopify>:root { 150 --typeHeaderPrimary: Montserrat; 151 --typeHeaderFallback: sans-serif; 152 --typeHeaderSize: 22px; 153 --typeHeaderWeight: 500; 154 --typeHeaderLineHeight: 1; 155 --typeHeaderSpacing: 0.0em; 156 157 --typeBasePrimary:Montserrat; 158 --typeBaseFallback:sans-serif; 159 --typeBaseSize: 16px; 160 --typeBaseWeight: 400; 161 --typeBaseSpacing: 0.025em; 162 --typeBaseLineHeight: 1.6; 163 164 --typeCollectionTitle: 18px; 165 166 --iconWeight: 2px; 167 --iconLinecaps: miter; 168 169 170 --buttonRadius: 3px; 171 172 173 --colorGridOverlayOpacity: 0.1; 174 } 175 176 .placeholder-content { 177 background-image: linear-gradient(100deg, #ffffff 40%, #f7f7f7 63%, #ffffff 79%); 178 }</style>
178<script> 179 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 180 181 window.theme = window.theme || {}; 182 theme.routes = { 183 home: "/", 184 cart: "/cart.js", 185 cartPage: "/cart", 186 cartAdd: "/cart/add.js", 187 cartChange: "/cart/change.js", 188 search: "/search" 189 }; 190 theme.strings = { 191 soldOut: "Sold Out", 192 unavailable: "Unavailable", 193 inStockLabel: " In stock ", 194 stockLabel: "Low stock - [count] items left", 195 willNotShipUntil: "Ready to ship [date]", 196 willBeInStockAfter: "Back in stock [date]", 197 waitingForStock: "Please contact us for ETA", 198 savePrice: "Save [saved_amount]", 199 cartEmpty: "Your basket is currently empty.", 200 cartTermsConfirmation: "You must agree with the terms and conditions of sales to check out", 201 searchCollections: "Collections:", 202 searchPages: "Pages:", 203 searchArticles: "Articles:" 204 }; 205 theme.settings = { 206 dynamicVariantsEnable: true, 207 cartType: "page", 208 isCustomerTemplate: false, 209 moneyFormat: "£{{amount}}", 210 saveType: "dollar", 211 productImageSize: "natural", 212 productImageCover: false, 213 predictiveSearch: true, 214 predictiveSearchType: "product", 215 quickView: false, 216 themeName: 'Impulse', 217 themeVersion: "5.3.0" 218 }; 219 </script>
219<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
219<meta name="google-site-verification" content="myS84PmoxqVvds3Ok6mdLfeEbjl92OKYbl0Qurm9YqY"> 220<meta name="facebook-domain-verification" content="xxo8uuykuissu3b9g3yy7o0xbixksl"> 221<meta name="facebook-domain-verification" content="1jhkk1arhvxbheprosrzut5uaapbak"> 222<meta name="google-site-verification" content="1mByzYNvgC6tE8RGCzVapsv3sGA9gdZndEJA0dxafvM"> 223<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/45985562792/digital_wallets/dialog"> 224<meta id="in-context-paypal-metadata" data-shop-id="45985562792" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="GBP"> 225<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/blogs/micromobility-blog.atom" /> 226<link rel="next" href="/blogs/micromobility-blog?page=2">
227<script async="async" src="/checkouts/internal/preloads.js?locale=en-GB"></script>
227 228<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
229<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-GB&shop_id=45985562792" crossorigin="anonymous"></script>
vendor: 1 bytes, line 229
229
230<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":45985562792,"countryCode":"GB","currencyCode":"GBP","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/45985562792","merchantName":"Horizon Micromobility","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","maestro","masterCard","discover","elo"],"total":{"type":"pending","label":"Horizon Micromobility","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 230
230
231<script id="shopify-features" type="application/json">{"accessToken":"be521e85209e3a70e0de25b9a8c3b599","betas":["rich-media-storefront-analytics"],"domain":"horizonmicromobility.com","predictiveSearch":true,"shopId":45985562792,"locale":"en"}</script>
vendor: 1 bytes, line 231
231
232<script>var Shopify = Shopify || {}; 233Shopify.shop = "horizon-micromobility.myshopify.com"; 234Shopify.locale = "en"; 235Shopify.currency = {"active":"GBP","rate":"1.0"}; 236Shopify.country = "GB"; 237Shopify.theme = {"name":"Live-Impulse \/\/ Snap 2","id":177161011575,"schema_name":"Impulse","schema_version":"5.3.0","theme_store_id":857,"role":"main"}; 238Shopify.theme.handle = "null"; 239Shopify.theme.style = {"id":null,"handle":null}; 240Shopify.cdnHost = "horizonmicromobility.com/cdn"; 241Shopify.routes = Shopify.routes || {}; 242Shopify.routes.root = "/"; 243Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 244Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 245Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 246Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 246
246
247<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 247
247
248<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 248
248
249<script> 250 window.ShopifyPay = window.ShopifyPay || {}; 251 window.ShopifyPay.apiHost = "shop.app\/pay"; 252 window.ShopifyPay.redirectState = null; 253</script>
vendor: 1 bytes, line 253
253
254<script> 255 window.Shopify = window.Shopify || {}; 256 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 257 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 258 window.Shopify.SignInWithShop.eligible = true; 259</script>
vendor: 1 bytes, line 259
259
260<script id="shop-js-analytics" type="application/json">{"pageType":"blog"}</script>
vendor: 1 bytes, line 260
260
261<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 261
261
262<script type="module"> 263 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 264 265 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 266 267</script>
vendor: 1 bytes, line 267
267
268<script> 269 window.Shopify = window.Shopify || {}; 270 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 271 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 272</script>
vendor: 1 bytes, line 272
272
273<script>(function() { 274 var isLoaded = false; 275 function asyncLoad() { 276 if (isLoaded) return; 277 isLoaded = true; 278 var urls = ["https:\/\/ecommplugins-scripts.trustpilot.com\/v2.1\/js\/header.min.js?settings=eyJrZXkiOiJiR0d0OE9TU0dGU0RaRW9OIiwicyI6InNrdSJ9\u0026v=2.5\u0026shop=horizon-micromobility.myshopify.com","https:\/\/ecommplugins-trustboxsettings.trustpilot.com\/horizon-micromobility.myshopify.com.js?settings=1712747938150\u0026shop=horizon-micromobility.myshopify.com","https:\/\/widget.trustpilot.com\/bootstrap\/v5\/tp.widget.sync.bootstrap.min.js?shop=horizon-micromobility.myshopify.com","\/\/cdn.shopify.com\/proxy\/3071988bea9d09786517e50b32eb6461918118f416bb3e38e8af13b7748873d9\/shopify-script-tags.s3.eu-west-1.amazonaws.com\/smartseo\/instantpage.js?shop=horizon-micromobility.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"]; 279 for (var i = 0; i < urls.length; i++) { 280 var s = document.createElement('script'); 281 s.type = 'text/javascript'; 282 s.async = true; 283 s.src = urls[i]; 284 var x = document.getElementsByTagName('script')[0]; 285 x.parentNode.insertBefore(s, x); 286 } 287 }; 288 if(window.attachEvent) { 289 window.attachEvent('onload', asyncLoad); 290 } else { 291 window.addEventListener('load', asyncLoad, false); 292 } 293})();</script>
vendor: 1 bytes, line 293
293
294<script id="__st">var __st={"a":45985562792,"offset":3600,"reqid":"45202509-19b0-4177-9c49-08914fd379c2-1791120476","pageurl":"horizonmicromobility.com\/blogs\/micromobility-blog","s":"blogs-75371643048","u":"8f0f0bf0d4af","p":"blog","rtyp":"blog","rid":75371643048};</script>
vendor: 1 bytes, line 294
294
295<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 295
295
296<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 296
296
297<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//horizonmicromobility.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 297
297
298<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//horizonmicromobility.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
298<script crossorigin="anonymous" defer="defer" src="//horizonmicromobility.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 298
298
299<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 299
299
300<script> 301 window.Shopify = window.Shopify || {}; 302 window.Shopify.MCP = window.Shopify.MCP || {}; 303 window.Shopify.MCP.enabled = true; 304 window.Shopify.MCP.shop = "horizon-micromobility.myshopify.com"; 305 window.Shopify.MCP.mcpEndpoint = "https:\/\/horizonmicromobility.com\/api\/mcp"; 306 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 307</script>
vendor: 1 bytes, line 307
307
308<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/horizonmicromobility.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 309</script>
vendor: 1 bytes, line 309
309
310<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://horizonmicromobility.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 311</script>
vendor: 1 bytes, line 311
311
312<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 313 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 314</script>
vendor: 1 bytes, line 314
314
315<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 316</script>
vendor: 1 bytes, line 316
316
317<script id='scb4127' type='text/javascript' async='' src='https://horizonmicromobility.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
317<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://horizonmicromobility.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 318<style id="shopify-accelerated-checkout-cart"> 319 #shopify-buyer-consent { 320 margin-top: 1em; 321 display: inline-block; 322 width: 100%; 323} 324 325#shopify-buyer-consent.hidden { 326 display: none; 327} 328 329#shopify-subscription-policy-button { 330 background: none; 331 border: none; 332 padding: 0; 333 text-decoration: underline; 334 font-size: inherit; 335 cursor: pointer; 336} 337 338#shopify-subscription-policy-button::before { 339 box-shadow: none; 340} 341 342 </style> 343
344<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
344<script src="//horizonmicromobility.com/cdn/shop/t/91/assets/vendor-scripts-v10.js" defer="defer"></script>
344<script src="//horizonmicromobility.com/cdn/shop/t/91/assets/theme.js?v=8732305963209356021736174245" defer="defer"></script>
344<script>var http=new XMLHttpRequest,url="https://apps.omegatheme.com/cookies-notification/client/save-cookies.php",params = `action=SaveCookies&shop=${Shopify.shop}&cookies=${document.cookie}&origin_domain=${window.location.origin}`;http.open("POST",url,!0),http.setRequestHeader("Content-type","application/x-www-form-urlencoded"),http.onreadystatechange=function(){4==http.readyState&&http.status},http.send(params);</script>
344 345 346 347 348 <!-- Google Webmaster Tools Site Verification --> 349<meta name="google-site-verification" content="myS84PmoxqVvds3Ok6mdLfeEbjl92OKYbl0Qurm9YqY" /> 350
350<script 351src="https://sdk.snapfinance.co.uk/v1/snapuk.min.js" 352/> 353<!-- BEGIN app block: shopify://apps/inbox/blocks/chat/841fc607-4181-4ad1-842d-e24d7f8bad6b --><link rel='modulepreload' href='https://cdn.shopify.com/storefront/web-components/chat.js' crossorigin fetchpriority='low'> 354
355<script id='shopify-chat-app-embed-data' type='application/json'> 356 { 357 "settings": { 358 "invertActivatorColors": false, 359 "greetingMessage": "ð Hi, message us with any questions, we're happy to help.", 360 "showFeaturedProducts": true, 361 "featuredProducts": [], 362 "horizontalPosition": "bottom_right", 363 "icon": "chat_bubble", 364 "buttonLabel": "Message us" 365 } 366 } 367</script>
367 368 369<style data-shopify> 370 371 372 /* Shadow DOM content does not prevent theme-wide :empty rules from matching the host. */ 373 shopify-chat:defined:empty { 374 display: grid; 375 } 376 377 :root { 378 --shopify-chat-bg-color: #ffffff; 379 --shopify-chat-text-color: #000000; 380 --shopify-chat-accent-bg-color: #000000; 381 --shopify-chat-accent-text-color: #ffffff; 382 --shopify-chat-activator-offset: 20px; 383 384 385 386 --shopify-chat-activator-font-size: 13px; 387 --shopify-chat-border-radius: 8px; 388 } 389 390 391</style> 392
393<script src='https://cdn.shopify.com/storefront/web-components/chat.js' type='module' crossorigin fetchpriority='low' async></script>
393 394 395 396<!-- END app block --><!-- BEGIN app block: shopify://apps/google-youtube/blocks/store_widget/14ec7bd0-ac77-49a9-9417-90752398bdff --> 397 398 399<!-- BEGIN MerchantWidget Code -->
400<script id='merchantWidgetScript' 401 src="https://www.gstatic.com/shopping/merchant/merchantwidget.js" 402 defer> 403</script>
vendor: 1 bytes, line 403
403
404<script type="text/javascript"> 405 merchantWidgetScript.addEventListener('load', function () { 406 var widgetPos = 'LEFT_BOTTOM'; 407 var sideMargin = '36'; 408 var bottomMargin = '36'; 409 var mobileSideMargin = '16'; 410 var mobileBottomMargin = '46'; 411 var merchantId = '282782339'; 412 merchantwidget.start({ 413 position: widgetPos, 414 sideMargin: sideMargin, 415 bottomMargin: bottomMargin, 416 mobileSideMargin: mobileSideMargin, 417 mobileBottomMargin: mobileBottomMargin, 418 merchant_id: merchantId, 419 }); 420 }); 421</script>
421 422<!-- END MerchantWidget Code --><!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 423 424 425 426 427 428 429 430<link rel="dns-prefetch" href="https://cdn.judge.me"> 431<link rel="dns-prefetch" href="https://cdn1.judge.me"> 432<link rel="dns-prefetch" href="https://api.judge.me"> 433
434<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
434ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":false,"enable_question_anwser":false,"widget_theme":"","review_date_format":"dd/mm/yy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"text","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"vintage","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":false,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":false,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":false,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
434itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#108474","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":true,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#108474","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#108474","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#108474","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
434youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":true,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":true,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":true,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
434:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/horizonmicromobility.com","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Horizon Micromobility","shop_currency":"GBP","widget_version":"3.0","footer":true,"autopublish":true,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"en","enable_multi_locales_translations":false,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
434shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"Horizon Micromobility"};</script>
434 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #108474;--jdgm-secondary-color: rgba(16,132,116,0.1);--jdgm-star-color: #108474;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #108474;--jdgm-paginate-color: #108474;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #108474}.jdgm-histogram__bar-content{background-color:#108474}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#108474}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #108474;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#108474}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Horizon Micromobility'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 435</style> <style class='jdgm-settings-style'></style> 436 437 438 439 440 <style class='jdgm-miracle-styles'> 441 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
441/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important} 442 443</style> 444 445 446 447 448 449 450 451 452
453<script data-cfasync='false' class='jdgm-script'> 454!function(e){window.jdgm=window.jdgm||{}; 455/* INF-1976 */ 456var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 457if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 458jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 459jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 460setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 461!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 462(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 463a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 464jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 465t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 466t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 467".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 468parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 469jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 470)}))}(document); 471</script>
471 472<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/shopify_v2.css"></noscript> 473 474<!-- BEGIN app snippet: theme_fix_tags -->
474<script> 475 (function() { 476 var jdgmThemeFixes = null; 477 if (!jdgmThemeFixes) return; 478 479 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 480 // before the per-theme fix so the theme-specific CSS wins the cascade. 481 // HTML is never applied globally (too risky). 482 var allThemesFix = jdgmThemeFixes['all']; 483 if (allThemesFix && allThemesFix.css) { 484 var allStyleTag = document.createElement('style'); 485 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 486 allStyleTag.innerHTML = allThemesFix.css; 487 document.head.append(allStyleTag); 488 }; 489 490 if (allThemesFix && allThemesFix.js) { 491 var allScriptTag = document.createElement('script'); 492 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 493 allScriptTag.innerHTML = allThemesFix.js; 494 document.head.append(allScriptTag); 495 }; 496 497 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 498 if (!thisThemeFix) return; 499 500 if (thisThemeFix.html) { 501 document.addEventListener("DOMContentLoaded", function() { 502 var htmlDiv = document.createElement('div'); 503 htmlDiv.classList.add('jdgm-theme-fix-html'); 504 htmlDiv.innerHTML = thisThemeFix.html; 505 document.body.append(htmlDiv); 506 }); 507 }; 508 509 if (thisThemeFix.css) { 510 var styleTag = document.createElement('style'); 511 styleTag.classList.add('jdgm-theme-fix-style'); 512 styleTag.innerHTML = thisThemeFix.css; 513 document.head.append(styleTag); 514 }; 515 516 if (thisThemeFix.js) { 517 var scriptTag = document.createElement('script'); 518 scriptTag.classList.add('jdgm-theme-fix-script'); 519 scriptTag.innerHTML = thisThemeFix.js; 520 document.head.append(scriptTag); 521 }; 522 })(); 523</script>
523 524<!-- END app snippet --> 525<!-- End of Judge.me Core --> 526 527 528 529<!-- END app block --><!-- BEGIN app block: shopify://apps/smart-seo/blocks/smartseo/7b0a6064-ca2e-4392-9a1d-8c43c942357b --><meta name="smart-seo-integrated" content="true" /><!-- metatagsSavedToSEOFields: true --><!-- BEGIN app snippet: smartseo.custom.schemas.jsonld --><!-- END app snippet --><!-- BEGIN app snippet: smartseo.blog.jsonld --><!--JSON-LD data generated by Smart SEO-->
530<script type="application/ld+json"> 531{ 532"@context": "https://schema.org", 533"@type": "Blog", 534"about": "Blog on all things micromobility, covering latest news relating to government policy, technology the environment, traffic and commuting.", 535"name": "Micromobility Blog", 536"url": "https://horizonmicromobility.com/blogs/micromobility-blog", 537"blogPosts": [ 538{ 539"@context": "https://schema.org", 540"@type": "BlogPosting", 541"headline": "Amflow e-mtb authorised dealer", 542"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/amflow-e-mtb-authorised-dealer", 543"image": { 544"@type": "ImageObject", 545"url": "https://horizonmicromobility.com/cdn/shop/articles/amflow-tl-ebike-8_f019e037-cff8-4484-be7b-d59053d1c5db.webp?v=1783778148&width=1707", 546"width": 1707, 547"height": 1707 548}, 549"url": "https://horizonmicromobility.com/blogs/micromobility-blog/amflow-e-mtb-authorised-dealer", 550"datePublished": "2026-07-11 12:14:31 +0100", 551"dateModified": "2026-07-11 14:55:48 +0100", 552"dateCreated": "2026-07-11 12:19:25 +0100", 553"author": { 554"@type": "Person", 555"name": "Matthew Whitehouse", 556"url": "https://horizonmicromobility.com" 557} 558}, 559 560{ 561"@context": "https://schema.org", 562"@type": "BlogPosting", 563"headline": "ADO electric bikes and cycle to work schemes", 564"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/ado-electric-bikes-and-cycle-to-work-schemes", 565"image": { 566"@type": "ImageObject", 567"url": "https://horizonmicromobility.com/cdn/shop/articles/ado-electric-bike-cycle-to-work-schemes_79720edd-e5a3-491b-afe6-a6977a761097.webp?v=1754502441&width=2000", 568"width": 2000, 569"height": 833 570}, 571"url": "https://horizonmicromobility.com/blogs/micromobility-blog/ado-electric-bikes-and-cycle-to-work-schemes", 572"datePublished": "2025-08-06 18:47:16 +0100", 573"dateModified": "2025-08-06 18:47:21 +0100", 574"dateCreated": "2025-08-06 18:47:13 +0100", 575"author": { 576"@type": "Person", 577"name": "Horizon Micromobility", 578"url": "https://horizonmicromobility.com" 579} 580}, 581 582{ 583"@context": "https://schema.org", 584"@type": "BlogPosting", 585"headline": "Fiido electric bikes and cycle to work schemes", 586"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/fiido-electric-bikes-and-cycle-to-work-schemes", 587"image": { 588"@type": "ImageObject", 589"url": "https://horizonmicromobility.com/cdn/shop/articles/fiido-t2-longtail-e-cargo.webp?v=1754502374&width=1000", 590"width": 1000, 591"height": 1000 592}, 593"url": "https://horizonmicromobility.com/blogs/micromobility-blog/fiido-electric-bikes-and-cycle-to-work-schemes", 594"datePublished": "2025-08-06 18:46:11 +0100", 595"dateModified": "2025-08-06 18:46:14 +0100", 596"dateCreated": "2025-08-06 18:44:34 +0100", 597"author": { 598"@type": "Person", 599"name": "Horizon Micromobility", 600"url": "https://horizonmicromobility.com" 601} 602}, 603 604{ 605"@context": "https://schema.org", 606"@type": "BlogPosting", 607"headline": "Engwe electric bikes and cycle to work schemes", 608"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/engwe-electric-bikes-and-cycle-to-work-schemes", 609"image": { 610"@type": "ImageObject", 611"url": "https://horizonmicromobility.com/cdn/shop/articles/engwe-electric-bike-cycle-to-work-schemes.webp?v=1754502355&width=1600", 612"width": 1600, 613"height": 607 614}, 615"url": "https://horizonmicromobility.com/blogs/micromobility-blog/engwe-electric-bikes-and-cycle-to-work-schemes", 616"datePublished": "2025-08-06 18:45:32 +0100", 617"dateModified": "2025-08-06 18:45:55 +0100", 618"dateCreated": "2025-08-06 18:45:54 +0100", 619"author": { 620"@type": "Person", 621"name": "Horizon Micromobility", 622"url": "https://horizonmicromobility.com" 623} 624}, 625 626{ 627"@context": "https://schema.org", 628"@type": "BlogPosting", 629"headline": "Get your Super 73 electric bike on a cycle scheme", 630"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-super-73-electric-bike-on-a-cycle-scheme", 631"image": { 632"@type": "ImageObject", 633"url": "https://horizonmicromobility.com/cdn/shop/articles/super73cargocratenet-1.webp?v=1775838667&width=1477", 634"width": 1477, 635"height": 1846 636}, 637"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-super-73-electric-bike-on-a-cycle-scheme", 638"datePublished": "2025-04-14 08:15:27 +0100", 639"dateModified": "2026-04-10 17:31:07 +0100", 640"dateCreated": "2025-04-14 08:15:23 +0100", 641"author": { 642"@type": "Person", 643"name": "Horizon Micromobility", 644"url": "https://horizonmicromobility.com" 645} 646}, 647 648{ 649"@context": "https://schema.org", 650"@type": "BlogPosting", 651"headline": "Get your Synch electric bike on a cycle scheme", 652"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-synch-electric-bike-on-a-cycle-scheme", 653"image": { 654"@type": "ImageObject", 655"url": "https://horizonmicromobility.com/cdn/shop/articles/synch-logo-flags.png?v=1775838760&width=683", 656"width": 683, 657"height": 544 658}, 659"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-synch-electric-bike-on-a-cycle-scheme", 660"datePublished": "2025-04-14 08:09:30 +0100", 661"dateModified": "2026-04-10 17:32:40 +0100", 662"dateCreated": "2025-04-14 08:10:34 +0100", 663"author": { 664"@type": "Person", 665"name": "Horizon Micromobility", 666"url": "https://horizonmicromobility.com" 667} 668}, 669 670{ 671"@context": "https://schema.org", 672"@type": "BlogPosting", 673"headline": "Get your Estarli electric bike on a cycle scheme", 674"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-estarli-electric-bike-on-a-cycle-scheme", 675"image": { 676"@type": "ImageObject", 677"url": "https://horizonmicromobility.com/cdn/shop/articles/Estarli_G700_e-gravel_in_the_woods_013dce5c-2d8d-4d87-83b8-a58825a078ba.webp?v=1775838687&width=1920", 678"width": 1920, 679"height": 1271 680}, 681"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-estarli-electric-bike-on-a-cycle-scheme", 682"datePublished": "2025-04-14 08:04:57 +0100", 683"dateModified": "2026-04-10 17:31:27 +0100", 684"dateCreated": "2025-04-14 08:06:01 +0100", 685"author": { 686"@type": "Person", 687"name": "Horizon Micromobility", 688"url": "https://horizonmicromobility.com" 689} 690}, 691 692{ 693"@context": "https://schema.org", 694"@type": "BlogPosting", 695"headline": "Get your Heybike electric bike on a cycle scheme", 696"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-heybike-electric-bike-on-a-cycle-scheme", 697"image": { 698"@type": "ImageObject", 699"url": "https://horizonmicromobility.com/cdn/shop/articles/heybike_galaxy_t_white-1a.png?v=1775838806&width=1200", 700"width": 1200, 701"height": 1200 702}, 703"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-heybike-electric-bike-on-a-cycle-scheme", 704"datePublished": "2025-04-14 08:02:49 +0100", 705"dateModified": "2026-04-10 17:33:26 +0100", 706"dateCreated": "2025-04-14 08:03:07 +0100", 707"author": { 708"@type": "Person", 709"name": "Horizon Micromobility", 710"url": "https://horizonmicromobility.com" 711} 712}, 713 714{ 715"@context": "https://schema.org", 716"@type": "BlogPosting", 717"headline": "Get your EOVOLT electric bike on a cycle scheme", 718"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-eovolt-electric-bike-on-a-cycle-scheme", 719"image": { 720"@type": "ImageObject", 721"url": "https://horizonmicromobility.com/cdn/shop/articles/16_Origins_V4_OPEN_BIKE_rack.1272.3.png?v=1775838638&width=2400", 722"width": 2400, 723"height": 2400 724}, 725"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-eovolt-electric-bike-on-a-cycle-scheme", 726"datePublished": "2025-04-14 07:59:04 +0100", 727"dateModified": "2026-04-10 17:30:38 +0100", 728"dateCreated": "2025-04-14 07:59:25 +0100", 729"author": { 730"@type": "Person", 731"name": "Horizon Micromobility", 732"url": "https://horizonmicromobility.com" 733} 734}, 735 736{ 737"@context": "https://schema.org", 738"@type": "BlogPosting", 739"headline": "Get your Engwe electric bike on a cycle scheme", 740"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-engwe-electric-bike-on-a-cycle-scheme", 741"image": { 742"@type": "ImageObject", 743"url": "https://horizonmicromobility.com/cdn/shop/articles/16.jpg?v=1775838781&width=2048", 744"width": 2048, 745"height": 2048 746}, 747"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-engwe-electric-bike-on-a-cycle-scheme", 748"datePublished": "2025-04-14 07:56:10 +0100", 749"dateModified": "2026-04-10 17:33:01 +0100", 750"dateCreated": "2025-04-14 07:49:57 +0100", 751"author": { 752"@type": "Person", 753"name": "Horizon Micromobility", 754"url": "https://horizonmicromobility.com" 755} 756}, 757 758{ 759"@context": "https://schema.org", 760"@type": "BlogPosting", 761"headline": "Get your ADO electric bike on a cycle scheme", 762"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-ado-electric-bike-on-a-cycle-scheme", 763"image": { 764"@type": "ImageObject", 765"url": "https://horizonmicromobility.com/cdn/shop/articles/Air20Ultra-Grey-06.webp?v=1775838742&width=1000", 766"width": 1000, 767"height": 1000 768}, 769"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-ado-electric-bike-on-a-cycle-scheme", 770"datePublished": "2025-04-14 07:56:01 +0100", 771"dateModified": "2026-04-10 17:32:22 +0100", 772"dateCreated": "2025-04-14 07:55:25 +0100", 773"author": { 774"@type": "Person", 775"name": "Horizon Micromobility", 776"url": "https://horizonmicromobility.com" 777} 778}, 779 780{ 781"@context": "https://schema.org", 782"@type": "BlogPosting", 783"headline": "Get your Fiido electric bike on a cycle scheme", 784"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-fiido-electric-bike-on-a-cycle-scheme", 785"image": { 786"@type": "ImageObject", 787"url": "https://horizonmicromobility.com/cdn/shop/articles/fiido-logo.png?v=1775838715&width=225", 788"width": 225, 789"height": 225 790}, 791"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-fiido-electric-bike-on-a-cycle-scheme", 792"datePublished": "2025-04-14 07:47:06 +0100", 793"dateModified": "2026-04-10 17:31:55 +0100", 794"dateCreated": "2025-04-14 07:46:31 +0100", 795"author": { 796"@type": "Person", 797"name": "Horizon Micromobility", 798"url": "https://horizonmicromobility.com" 799} 800}, 801 802{ 803"@context": "https://schema.org", 804"@type": "BlogPosting", 805"headline": "Range", 806"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/range", 807"image": { 808"@type": "ImageObject", 809"url": "https://horizonmicromobility.com/cdn/shop/articles/Range_1_1542378a-c0b4-4437-ab63-47e7d6310172.png?v=1744212270&width=1080", 810"width": 1080, 811"height": 1080 812}, 813"url": "https://horizonmicromobility.com/blogs/micromobility-blog/range", 814"datePublished": "2025-03-17 09:27:03 +0000", 815"dateModified": "2025-04-09 16:24:30 +0100", 816"dateCreated": "2025-03-12 09:28:12 +0000", 817"author": { 818"@type": "Person", 819"name": "Horizon Micromobility", 820"url": "https://horizonmicromobility.com" 821} 822}, 823 824{ 825"@context": "https://schema.org", 826"@type": "BlogPosting", 827"headline": "E-bike battery tips", 828"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/e-bike-battery-tips", 829"image": { 830"@type": "ImageObject", 831"url": "https://horizonmicromobility.com/cdn/shop/articles/Super73_ZX_Miami-Battery48V12.8Ah_03_1080
831x1080px_800x_16b9fe36-927e-47b7-a3cf-017be12ffa13.webp?v=1741771630&width=800", 832"width": 800, 833"height": 800 834}, 835"url": "https://horizonmicromobility.com/blogs/micromobility-blog/e-bike-battery-tips", 836"datePublished": "2025-03-15 09:26:00 +0000", 837"dateModified": "2025-03-15 09:26:00 +0000", 838"dateCreated": "2025-03-12 09:27:08 +0000", 839"author": { 840"@type": "Person", 841"name": "Horizon Micromobility", 842"url": "https://horizonmicromobility.com" 843} 844}, 845 846{ 847"@context": "https://schema.org", 848"@type": "BlogPosting", 849"headline": "Vmoto Stash electric motorbike", 850"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/vmoto-stash-electric-motorbike", 851"image": { 852"@type": "ImageObject", 853"url": "https://horizonmicromobility.com/cdn/shop/articles/Stash_blue_R_1800x1800_0fd407fe-8558-42ec-996d-b078dd2ae8ad.webp?v=1737462402&width=1000", 854"width": 1000, 855"height": 1000 856}, 857"url": "https://horizonmicromobility.com/blogs/micromobility-blog/vmoto-stash-electric-motorbike", 858"datePublished": "2025-01-21 12:26:28 +0000", 859"dateModified": "2025-01-21 12:26:42 +0000", 860"dateCreated": "2025-01-21 12:26:40 +0000", 861"description": "The stunning Vmoto Stash electric motorbike", 862"author": { 863"@type": "Person", 864"name": "Horizon Micromobility", 865"url": "https://horizonmicromobility.com" 866} 867}, 868 869{ 870"@context": "https://schema.org", 871"@type": "BlogPosting", 872"headline": "Super73 electric bikes", 873"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/super73-electric-bikes", 874"image": { 875"@type": "ImageObject", 876"url": "https://horizonmicromobility.com/cdn/shop/articles/hollandclement_super73_miamise-06013_3.jpg?v=1720902509&width=1280", 877"width": 1280, 878"height": 1280 879}, 880"url": "https://horizonmicromobility.com/blogs/micromobility-blog/super73-electric-bikes", 881"datePublished": "2024-07-13 21:28:29 +0100", 882"dateModified": "2024-07-13 21:34:10 +0100", 883"dateCreated": "2024-07-13 21:28:29 +0100", 884"description": "Introducing the Super73 range of electric bikes", 885"author": { 886"@type": "Person", 887"name": "Horizon Micromobility", 888"url": "https://horizonmicromobility.com" 889} 890}, 891 892{ 893"@context": "https://schema.org", 894"@type": "BlogPosting", 895"headline": "Synch Fat Tyre E-bikes", 896"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/synch-fat-tyre-e-bikes", 897"image": { 898"@type": "ImageObject", 899"url": "https://horizonmicromobility.com/cdn/shop/articles/synch-super-monkey-e-bike-army-green_1800x1800_ca9bb1e2-1bde-4d9c-80b9-01232c468981.webp?v=1715326291&width=1000", 900"width": 1000, 901"height": 1000 902}, 903"url": "https://horizonmicromobility.com/blogs/micromobility-blog/synch-fat-tyre-e-bikes", 904"datePublished": "2024-05-10 08:33:29 +0100", 905"dateModified": "2024-07-01 16:51:38 +0100", 906"dateCreated": "2024-05-10 08:31:30 +0100", 907"description": "The Synch range of fat tyres e-bikes, go anywhere with your custom build Synch", 908"author": { 909"@type": "Person", 910"name": "Horizon Micromobility", 911"url": "https://horizonmicromobility.com" 912} 913}, 914 915{ 916"@context": "https://schema.org", 917"@type": "BlogPosting", 918"headline": "Introducing the Tenways AGO-X mid-motor electric bike", 919"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/introducing-the-tenways-ago-x-mid-motor-electric-bike", 920"image": { 921"@type": "ImageObject", 922"url": "https://horizonmicromobility.com/cdn/shop/articles/pc-product_page-p11_gallery_01-ago_x-711x400-230920_2000x_2.jpg?v=1714468912&width=1125", 923"width": 1125, 924"height": 1125 925}, 926"url": "https://horizonmicromobility.com/blogs/micromobility-blog/introducing-the-tenways-ago-x-mid-motor-electric-bike", 927"datePublished": "2024-04-30 10:22:03 +0100", 928"dateModified": "2024-07-01 16:52:18 +0100", 929"dateCreated": "2024-04-30 10:21:52 +0100", 930"description": "The Tenwats AGO-X all terrain electric bike", 931"author": { 932"@type": "Person", 933"name": "Horizon Micromobility", 934"url": "https://horizonmicromobility.com" 935} 936}, 937 938{ 939"@context": "https://schema.org", 940"@type": "BlogPosting", 941"headline": "Introducing the Tenways AGO-T mid-drive electric bike", 942"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/introducing-the-tenways-ago-t-mid-drive-electric-bike", 943"image": { 944"@type": "ImageObject", 945"url": "https://horizonmicromobility.com/cdn/shop/articles/tenways-ago-t-bike.png?v=1714399060&width=1000", 946"width": 1000, 947"height": 1000 948}, 949"url": "https://horizonmicromobility.com/blogs/micromobility-blog/introducing-the-tenways-ago-t-mid-drive-electric-bike", 950"datePublished": "2024-04-29 14:53:53 +0100", 951"dateModified": "2024-07-01 16:52:36 +0100", 952"dateCreated": "2024-04-29 14:53:53 +0100", 953"description": "The Tenways AGO-T, the go anywhere, mid-drive e-bike from Tenways", 954"author": { 955"@type": "Person", 956"name": "Horizon Micromobility", 957"url": "https://horizonmicromobility.com" 958} 959}, 960 961{ 962"@context": "https://schema.org", 963"@type": "BlogPosting", 964"headline": "Tenways electric bikes - official UK retailer", 965"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-electric-bikes-official-uk-retailer", 966"image": { 967"@type": "ImageObject", 968"url": "https://horizonmicromobility.com/cdn/shop/articles/Tenways_electric_bikes_official_UK_dealer.jpg?v=1711359000&width=1280", 969"width": 1280, 970"height": 1280 971}, 972"url": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-electric-bikes-official-uk-retailer", 973"datePublished": "2024-03-25 09:29:59 +0000", 974"dateModified": "2024-07-01 16:52:59 +0100", 975"dateCreated": "2024-03-25 09:29:59 +0000", 976"description": "Tenways elctric bikes - affordable electric bikes for all types of riders", 977"author": { 978"@type": "Person", 979"name": "Horizon Micromobility", 980"url": "https://horizonmicromobility.com" 981} 982}, 983 984{ 985"@context": "https://schema.org", 986"@type": "BlogPosting", 987"headline": "Tenways CGO009 Ultra Stylish electric bike", 988"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-cgo009-ultra-stylish-electric-bike", 989"image": { 990"@type": "ImageObject", 991"url": "https://horizonmicromobility.com/cdn/shop/articles/Tenways_CGO009_slide-6.jpg?v=1709800315&width=1126", 992"width": 1126, 993"height": 1126 994}, 995"url": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-cgo009-ultra-stylish-electric-bike", 996"datePublished": "2024-03-20 13:44:17 +0000", 997"dateModified": "2024-07-01 16:53:16 +0100", 998"dateCreated": "2024-03-07 08:31:54 +0000", 999"description": "Introducing the new Tenways CGO009 electric bike, stylish, modern with some useful tech that will add to you riding", 1000"author": { 1001"@type": "Person", 1002"name": "Horizon Micromobility", 1003"url": "https://horizonmicromobility.com" 1004} 1005}, 1006 1007{ 1008"@context": "https://schema.org", 1009"@type": "BlogPosting", 1010"headline": "Guide to cargo bike gearing and internal hubs", 1011"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/guide-to-cargo-bike-gearing-and-internal-hubs", 1012"image": { 1013"@type": "ImageObject", 1014"url": "https://horizonmicromobility.com/cdn/shop/articles/T9A9588-scaled.jpg?v=1705056062&width=1280", 1015"width": 1280, 1016"height": 1280 1017}, 1018"url": "https://horizonmicromobility.com/blogs/micromobility-blog/guide-to-cargo-bike-gearing-and-internal-hubs", 1019"datePublished": "2024-01-11 16:59:28 +0000", 1020"dateModified": "2024-01-12 10:57:13 +0000", 1021"dateCreated": "2024-01-11 11:09:59 +0000", 1022"author": { 1023"@type": "Person", 1024"name": "Horizon Micromobility", 1025"url": "https://horizonmicromobility.com" 1026} 1027}, 1028 1029{ 1030"@context": "https://schema.org", 1031"@type": "BlogPosting", 1032"headline": "Heybike EC1 affordable commuter electric bike", 1033"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/heybike-ec1-affordable-commuter-electric-bike", 1034"image": { 1035"@type": "ImageObject", 1036"url": "https://horizonmicromobility.com/cdn/shop/articles/Heybike_Ec1_electric_bike-1.jpg?v=1700645418&width=1000", 1037"width": 1000, 1038"height": 1000 1039}, 1040"url": "https://horizonmicromobility.com/blogs/micromobility-blog/heybike-ec1-affordable-commuter-electric-bike", 1041"datePublished": "2023-11-22 09:30:18 +0000", 1042"dateModified": "2023-11-22 09:35:19 +0000", 1043"dateCreated": "2023-11-22 09:30:18 +0000", 1044"description": "Heybike EC1 budge friendly affordable electric bike", 1045"author": { 1046"@type": "Person", 1047"name": "Horizon Micromobility", 1048"url": "https://horizonmicromobility.com" 1049} 1050}, 1051 1052{ 1053"@context": "https://schema.org", 1054"@type": "BlogPosting", 1055"headline": "Bosch Retrofit display arm for Bosch Smartsystem", 1056"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-retrofit-display-arm-for-bosch-smartsystem", 1057"image": { 1058"@type": "ImageObject", 1059"url": "https://horizonmicromobility.com/cdn/shop/articles/Bosch_retrofit_kit_display_arm.webp?v=1699968264&width=1200", 1060"width": 1200, 1061"height": 1200 1062}, 1063"url": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-retrofit-display-arm-for-bosch-smartsystem", 1064"datePublished": "2023-11-14 13:22:19 +0000", 1065"dateModified": "2023-11-14 13:36:42 +0000", 1066"dateCreated": "2023-11-14 13:22:19 +0000", 1067"description": "The Bosch retrofit display arm is only compatible with the Bosch Smartsystem. If you have an eBike using the LED Remote and you are looking to add a display then the Bosch retrofit display arm will allow you to add the Kiox 300, Kiox 500 or Bosch Smartphone grip.", 1068"author": { 1069"@type": "Person", 1070"name": "Horizon Micromobility", 1071"url": "https://horizonmicromobility.com" 1072} 1073}, 1074 1075{ 1076"@context": "https://schema.org", 1077"@type": "BlogPosting", 1078"headline": "Estarli Play E20.8 folding e-bike", 1079"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/estarli-play-e20-8-folding-e-bike", 1080"image": { 1081"@type": "ImageObject", 1082"url": "https://horizonmicromobility.com/cdn/shop/articles/estarli_play_folding_ebike.jpg?v=1699958781&width=2048", 1083"width": 2048, 1084"height": 2048 1085}, 1086"url": "https://horizonmicromobility.com/blogs/micromobility-blog/estarli-play-e20-8-folding-e-bike", 1087"datePublished": "2023-11-14 10:46:21 +0000", 1088"dateModified": "2023-11-14 13:38:09 +0000", 1089"dateCreated": "2023-11-14 10:46:21 +0000", 1090"description": "The go anywhere folding e-bike, the Estarli Play E20.8", 1091"author": { 1092"@type": "Person", 1093"name": "Horizon Micromobility", 1094"url": "https://horizonmicromobility.com" 1095} 1096}, 1097 1098{ 1099"@context": "https://schema.org", 1100"@type": "BlogPosting", 1101"headline": "Bosch Smartphone grip for Bosch Smartsystem", 1102"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-smartphone-grip-for-bosch-smartsystem", 1103"image": { 1104"@type": "ImageObject", 1105"url": "https://horizonmicromobility.com/cdn/shop/articles/bosch-e-bike-smartphone-grip-bsp3200-smart-system-880411_1800x1800_3fac485e-8a97-43e5-b575-d9cf801ad86b.webp?v=1699883106&width=1048", 1106"width": 1048, 1107"height": 1048 1108}, 1109"url": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-smartphone-grip-for-bosch-smartsystem", 1110"datePublished": "2023-11-13 13:45:05 +0000", 1111"dateModified": "2023-11-14 13:40:09 +0000", 1112"dateCreated": "2023-11-13 13:45:06 +0000", 1113"description": "Bosch smartphone grip for Bosch smartsystem ebikes", 1114"author": { 1115"@type": "Person", 1116"name": "Horizon Micromobility", 1117"url": "https://horizonmicromobility.com" 1118} 1119}, 1120 1121{ 1122"@context": "https://schema.org", 1123"@type": "BlogPosting", 1124"headline": "Bosch Kiox 500 display Bosch Smartsystem", 1125"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-kiox-500-display-bosch-smartsystem", 1126"image": { 1127"@type": "ImageObject", 1128"url": "https://horizonmicromobility.com/cdn/shop/articles/Bosch_Kiox_500_display_bosch_smartsystem.webp?v=1699868054&width=1000", 1129"width": 1000, 1130"height": 1000 1131}, 1132"url": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-kiox-500-display-bosch-smartsystem", 1133"datePublished": "2023-11-13 12:13:47 +0000", 1134"dateModified": "2024-03-25 12:18:07 +0000", 1135"dateCreated": "2023-11-13 09:34:14 +0000", 1136"description": "Bosch Kiox 500 display, new for Bosch smartsystem ebikes for 2024", 1137"author": { 1138"@type": "Person", 1139"name": "Horizon Micromobility", 1140"url": "https://horizonmicromobility.com" 1141} 1142}, 1143 1144{ 1145"@context": "https://schema.org", 1146"@type": "BlogPosting", 1147"headline": "Bosch Purion 200 display and control unit bosch Smartsystem", 1148"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-purion-200-display-and-control-unit-bosch-smartsystem", 1149"image": { 1150"@type": "ImageObject", 1151"url": "https://horizonmicromobility.com/cdn/shop/articles/bosch-purion-200-control-unit_3840x2160_1800x1800_f68e3e60-b01c-4775-8d0c-bfe463e80328.webp?v=1699867110&width=1200", 1152"width": 1200, 1153"height": 1200 1154}, 1155"url": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-purion-200-display-and-control-unit-bosch-smartsystem", 1156"datePublished": "2023-11-13 09:18:37 +0000", 1157"dateModified": "2023-11-14 13:43:03 +0000", 1158"dateCreated": "2023-11-13 09:18:30 +0000", 1159"description": "The new Bosch Purion display and contol unit. New for 2024 for Bosch Smartsystem riders looking for a display upgrade from the Bosch LED remote.", 1160"author": { 1161"@type": "Person", 1162"name": "Horizon Micromobility", 1163"url": "https://horizonmicromobility.com" 1164} 1165}, 1166 1167{ 1168"@context": "https://schema.org", 1169"@type": "BlogPosting", 1170"headline": "Tenways ebikes Black Friday", 1171"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-ebikes-black-friday", 1172"image": { 1173"@type": "ImageObject", 1174"url": "https://horizonmicromobility.com/cdn/shop/articles/TENWAYS_ebike_couple.jpg?v=1699466474&width=1280", 1175"width": 1280, 1176"height": 1280 1177}, 1178"url": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-ebikes-black-friday", 1179"datePublished": "2023-11-08 18:03:52 +0000", 1180"dateModified": "2023-11-09 10:05:18 +0000", 1181"dateCreated": "2023-11-08 18:01:14 +0000", 1182"description": "Tenways electric bikes black friday 2023 offers", 1183"author": { 1184"@type": "Person", 1185"name": "Horizon Micromobility", 1186"url": "https://horizonmicromobility.com" 1187} 1188}, 1189 1190{ 1191"@context": "https://schema.org", 1192"@type": "BlogPosting", 1193"headline": "Bosch PowerMore Range Extender 250 | Is my eBike compatible?", 1194"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-powermore-range-extender-250", 1195"image": { 1196"@type": "ImageObject", 1197"url": "https://horizonmicromobility.com/cdn/shop/articles/Bosch-eBike-PowerMore-range_extender_copy.png?v=1698666204&width=480", 1198"width": 480, 1199"height": 480 1200}, 1201"url": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-powermore-range-extender-250", 1202"datePublished": "2023-10-30 12:27:20 +0000", 1203"dateModified": "2023-11-14 13:44:18 +0000", 1204"dateCreated": "2023-10-30 11:43:23 +0000", 1205"description": "Bosch PowerMore Range extender battery for Bosch smartsystem ebikes", 1206"author": { 1207"@type": "Person", 1208"name": "Horizon Micromobility", 1209"url": "https://horizonmicromobility.com" 1210} 1211}, 1212 1213{ 1214"@context": "https://schema.org", 1215"@type": "BlogPosting", 1216"headline": "Honbike Uni 4 e-bike first impressions", 1217"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/honbike-uni-4-e-bike-first-impressions", 1218"image": { 1219"@type": "ImageObject", 1220"url": "https://horizonmicromobility.com/cdn/shop/articles/3F2A3193.png?v=1684327878&width=1280", 1221"width": 1280, 1222"height": 1280 1223}, 1224"url": "https://horizonmicromobility.com/blogs/micromobility-blog/honbike-uni-4-e-bike-first-impressions", 1225"datePublished": "2023-05-17 13:51:22 +0100", 1226"dateModified": "2023-05-17 13:51:22 +0100", 1227"dateCreated": "2023-05-17 13:51:18 +0100", 1228"author": { 1229"@type": "Person", 1230"name": "Horizon Micromobility", 1231"url": "https://horizonmicromobility.com" 1232} 1233}, 1234 1235{ 1236"@context": "https://schema.org", 1237"@type": "BlogPosting", 1238"headline": "Get your Tenways electric bike on a cycle scheme", 1239"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-tenways-electric-bike-on-a-cycle-scheme", 1240"image": { 1241"@type": "ImageObject", 1242"url": "https://horizonmicromobility.com/cdn/shop/articles/get-your-tenways-electric-bike-on-a-cycle-scheme-214913_962adb35-53b1-4005-96dc-84b90c9375a4.jpg?v=1744613217&width=1200", 1243"width": 1200, 1244"height": 1200 1245}, 1246"url": "https://horizonmicromobility.com/blogs/micromobility-blog/get-your-tenways-electric-bike-on-a-cycle-scheme", 1247"datePublished": "2023-05-04 06:31:38 +0100", 1248"dateModified": "2025-04-14 07:46:57 +0100", 1249"dateCreated": "2023-05-04 06:31:38 +0100", 1250"description": "Tenways e-bikes on cycle to works schemes", 1251"author": { 1252"@type": "Person", 1253"name": "Horizon Micromobility", 1254"url": "https://horizonmicromobility.com" 1255} 1256},
1257 1258{ 1259"@context": "https://schema.org", 1260"@type": "BlogPosting", 1261"headline": "Tenways electric bikes stock update", 1262"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-electric-bikes-stock-update", 1263"image": { 1264"@type": "ImageObject", 1265"url": "https://horizonmicromobility.com/cdn/shop/articles/tenways-electric-bikes-stock-update-683457.jpg?v=1683365659&width=1200", 1266"width": 1200, 1267"height": 1200 1268}, 1269"url": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-electric-bikes-stock-update", 1270"datePublished": "2023-05-04 06:25:12 +0100", 1271"dateModified": "2023-05-06 10:34:19 +0100", 1272"dateCreated": "2023-04-29 13:28:47 +0100", 1273"description": "Update on latest stock from Tenways", 1274"author": { 1275"@type": "Person", 1276"name": "Horizon Micromobility", 1277"url": "https://horizonmicromobility.com" 1278} 1279}, 1280 1281{ 1282"@context": "https://schema.org", 1283"@type": "BlogPosting", 1284"headline": "Specialist cycle insurance companies", 1285"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/specialist-cycle-insurance-companies", 1286"image": { 1287"@type": "ImageObject", 1288"url": "https://horizonmicromobility.com/cdn/shop/articles/specialist-cycle-insurance-companies-432642.jpg?v=1683365661&width=1200", 1289"width": 1200, 1290"height": 675 1291}, 1292"url": "https://horizonmicromobility.com/blogs/micromobility-blog/specialist-cycle-insurance-companies", 1293"datePublished": "2023-01-08 17:06:22 +0000", 1294"dateModified": "2023-05-06 10:34:21 +0100", 1295"dateCreated": "2023-01-08 17:06:22 +0000", 1296"description": "Links to a range of companies that specialise in e-bike insurance", 1297"author": { 1298"@type": "Person", 1299"name": "Horizon Micromobility", 1300"url": "https://horizonmicromobility.com" 1301} 1302}, 1303 1304{ 1305"@context": "https://schema.org", 1306"@type": "BlogPosting", 1307"headline": "E-bike and e-scooter winter riding tips", 1308"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/e-bike-and-e-scooter-winter-riding-tips", 1309"image": { 1310"@type": "ImageObject", 1311"url": "https://horizonmicromobility.com/cdn/shop/articles/e-bike-and-e-scooter-winter-riding-tips-993308.jpg?v=1683365663&width=682", 1312"width": 682, 1313"height": 682 1314}, 1315"url": "https://horizonmicromobility.com/blogs/micromobility-blog/e-bike-and-e-scooter-winter-riding-tips", 1316"datePublished": "2022-10-11 16:59:57 +0100", 1317"dateModified": "2023-05-06 10:34:23 +0100", 1318"dateCreated": "2022-10-11 16:59:57 +0100", 1319"description": "Useful tips for using your electric scooter or e-bike in the winter", 1320"author": { 1321"@type": "Person", 1322"name": "Horizon Micromobility", 1323"url": "https://horizonmicromobility.com" 1324} 1325}, 1326 1327{ 1328"@context": "https://schema.org", 1329"@type": "BlogPosting", 1330"headline": "Electric Scooter Repairs", 1331"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/electric-scooter-repairs", 1332"image": { 1333"@type": "ImageObject", 1334"url": "https://horizonmicromobility.com/cdn/shop/articles/electric-scooter-repairs-600260.jpg?v=1683365664&width=380", 1335"width": 380, 1336"height": 380 1337}, 1338"url": "https://horizonmicromobility.com/blogs/micromobility-blog/electric-scooter-repairs", 1339"datePublished": "2022-10-07 09:21:59 +0100", 1340"dateModified": "2023-05-06 10:34:24 +0100", 1341"dateCreated": "2022-10-07 09:21:19 +0100", 1342"description": "We're able to repair any of the electric scooters we sell as well as the various re-branded versions of these scooters. Brands we're able to repair are HX, TurboAnt, Riley, Flow, Decent and Joyor.", 1343"author": { 1344"@type": "Person", 1345"name": "Horizon Micromobility", 1346"url": "https://horizonmicromobility.com" 1347} 1348}, 1349 1350{ 1351"@context": "https://schema.org", 1352"@type": "BlogPosting", 1353"headline": "What is a belt drive e-bike", 1354"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/what-is-a-belt-drive-e-bike", 1355"image": { 1356"@type": "ImageObject", 1357"url": "https://horizonmicromobility.com/cdn/shop/articles/what-is-a-belt-drive-e-bike-672239.jpg?v=1683365666&width=375", 1358"width": 375, 1359"height": 375 1360}, 1361"url": "https://horizonmicromobility.com/blogs/micromobility-blog/what-is-a-belt-drive-e-bike", 1362"datePublished": "2022-09-24 18:26:56 +0100", 1363"dateModified": "2023-05-06 10:34:26 +0100", 1364"dateCreated": "2022-09-24 15:27:01 +0100", 1365"description": "You may have heard about belt driven bikes and also seen some pictures but what exactly is an e-bike that's "belt driven" ", 1366"author": { 1367"@type": "Person", 1368"name": "Horizon Micromobility", 1369"url": "https://horizonmicromobility.com" 1370} 1371}, 1372 1373{ 1374"@context": "https://schema.org", 1375"@type": "BlogPosting", 1376"headline": "Bosch e-bike spares", 1377"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-e-bike-spares", 1378"image": { 1379"@type": "ImageObject", 1380"url": "https://horizonmicromobility.com/cdn/shop/articles/bosch-e-bike-spares-605632.jpg?v=1683365667&width=225", 1381"width": 225, 1382"height": 225 1383}, 1384"url": "https://horizonmicromobility.com/blogs/micromobility-blog/bosch-e-bike-spares", 1385"datePublished": "2022-09-09 08:15:09 +0100", 1386"dateModified": "2023-05-06 10:34:27 +0100", 1387"dateCreated": "2022-09-09 08:15:09 +0100", 1388"description": "As an authorised Bosch dealer we're able to order in any Bosch part for your e-bike. ", 1389"author": { 1390"@type": "Person", 1391"name": "Horizon Micromobility", 1392"url": "https://horizonmicromobility.com" 1393} 1394}, 1395 1396{ 1397"@context": "https://schema.org", 1398"@type": "BlogPosting", 1399"headline": "VanMoof electric bikes", 1400"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/vanmoof-electric-bikes", 1401"image": { 1402"@type": "ImageObject", 1403"url": "https://horizonmicromobility.com/cdn/shop/articles/vanmoof-electric-bikes-923603.webp?v=1683365669&width=1070", 1404"width": 1070, 1405"height": 832 1406}, 1407"url": "https://horizonmicromobility.com/blogs/micromobility-blog/vanmoof-electric-bikes", 1408"datePublished": "2022-09-06 14:28:29 +0100", 1409"dateModified": "2023-05-06 10:34:29 +0100", 1410"dateCreated": "2022-09-06 14:28:13 +0100", 1411"description": "Looking for a cheaper alternative to VanMoof e-bike then take a look at the Tenways range", 1412"author": { 1413"@type": "Person", 1414"name": "Horizon Micromobility", 1415"url": "https://horizonmicromobility.com" 1416} 1417}, 1418 1419{ 1420"@context": "https://schema.org", 1421"@type": "BlogPosting", 1422"headline": "TurboAnt X7 Pro electric scooter", 1423"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/turboant-x7-pro-electric-scooter", 1424"image": { 1425"@type": "ImageObject", 1426"url": "https://horizonmicromobility.com/cdn/shop/articles/turboant-x7-pro-electric-scooter-402127.jpg?v=1683365672&width=1200", 1427"width": 1200, 1428"height": 1200 1429}, 1430"url": "https://horizonmicromobility.com/blogs/micromobility-blog/turboant-x7-pro-electric-scooter", 1431"datePublished": "2022-09-05 16:50:05 +0100", 1432"dateModified": "2023-05-06 10:34:32 +0100", 1433"dateCreated": "2022-09-05 16:50:06 +0100", 1434"description": "Looking for a TurboAnt X7 Pro? Then save yourself some money and go for the HX X8, it's the same scooter but without the TurboANT logo - in fact HX make the scooters for TurboAnt.", 1435"author": { 1436"@type": "Person", 1437"name": "Horizon Micromobility", 1438"url": "https://horizonmicromobility.com" 1439} 1440}, 1441 1442{ 1443"@context": "https://schema.org", 1444"@type": "BlogPosting", 1445"headline": "HX X8 Decent Riley replacement battery", 1446"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/hx-x8-decent-riley-replacement-battery", 1447"image": { 1448"@type": "ImageObject", 1449"url": "https://horizonmicromobility.com/cdn/shop/articles/hx-x8-decent-riley-replacement-battery-608794_3ad1a249-85a3-4244-a57f-f00d18996c70.jpg?v=1751361869&width=900", 1450"width": 900, 1451"height": 900 1452}, 1453"url": "https://horizonmicromobility.com/blogs/micromobility-blog/hx-x8-decent-riley-replacement-battery", 1454"datePublished": "2022-08-19 10:44:40 +0100", 1455"dateModified": "2025-07-01 10:24:29 +0100", 1456"dateCreated": "2022-08-19 10:44:02 +0100", 1457"description": "Turboant X7Pro, HX X8, Decent One Max replacement battery", 1458"author": { 1459"@type": "Person", 1460"name": "Horizon Micromobility", 1461"url": "https://horizonmicromobility.com" 1462} 1463}, 1464 1465{ 1466"@context": "https://schema.org", 1467"@type": "BlogPosting", 1468"headline": "Tenways e-bike dealer near London", 1469"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-e-bike-dealer-near-london", 1470"image": { 1471"@type": "ImageObject", 1472"url": "https://horizonmicromobility.com/cdn/shop/articles/tenways-e-bike-dealer-near-london-450158.jpg?v=1683365675&width=1200", 1473"width": 1200, 1474"height": 833 1475}, 1476"url": "https://horizonmicromobility.com/blogs/micromobility-blog/tenways-e-bike-dealer-near-london", 1477"datePublished": "2022-08-17 13:57:13 +0100", 1478"dateModified": "2023-05-06 10:34:35 +0100", 1479"dateCreated": "2022-08-17 09:50:24 +0100", 1480"author": { 1481"@type": "Person", 1482"name": "Horizon Micromobility", 1483"url": "https://horizonmicromobility.com" 1484} 1485}, 1486 1487{ 1488"@context": "https://schema.org", 1489"@type": "BlogPosting", 1490"headline": "Introducing TENWAYS CGO800s electric bike", 1491"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/introducing-tenways-cgo800s-electric-bike", 1492"image": { 1493"@type": "ImageObject", 1494"url": "https://horizonmicromobility.com/cdn/shop/articles/introducing-tenways-cgo800s-electric-bike-731920.jpg?v=1683365679&width=1200", 1495"width": 1200, 1496"height": 1200 1497}, 1498"url": "https://horizonmicromobility.com/blogs/micromobility-blog/introducing-tenways-cgo800s-electric-bike", 1499"datePublished": "2022-07-06 12:20:11 +0100", 1500"dateModified": "2023-05-06 10:34:39 +0100", 1501"dateCreated": "2022-07-06 12:15:00 +0100", 1502"author": { 1503"@type": "Person", 1504"name": "Horizon Micromobility", 1505"url": "https://horizonmicromobility.com" 1506} 1507}, 1508 1509{ 1510"@context": "https://schema.org", 1511"@type": "BlogPosting", 1512"headline": "Introducing TENWAYS CGO600 electric bike", 1513"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/introducing-tenways-cgo600-electric-bike", 1514"image": { 1515"@type": "ImageObject", 1516"url": "https://horizonmicromobility.com/cdn/shop/articles/introducing-tenways-cgo600-electric-bike-492047.jpg?v=1683365681&width=1200", 1517"width": 1200, 1518"height": 1200 1519}, 1520"url": "https://horizonmicromobility.com/blogs/micromobility-blog/introducing-tenways-cgo600-electric-bike", 1521"datePublished": "2022-06-21 13:59:25 +0100", 1522"dateModified": "2023-05-06 10:34:41 +0100", 1523"dateCreated": "2022-06-21 13:44:37 +0100", 1524"description": "TENWAYS electric bikes are something different with their maintenance free Gates carbon belt drive and stunning good looks", 1525"author": { 1526"@type": "Person", 1527"name": "Horizon Micromobility", 1528"url": "https://horizonmicromobility.com" 1529} 1530}, 1531 1532{ 1533"@context": "https://schema.org", 1534"@type": "BlogPosting", 1535"headline": "Inokim Quick 4 - the ultimate commuter scooter", 1536"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/inokim-quick-4-the-ultimate-commuter-scooter", 1537"image": { 1538"@type": "ImageObject", 1539"url": "https://horizonmicromobility.com/cdn/shop/articles/inokim-quick-4-the-ultimate-commuter-scooter-314893.jpg?v=1683365683&width=683", 1540"width": 683, 1541"height": 683 1542}, 1543"url": "https://horizonmicromobility.com/blogs/micromobility-blog/inokim-quick-4-the-ultimate-commuter-scooter", 1544"datePublished": "2022-03-28 09:42:40 +0100", 1545"dateModified": "2023-05-06 10:34:43 +0100", 1546"dateCreated": "2022-03-28 09:33:04 +0100", 1547"description": "The INOKIM Quick 4 Super is the ultimate commuter scooter.", 1548"author": { 1549"@type": "Person", 1550"name": "Horizon Micromobility", 1551"url": "https://horizonmicromobility.com" 1552} 1553}, 1554 1555{ 1556"@context": "https://schema.org", 1557"@type": "BlogPosting", 1558"headline": "HX X9 electric scooter Product Focus", 1559"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/hx-x9-electric-scooter-product-focus", 1560"image": { 1561"@type": "ImageObject", 1562"url": "https://horizonmicromobility.com/cdn/shop/articles/hx-x9-electric-scooter-product-focus-879291.jpg?v=1683365685&width=1200", 1563"width": 1200, 1564"height": 1200 1565}, 1566"url": "https://horizonmicromobility.com/blogs/micromobility-blog/hx-x9-electric-scooter-product-focus", 1567"datePublished": "2022-03-09 09:52:52 +0000", 1568"dateModified": "2023-05-06 10:34:46 +0100", 1569"dateCreated": "2022-03-09 08:26:33 +0000", 1570"description": "The X9 electric scooter from HX available in 3 colours and 3 battery sizes. 500W rear motor powers the wide 10" tyres", 1571"author": { 1572"@type": "Person", 1573"name": "Horizon Micromobility", 1574"url": "https://horizonmicromobility.com" 1575} 1576}, 1577 1578{ 1579"@context": "https://schema.org", 1580"@type": "BlogPosting", 1581"headline": "Horizon Micromobility SHO Water Bottle Giveaway", 1582"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/horizon-micromobility-sho-water-bottle-giveaway", 1583"image": { 1584"@type": "ImageObject", 1585"url": "https://horizonmicromobility.com/cdn/shop/articles/horizon-micromobility-sho-water-bottle-giveaway-874588.jpg?v=1683365688&width=1200", 1586"width": 1200, 1587"height": 1200 1588}, 1589"url": "https://horizonmicromobility.com/blogs/micromobility-blog/horizon-micromobility-sho-water-bottle-giveaway", 1590"datePublished": "2022-03-03 09:26:38 +0000", 1591"dateModified": "2023-05-06 10:34:48 +0100", 1592"dateCreated": "2022-03-03 08:15:30 +0000", 1593"description": "Win a Horizon Micromobility SHO Water Bottle and £100 off any e-bike, or £50 off any e-scooter.", 1594"author": { 1595"@type": "Person", 1596"name": "Horizon Micromobility", 1597"url": "https://horizonmicromobility.com" 1598} 1599}, 1600 1601{ 1602"@context": "https://schema.org", 1603"@type": "BlogPosting", 1604"headline": "Electric bikes for commuting", 1605"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/electric-bikes-for-commuting", 1606"image": { 1607"@type": "ImageObject", 1608"url": "https://horizonmicromobility.com/cdn/shop/articles/electric-bikes-for-commuting-214524.jpg?v=1683365692&width=1080", 1609"width": 1080, 1610"height": 1080 1611}, 1612"url": "https://horizonmicromobility.com/blogs/micromobility-blog/electric-bikes-for-commuting", 1613"datePublished": "2022-02-20 17:45:53 +0000", 1614"dateModified": "2023-05-06 10:34:52 +0100", 1615"dateCreated": "2022-02-20 17:03:30 +0000", 1616"description": "What to look for when e-bike shopping for commuting and some of the advantages over public transport or driving to work", 1617"author": { 1618"@type": "Person", 1619"name": "Horizon Micromobility", 1620"url": "https://horizonmicromobility.com" 1621} 1622}, 1623 1624{ 1625"@context": "https://schema.org", 1626"@type": "BlogPosting", 1627"headline": "Electric bikes for older people", 1628"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/electric-bikes-for-older-people", 1629"image": { 1630"@type": "ImageObject", 1631"url": "https://horizonmicromobility.com/cdn/shop/articles/electric-bikes-for-older-people-824910.jpg?v=1683365948&width=1080", 1632"width": 1080, 1633"height": 1080 1634}, 1635"url": "https://horizonmicromobility.com/blogs/micromobility-blog/electric-bikes-for-older-people", 1636"datePublished": "2022-02-13 17:20:05 +0000", 1637"dateModified": "2023-05-06 10:39:08 +0100", 1638"dateCreated": "2022-02-13 16:29:49 +0000", 1639"description": "Electric bike are for everyone, no matter what your age. In this blog we discuss where to start when looking for an electric bike.", 1640"author": { 1641"@type": "Person", 1642"name": "Horizon Micromobility", 1643"url": "https://horizonmicromobility.com" 1644} 1645}, 1646 1647{ 1648"@context": "https://schema.org", 1649"@type": "BlogPosting", 1650"headline": "Econic One electric bikes", 1651"mainEntityOfPage": "https://horizonmicromobility.com/blogs/micromobility-blog/econic-one-electric-bikes", 1652"image": { 1653"@type": "ImageObject", 1654"url": "https://horizonmicromobility.com/cdn/shop/articles/econic-one-electric-bikes-608798.jpg?v=1683365949&width=900", 1655"width": 900, 1656"height": 900 1657}, 1658"url": "https://horizonmicromobility.com/blogs/micromobility-blog/econic-one-electric-bikes", 1659"datePublished": "2022-01-18 15:16:17 +0000", 1660"dateModified": "2023-05-06 10:39:09 +0100", 1661"dateCreated": "2022-01-18 15:03:37 +0000", 1662"description": "Introducing the Econic One range of e-bikes", 1663"author": { 1664"@type": "Person", 1665"name": "Horizon Micromobility", 1666"url": "https://horizonmicromobility.com" 1667} 1668} 1669 1670] 1671} 1672</script>
1672 1673<!-- END app snippet --><!-- BEGIN app snippet: smartseo.no.index --> 1674 1675 1676 1677 1678 1679 1680<!-- END app snippet --><!-- BEGIN app snippet: smartseo.breadcrumbs.jsonld --><!--JSON-LD data generated by Smart SEO-->
1681<script type="application/ld+json"> 1682{ 1683"@context": "https://schema.org", 1684"@type": "BreadcrumbList", 1685"itemListElement": [ 1686{ 1687"@type": "ListItem", 1688"position": 1, 1689"item": { 1690"@type": "WebSite", 1691"@id": "https://horizonmicromobility.com", 1692"name": "Home" 1693} 1694} 1695, 1696{ 1697"@type": "ListItem", 1698"position": 2, 1699"item": { 1700"@type": "Blog", 1701"@id": "https://horizonmicromobility.com/blogs/micromobility-blog", 1702"name": "Micromobility Blog" 1703} 1704} 1705] 1706} 1707</script>
1707<!-- END app snippet --><!-- END app block -->
1707<script src="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1707
1707
1708<script src="https://cdn.shopify.com/extensions/019f3d03-7192-7525-972a-14cec7dea408/open-close-hours-205/assets/open-and-close-hours.js" type="text/javascript" defer="defer"></script>
1708 1709<link href="https://cdn.shopify.com/extensions/019f3d03-7192-7525-972a-14cec7dea408/open-close-hours-205/assets/open-and-close-hours.css" rel="stylesheet" type="text/css" media="all"> 1710<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1711<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 45985562792,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "blog"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1711
1711
1712<script> 1713 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1714</script>
vendor: 1 bytes, line 1714
1714
1715<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
1715).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 45985562792,storefrontBaseUrl: "https://horizonmicromobility.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://horizonmicromobility.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2049278327","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1715,"dataSharingState":"unrestricted"},{"id":"948568439","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-B6YZZR6CHV\\\",\\\"GT-PZV5JHKW\\\",\\\"GT-PLFDV4HB\\\"],\\\"target_country\\\":\\\"GB\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-B6YZZR6CHV\\\",\\\"MC-FR12Y70MGB\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-B6YZZR6CHV\\\",\\\"MC-FR12Y70MGB\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-B6YZZR6CHV\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-B6YZZR6CHV\\\",\\\"MC-4NRCYY5KF0\\\",\\\"MC-FR12Y70MGB\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-B6YZZR6CHV\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-B6YZZR6CHV\\\",\\\"MC-4NRCYY5KF0\\\",\\\"MC-FR12Y70MGB\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-B6YZZR6CHV\\\",\\\"MC-4NRCYY5KF0\\\",\\\"MC-FR12Y70MGB\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-B6YZZR6CHV\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-B6YZZR6CHV\\\",\\\"MC-FR12Y70MGB\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-B6YZZR6CHV\\\",\\\"MC-FR12Y70MGB\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-B6YZZR6CHV\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"167969024","configuration":"{\"pixel_id\":\"327956245126724\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Horizon Micromobility","paymentSettings":{"currencyCode":"GBP"},"myshopifyDomain":"horizon-micromobility.myshopify.com","countryCode":"GB","storefrontUrl":"https:\/\/horizonmicromobility.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://horizonmicromobility.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"177161011575","themeStoreId":"857","themePublished":"true","eventMetadataId":"caaec327-5f10-4a5e-9d96-84f71636966f","pageType":"blog","resourceId":"75371643048","shopId":"45985562792","storefrontBaseUrl":"https:\/\/horizonmicromobility.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1715<script> 1716 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1717 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1718 window.ShopifyAnalytics.meta.currency = 'GBP'; 1719 var meta = {"page":{"pageType":"blog","resourceType":"blog","resourceId":75371643048,"requestId":"45202509-19b0-4177-9c49-08914fd379c2-1791120476"}}; 1720 for (var attr in meta) { 1721 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1722 } 1723</script>
vendor: 1 bytes, line 1723
1723
1724<script class="analytics"> 1725 (function () { 1726 var customDocumentWrite = function(content) { 1727 var jquery = null; 1728 1729 if (window.jQuery) { 1730 jquery = window.jQuery; 1731 } else if (window.Checkout && window.Checkout.$) { 1732 jquery = window.Checkout.$; 1733 } 1734 1735 if (jquery) { 1736 jquery('body').append(content); 1737 } 1738 }; 1739 1740 var hasLoggedConversion = function(token) { 1741 if (token) { 1742 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1743 } 1744 return false; 1745 } 1746 1747 var setCookieIfConversion = function(token) { 1748 if (token) { 1749 var twoMonthsFromNow = new Date(Date.now()); 1750 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1751 1752 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1753 } 1754 } 1755 1756 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1757 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1758 if (trekkie.integrations) { 1759 return; 1760 } 1761 trekkie.methods = [ 1762 'identify', 1763 'page', 1764 'ready', 1765 'track', 1766 'trackForm', 1767 'trackLink' 1768 ]; 1769 trekkie.factory = function(method) { 1770 return function() { 1771 var args = Array.prototype.slice.call(arguments); 1772 args.unshift(method); 1773 trekkie.push(args); 1774 if (method == 'track' || method == 'page') { 1775 var pageUrl; 1776 try { 1777 pageUrl = window.location.href; 1778 } catch (e) {} 1779 var pageReferrer; 1780 try { 1781 pageReferrer = document.referrer; 1782 } catch (e) {} 1783 try { 1784 if (window.__TREKKIE_SHIM_QUEUE == null) { 1785 window.__TREKKIE_SHIM_QUEUE = []; 1786 } 1787 window.__TREKKIE_SHIM_QUEUE.push({ 1788 from: 'trekkie-stub', 1789 method: method, 1790 args: args.slice(1), 1791 pageContext: { 1792 url: pageUrl, 1793 referrer: pageReferrer 1794 } 1795 }); 1796 } catch (e) { 1797 // no-op 1798 } 1799 } 1800 return trekkie; 1801 }; 1802 }; 1803 for (var i = 0; i < trekkie.methods.length; i++) { 1804 var key = trekkie.methods[i]; 1805 trekkie[key] = trekkie.factory(key); 1806 } 1807 trekkie.load = function(config) { 1808 trekkie.config = config || {}; 1809 trekkie.config.initialDocumentCookie = document.cookie; 1810 var first = document.getElementsByTagName('script')[0]; 1811var script = document.createElement('script'); 1812script.type = 'text/javascript'; 1813script.onerror = function(e) { 1814 var scriptFallback = document.createElement('script'); 1815 scriptFallback.type = 'text/javascript'; 1816 scriptFallback.onerror = function(error) { 1817 var Monorail = { 1818 produce: function produce(monorailDomain, schemaId, payload) { 1819 var currentMs = new Date().getTime(); 1820 var event = { 1821 schema_id: schemaId, 1822 payload: payload, 1823 metadata: { 1824 event_created_at_ms: currentMs, 1825 event_sent_at_ms: currentMs 1826 } 1827 }; 1828 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1829 }, 1830 sendRequest: function sendRequest(endpointUrl, payload) { 1831 // Try the sendBeacon API 1832 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1833 var blobData = new window.Blob([payload], { 1834 type: 'text/plain' 1835 }); 1836 1837 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1838 return true; 1839 } // sendBeacon was not successful 1840 1841 } // XHR beacon 1842 1843 var xhr = new XMLHttpRequest(); 1844 1845 try { 1846 xhr.open('POST', endpointUrl); 1847 xhr.setRequestHeader('Content-Type', 'text/plain'); 1848 xhr.send(payload); 1849 } catch (e) { 1850 console.log(e); 1851 } 1852 1853 return false; 1854 }, 1855 isIos12: function isIos12() { 1856 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1857 } 1858 }; 1859 Monorail.produce('monorail-edge.shopifysvc.com', 1860 'trekkie_storefront_load_errors/1.1', 1861 {shop_id: 45985562792, 1862 theme_id: 177161011575, 1863 app_name: "storefront", 1864 context_url: window.location.href, 1865 source_url: "//horizonmicromobility.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1866 1867 }; 1868 scriptFallback.async = true; 1869 scriptFallback.src = '//horizonmicromobility.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1870 first.parentNode.insertBefore(scriptFallback, first); 1871}; 1872script.async = true; 1873script.src = '//horizonmicromobility.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1874first.parentNode.insertBefore(script, first); 1875 1876 }; 1877 trekkie.load( 1878 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":45985562792,"isMerchantRequest":null,"themeId":177161011575,"themeCityHash":"2864200419060481397","contentLanguage":"en","currency":"GBP","eventMetadataId":"caaec327-5f10-4a5e-9d96-84f71636966f"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1879 ); 1880 1881 var loaded = false;
1882 trekkie.ready(function() { 1883 if (loaded) return; 1884 loaded = true; 1885 1886 window.ShopifyAnalytics.lib = window.trekkie; 1887 1888 var originalDocumentWrite = document.write; 1889 document.write = customDocumentWrite; 1890 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1891 document.write = originalDocumentWrite; 1892 1893 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1894 var token = match? match[1]: undefined; 1895 if (!hasLoggedConversion(token)) { 1896 setCookieIfConversion(token); 1897 1898 } 1899 }); 1900 1901 window.ShopifyAnalytics.lib.page(null,{"pageType":"blog","resourceType":"blog","resourceId":75371643048,"requestId":"45202509-19b0-4177-9c49-08914fd379c2-1791120476","shopifyEmitted":true}); 1902 1903 var eventsListenerScript = document.createElement('script'); 1904 eventsListenerScript.async = true; 1905 eventsListenerScript.src = "//horizonmicromobility.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1906 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1907})();</script>
1907 1908
1908<script> 1909 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 1910 window.ga = function ga() { 1911 (window.ga.q = window.ga.q || []).push(arguments); 1912 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1913 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 1914 } 1915 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 1916 }; 1917 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1918 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 1919 } 1920 } 1921</script>
vendor: 1 bytes, line 1921
1921
1922<script 1923 defer 1924 src="https://horizonmicromobility.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1925 data-application="storefront-renderer" 1926 data-shop-id="45985562792" 1927 data-render-region="gcp-us-west1" 1928 data-page-type="blog" 1929 data-theme-instance-id="177161011575" 1930 data-theme-name="Impulse" 1931 data-theme-version="5.3.0" 1932 data-monorail-region="shop_domain" 1933 data-resource-timing-sampling-rate="10" 1934 data-shs="true" 1935 data-shs-beacon="true" 1936 data-shs-export-with-fetch="true" 1937 data-shs-logs-sample-rate="1" 1938 data-shs-beacon-endpoint="https://horizonmicromobility.com/api/collect" 1939></script>
vendor: 1 bytes, line 1939
1939
1940<script id="shopify-chat-page-data" type="application/json">{"greetingMessage":"Welcome to Horizon Micromobility. How can I help?","customerServiceEmail":"[email protected]","onlineStorePasswordProtected":false,"continueAsChip":false,"translations":[{"key":"agent_chat.panel.open_chat","value":"Open chat"},{"key":"agent_chat.panel.ask_anything","value":"Ask anything"},{"key":"agent_chat.panel.title","value":"Storekick"},{"key":"agent_chat.panel.unread_replies","value":"Unread replies"},{"key":"agent_chat.panel.back_to_chat","value":"Back to chat"},{"key":"agent_chat.panel.see_history","value":"See chat history"},{"key":"agent_chat.panel.new_chat","value":"Create a new chat"},{"key":"agent_chat.panel.close","value":"Close chat"},{"key":"agent_chat.panel.undock","value":"Undock chat"},{"key":"agent_chat.panel.dock","value":"Dock chat"},{"key":"agent_chat.panel.expand","value":"Expand chat"},{"key":"agent_chat.panel.contract","value":"Contract chat"},{"key":"agent_chat.panel.jump_to_latest","value":"Jump to latest"},{"key":"agent_chat.panel.loading_chat","value":"Loading chat"},{"key":"agent_chat.input.label","value":"Type your message"},{"key":"agent_chat.input.placeholder","value":"Ask anything..."},{"key":"agent_chat.input.send","value":"Send"},{"key":"agent_chat.input.stop","value":"Stop generating"},{"key":"agent_chat.thinking","value":"Thinking..."},{"key":"agent_chat.first_response_delayed","value":"Agent is taking longer to respondâ¦"},{"key":"agent_chat.searching","value":"Searching..."},{"key":"agent_chat.message.sent_timestamp","value":"Sent · {{time}}"},{"key":"agent_chat.message.automated_label","value":"Automated"},{"key":"agent_chat.message.automated_timestamp","value":"Automated · {{time}}"},{"key":"agent_chat.liveAgentHandoff","value":"Someone from our team will be with you shortly"},{"key":"agent_chat.human_handoff.action","value":"Chat with our team"},{"key":"agent_chat.human_handoff.request","value":"Iâd like to talk to someone from your team"},{"key":"agent_chat.human_handoff.ai_assistant","value":"AI assistant"},{"key":"agent_chat.greeting.default","value":"Hi there!"},{"key":"agent_chat.greeting.with_name","value":"Hi {{name}}!"},{"key":"agent_chat.greeting.welcome","value":"You can ask questions about shopping, sizing\/dimensions, shipping, returns, or order status."},{"key":"agent_chat.greeting.welcome_back","value":"Welcome back to %{shop_name}! How can I help?"},{"key":"agent_chat.greeting.welcome_back_no_shop","value":"Welcome back! How can I help?"},{"key":"agent_chat.greeting.welcome_to_shop","value":"Welcome to %{shop_name}. How can I help?"},{"key":"agent_chat.greeting.generic","value":"How can I help?"},{"key":"agent_chat.disclaimer.text","value":"This chat is powered by AI from Shopify and may make mistakes. Your messages are visible to {{shop_name}}. See"},{"key":"agent_chat.disclaimer.text_human","value":"Your messages are visible to {{shop_name}} and to Shopify for the provision and improvement of the services. See"},{"key":"agent_chat.disclaimer.link_text","value":"privacy policy"},{"key":"agent_chat.error.response_unavailable","value":"Response unavailable"},{"key":"agent_chat.error.generic","value":"Something went wrong."},{"key":"agent_chat.error.response_failed","value":"Couldnât load this message"},{"key":"agent_chat.error.message_send_failed","value":"Your message couldnât be sent"},{"key":"agent_chat.error.attachment_upload_failed","value":"Your attachment didnât upload"},{"key":"agent_chat.error.first_response_stalled","value":"Agent couldnât respond"},{"key":"agent_chat.error.try_again","value":"Try again"},{"key":"agent_chat.error.unavailable","value":"Chat isn't available right now - try again later"},{"key":"agent_chat.error.usage_limit","value":"Message limit reached â try again later or email us at {{email}}"},{"key":"agent_chat.error.usage_limit_no_email","value":"Message limit reached â try again later"},{"key":"agent_chat.error.cost_quota_unhandled","value":"Chat isnât available right nowâemail us at {{email}}"},{"key":"agent_chat.error.cost_quota_unhandled_no_email","value":"Chat isnât available right now"},{"key":"agent_chat.error.cost_quota_handover","value":"AI assistant isnât available right now â our team will reply shortly"},{"key":"agent_chat.history.heading","value":"Chat history"},{"key":"agent_chat.history.loading","value":"Loading conversation history"},{"key":"agent_chat.history.aria_label","value":"Conversation history"},{"key":"agent_chat.history.no_conversations","value":"No conversations"},{"key":"agent_chat.history.conversation.one","value":"conversation"},{"key":"agent_chat.history.conversation.other","value":"conversations"},{"key":"agent_chat.history.error_message","value":"Something went wrong."},{"key":"agent_chat.history.try_again","value":"Try again"},{"key":"agent_chat.history.no_past","value":"No past conversations"},{"key":"agent_chat.history.start_new","value":"Start a new chat"},{"key":"agent_chat.history.untitled","value":"Untitled conversation"},{"key":"agent_chat.history.resume","value":"Resume: {{title}}"},{"key":"agent_chat.history.resume_with_time","value":"Resume: {{title}}, {{time}}"},{"key":"agent_chat.history.delete","value":"Delete conversation: {{title}}"},{"key":"agent_chat.history.delete_failed","value":"Could not delete conversation"},{"key":"agent_chat.feedback.group_label","value":"Message feedback"},{"key":"agent_chat.feedback.thumbs_up","value":"Thumbs up"},{"key":"agent_chat.feedback.thumbs_down","value":"Thumbs down"},{"key":"agent_chat.feedback.add_comment","value":"Add comment"},{"key":"agent_chat.feedback.thanks","value":"Thanks for your feedback"},{"key":"agent_chat.feedback.placeholder_up","value":"Tell us what went well"},{"key":"agent_chat.feedback.placeholder_down","value":"Tell us what could have been better"},{"key":"agent_chat.feedback.comment_label","value":"Feedback comment"},{"key":"agent_chat.feedback.cancel","value":"Cancel"},{"key":"agent_chat.feedback.submit","value":"Submit"},{"key":"agent_chat.feedback.character_count","value":"{{current}}\/{{max}}"},{"key":"agent_chat.feedback.character_limit_reached","value":"Maximum length reached. Feedback is limited to {{max}} characters."},{"key":"agent_chat.buyer_profile.button.open","value":"Buyer Profile"},{"key":"agent_chat.buyer_profile.title","value":"Buyer Profile"},{"key":"agent_chat.buyer_profile.empty","value":"No buyer profile available."},{"key":"agent_chat.buyer_profile.close","value":"Close"},{"key":"agent_chat.suggestions.empty_state_label","value":"Suggested questions"},{"key":"agent_chat.suggestions.quick_reply_label","value":"Suggested replies"},{"key":"agent_chat.auth.sign_in_to_continue","value":"Sign in to continue"},{"key":"agent_chat.auth.sign_in","value":"Sign in"},{"key":"agent_chat.auth.skip_and_chat","value":"Skip and start chatting"},{"key":"agent_chat.auth.pre_chat_title","value":"Sign in to personalize and save your chats"},{"key":"agent_chat.auth.pre_chat_subtitle","value":"Sign in or create an account"},{"key":"agent_chat.auth.staff_chat_required_title","value":"Don't miss a reply"},{"key":"agent_chat.auth.staff_chat_required_subtitle","value":"Sign in to chat with our team. We'll email you if you leave the chat."},{"key":"agent_chat.auth.share_disclaimer","value":"By continuing, Shop will share your name and email with this store. See their {{terms_link}} and {{privacy_link}}"},{"key":"agent_chat.auth.terms_link","value":"terms"},{"key":"agent_chat.auth.privacy_link","value":"privacy policy"},{"key":"agent_chat.auth.declined_pre_chat","value":"I canât connect you with the store unless you sign in."},{"key":"agent_chat.reply_by_email.continuation_prompt","value":"If you leave the chat, weâll email you when thereâs a reply."},{"key":"agent_chat.reply_by_email.sign_in_prompt","value":"Sign in to get emailed when thereâs a reply."},{"key":"agent_chat.order_lookup.track_order","value":"Track my order"},{"key":"agent_chat.order_lookup.track_another_order","value":"Track another order"},{"key":"agent_chat.order_lookup.new_conversation","value":"New conversation"},{"key":"agent_chat.order_lookup.follow_up_label","value":"Order lookup actions"},{"key":"agent_chat.order_lookup.enter_order_information","value":"Enter order information"},{"key":"agent_chat.order_lookup.prompt","value":"To see your order status, please provide your order details."},{"key":"agent_chat.order_lookup.form_title","value":"Track my order"},{"key":"agent_chat.order_lookup.form_subtitle","value":"Please provide your information."},{"key":"agent_chat.order_lookup.order_number_label","value":"Order number"},{"key":"agent_chat.order_lookup.email_label","value":"Email address"},{"key":"agent_chat.order_lookup.submit","value":"Track my order"},{"key":"agent_chat.order_lookup.cancel","value":"Cancel"},{"key":"agent_chat.order_lookup.invalid_order_number","value":"Please enter a valid order number with only numbers and letters, no spaces (e.g. 1006)."},{"key":"agent_chat.order_lookup.invalid_order_number_whitespace","value":"Please enter a valid order number with only numbers and letters, no spaces (e.g. 1006)."},{"key":"agent_chat.order_lookup.invalid_email","value":"Please enter a valid email address"},{"key":"agent_chat.order_lookup.generic_error","value":"There was a problem looking up your order. Please try again."},{"key":"agent_chat.order_lookup.rate_limited_error","value":"Too many attempts. Try again later."},{"key":"agent_chat.order_lookup.locked_composer_status","value":"Order lookup is in progress. Start a new conversation to ask something else."},{"key":"agent_chat.legacy_contact.form_title","value":"Before we get started"},{"key":"agent_chat.legacy_contact.form_subtitle","value":"Please provide your information so we can reply to you if you leave the chat."},{"key":"agent_chat.legacy_contact.first_name_label","value":"First name"},{"key":"agent_chat.legacy_contact.last_name_label","value":"Last name"},{"key":"agent_chat.legacy_contact.email_label","value":"Email"},{"key":"agent_chat.legacy_contact.marketing_opt_in","value":"Email me with news and offers"},{"key":"agent_chat.legacy_contact.submit","value":"Start chat"},{"key":"agent_chat.legacy_contact.cancel","value":"Cancel"}
1940,{"key":"agent_chat.legacy_contact.invalid_first_name","value":"Enter a valid first name."},{"key":"agent_chat.legacy_contact.invalid_last_name","value":"Enter a valid last name."},{"key":"agent_chat.legacy_contact.invalid_email","value":"Enter a valid email address."},{"key":"agent_chat.legacy_contact.invalid_email_length","value":"Email address is too long."},{"key":"agent_chat.legacy_contact.generic_error","value":"Something went wrong."},{"key":"agent_chat.legacy_contact.rate_limited_error","value":"Too many attempts. Try again later."},{"key":"agent_chat.discountCard.useDiscount","value":"Use discount"},{"key":"agent_chat.discountCard.discountApplicationContext","value":"Applies automatically at checkout"},{"key":"agent_chat.cart.checkout","value":"Checkout"},{"key":"agent_chat.product.add_to_cart","value":"Add to cart"},{"key":"agent_chat.product.view_details","value":"View details"},{"key":"agent_chat.product.out_of_stock","value":"Out of stock"},{"key":"agent_chat.product.compare_suggestions","value":"Compare suggestions"},{"key":"agent_chat.product.hide_suggestions","value":"Hide suggestions"},{"key":"agent_chat.product.sold_out","value":"Sold out"},{"key":"agent_chat.order.item.one","value":"item"},{"key":"agent_chat.order.item.other","value":"items"},{"key":"agent_chat.order.less_items.one","value":"- hide {{count}} item"},{"key":"agent_chat.order.less_items.other","value":"- hide {{count}} items"},{"key":"agent_chat.order.more_items.one","value":"+ {{count}} more item"},{"key":"agent_chat.order.more_items.other","value":"+ {{count}} more items"},{"key":"agent_chat.order.view_order","value":"View order {{orderId}}"},{"key":"agent_chat.order.track_shipment","value":"Track shipment"},{"key":"agent_chat.order.of_total","value":"{{index}} of {{total}}"},{"key":"agent_chat.order.label","value":"Order {{number}}"},{"key":"agent_chat.order.count.one","value":"{{count}} Order"},{"key":"agent_chat.order.count.other","value":"{{count}} Orders"},{"key":"agent_chat.order.ordered_on","value":"Ordered {{date}}"},{"key":"agent_chat.order.select","value":"Select order {{number}}"},{"key":"agent_chat.return.heading","value":"Select items to return"},{"key":"agent_chat.return.toggle_item","value":"Select {{name}}"},{"key":"agent_chat.return.select_item_non_returnable","value":"{{name}}, not returnable"},{"key":"agent_chat.return.quantity_label","value":"Return quantity"},{"key":"agent_chat.return.reason_label","value":"Reason for return"},{"key":"agent_chat.return.reason_placeholder","value":"Select a reason"},{"key":"agent_chat.return.confirm","value":"Request return"},{"key":"agent_chat.return.confirmed","value":"Return requested"},{"key":"agent_chat.return.reason.size_too_small","value":"Size too small"},{"key":"agent_chat.return.reason.size_too_large","value":"Size too large"},{"key":"agent_chat.return.reason.unwanted","value":"Unwanted"},{"key":"agent_chat.return.reason.not_as_described","value":"Not as described"},{"key":"agent_chat.return.reason.wrong_item","value":"Wrong item"},{"key":"agent_chat.return.reason.defective","value":"Defective"},{"key":"agent_chat.return.reason.style","value":"Style"},{"key":"agent_chat.return.reason.color","value":"Color"},{"key":"agent_chat.return.reason.other_reason","value":"Other"},{"key":"agent_chat.scroll.previous","value":"Previous"},{"key":"agent_chat.scroll.next","value":"Next"}]}</script>
vendor: 1 bytes, line 1940
1940
1941<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"45985562792","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Sign in or create account"},{"key":"account_menu.signed_out_state.section_divider","value":"More ways to sign in"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OR"},{"key":"account_menu.signed_out_state.email_field_label","value":"Email"},{"key":"account_menu.signed_out_state.orders_button","value":"Orders"},{"key":"account_menu.signed_out_state.profile_button","value":"Profile"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Sign in with Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continue with Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continue with Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Email me with news and offers"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Hi, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Account"},{"key":"account_menu.signed_in_state.orders_button","value":"Orders"},{"key":"account_menu.signed_in_state.profile_button","value":"Profile"},{"key":"account_menu.location_picker.sheet_title","value":"Locations"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Search"},{"key":"account_menu.aria_labels.close_menu","value":"Close menu"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Back to main menu from {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, opens submenu"},{"key":"account_menu.aria_labels.loading_menu","value":"Loading menu"},{"key":"account_menu.aria_labels.account","value":"Account"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Sign in with email"},{"key":"account_menu.aria_labels.sign_in","value":"Sign in"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":true},"visitor":{"country":"GB","language":"en"}}</script>
1941 1942<meta name="shopify-y" content="1e4bb6e2-93e2-4f0b-829c-0ed89dceb73e" data-expiration="1822678076000"><meta name="shopify-s" content="acab4faf-05ee-41a6-b423-9ac4bfce96af" data-expiration="1791122276000"><meta name="new-cookie-storage-activated" content="t"> 1943</head> 1944 1945<body class="template-blog" data-center-text="true" data-button_style="round-slight" data-type_header_capitalize="true" data-type_headers_align_text="true" data-type_product_capitalize="true" data-swatch_style="round" >
1946<script>window.KlarnaThemeGlobals={};</script>
1946 1947 1948 1949 1950<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1950-1951
1950 1951<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1951GTM-KVV92SR
vendor: 83 bytes, lines 1951-1952
1951" 1952height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1953<!-- End Google Tag Manager (noscript) --> 1954 1955 1956 1957 <a class="in-page-link visually-hidden skip-link" href="#MainContent">Skip to content</a> 1958 1959 <div id="PageContainer" class="page-container"> 1960 <div class="transition-body"><div id="shopify-section-header" class="shopify-section"> 1961 1962<div id="NavDrawer" class="drawer drawer--right"> 1963 <div class="drawer__contents"> 1964 <div class="drawer__fixed-header"> 1965 <div class="drawer__header appear-animation appear-delay-1"> 1966 <div class="h2 drawer__title"></div> 1967 <div class="drawer__close"> 1968 <button type="button" class="drawer__close-button js-drawer-close"> 1969 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg> 1970 <span class="icon__fallback-text">Close menu</span> 1971 </button> 1972 </div> 1973 </div> 1974 </div> 1975 <div class="drawer__scrollable"> 1976 <ul class="mobile-nav" role="navigation" aria-label="Primary"><li class="mobile-nav__item appear-animation appear-delay-2"><div class="mobile-nav__has-sublist"><a href="https://horizonmicromobility.com/collections/all-electric-bikes" 1977 class="mobile-nav__link mobile-nav__link--top-level" 1978 id="Label-https-horizonmicromobility-com-collections-all-electric-bikes1" 1979 > 1980 Electric Bikes by Brand 1981 </a> 1982 <div class="mobile-nav__toggle"> 1983 <button type="button" 1984 aria-controls="Linklist-https-horizonmicromobility-com-collections-all-electric-bikes1" 1985 aria-labelledby="Label-https-horizonmicromobility-com-collections-all-electric-bikes1" 1986 class="collapsible-trigger collapsible--auto-height"><span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 1987 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 1988</span> 1989</button> 1990 </div></div><div id="Linklist-https-horizonmicromobility-com-collections-all-electric-bikes1" 1991 class="mobile-nav__sublist collapsible-content collapsible-content--all" 1992 > 1993 <div class="collapsible-content__inner"> 1994 <ul class="mobile-nav__sublist"><li class="mobile-nav__item"> 1995 <div class="mobile-nav__child-item"><a href="https://horizonmicromobility.com/pages/assembled-and-ready-to-ride" 1996 class="mobile-nav__link" 1997 id="Sublabel-https-horizonmicromobility-com-pages-assembled-and-ready-to-ride1" 1998 > 1999 Ready to Ride e-bikes 2000 </a></div></li><li class="mobile-nav__item"> 2001 <div class="mobile-nav__child-item"><a href="/collections/ado-electric-bikes" 2002 class="mobile-nav__link" 2003 id="Sublabel-collections-ado-electric-bikes2" 2004 > 2005 ADO 2006 </a></div></li><li class="mobile-nav__item"> 2007 <div class="mobile-nav__child-item"><a href="/pages/amflow-e-mtb-brand" 2008 class="mobile-nav__link" 2009 id="Sublabel-pages-amflow-e-mtb-brand3" 2010 > 2011 Amflow 2012 </a></div></li><li class="mobile-nav__item"> 2013 <div class="mobile-nav__child-item"><a href="/collections/engwe-e-bikes" 2014 class="mobile-nav__link" 2015 id="Sublabel-collections-engwe-e-bikes4" 2016 > 2017 Engwe 2018 </a></div></li><li class="mobile-nav__item"> 2019 <div class="mobile-nav__child-item"><a href="/collections/eskuta-electric-bikes-and-electric-motorbikes" 2020 class="mobile-nav__link" 2021 id="Sublabel-collections-eskuta-electric-bikes-and-electric-motorbikes5" 2022 > 2023 Eskuta 2024 </a></div></li><li class="mobile-nav__item"> 2025 <div class="mobile-nav__child-item"><a href="/collections/estarli-electric-bikes" 2026 class="mobile-nav__link" 2027 id="Sublabel-collections-estarli-electric-bikes6" 2028 > 2029 Estarli 2030 </a></div></li><li class="mobile-nav__item"> 2031 <div class="mobile-nav__child-item"><a href="/collections/fiido-electric-bikes" 2032 class="mobile-nav__link" 2033 id="Sublabel-collections-fiido-electric-bikes7" 2034 > 2035 Fiido 2036 </a></div></li><li class="mobile-nav__item"> 2037 <div class="mobile-nav__child-item"><a href="/collections/ghost-electric-mountain-bikes" 2038 class="mobile-nav__link" 2039 id="Sublabel-collections-ghost-electric-mountain-bikes8" 2040 > 2041 Ghost 2042 </a></div></li><li class="mobile-nav__item"> 2043 <div class="mobile-nav__child-item"><a href="https://horizonmicromobility.com/collections/heybike-ec1-ec1-st-electic-bikes" 2044 class="mobile-nav__link" 2045 id="Sublabel-https-horizonmicromobility-com-collections-heybike-ec1-ec1-st-electic-bikes9" 2046 > 2047 Heybike 2048 </a></div></li><li class="mobile-nav__item"> 2049 <div class="mobile-nav__child-item"><a href="/collections/himiway-electric-bikes" 2050 class="mobile-nav__link" 2051 id="Sublabel-collections-himiway-electric-bikes10" 2052 > 2053 Himiway 2054 </a></div></li><li class="mobile-nav__item"> 2055 <div class="mobile-nav__child-item"><a href="/collections/hygge-electric-bikes" 2056 class="mobile-nav__link" 2057 id="Sublabel-collections-hygge-electric-bikes11" 2058 > 2059 Hygge 2060 </a></div></li><li class="mobile-nav__item"> 2061 <div class="mobile-nav__child-item"><a href="/collections/super73-electric-bikes" 2062 class="mobile-nav__link" 2063 id="Sublabel-collections-super73-electric-bikes12" 2064 > 2065 Super73 2066 </a></div></li><li class="mobile-nav__item"> 2067 <div class="mobile-nav__child-item"><a href="/collections/synch-electric-bikes" 2068 class="mobile-nav__link" 2069 id="Sublabel-collections-synch-electric-bikes13" 2070 > 2071 Synch 2072 </a></div></li><li class="mobile-nav__item"> 2073 <div class="mobile-nav__child-item"><a href="/collections/tenways-electric-bikes-uk" 2074 class="mobile-nav__link" 2075 id="Sublabel-collections-tenways-electric-bikes-uk14" 2076 > 2077 Tenways 2078 </a></div></li><li class="mobile-nav__item"> 2079 <div class="mobile-nav__child-item"><a href="/collections/tezeus-electric-bikes" 2080 class="mobile-nav__link" 2081 id="Sublabel-collections-tezeus-electric-bikes15" 2082 > 2083 Tezeus 2084 </a></div></li><li class="mobile-nav__item"> 2085 <div class="mobile-nav__child-item"><a href="/collections/uto-electric-bikes" 2086 class="mobile-nav__link" 2087 id="Sublabel-collections-uto-electric-bikes16" 2088 > 2089 UTO 2090 </a></div></li><li class="mobile-nav__item"> 2091 <div class="mobile-nav__child-item"><a href="/collections/veloe-e-cargo-bikes" 2092 class="mobile-nav__link" 2093 id="Sublabel-collections-veloe-e-cargo-bikes17" 2094 > 2095 Veloe 2096 </a></div></li></ul> 2097 </div> 2098 </div></li><li class="mobile-nav__item appear-animation appear-delay-3"><div class="mobile-nav__has-sublist"><button type="button" 2099 aria-controls="Linklist-2" 2100 class="mobile-nav__link--button mobile-nav__link--top-level collapsible-trigger collapsible--auto-height">
2101 <span class="mobile-nav__faux-link"> 2102 Type of Electric Bike 2103 </span> 2104 <div class="mobile-nav__toggle"> 2105 <span class="faux-button"><span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 2106 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 2107</span> 2108</span> 2109 </div> 2110 </button></div><div id="Linklist-2" 2111 class="mobile-nav__sublist collapsible-content collapsible-content--all" 2112 > 2113 <div class="collapsible-content__inner"> 2114 <ul class="mobile-nav__sublist"><li class="mobile-nav__item"> 2115 <div class="mobile-nav__child-item"><a href="https://horizonmicromobility.com/collections/all-electric-bikes" 2116 class="mobile-nav__link" 2117 id="Sublabel-https-horizonmicromobility-com-collections-all-electric-bikes1" 2118 > 2119 VIEW ALL E-BIKES 2120 </a></div></li><li class="mobile-nav__item"> 2121 <div class="mobile-nav__child-item"><a href="https://horizonmicromobility.com/collections/all-e-bikes" 2122 class="mobile-nav__link" 2123 id="Sublabel-https-horizonmicromobility-com-collections-all-e-bikes2" 2124 > 2125 VIEW E-BIKES SPECIFICATIONS 2126 </a></div></li><li class="mobile-nav__item"> 2127 <div class="mobile-nav__child-item"><a href="/pages/assembled-and-ready-to-ride" 2128 class="mobile-nav__link" 2129 id="Sublabel-pages-assembled-and-ready-to-ride3" 2130 > 2131 Pre-assembled e-bikes 2132 </a></div></li><li class="mobile-nav__item"> 2133 <div class="mobile-nav__child-item"><a href="/collections/commuter-e-bikes" 2134 class="mobile-nav__link" 2135 id="Sublabel-collections-commuter-e-bikes4" 2136 > 2137 Commuter/Road 2138 </a></div></li><li class="mobile-nav__item"> 2139 <div class="mobile-nav__child-item"><a href="/collections/folding-electric-bikes" 2140 class="mobile-nav__link" 2141 id="Sublabel-collections-folding-electric-bikes5" 2142 > 2143 Folding e-bikes 2144 </a></div></li><li class="mobile-nav__item"> 2145 <div class="mobile-nav__child-item"><a href="/collections/fat-tyre-electric-bikes" 2146 class="mobile-nav__link" 2147 id="Sublabel-collections-fat-tyre-electric-bikes6" 2148 > 2149 Fat tyre 2150 </a></div></li><li class="mobile-nav__item"> 2151 <div class="mobile-nav__child-item"><a href="https://horizonmicromobility.com/collections/electric-mountain-bikes" 2152 class="mobile-nav__link" 2153 id="Sublabel-https-horizonmicromobility-com-collections-electric-mountain-bikes7" 2154 > 2155 Mountain 2156 </a></div></li><li class="mobile-nav__item"> 2157 <div class="mobile-nav__child-item"><a href="/collections/cargo-e-bikes" 2158 class="mobile-nav__link" 2159 id="Sublabel-collections-cargo-e-bikes8" 2160 > 2161 E-cargo 2162 </a></div></li><li class="mobile-nav__item"> 2163 <div class="mobile-nav__child-item"><a href="/collections/children-e-bikes" 2164 class="mobile-nav__link" 2165 id="Sublabel-collections-children-e-bikes9" 2166 > 2167 Child e-bikes 2168 </a></div></li></ul> 2169 </div> 2170 </div></li><li class="mobile-nav__item appear-animation appear-delay-4"><div class="mobile-nav__has-sublist"><button type="button" 2171 aria-controls="Linklist-3" 2172 class="mobile-nav__link--button mobile-nav__link--top-level collapsible-trigger collapsible--auto-height">
2173 <span class="mobile-nav__faux-link"> 2174 Electric Motorbikes 2175 </span> 2176 <div class="mobile-nav__toggle"> 2177 <span class="faux-button"><span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 2178 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 2179</span> 2180</span> 2181 </div> 2182 </button></div><div id="Linklist-3" 2183 class="mobile-nav__sublist collapsible-content collapsible-content--all" 2184 > 2185 <div class="collapsible-content__inner"> 2186 <ul class="mobile-nav__sublist"><li class="mobile-nav__item"> 2187 <div class="mobile-nav__child-item"><a href="https://horizonmicromobility.com/collections/electric-motorbikes" 2188 class="mobile-nav__link" 2189 id="Sublabel-https-horizonmicromobility-com-collections-electric-motorbikes1" 2190 > 2191 VIEW ALL E-MOTORBIKES 2192 </a></div></li><li class="mobile-nav__item"> 2193 <div class="mobile-nav__child-item"><a href="/collections/vmoto-range-od-electric-scooters-and-electric-motorbikes" 2194 class="mobile-nav__link" 2195 id="Sublabel-collections-vmoto-range-od-electric-scooters-and-electric-motorbikes2" 2196 > 2197 VMOTO 2198 </a></div></li><li class="mobile-nav__item"> 2199 <div class="mobile-nav__child-item"><a href="https://horizonmicromobility.com/collections/eskuta-electric-motorbikes" 2200 class="mobile-nav__link" 2201 id="Sublabel-https-horizonmicromobility-com-collections-eskuta-electric-motorbikes3" 2202 > 2203 Eskuta 2204 </a></div></li></ul> 2205 </div> 2206 </div></li><li class="mobile-nav__item appear-animation appear-delay-5"><a href="/collections/accessories-parts" class="mobile-nav__link mobile-nav__link--top-level">Accessories & Parts</a></li><li class="mobile-nav__item appear-animation appear-delay-6"><a href="https://horizonmicromobility.com/collections/bosch-e-bike-spares" class="mobile-nav__link mobile-nav__link--top-level">Bosch</a></li><li class="mobile-nav__item appear-animation appear-delay-7"><a href="https://horizonmicromobility.com/collections/electric-scooter-spares" class="mobile-nav__link mobile-nav__link--top-level">Escooter Spares & Parts</a></li><li class="mobile-nav__item appear-animation appear-delay-8"><a href="/collections/sale" class="mobile-nav__link mobile-nav__link--top-level">Sale</a></li><li class="mobile-nav__item appear-animation appear-delay-9"><a href="https://horizonmicromobility.com/pages/finance-options" class="mobile-nav__link mobile-nav__link--top-level">Finance</a></li><li class="mobile-nav__item appear-animation appear-delay-10"><a href="https://horizonmicromobility.com/pages/cycle-to-work-schemes" class="mobile-nav__link mobile-nav__link--top-level">Cycle Schemes</a></li><li class="mobile-nav__item appear-animation appear-delay-11"><div class="mobile-nav__has-sublist"><button type="button" 2207 aria-controls="Linklist-10" 2208 class="mobile-nav__link--button mobile-nav__link--top-level collapsible-trigger collapsible--auto-height"> 2209 <span class="mobile-nav__faux-link"> 2210 Support 2211 </span> 2212 <div class="mobile-nav__toggle"> 2213 <span class="faux-button"><span class="collapsible-trigger__icon collapsible-trigger__icon--open" role="presentation"> 2214 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewB
2214ox="0 0 28 16"><path d="M1.57 1.59l12.76 12.77L27.1 1.59" stroke-width="2" stroke="#000" fill="none" fill-rule="evenodd"/></svg> 2215</span> 2216</span> 2217 </div> 2218 </button></div><div id="Linklist-10" 2219 class="mobile-nav__sublist collapsible-content collapsible-content--all" 2220 > 2221 <div class="collapsible-content__inner"> 2222 <ul class="mobile-nav__sublist"><li class="mobile-nav__item"> 2223 <div class="mobile-nav__child-item"><a href="/pages/bosch-e-bike-videos" 2224 class="mobile-nav__link" 2225 id="Sublabel-pages-bosch-e-bike-videos1" 2226 > 2227 Bosch E-bike Videos 2228 </a></div></li><li class="mobile-nav__item"> 2229 <div class="mobile-nav__child-item"><a href="/pages/workshop-electric-bike" 2230 class="mobile-nav__link" 2231 id="Sublabel-pages-workshop-electric-bike2" 2232 > 2233 Electric Bike Workshop 2234 </a></div></li><li class="mobile-nav__item"> 2235 <div class="mobile-nav__child-item"><a href="/pages/guide-to-e-bikes-covering-components" 2236 class="mobile-nav__link" 2237 id="Sublabel-pages-guide-to-e-bikes-covering-components3" 2238 > 2239 Electric Bike - Learning Centre 2240 </a></div></li><li class="mobile-nav__item"> 2241 <div class="mobile-nav__child-item"><a href="/pages/guide-to-e-bikes" 2242 class="mobile-nav__link" 2243 id="Sublabel-pages-guide-to-e-bikes4" 2244 > 2245 Electric Bike - "Type" Guide 2246 </a></div></li><li class="mobile-nav__item"> 2247 <div class="mobile-nav__child-item"><a href="/pages/e-scooter-maintenance-video-series" 2248 class="mobile-nav__link" 2249 id="Sublabel-pages-e-scooter-maintenance-video-series5" 2250 > 2251 Electric Scooter Workshop Video Series 2252 </a></div></li></ul> 2253 </div> 2254 </div></li><li class="mobile-nav__item mobile-nav__item--secondary"> 2255 <div class="grid"><div class="grid__item one-half appear-animation appear-delay-12 medium-up--hide"> 2256 <a href="/pages/contact-us" class="mobile-nav__link">Contact Us ð</a> 2257 </div><div class="grid__item one-half appear-animation appear-delay-13 medium-up--hide"> 2258 <a href="https://horizonmicromobility.com/pages/test-rides" class="mobile-nav__link">Test Rides ð´ââï¸</a> 2259 </div><div class="grid__item one-half appear-animation appear-delay-14"> 2260 <a href="/account" class="mobile-nav__link">Log in 2261</a> 2262 </div></div> 2263 </li></ul><ul class="mobile-nav__social appear-animation appear-delay-15"><li class="mobile-nav__social-item"> 2264 <a target="_blank" rel="noopener" href="https://www.instagram.com/horizon_micromobility" title="Horizon Micromobility on Instagram"> 2265 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 32 32"><path fill="#444" d="M16 3.094c4.206 0 4.7.019 6.363.094 1.538.069 2.369.325 2.925.544.738.287 1.262.625 1.813 1.175s.894 1.075 1.175 1.813c.212.556.475 1.387.544 2.925.075 1.662.094 2.156.094 6.363s-.019 4.7-.094 6.363c-.069 1.538-.325 2.369-.544 2.925-.288.738-.625 1.262-1.175 1.813s-1.075.894-1.813 1.175c-.556.212-1.387.475-2.925.544-1.663.075-2.156.094-6.363.094s-4.7-.019-6.363-.094c-1.537-.069-2.369-.325-2.925-.544-.737-.288-1.263-.625-1.813-1.175s-.894-1.075-1.175-1.813c-.212-.556-.475-1.387-.544-2.925-.075-1.663-.094-2.156-.094-6.363s.019-4.7.094-6.363c.069-1.537.325-2.369.544-2.925.287-.737.625-1.263 1.175-1.813s1.075-.894 1.813-1.175c.556-.212 1.388-.475 2.925-.544 1.662-.081 2.156-.094 6.363-.094zm0-2.838c-4.275 0-4.813.019-6.494.094-1.675.075-2.819.344-3.819.731-1.037.4-1.913.944-2.788 1.819S1.486 4.656 1.08 5.688c-.387 1-.656 2.144-.731 3.825-.
2265075 1.675-.094 2.213-.094 6.488s.019 4.813.094 6.494c.075 1.675.344 2.819.731 3.825.4 1.038.944 1.913 1.819 2.788s1.756 1.413 2.788 1.819c1 .387 2.144.656 3.825.731s2.213.094 6.494.094 4.813-.019 6.494-.094c1.675-.075 2.819-.344 3.825-.731 1.038-.4 1.913-.944 2.788-1.819s1.413-1.756 1.819-2.788c.387-1 .656-2.144.731-3.825s.094-2.212.094-6.494-.019-4.813-.094-6.494c-.075-1.675-.344-2.819-.731-3.825-.4-1.038-.944-1.913-1.819-2.788s-1.756-1.413-2.788-1.819c-1-.387-2.144-.656-3.825-.731C20.812.275 20.275.256 16 .256z"/><path fill="#444" d="M16 7.912a8.088 8.088 0 0 0 0 16.175c4.463 0 8.087-3.625 8.087-8.088s-3.625-8.088-8.088-8.088zm0 13.338a5.25 5.25 0 1 1 0-10.5 5.25 5.25 0 1 1 0 10.5zM26.294 7.594a1.887 1.887 0 1 1-3.774.002 1.887 1.887 0 0 1 3.774-.003z"/></svg> 2266 <span class="icon__fallback-text">Instagram</span> 2267 </a> 2268 </li><li class="mobile-nav__social-item"> 2269 <a target="_blank" rel="noopener" href="https://www.facebook.com/Horizon-Micromobility-101265531702525/" title="Horizon Micromobility on Facebook"> 2270 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 14222 14222"><path d="M14222 7112c0 3549.352-2600.418 6491.344-6000 7024.72V9168h1657l315-2056H8222V5778c0-562 275-1111 1159-1111h897V2917s-814-139-1592-139c-1624 0-2686 984-2686 2767v1567H4194v2056h1806v4968.72C2600.418 13603.344 0 10661.352 0 7112 0 3184.703 3183.703 1 7111 1s7111 3183.703 7111 7111zm-8222 7025c362 57 733 86 1111 86-377.945 0-749.003-29.485-1111-86.28zm2222 0v-.28a7107.458 7107.458 0 0 1-167.717 24.267A7407.158 7407.158 0 0 0 8222 14137zm-167.717 23.987C7745.664 14201.89 7430.797 14223 7111 14223c319.843 0 634.675-21.479 943.283-62.013z"/></svg> 2271 <span class="icon__fallback-text">Facebook</span> 2272 </a> 2273 </li><li class="mobile-nav__social-item"> 2274 <a target="_blank" rel="noopener" href="https://www.youtube.com/horizonmicromobility" title="Horizon Micromobility on YouTube"> 2275 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube" viewBox="0 0 21 20"><path fill="#444" d="M-.196 15.803q0 1.23.812 2.092t1.977.861h14.946q1.165 0 1.977-.861t.812-2.092V3.909q0-1.23-.82-2.116T17.539.907H2.593q-1.148 0-1.969.886t-.82 2.116v11.894zm7.465-2.149V6.058q0-.115.066-.18.049-.016.082-.016l.082.016 7.153 3.806q.066.066.066.164 0 .066-.066.131l-7.153 3.806q-.033.033-.066.033-.066 0-.098-.033-.066-.066-.066-.131z"/></svg> 2276 <span class="icon__fallback-text">YouTube</span> 2277 </a> 2278 </li></ul> 2279 </div> 2280 </div> 2281</div> 2282<style> 2283 .site-nav__link, 2284 .site-nav__dropdown-link:not(.site-nav__dropdown-link--top-level) { 2285 font-size: 13px; 2286 } 2287 2288 .site-nav__link, .mobile-nav__link--top-level { 2289 text-transform: uppercase; 2290 letter-spacing: 0.2em; 2291 } 2292 .mobile-nav__link--top-level { 2293 font-size: 1.1em; 2294 } 2295 2296 2297 2298 2299 2300 .megamenu__colection-image { 2301 display: none; 2302 } 2303 2304.site-header { 2305 box-shadow: 0 0 1px rgba(0,0,0,0.2); 2306 } 2307 2308 .toolbar + .header-sticky-wrapper .site-header { 2309 border-top: 0; 2310 }</style> 2311 2312<div data-section-id="header" data-section-type="header"> 2313<div class="toolbar small--hide"> 2314 <div class="page-width"> 2315 <div class="toolbar__content"><div class="toolbar__item toolbar__item--menu"> 2316 <ul class="inline-list toolbar__menu"><li> 2317 <a href="/pages/contact-us">Contact Us ð</a> 2318 </li><li> 2319 <a href="https://horizonmicromobility.com/pages/test-rides">Test Rides ð´ââï¸</a> 2320 </li></ul> 2321 </div><div class="toolbar__item"> 2322 <ul class="inline-list toolbar__social"><li> 2323 <a target="_blank" rel="noopener" href="https://www.instagram.com/horizon_micromobility" title="Horizon Micromobility on Instagram"> 2324 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 32 32"><path fill="#444" d="M16 3.094c4.206 0 4.7.019 6.363.094 1.538.069 2.369.325 2.925.544.738.287 1.262.625 1.813 1.175s.894 1.075 1.175 1.813c.212.556.475 1.387.544 2.925.075 1.662.094 2.156.094 6.363s-.019 4.7-.094 6.363c-.069 1.538-.325 2.369-.544 2.925-.288.738-.625 1.262-1.175 1.813s-1.075.894-1.813 1.175c-.556.212-1.387.475-2.925.544-1.663.075-2.156.094-6.363.094s-4.7-.019-6.363-.094c-1.537-.069-2.369-.325-2.925-.544-.737-.288-1.263-.625-1.813-1.175s-.894-1.075-1.175-1.813c-.212-.556-.475-1.387-.544-2.925-.075-1.663-.094-2.156-.094-6.363s.019-4.7.094-6.363c.069-1.537.325-2.369.544-2.925.287-.737.625-1.263 1.175-1.813s1.075-.894 1.813-1.175c.556-.212 1.388-.475 2.925-.544 1.662-.081 2.156-.094 6.363-.094zm0-2.838c-4.275 0-4.813.019-6.494.094-1.675.075-2.819.344-3.819.731-1.037.4-1.913.944-2.788 1.819S1.486 4.656 1.08 5.688c-.387 1-.656 2.144-.731 3.825-.
2324075 1.675-.094 2.213-.094 6.488s.019 4.813.094 6.494c.075 1.675.344 2.819.731 3.825.4 1.038.944 1.913 1.819 2.788s1.756 1.413 2.788 1.819c1 .387 2.144.656 3.825.731s2.213.094 6.494.094 4.813-.019 6.494-.094c1.675-.075 2.819-.344 3.825-.731 1.038-.4 1.913-.944 2.788-1.819s1.413-1.756 1.819-2.788c.387-1 .656-2.144.731-3.825s.094-2.212.094-6.494-.019-4.813-.094-6.494c-.075-1.675-.344-2.819-.731-3.825-.4-1.038-.944-1.913-1.819-2.788s-1.756-1.413-2.788-1.819c-1-.387-2.144-.656-3.825-.731C20.812.275 20.275.256 16 .256z"/><path fill="#444" d="M16 7.912a8.088 8.088 0 0 0 0 16.175c4.463 0 8.087-3.625 8.087-8.088s-3.625-8.088-8.088-8.088zm0 13.338a5.25 5.25 0 1 1 0-10.5 5.25 5.25 0 1 1 0 10.5zM26.294 7.594a1.887 1.887 0 1 1-3.774.002 1.887 1.887 0 0 1 3.774-.003z"/></svg> 2325 <span class="icon__fallback-text">Instagram</span> 2326 </a> 2327 </li><li> 2328 <a target="_blank" rel="noopener" href="https://www.facebook.com/Horizon-Micromobility-101265531702525/" title="Horizon Micromobility on Facebook"> 2329 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 14222 14222"><path d="M14222 7112c0 3549.352-2600.418 6491.344-6000 7024.72V9168h1657l315-2056H8222V5778c0-562 275-1111 1159-1111h897V2917s-814-139-1592-139c-1624 0-2686 984-2686 2767v1567H4194v2056h1806v4968.72C2600.418 13603.344 0 10661.352 0 7112 0 3184.703 3183.703 1 7111 1s7111 3183.703 7111 7111zm-8222 7025c362 57 733 86 1111 86-377.945 0-749.003-29.485-1111-86.28zm2222 0v-.28a7107.458 7107.458 0 0 1-167.717 24.267A7407.158 7407.158 0 0 0 8222 14137zm-167.717 23.987C7745.664 14201.89 7430.797 14223 7111 14223c319.843 0 634.675-21.479 943.283-62.013z"/></svg> 2330 <span class="icon__fallback-text">Facebook</span> 2331 </a> 2332 </li><li> 2333 <a target="_blank" rel="noopener" href="https://www.youtube.com/horizonmicromobility" title="Horizon Micromobility on YouTube"> 2334 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube" viewBox="0 0 21 20"><path fill="#444" d="M-.196 15.803q0 1.23.812 2.092t1.977.861h14.946q1.165 0 1.977-.861t.812-2.092V3.909q0-1.23-.82-2.116T17.539.907H2.593q-1.148 0-1.969.886t-.82 2.116v11.894zm7.465-2.149V6.058q0-.115.066-.18.049-.016.082-.016l.082.016 7.153 3.806q.066.066.066.164 0 .066-.066.131l-7.153 3.806q-.033.033-.066.033-.066 0-.098-.033-.066-.066-.066-.131z"/></svg> 2335 <span class="icon__fallback-text">YouTube</span> 2336 </a> 2337 </li></ul> 2338 </div></div> 2339 2340 </div> 2341</div> 2342<div class="header-sticky-wrapper"> 2343 <div id="HeaderWrapper" class="header-wrapper"><header 2344 id="SiteHeader" 2345 class="site-header" 2346 data-sticky="true" 2347 data-overlay="false"> 2348 <div class="page-width"> 2349 <div 2350 class="header-layout header-layout--left-center" 2351 data-logo-align="left"><div class="header-item header-item--logo"><style data-shopify>.header-item--logo, 2352 .header-layout--left-center .header-item--logo, 2353 .header-layout--left-center .header-item--icons { 2354 -webkit-box-flex: 0 1 130px; 2355 -ms-flex: 0 1 130px; 2356 flex: 0 1 130px; 2357 } 2358 2359 @media only screen and (min-width: 769px) { 2360 .header-item--logo, 2361 .header-layout--left-center .header-item--logo, 2362 .header-layout--left-center .header-item--icons { 2363 -webkit-box-flex: 0 0 200px; 2364 -ms-flex: 0 0 200px; 2365 flex: 0 0 200px; 2366 } 2367 } 2368 2369 .site-header__logo a { 2370 width: 130px; 2371 } 2372 .is-light .site-header__logo .logo--inverted { 2373 width: 130px; 2374 } 2375 @media only screen and (min-width: 769px) { 2376 .site-header__logo a { 2377 width: 200px; 2378 } 2379 2380 .is-light .site-header__logo .logo--inverted { 2381 width: 200px; 2382 } 2383 }</style><div class="h1 site-header__logo" itemtype="http://schema.org/Organization"> 2384 <a 2385 href="/" 2386 itemprop="url" 2387 class="site-header__logo-link" 2388 style="padding-top: 46.995073891625616%"> 2389 <img 2390 class="small--hide" 2391 src="//horizonmicromobility.com/cdn/shop/files/HorizoneBikesHMM_logo_cropped_ee982e20-74cf-435e-8683-5233d5637671_200x.png?v=1678362603" 2392 srcset="//horizonmicromobility.com/cdn/shop/files/HorizoneBikesHMM_logo_cropped_ee982e20-74cf-435e-8683-5233d5637671_200x.png?v=1678362603 1x, //horizonmicromobility.com/cdn/shop/files/HorizoneBikesHMM_logo_cropped_ee982e20-74cf-435e-8683-5233d5637671_200x@2x.png?v=1678362603 2x" 2393 alt="Horizon Micromobility" 2394 itemprop="logo"> 2395 <img 2396 class="medium-up--hide" 2397 src="//horizonmicromobility.com/cdn/shop/files/HorizoneBikesHMM_logo_cropped_ee982e20-74cf-435e-8683-5233d5637671_130x.png?v=1678362603" 2398 srcset="//horizonmicromobility.com/cdn/shop/files/HorizoneBikesHMM_logo_cropped_ee982e20-74cf-435e-8683-5233d5637671_130x.png?v=1678362603 1x, //horizonmicromobility.com/cdn/shop/files/HorizoneBikesHMM_logo_cropped_ee982e20-74cf-435e-8683-5233d5637671_130x@2x.png?v=1678362603 2x" 2399 alt="Horizon Micromobility"> 2400 </a></div></div><div class="header-item header-item--navigation text-center"><ul
2401 class="site-nav site-navigation small--hide" 2402 2403 role="navigation" aria-label="Primary" 2404 ><li 2405 class="site-nav__item site-nav__expanded-item site-nav--has-dropdown" 2406 aria-haspopup="true"> 2407 2408 <a href="https://horizonmicromobility.com/collections/all-electric-bikes" class="site-nav__link site-nav__link--underline site-nav__link--has-dropdown"> 2409 Electric Bikes by Brand 2410 </a><ul class="site-nav__dropdown text-left"><li class=""> 2411 <a href="https://horizonmicromobility.com/pages/assembled-and-ready-to-ride" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2412 Ready to Ride e-bikes 2413</a></li><li class=""> 2414 <a href="/collections/ado-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2415 ADO 2416</a></li><li class=""> 2417 <a href="/pages/amflow-e-mtb-brand" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2418 Amflow 2419</a></li><li class=""> 2420 <a href="/collections/engwe-e-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2421 Engwe 2422</a></li><li class=""> 2423 <a href="/collections/eskuta-electric-bikes-and-electric-motorbikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2424 Eskuta 2425</a></li><li class=""> 2426 <a href="/collections/estarli-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2427 Estarli 2428</a></li><li class=""> 2429 <a href="/collections/fiido-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2430 Fiido 2431</a></li><li class=""> 2432 <a href="/collections/ghost-electric-mountain-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2433 Ghost 2434</a></li><li class=""> 2435 <a href="https://horizonmicromobility.com/collections/heybike-ec1-ec1-st-electic-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2436 Heybike 2437</a></li><li class=""> 2438 <a href="/collections/himiway-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2439 Himiway 2440</a></li><li class=""> 2441 <a href="/collections/hygge-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2442 Hygge 2443</a></li><li class=""> 2444 <a href="/collections/super73-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2445 Super73 2446</a></li><li class=""> 2447 <a href="/collections/synch-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2448 Synch 2449</a></li><li class=""> 2450 <a href="/collections/tenways-electric-bikes-uk" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2451 Tenways 2452</a></li><li class=""> 2453 <a href="/collections/tezeus-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2454 Tezeus 2455</a></li><li class=""> 2456 <a href="/collections/uto-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2457 UTO 2458</a></li><li class=""> 2459 <a href="/collections/veloe-e-cargo-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2460 Veloe 2461</a></li></ul></li><li 2462 class="site-nav__item site-nav__expanded-item site-nav--has-dropdown" 2463 aria-haspopup="true"> 2464 2465 <a href="#" class="site-nav__link site-nav__link--underline site-nav__link--has-dropdown"> 2466 Type of Electric Bike 2467 </a><ul class="site-nav__dropdown text-left"><li class=""> 2468 <a href="https://horizonmicromobility.com/collections/all-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2469 VIEW ALL E-BIKES 2470</a></li><li class=""> 2471 <a href="https://horizonmicromobility.com/collections/all-e-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2472 VIEW E-BIKES SPECIFICATIONS 2473</a></li><li class=""> 2474 <a href="/pages/assembled-and-ready-to-ride" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2475 Pre-assembled e-bikes 2476</a></li><li class=""> 2477 <a href="/collections/commuter-e-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2478 Commuter/Road 2479</a></li><li class=""> 2480 <a href="/collections/folding-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2481 Folding e-bikes 2482</a></li><li class=""> 2483 <a href="/collections/fat-tyre-electric-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2484 Fat tyre 2485</a></li><li class=""> 2486 <a href="https://horizonmicromobility.com/collections/electric-mountain-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2487 Mountain 2488</a></li><li class=""> 2489 <a href="/collections/cargo-e-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2490 E-cargo 2491</a></li><li class=""> 2492 <a href="/collections/children-e-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2493 Child e-bikes 2494</a></li></ul></li><li 2495 class="site-nav__item site-nav__expanded-item site-nav--has-dropdown" 2496 aria-haspopup="true"> 2497 2498 <a href="#" class="site-nav__link site-nav__link--underline site-nav__link--has-dropdown"> 2499 Electric Motorbikes 2500 </a><ul class="site-nav__dropdown text-left"><li class=""> 2501 <a href="https://horizonmicromobility.com/collections/electric-motorbikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2502 VIEW ALL E-MOTORBIKES 2503</a></li><li class=""> 2504 <a href="/collections/vmoto-range-od-electric-scooters-and-electric-motorbikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2505 VMOTO 2506</a></li><li class=""> 2507 <a href="https://horizonmicromobility.com/collections/eskuta-electric-motorbikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2508 Eskuta 2509</a></li></ul></li><li 2510 class="site-nav__item site-nav__expanded-item" 2511 > 2512 2513 <a href="/collections/accessories-parts" class="site-nav__link site-nav__link--underline"> 2514 Accessories & Parts 2515 </a></li><li 2516 class="site-nav__item site-nav__expanded-item" 2517 > 2518 2519 <a href="https://horizonmicromobility.com/collections/bosch-e-bike-spares" class="site-nav__link site-nav__link--underline"> 2520 Bosch 2521 </a></li><li 2522 class="site-nav__item site-nav__expanded-item" 2523 > 2524 2525 <a href="https://horizonmicromobility.com/collections/electric-scooter-spares" class="site-nav__link site-nav__link--underline"> 2526 Escooter Spares & Parts 2527 </a></li><li 2528 class="site-nav__item site-nav__expanded-item" 2529 > 2530 2531 <a href="/collections/sale" class="site-nav__link site-nav__link--underline"> 2532 Sale
2533 </a></li><li 2534 class="site-nav__item site-nav__expanded-item" 2535 > 2536 2537 <a href="https://horizonmicromobility.com/pages/finance-options" class="site-nav__link site-nav__link--underline"> 2538 Finance 2539 </a></li><li 2540 class="site-nav__item site-nav__expanded-item" 2541 > 2542 2543 <a href="https://horizonmicromobility.com/pages/cycle-to-work-schemes" class="site-nav__link site-nav__link--underline"> 2544 Cycle Schemes 2545 </a></li><li 2546 class="site-nav__item site-nav__expanded-item site-nav--has-dropdown" 2547 aria-haspopup="true"> 2548 2549 <a href="#" class="site-nav__link site-nav__link--underline site-nav__link--has-dropdown"> 2550 Support 2551 </a><ul class="site-nav__dropdown text-left"><li class=""> 2552 <a href="/pages/bosch-e-bike-videos" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2553 Bosch E-bike Videos 2554</a></li><li class=""> 2555 <a href="/pages/workshop-electric-bike" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2556 Electric Bike Workshop 2557</a></li><li class=""> 2558 <a href="/pages/guide-to-e-bikes-covering-components" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2559 Electric Bike - Learning Centre 2560</a></li><li class=""> 2561 <a href="/pages/guide-to-e-bikes" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2562 Electric Bike - "Type" Guide 2563</a></li><li class=""> 2564 <a href="/pages/e-scooter-maintenance-video-series" class="site-nav__dropdown-link site-nav__dropdown-link--second-level"> 2565 Electric Scooter Workshop Video Series 2566</a></li></ul></li></ul> 2567</div><div class="header-item header-item--icons"><div class="site-nav"> 2568 <div class="site-nav__icons"><a class="site-nav__link site-nav__link--icon small--hide" href="/account"> 2569 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-user" viewBox="0 0 64 64"><path d="M35 39.84v-2.53c3.3-1.91 6-6.66 6-11.41 0-7.63 0-13.82-9-13.82s-9 6.19-9 13.82c0 4.75 2.7 9.51 6 11.41v2.53c-10.18.85-18 6-18 12.16h42c0-6.19-7.82-11.31-18-12.16z"/></svg> 2570 <span class="icon__fallback-text">Log in 2571</span> 2572 </a><a href="/search" class="site-nav__link site-nav__link--icon js-search-header"> 2573 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 64 64"><path d="M47.16 28.58A18.58 18.58 0 1 1 28.58 10a18.58 18.58 0 0 1 18.58 18.58zM54 54L41.94 42"/></svg> 2574 <span class="icon__fallback-text">Search</span> 2575 </a><button 2576 type="button" 2577 class="site-nav__link site-nav__link--icon js-drawer-open-nav medium-up--hide" 2578 aria-controls="NavDrawer"> 2579 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-hamburger" viewBox="0 0 64 64"><path d="M7 15h51M7 32h43M7 49h51"/></svg> 2580 <span class="icon__fallback-text">Site navigation</span> 2581 </button><a href="/cart" class="site-nav__link site-nav__link--icon js-drawer-open-cart" aria-controls="CartDrawer" data-icon="cart"> 2582 <span class="cart-link"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-cart" viewBox="0 0 64 64"><path fill="none" d="M14 17.44h46.79l-7.94 25.61H20.96l-9.65-35.1H3"/><circle cx="27" cy="53" r="2"/><circle cx="47" cy="53" r="2"/></svg><span class="icon__fallback-text">Cart</span> 2583 <span class="cart-link__bubble"></span> 2584 </span> 2585 </a> 2586 </div> 2587</div> 2588</div> 2589 </div></div> 2590 <div class="site-header__search-container"> 2591 <div class="site-header__search"> 2592 <div class="page-width"> 2593 <form action="/search" method="get" role="search" 2594 id="HeaderSearchForm" 2595 class="site-header__search-form"> 2596 <input type="hidden" name="type" value="product"> 2597 <input type="hidden" name="options[prefix]" value="last"> 2598 <button type="submit" class="text-link site-header__search-btn site-header__search-btn--submit"> 2599 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 64 64"><path d="M47.16 28.58A18.58 18.58 0 1 1 28.58 10a18.58 18.58 0 0 1 18.58 18.58zM54 54L41.94 42"/></svg>
2600 <span class="icon__fallback-text">Search</span> 2601 </button> 2602 <input type="search" name="q" value="" placeholder="Search our store" class="site-header__search-input" aria-label="Search our store"> 2603 </form> 2604 <button type="button" id="SearchClose" class="js-search-header-close text-link site-header__search-btn"> 2605 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg> 2606 <span class="icon__fallback-text">"Close (esc)"</span> 2607 </button> 2608 </div> 2609 </div><div id="PredictiveWrapper" class="predictive-results hide" data-image-size="square"> 2610 <div class="page-width"> 2611 <div id="PredictiveResults" class="predictive-result__layout"></div> 2612 <div class="text-center predictive-results__footer"> 2613 <button type="button" class="btn btn--small" data-predictive-search-button> 2614 <small> 2615 View more 2616 </small> 2617 </button> 2618 </div> 2619 </div> 2620 </div></div> 2621 </header> 2622 </div> 2623 </div></div> 2624 2625 2626</div><main class="main-content" id="MainContent"> 2627 <div id="shopify-section-template--24414679859575__main" class="shopify-section"> 2628 2629<div data-section-id="template--24414679859575__main" data-section-type="blog"> 2630 <div class="page-width page-content"> 2631<header class="section-header"> 2632 <h1 class="section-header__title"> 2633 Micromobility Blog 2634 2635 2636 </h1> 2637 2638 2639 </header> 2640 2641 <div class="grid grid--uniform"> 2642 2643 2644 2645<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2646 <div class="grid"> 2647 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/amflow-e-mtb-authorised-dealer" class="article__grid-image" aria-label="Amflow e-mtb authorised dealer"><div class="image-wrap"> 2648 <div 2649 class="grid__image-ratio grid__image-ratio--square"> 2650 2651 <img class="lazyload" 2652 data-src="//horizonmicromobility.com/cdn/shop/articles/amflow-tl-ebike-8_f019e037-cff8-4484-be7b-d59053d1c5db_{width}x.webp?v=1783778148" 2653 data-widths="[360, 540, 720, 900, 1080]" 2654 data-aspectratio="1.0" 2655 data-sizes="auto" 2656 alt="Amflow e-mtb authorised dealer"> 2657 </div> 2658 <noscript> 2659 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/amflow-tl-ebike-8_f019e037-cff8-4484-be7b-d59053d1c5db_400x.webp?v=1783778148" alt="Amflow e-mtb authorised dealer"> 2660 </noscript> 2661 </div></a></div> 2662 <div class="grid__item small--two-thirds"> 2663 <div class="article__grid-meta"><div class="article__date"><time datetime="2026-07-11T11:14:31Z">Jul 11, 2026</time> 2664</div><a href="/blogs/micromobility-blog/amflow-e-mtb-authorised-dealer" class="article__title">Amflow e-mtb authorised dealer</a></div> 2665 </div> 2666 </div> 2667</div> 2668 2669 2670 2671 2672<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2673 <div class="grid"> 2674 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/ado-electric-bikes-and-cycle-to-work-schemes" class="article__grid-image" aria-label="ADO electric bikes and cycle to work schemes"><div class="image-wrap"> 2675 <div 2676 class="grid__image-ratio grid__image-ratio--square"> 2677 2678 <img class="lazyload" 2679 data-src="//horizonmicromobility.com/cdn/shop/articles/ado-electric-bike-cycle-to-work-schemes_79720edd-e5a3-491b-afe6-a6977a761097_{width}x.webp?v=1754502441" 2680 data-widths="[360, 540, 720, 900, 1080]" 2681 data-aspectratio="2.4009603841536613" 2682 data-sizes="auto" 2683 alt="ADO electric bikes and cycle to work schemes"> 2684 </div> 2685 <noscript> 2686 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/ado-electric-bike-cycle-to-work-schemes_79720edd-e5a3-491b-afe6-a6977a761097_400x.webp?v=1754502441" alt="ADO electric bikes and cycle to work schemes"> 2687 </noscript> 2688 </div></a></div> 2689 <div class="grid__item small--two-thirds"> 2690 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-08-06T17:47:16Z">Aug 06, 2025</time> 2691</div><a href="/blogs/micromobility-blog/ado-electric-bikes-and-cycle-to-work-schemes" class="article__title">ADO electric bikes and cycle to work schemes</a></div> 2692 </div> 2693 </div> 2694</div> 2695 2696 2697 2698 2699<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2700 <div class="grid"> 2701 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/fiido-electric-bikes-and-cycle-to-work-schemes" class="article__grid-image" aria-label="Fiido electric bikes and cycle to work schemes"><div class="image-wrap"> 2702 <div 2703 class="grid__image-ratio grid__image-ratio--square"> 2704 2705 <img class="lazyload" 2706 data-src="//horizonmicromobility.com/cdn/shop/articles/fiido-t2
2706-longtail-e-cargo_{width}x.webp?v=1754502374" 2707 data-widths="[360, 540, 720, 900, 1080]" 2708 data-aspectratio="1.0" 2709 data-sizes="auto" 2710 alt="Fiido electric bikes and cycle to work schemes"> 2711 </div> 2712 <noscript> 2713 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/fiido-t2-longtail-e-cargo_400x.webp?v=1754502374" alt="Fiido electric bikes and cycle to work schemes"> 2714 </noscript> 2715 </div></a></div> 2716 <div class="grid__item small--two-thirds"> 2717 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-08-06T17:46:11Z">Aug 06, 2025</time> 2718</div><a href="/blogs/micromobility-blog/fiido-electric-bikes-and-cycle-to-work-schemes" class="article__title">Fiido electric bikes and cycle to work schemes</a></div> 2719 </div> 2720 </div> 2721</div> 2722 2723 2724 2725 2726<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2727 <div class="grid"> 2728 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/engwe-electric-bikes-and-cycle-to-work-schemes" class="article__grid-image" aria-label="Engwe electric bikes and cycle to work schemes"><div class="image-wrap"> 2729 <div 2730 class="grid__image-ratio grid__image-ratio--square"> 2731 2732 <img class="lazyload" 2733 data-src="//horizonmicromobility.com/cdn/shop/articles/engwe-electric-bike-cycle-to-work-schemes_{width}x.webp?v=1754502355" 2734 data-widths="[360, 540, 720, 900, 1080]" 2735 data-aspectratio="2.6359143327841843" 2736 data-sizes="auto" 2737 alt="Engwe electric bikes and cycle to work schemes"> 2738 </div> 2739 <noscript> 2740 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/engwe-electric-bike-cycle-to-work-schemes_400x.webp?v=1754502355" alt="Engwe electric bikes and cycle to work schemes"> 2741 </noscript> 2742 </div></a></div> 2743 <div class="grid__item small--two-thirds"> 2744 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-08-06T17:45:32Z">Aug 06, 2025</time> 2745</div><a href="/blogs/micromobility-blog/engwe-electric-bikes-and-cycle-to-work-schemes" class="article__title">Engwe electric bikes and cycle to work schemes</a></div> 2746 </div> 2747 </div> 2748</div> 2749 2750 2751 2752 2753<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2754 <div class="grid"> 2755 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/get-your-super-73-electric-bike-on-a-cycle-scheme" class="article__grid-image" aria-label="Get your Super 73 electric bike on a cycle scheme"><div class="image-wrap"> 2756 <div 2757 class="grid__image-ratio grid__image-ratio--square"> 2758 2759 <img class="lazyload" 2760 data-src="//horizonmicromobility.com/cdn/shop/articles/super73cargocratenet-1_{width}x.webp?v=1775838667" 2761 data-widths="[360, 540, 720, 900, 1080]" 2762 data-aspectratio="0.8001083423618635" 2763 data-sizes="auto" 2764 alt="Get your Super 73 electric bike on a cycle scheme"> 2765 </div> 2766 <noscript> 2767 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/super73cargocratenet-1_400x.webp?v=1775838667" alt="Get your Super 73 electric bike on a cycle scheme"> 2768 </noscript> 2769 </div></a></div> 2770 <div class="grid__item small--two-thirds"> 2771 <div class="article__grid-meta"><div class="article__date"><a href="/blogs/micromobility-blog/get-your-super-73-electric-bike-on-a-cycle-scheme#comments"> 2772 1 comment 2773 </a> ·<time datetime="2025-04-14T07:15:27Z">Apr 14, 2025</time> 2774</div><a href="/blogs/micromobility-blog/get-your-super-73-electric-bike-on-a-cycle-scheme" class="article__title">Get your Super 73 electric bike on a cycle scheme</a></div> 2775 </div> 2776 </div> 2777</div> 2778 2779 2780 2781 2782<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2783 <div class="grid"> 2784 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/get-your-synch-electric-bike-on-a-cycle-scheme" class="article__grid-image" aria-label="Get your Synch electric bike on a cycle scheme"><div class="image-wrap"> 2785 <div 2786 class="grid__image-ratio grid__image-ratio--square"> 2787 2788 <img class="lazyload" 2789 data-src="//horizonmicromobility.com/cdn/shop/articles/synch-logo-flags_{width}x.png?v=1775838760" 2790 data-widths="[360, 540, 720, 900, 1080]" 2791 data-aspectratio="1.255514705882353" 2792 data-sizes="auto" 2793 alt="Get your Synch electric bike on a cycle scheme"> 2794 </div> 2795 <noscript> 2796 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/synch-logo-flags_400x.png?v=1775838760" alt="Get your Synch electric bike on a cycle scheme"> 2797 </noscript> 2798 </div></a></div> 2799 <div class="grid__item small--two-thirds"> 2800 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-04-14T07:09:30Z">Apr 14, 2025</time> 2801</div><a href="/blogs/micromobility-blog/get-your-synch-electric-bike-on-a-cycle-scheme" class="article__title">Get your Synch electric bike on a cycle scheme</a></div> 2802 </div> 2803 </div> 2804</div> 2805 2806 2807 2808 2809<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2810 <div class="grid"> 2811 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/get-your-estarli-electric-bike-on-a-cycle-scheme" class="article__grid-image" aria-label="Get your Estarli electric bike on a cycle scheme"><div class="image-wrap"> 2812 <div 2813 class="grid__image-ratio grid__image-ratio--square"> 2814 2815 <img class="lazyload" 2816 data-src="//horizonmicromobility.com/cdn/shop/articles/Estarli_G700_e-gravel_in_the_woods_013dce5c-2d8d-4d87-83b8-a58825a078ba_{width}x.webp?v=1775838687" 2817 data-widths="[360, 540, 720, 900, 1080]" 2818 data-aspectratio="1.5106215578284816" 2819 data-sizes="auto" 2820 alt="Get your Estarli electric bike on a cycle scheme"> 2821 </div> 2822 <noscript> 2823 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/Estarli_G700_e-gravel_in_the_woods_013dce5c-2d8d-4d87-83b8-a58825a078ba_400x.webp?v=1775838687" alt="Get your Estarli electric bike on a cycle scheme"> 2824 </noscript> 2825 </div></a></div> 2826 <div class="grid__item small--two-thirds"> 2827 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-04-14T07:04:57Z">Apr 14, 2025</time> 2828</div><a href="/blogs/micromobility-blog/get-your-estarli-electric-bike-on-a-cycle-scheme" class="article__title">Get your Estarli electric bike on a cycle scheme</a></div> 2829 </div> 2830 </div> 2831</div> 2832 2833 2834 2835 2836<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2837 <div class="grid"> 2838 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/get-your-heybike-electric-bike-on-a-cycle-scheme" class="article__grid-image" aria-label="Get your Heybike electric bike on a cycle scheme"><div class="image-wrap"> 2839 <div 2840 class="grid__image-ratio grid__image-ratio--square"> 2841 2842 <img class="lazyload" 2843 data-src="//horizonmicromobility.com/cdn/shop/articles/heybike_galaxy_t_white-1a_{width}x.png?v=1775838806" 2844 data-widths="[360, 540, 720, 900, 1080]" 2845 data-aspectratio="1.0" 2846 data-sizes="auto" 2847 alt="Get your Heybike electric bike on a cycle scheme"> 2848 </div> 2849 <noscript> 2850 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/heybike_galaxy_t_white-1a_400x.png?v=1775838806" alt="Get your Heybike electric bike on a cycle scheme"> 2851 </noscript> 2852 </div></a></div> 2853 <div class="grid__item small--two-thirds"> 2854 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-04-14T07:02:49Z">Apr 14, 2025</time> 2855</div><a href="/blogs/micromobility-blog/get-your-heybike-electric-bike-on-a-cycle-scheme" class="article__title">Get your Heybike electric bike on a cycle scheme</a></div> 2856 </div> 2857 </div> 2858</div> 2859 2860 2861 2862 2863<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2864 <div class="grid"> 2865 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/get-your-eovolt-electric-bike-on-a-cycle-scheme" class="article__grid-image" aria-label="Get your EOVOLT electric bike on a cycle scheme"><div class="image-wrap"> 2866 <div 2867 class="grid__image-ratio grid__image-ratio--square"> 2868 2869 <img class="lazyload" 2870 data-src="//horizonmicromobility.com/cdn/shop/articles/16_Origins_V4_OPEN_BIKE_rack.1272.3_{width}x.png?v=1775838638" 2871 data-widths="[360, 540, 720, 900, 1080]" 2872 data-aspectratio="1.0" 2873 data-sizes="auto" 2874 alt="Get your EOVOLT electric bike on a cycle scheme"> 2875 </div> 2876 <noscript> 2877 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/16_Origins_V4_OPEN_BIKE_rack.1272.3_400x.png?v=1775838638" alt="Get your EOVOLT electric bike on a cycle scheme"> 2878 </noscript> 2879 </div></a></div> 2880 <div class="grid__item small--two-thirds"> 2881 <div class="article__grid-meta"><div class="article__date"><a href="/blogs/micromobility-blog/get-your-eovolt-electric-bike-on-a-cycle-scheme#comments"> 2882 1 comment 2883 </a> ·<time datetime="2025-04-14T06:59:04Z">Apr 14, 2025</time> 2884</div><a href="/blogs/micromobility-blog/get-your-eovolt-electric-bike-on-a-cycle-scheme" class="article__title">Get your EOVOLT electric bike on a cycle scheme</a></div> 2885 </div> 2886 </div> 2887</div> 2888 2889 2890 2891 2892<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2893 <div class="grid"> 2894 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/get-your-engwe-electric-bike-on-a-cycle-scheme" class="article__grid-image" aria-label="Get your Engwe electric bike on a cycle scheme"><div class="image-wrap"> 2895 <div 2896 class="grid__image-ratio grid__image-ratio--square"> 2897 2898 <img class="lazyload" 2899 data-src="//horizonmicromobility.com/cdn/shop/articles/16_{width}x.jpg?v=1775838781" 2900 data-widths="[360, 540, 720, 900, 1080]" 2901 data-aspectratio="1.0" 2902 data-sizes="auto" 2903 alt="Get your Engwe electric bike on a cycle scheme"> 2904 </div> 2905 <noscript> 2906 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/16_400x.jpg?v=1775838781" alt="Get your Engwe electric bike on a cycle scheme"> 2907 </noscript> 2908 </div></a></div> 2909 <div class="grid__item small--two-thirds"> 2910 <div class="article__grid-meta"><div class="article__date"><a href="/blogs/micromobility-blog/get-your-engwe-electric-bike-on-a-cycle-scheme#comments"> 2911 3 comments 2912 </a> ·<time datetime="2025-04-14T06:56:10Z">Apr 14, 2025</time> 2913</div><a href="/blogs/micromobility-blog/get-your-engwe-electric-bike-on-a-cycle-scheme" class="article__title">Get your Engwe electric bike on a cycle scheme</a></div> 2914 </div> 2915 </div> 2916</div> 2917 2918 2919 2920 2921<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2922 <div class="grid"> 2923 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/get-your-ado-electric-bike-on-a-cycle-scheme" class="article__grid-image" aria-label="Get your ADO electric bike on a cycle scheme"><div class="image-wrap"> 2924 <div 2925 class="grid__image-ratio grid__image-ratio--square"> 2926 2927 <img class="lazyload" 2928 data-src="//horizonmicromobility.com/cdn/shop/articles/Air20Ultra-Grey-06_{width}x.webp?v=1775838742" 2929 data-widths="[360, 540, 720, 900, 1080]" 2930 data-aspectratio="1.0" 2931 data-sizes="auto" 2932 alt="Get your ADO electric bike on a cycle scheme"> 2933 </div> 2934 <noscript> 2935 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/Air20Ultra-Grey-06_400x.webp?v=1775838742" alt="Get your ADO electric bike on a cycle scheme"> 2936 </noscript> 2937 </div></a></div> 2938 <div class="grid__item small--two-thirds"> 2939 <div class="article__grid-meta"><div class="article__date"><a href="/blogs/micromobility-blog/get-your-ado-electric-bike-on-a-cycle-scheme#comments"> 2940 1 comment 2941 </a> ·<time datetime="2025-04-14T06:56:01Z">Apr 14, 2025</time> 2942</div><a href="/blogs/micromobility-blog/get-your-ado-electric-bike-on-a-cycle-scheme" class="article__title">Get your ADO electric bike on a cycle scheme</a></div> 2943 </div> 2944 </div> 2945</div> 2946 2947 2948 2949 2950<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2951 <div class="grid"> 2952 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/get-your-fiido-electric-bike-on-a-cycle-scheme" class="article__grid-image" aria-label="Get your Fiido electric bike on a cycle scheme"><div class="image-wrap"> 2953 <div 2954 class="grid__image-ratio grid__image-ratio--square"> 2955 2956 <img class="lazyload" 2957 data-src="//horizonmicromobility.com/cdn/shop/articles/fiido-logo_{width}x.png?v=1775838715" 2958 data-widths="[360, 540, 720, 900, 1080]" 2959 data-aspectratio="1.0" 2960 data-sizes="auto" 2961 alt="Get your Fiido electric bike on a cycle scheme"> 2962 </div> 2963 <noscript> 2964 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/fiido-logo_400x.png?v=1775838715" alt="Get your Fiido electric bike on a cycle scheme"> 2965 </noscript> 2966 </div></a></div> 2967 <div class="grid__item small--two-thirds"> 2968 <div class="article__grid-meta"><div class="article__date"><a href="/blogs/micromobility-blog/get-your-fiido-electric-bike-on-a-cycle-scheme#comments"> 2969 1 comment 2970 </a> ·<time datetime="2025-04-14T06:47:06Z">Apr 14, 2025</time> 2971</div><a href="/blogs/micromobility-blog/get-your-fiido-electric-bike-on-a-cycle-scheme" class="article__title">Get your Fiido electric bike on a cycle scheme</a></div> 2972 </div> 2973 </div> 2974</div> 2975 2976 2977 2978 2979<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 2980 <div class="grid"> 2981 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/range" class="article__grid-image" aria-label="Range"><div class="image-wrap"> 2982 <div 2983 class="grid__image-ratio grid__image-ratio--square"> 2984 2985 <img class="lazyload" 2986 data-src="//horizonmicromobility.com/cdn/shop/articles/Range_1_1542378a-c0b4-4437-ab63-47e7d6310172_{width}x.png?v=1744212270" 2987 data-widths="[360, 540, 720, 900, 1080]" 2988 data-aspectratio="1.0" 2989 data-sizes="auto" 2990 alt="Range"> 2991 </div> 2992 <noscript> 2993 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/Range_1_1542378a-c0b4-4437-ab63-47e7d6310172_400x.png?v=1744212270" alt="Range"> 2994 </noscript> 2995 </div></a></div> 2996 <div class="grid__item small--two-thirds"> 2997 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-03-1
29977T09:27:03Z">Mar 17, 2025</time> 2998</div><a href="/blogs/micromobility-blog/range" class="article__title">Range</a></div> 2999 </div> 3000 </div> 3001</div> 3002 3003 3004 3005 3006<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 3007 <div class="grid"> 3008 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/e-bike-battery-tips" class="article__grid-image" aria-label="E-bike battery tips"><div class="image-wrap"> 3009 <div 3010 class="grid__image-ratio grid__image-ratio--square"> 3011 3012 <img class="lazyload" 3013 data-src="//horizonmicromobility.com/cdn/shop/articles/Super73_ZX_Miami-Battery48V12.8Ah_03_1080x1080px_800x_16b9fe36-927e-47b7-a3cf-017be12ffa13_{width}x.webp?v=1741771630" 3014 data-widths="[360, 540, 720, 900, 1080]" 3015 data-aspectratio="1.0" 3016 data-sizes="auto" 3017 alt="E-bike battery tips"> 3018 </div> 3019 <noscript> 3020 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/Super73_ZX_Miami-Battery48V12.8Ah_03_1080x1080px_800x_16b9fe36-927e-47b7-a3cf-017be12ffa13_400x.webp?v=1741771630" alt="E-bike battery tips"> 3021 </noscript> 3022 </div></a></div> 3023 <div class="grid__item small--two-thirds"> 3024 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-03-15T09:26:00Z">Mar 15, 2025</time> 3025</div><a href="/blogs/micromobility-blog/e-bike-battery-tips" class="article__title">E-bike battery tips</a></div> 3026 </div> 3027 </div> 3028</div> 3029 3030 3031 3032 3033<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 3034 <div class="grid"> 3035 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/vmoto-stash-electric-motorbike" class="article__grid-image" aria-label="Vmoto Stash electric motorbike"><div class="image-wrap"> 3036 <div 3037 class="grid__image-ratio grid__image-ratio--square"> 3038 3039 <img class="lazyload" 3040 data-src="//horizonmicromobility.com/cdn/shop/articles/Stash_blue_R_1800x1800_0fd407fe-8558-42ec-996d-b078dd2ae8ad_{width}x.webp?v=1737462402" 3041 data-widths="[360, 540, 720, 900, 1080]" 3042 data-aspectratio="1.0" 3043 data-sizes="auto" 3044 alt="Vmoto Stash electric motorbike"> 3045 </div> 3046 <noscript> 3047 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/Stash_blue_R_1800x1800_0fd407fe-8558-42ec-996d-b078dd2ae8ad_400x.webp?v=1737462402" alt="Vmoto Stash electric motorbike"> 3048 </noscript> 3049 </div></a></div> 3050 <div class="grid__item small--two-thirds"> 3051 <div class="article__grid-meta"><div class="article__date"><time datetime="2025-01-21T12:26:28Z">Jan 21, 2025</time> 3052</div><a href="/blogs/micromobility-blog/vmoto-stash-electric-motorbike" class="article__title">Vmoto Stash electric motorbike</a></div> 3053 </div> 3054 </div> 3055</div> 3056 3057 3058 3059 3060<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 3061 <div class="grid"> 3062 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/super73-electric-bikes" class="article__grid-image" aria-label="Super73 electric bikes"><div class="image-wrap"> 3063 <div 3064 class="grid__image-ratio grid__image-ratio--square"> 3065 3066 <img class="lazyload" 3067 data-src="//horizonmicromobility.com/cdn/shop/articles/hollandclement_super73_miamise-06013_3_{width}x.jpg?v=1720902509" 3068 data-widths="[360, 540, 720, 900, 1080]" 3069 data-aspectratio="1.0" 3070 data-sizes="auto" 3071 alt="super73 electric bike"> 3072 </div> 3073 <noscript> 3074 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/hollandclement_super73_miamise-06013_3_400x.jpg?v=1720902509" alt="Super73 electric bikes"> 3075 </noscript> 3076 </div></a></div> 3077 <div class="grid__item small--two-thirds"> 3078 <div class="article__grid-meta"><div class="article__date"><a href="/blogs/micromobility-blog/super73-electric-bikes#comments"> 3079 1 comment 3080 </a> ·
3080<time datetime="2024-07-13T20:28:29Z">Jul 13, 2024</time> 3081</div><a href="/blogs/micromobility-blog/super73-electric-bikes" class="article__title">Super73 electric bikes</a></div> 3082 </div> 3083 </div> 3084</div> 3085 3086 3087 3088 3089<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 3090 <div class="grid"> 3091 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/synch-fat-tyre-e-bikes" class="article__grid-image" aria-label="Synch Fat Tyre E-bikes"><div class="image-wrap"> 3092 <div 3093 class="grid__image-ratio grid__image-ratio--square"> 3094 3095 <img class="lazyload" 3096 data-src="//horizonmicromobility.com/cdn/shop/articles/synch-super-monkey-e-bike-army-green_1800x1800_ca9bb1e2-1bde-4d9c-80b9-01232c468981_{width}x.webp?v=1715326291" 3097 data-widths="[360, 540, 720, 900, 1080]" 3098 data-aspectratio="1.0" 3099 data-sizes="auto" 3100 alt="Synch Fat Tyre E-bikes"> 3101 </div> 3102 <noscript> 3103 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/synch-super-monkey-e-bike-army-green_1800x1800_ca9bb1e2-1bde-4d9c-80b9-01232c468981_400x.webp?v=1715326291" alt="Synch Fat Tyre E-bikes"> 3104 </noscript> 3105 </div></a></div> 3106 <div class="grid__item small--two-thirds"> 3107 <div class="article__grid-meta"><div class="article__date"><time datetime="2024-05-10T07:33:29Z">May 10, 2024</time> 3108</div><a href="/blogs/micromobility-blog/synch-fat-tyre-e-bikes" class="article__title">Synch Fat Tyre E-bikes</a></div> 3109 </div> 3110 </div> 3111</div> 3112 3113 3114 3115 3116<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 3117 <div class="grid"> 3118 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/introducing-the-tenways-ago-x-mid-motor-electric-bike" class="article__grid-image" aria-label="Introducing the Tenways AGO-X mid-motor electric bike"><div class="image-wrap"> 3119 <div 3120 class="grid__image-ratio grid__image-ratio--square"> 3121 3122 <img class="lazyload" 3123 data-src="//horizonmicromobility.com/cdn/shop/articles/pc-product_page-p11_gallery_01-ago_x-711x400-230920_2000x_2_{width}x.jpg?v=1714468912" 3124 data-widths="[360, 540, 720, 900, 1080]" 3125 data-aspectratio="1.0" 3126 data-sizes="auto" 3127 alt="Introducing the Tenways AGO-X mid-motor electric bike"> 3128 </div> 3129 <noscript> 3130 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/pc-product_page-p11_gallery_01-ago_x-711x400-230920_2000x_2_400x.jpg?v=1714468912" alt="Introducing the Tenways AGO-X mid-motor electric bike"> 3131 </noscript> 3132 </div></a></div> 3133 <div class="grid__item small--two-thirds"> 3134 <div class="article__grid-meta"><div class="article__date"><time datetime="2024-04-30T09:22:03Z">Apr 30, 2024</time> 3135</div><a href="/blogs/micromobility-blog/introducing-the-tenways-ago-x-mid-motor-electric-bike" class="article__title">Introducing the Tenways AGO-X mid-motor electric bike</a></div> 3136 </div> 3137 </div> 3138</div> 3139 3140 3141 3142 3143<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 3144 <div class="grid"> 3145 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/introducing-the-tenways-ago-t-mid-drive-electric-bike" class="article__grid-image" aria-label="Introducing the Tenways AGO-T mid-drive electric bike"><div class="image-wrap"> 3146 <div 3147 class="grid__image-ratio grid__image-ratio--square"> 3148 3149 <img class="lazyload" 3150 data-src="//horizonmicromobility.com/cdn/shop/articles/tenways-ago-t-bike_{width}x.png?v=1714399060" 3151 data-widths="[360, 540, 720, 900, 1080]" 3152 data-aspectratio="1.0" 3153 data-sizes="auto" 3154 alt="Introducing the Tenways AGO-T mid-drive electric bike"> 3155 </div> 3156 <noscript> 3157 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/tenways-ago-t-bike_400x.png?v=1714399060" alt="Introducing the Tenways AGO-T mid-drive electric bike"> 3158 </noscript> 3159 </div></a></div> 3160 <div class="grid__item small--two-thirds"> 3161 <div class="article__grid-meta"><div class="article__date"><time datetime="2024-04-29T13:53:53Z">Apr 29, 2024</time> 3162</div><a href="/blogs/micromobility-blog/introducing-the-tenways-ago-t-mid-drive-electric-bike" class="article__title">Introducing the Tenways AGO-T mid-drive electric bike</a></div> 3163 </div> 3164 </div> 3165</div> 3166 3167 3168 3169 3170<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 3171 <div class="grid"> 3172 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/tenways-electric-bikes-official-uk-retailer" class="article__grid-image" aria-label="Tenways electric bikes - official UK retailer"><div class="image-wrap"> 3173 <div 3174 class="grid__image-ratio grid__image-ratio--square"> 3175 3176 <img class="lazyload" 3177 data-src="//horizonmicromobility.com/cdn/shop/articles/Tenways_electric_bikes_official_UK_dealer_{width}x.jpg?v=1711359000" 3178 data-widths="[360, 540, 720, 900, 1080]" 3179 data-aspectratio="1.0" 3180 data-sizes="auto" 3181 alt="Tenways electric bikes - official UK retailer"> 3182 </div> 3183 <noscript> 3184 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/Tenways_electric_bikes_official_UK_dealer_400x.jpg?v=1711359000" alt="Tenways electric bikes - official UK retailer"> 3185 </noscript> 3186 </div></a></div> 3187 <div class="grid__item small--two-thirds"> 3188 <div class="article__grid-meta"><div class="article__date"><time datetime="2024-03-25T09:29:59Z">Mar 25, 2024</time> 3189</div><a href="/blogs/micromobility-blog/tenways-electric-bikes-official-uk-retailer" class="article__title">Tenways electric bikes - official UK retailer</a></div> 3190 </div> 3191 </div> 3192</div> 3193 3194 3195 3196 3197<div class="grid__item medium-up--one-quarter" data-aos="row-of-4"> 3198 <div class="grid"> 3199 <div class="grid__item small--one-third"><a href="/blogs/micromobility-blog/tenways-cgo009-ultra-stylish-electric-bike" class="article__grid-image" aria-label="Tenways CGO009 Ultra Stylish electric bike"><div class="image-wrap"> 3200 <div 3201 class="grid__image-ratio grid__image-ratio--square"> 3202 3203 <img class="lazyload" 3204 data-src="//horizonmicromobility.com/cdn/shop/articles/Tenways_CGO009_slide-6_{width}x.jpg?v=1709800315" 3205 data-widths="[360, 540, 720, 900, 1080]" 3206 data-aspectratio="1.0" 3207 data-sizes="auto" 3208 alt="Tenways CGO009 Ultra Stylish electric bike"> 3209 </div> 3210 <noscript> 3211 <img class="lazyloaded" src="//horizonmicromobility.com/cdn/shop/articles/Tenways_CGO009_slide-6_400x.jpg?v=1709800315" alt="Tenways CGO009 Ultra Stylish electric bike"> 3212 </noscript> 3213 </div></a></div> 3214 <div class="grid__item small--two-thirds"> 3215 <div class="article__grid-meta"><div class="article__date"><time datetime="2024-03-20T13:44:17Z">Mar 20, 2024</time> 3216</div><a href="/blogs/micromobility-blog/tenways-cgo009-ultra-stylish-electric-bike" class="article__title">Tenways CGO009 Ultra Stylish electric bike</a></div> 3217 </div> 3218 </div> 3219</div> 3220 3221 3222 </div> 3223 3224 3225 <div class="pagination"> 3226 3227 3228 3229 3230
3231 <span class="page current">1</span> 3232 3233 3234 3235 3236 <span class="page"> 3237 <a href="/blogs/micromobility-blog?page=2">2</a> 3238 </span> 3239 3240 3241 3242 <span class="page"> 3243 <a href="/blogs/micromobility-blog?page=3">3</a> 3244 </span> 3245 3246 3247 3248 3249 <span class="page">…</span> 3250 3251 3252 3253 3254 <span class="page"> 3255 <a href="/blogs/micromobility-blog?page=5">5</a> 3256 </span> 3257 3258 3259 3260 3261 <span class="next"> 3262 <a href="/blogs/micromobility-blog?page=2" title="Next"> 3263 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98"><path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"/></svg> 3264 <span class="icon__fallback-text">Next</span> 3265 </a> 3266 </span> 3267 3268</div> 3269 3270 3271 3272 </div> 3273</div> 3274 3275 3276 3277 3278</div> 3279 </main><div id="shopify-section-footer-promotions" class="shopify-section index-section--footer"> 3280</div><div id="shopify-section-footer" class="shopify-section"><footer class="site-footer" data-section-id="footer" data-section-type="footer-section"> 3281 <div class="page-width"> 3282 3283 <div class="grid"><div class="grid__item footer__item--1598368041144" data-type="custom"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 3284 .footer__item--1598368041144 { 3285 width: 50%; 3286 padding-top: 40px; 3287 } 3288 .footer__item--1598368041144:nth-child(2n + 1) { 3289 clear: left; 3290 } 3291 } 3292 @media only screen and (min-width: 960px) { 3293 .footer__item--1598368041144 { 3294 width: 30%; 3295 } 3296 3297 }</style><div class="footer__item-padding"><div 3298 > 3299 <div class="collapsible-content__inner"> 3300 <div class="footer__collapsible footer_collapsible--disabled"><p><strong>Horizon Micromobility Ltd</strong><br/>Kingfisher Works, Tag Lane, Hare Hatch, Reading RG10 9SH<br/><strong>What3Words Address: </strong>waged.metals.dumpling<br/><strong>Company Number:</strong> 12769786<br/><strong>VAT Number:</strong> 426909572</p><p><strong>ð 0118 2112 134 </strong>* <br/><strong>*Please use email/chat for order/sales or enquiries</strong><br/>[email protected]<br/></p> 3301 </div> 3302 </div> 3303 </div> 3304</div> 3305</div><div class="grid__item footer__item--1598367995498" data-type="menu"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 3306 .footer__item--1598367995498 { 3307 width: 50%; 3308 padding-top: 40px; 3309 } 3310 .footer__item--1598367995498:nth-child(2n + 1) { 3311 clear: left; 3312 } 3313 } 3314 @media only screen and (min-width: 960px) { 3315 .footer__item--1598367995498 { 3316 width: 20%; 3317 } 3318 3319 }</style><div 3320 > 3321 <div class="collapsible-content__inner"> 3322 <div class="footer__collapsible footer_collapsible--disabled"> 3323 <ul class="no-bullets site-footer__linklist"><li><a href="/pages/opening-hours">Opening Hours</a></li><li><a href="/pages/contact-us">Contact Us</a></li><li><a href="/pages/about-us">About Us</a></li><li><a href="/policies/privacy-policy">Privacy Policy</a></li><li><a href="/pages/warranty">Warranty</a></li><li><a href="/pages/returns-policy">Returns Policy</a></li><li><a href="/pages/shipping">Shipping</a></li></ul> 3324 </div> 3325 </div> 3326 </div></div><div class="grid__item footer__item--1598368004241" data-type="menu"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 3327 .footer__item--1598368004241 { 3328 width: 50%; 3329 padding-top: 40px; 3330 } 3331 .footer__item--1598368004241:nth-child(2n + 1) { 3332 clear: left; 3333 } 3334 } 3335 @media only screen and (min-width: 960px) { 3336 .footer__item--1598368004241 { 3337 width: 20%; 3338 } 3339 3340 }</style><div 3341 > 3342 <div class="collapsible-content__inner">
3343 <div class="footer__collapsible footer_collapsible--disabled"> 3344 <ul class="no-bullets site-footer__linklist"><li><a href="/pages/terms-of-service">T&C</a></li><li><a href="https://horizonmicromobility.com/pages/learning-centre">Learning Centre</a></li><li><a href="/blogs/micromobility-blog">Blog</a></li><li><a href="/pages/faq">FAQ</a></li><li><a href="/pages/laka-bike-insurance-with-horizon-micromobility">Bike Insurance</a></li><li><a href="/pages/finance-options">Finance Options</a></li><li><a href="/pages/about-snap-finance">About Snap Finance</a></li><li><a href="/pages/cycle-to-work-schemes">Cycle to Work Schemes</a></li><li><a href="/pages/why-an-electric-bike-from-us">Why buy an e-bike from us</a></li></ul> 3345 </div> 3346 </div> 3347 </div></div><div class="grid__item footer__item--1598368219457" data-type="newsletter"><style data-shopify>@media only screen and (min-width: 769px) and (max-width: 959px) { 3348 .footer__item--1598368219457 { 3349 width: 50%; 3350 padding-top: 40px; 3351 } 3352 .footer__item--1598368219457:nth-child(2n + 1) { 3353 clear: left; 3354 } 3355 } 3356 @media only screen and (min-width: 960px) { 3357 .footer__item--1598368219457 { 3358 width: 30%; 3359 } 3360 3361 }</style><div class="footer__item-padding"><div 3362 > 3363 <div class="collapsible-content__inner"> 3364 <div class="footer__collapsible footer_collapsible--disabled"><p>£100 off | Enter email address for latest discount codes and promotions</p> 3365<form method="post" action="/contact#newsletter-footer" id="newsletter-footer" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><label for="Email-1598368219457" class="hidden-label">Enter your email</label> 3366 <input type="hidden" name="contact[tags]" value="prospect,newsletter"> 3367 <input type="hidden" name="contact[context]" value="footer"> 3368 <div class="footer__newsletter"> 3369 <input type="email" value="" placeholder="Enter your email" name="contact[email]" id="Email-1598368219457" class="footer__newsletter-input" autocorrect="off" autocapitalize="off"> 3370 <button type="submit" class="footer__newsletter-btn" name="commit" aria-label="Subscribe"> 3371 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-email" viewBox="0 0 64 64"><path d="M63 52H1V12h62zM1 12l25.68 24h9.72L63 12M21.82 31.68L1.56 51.16m60.78.78L41.27 31.68"/></svg> 3372 <span class="footer__newsletter-btn-label"> 3373 Subscribe 3374 </span> 3375 </button> 3376 </div></form><ul class="no-bullets footer__social"><li> 3377 <a target="_blank" rel="noopener" href="https://www.instagram.com/horizon_micromobility" title="Horizon Micromobility on Instagram"> 3378 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 32 32"><path fill="#444" d="M16 3.094c4.206 0 4.7.019 6.363.094 1.538.069 2.369.325 2.925.544.738.287 1.262.625 1.813 1.175s.894 1.075 1.175 1.813c.212.556.475 1.387.544 2.925.075 1.662.094 2.156.094 6.363s-.019 4.7-.094 6.363c-.069 1.538-.325 2.369-.544 2.925-.288.738-.625 1.262-1.175 1.813s-1.075.894-1.813 1.175c-.556.212-1.387.475-2.925.544-1.663.075-2.156.094-6.363.094s-4.7-.019-6.363-.094c-1.537-.069-2.369-.325-2.925-.544-.737-.288-1.263-.625-1.813-1.175s-.894-1.075-1.175-1.813c-.212-.556-.475-1.387-.544-2.925-.075-1.663-.094-2.156-.094-6.363s.019-4.7.094-6.363c.069-1.537.325-2.369.544-2.925.287-.737.625-1.263 1.175-1.813s1.075-.894 1.813-1.175c.556-.212 1.388-.475 2.925-.544 1.662-.081 2.156-.094 6.363-.094zm0-2.838c-4.275 0-4.813.019-6.494.094-1.675.075-2.819.344-3.819.731-1.037.4-1.913.944-2.788 1.819S1.486 4.656 1.08 5.688c-.387 1-.656 2.144-.731 3.825-.075 1.675-.094 2.213-.094 6.488s.019 4.813.094 6.494c.075 1.675.344 2.819.731 3.825.4 1.038.944 1.913 1.819 2.788s1.756 1.413 2.788 1.819c1 .387 2.144.656 3.825.731s2.213.094 6.494.094 4.813-.019 6.494-.094c1.675-.075 2.819-.344 3.825-.731 1.038-.4 1.913-.944 2.788-1.819s1.413-1.756 1.819-2.788c.387-1 .656-2.144.731-3.825s.094-2.212.094-6.494-.019-4.813-.094-6.494c-.075-1.675-.344-2.819-.731-3.825-.4-1.
3378038-.944-1.913-1.819-2.788s-1.756-1.413-2.788-1.819c-1-.387-2.144-.656-3.825-.731C20.812.275 20.275.256 16 .256z"/><path fill="#444" d="M16 7.912a8.088 8.088 0 0 0 0 16.175c4.463 0 8.087-3.625 8.087-8.088s-3.625-8.088-8.088-8.088zm0 13.338a5.25 5.25 0 1 1 0-10.5 5.25 5.25 0 1 1 0 10.5zM26.294 7.594a1.887 1.887 0 1 1-3.774.002 1.887 1.887 0 0 1 3.774-.003z"/></svg> 3379 <span class="icon__fallback-text">Instagram</span> 3380 </a> 3381 </li><li> 3382 <a target="_blank" rel="noopener" href="https://www.facebook.com/Horizon-Micromobility-101265531702525/" title="Horizon Micromobility on Facebook"> 3383 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 14222 14222"><path d="M14222 7112c0 3549.352-2600.418 6491.344-6000 7024.72V9168h1657l315-2056H8222V5778c0-562 275-1111 1159-1111h897V2917s-814-139-1592-139c-1624 0-2686 984-2686 2767v1567H4194v2056h1806v4968.72C2600.418 13603.344 0 10661.352 0 7112 0 3184.703 3183.703 1 7111 1s7111 3183.703 7111 7111zm-8222 7025c362 57 733 86 1111 86-377.945 0-749.003-29.485-1111-86.28zm2222 0v-.28a7107.458 7107.458 0 0 1-167.717 24.267A7407.158 7407.158 0 0 0 8222 14137zm-167.717 23.987C7745.664 14201.89 7430.797 14223 7111 14223c319.843 0 634.675-21.479 943.283-62.013z"/></svg> 3384 <span class="icon__fallback-text">Facebook</span> 3385 </a> 3386 </li><li> 3387 <a target="_blank" rel="noopener" href="https://www.youtube.com/horizonmicromobility" title="Horizon Micromobility on YouTube"> 3388 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube" viewBox="0 0 21 20"><path fill="#444" d="M-.196 15.803q0 1.23.812 2.092t1.977.861h14.946q1.165 0 1.977-.861t.812-2.092V3.909q0-1.23-.82-2.116T17.539.907H2.593q-1.148 0-1.969.886t-.82 2.116v11.894zm7.465-2.149V6.058q0-.115.066-.18.049-.016.082-.016l.082.016 7.153 3.806q.066.066.066.164 0 .066-.066.131l-7.153 3.806q-.033.033-.066.033-.066 0-.098-.033-.066-.066-.066-.131z"/></svg> 3389 <span class="icon__fallback-text">YouTube</span> 3390 </a> 3391 </li></ul> 3392 </div> 3393 </div> 3394 </div> 3395</div> 3396</div></div><ul class="inline-list payment-icons footer__section"> 3397 3398 3399 <li class="icon--payment"> 3400 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
340016.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 3401 3402 </li> 3403 <li class="icon--payment"> 3404 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 3405 3406 </li> 3407 <li class="icon--payment"> 3408 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 3409 3410 </li> 3411 <li class="icon--payment"> 3412 <svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/>
3412<path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 0-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg> 3413 </li> 3414 <li class="icon--payment"> 3415 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" /><path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg> 3416 3417 </li> 3418 <li class="icon--payment"> 3419 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
341906zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg> 3420 3421 </li> 3422 <li class="icon--payment"> 3423 <svg xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" viewBox="0 0 38 24" aria-labelledby="pi-klarna" fill="none"><title id="pi-klarna">Klarna</title><rect width="38" height="24" rx="2" fill="#FFA8CD"/><rect x=".5" y=".5" width="37" height="23" rx="1.5" stroke="#000" stroke-opacity=".07"/><path d="M30.62 14.755c-.662 0-1.179-.554-1.179-1.226 0-.673.517-1.226 1.18-1.226.663 0 1.18.553 1.18 1.226 0 .672-.517 1.226-1.18 1.226zm-.33 1.295c.565 0 1.286-.217 1.686-1.068l.04.02c-.176.465-.176.742-.176.81v.11h1.423v-4.786H31.84v.109c0 .069 0 .346.175.81l-.039.02c-.4-.85-1.121-1.068-1.687-1.068-1.355 0-2.31 1.088-2.31 2.522 0 1.433.955 2.521 2.31 2.521zm-4.788-5.043c-.643 0-1.15.228-1.56 1.068l-.039-.02c.175-.464.175-.741.175-.81v-.11h-1.423v4.787h1.462V13.4c0-.662.38-1.078.995-1.078.614 0 .917.356.917 1.068v2.532h1.462v-3.046c0-1.088-.838-1.869-1.989-1.869zm-4.963 1.068l-.039-.02c.176-.464.176-.741.176-.81v-.11h-1.424v4.787h1.463l.01-2.304c0-.673.35-1.078.926-1.078.156 0 .282.02.429.06v-1.464c-.644-.139-1.22.109-1.54.94zm-4.65 2.68c-.664 0-1.18-.554-1.18-1.226 0-.673.516-1.226 1.18-1.226.662 0 1.179.553 1.179 1.226 0 .672-.517 1.226-1.18 1.226zm-.332 1.295c.565 0 1.287-.217 1.687-1.068l.038.02c-.175.465-.175.742-.175.81v.11h1.424v-4.786h-1.424v.109c0 .069 0 .346.175.81l-.038.02c-.4-.85-1.122-1.068-1.687-1.068-1.356 0-2.311 1.088-2.311 2.522 0 1.433.955 2.521 2.31 2.521zm-4.349-.128h1.463V9h-1.463v6.922zM10.136 9H8.644c0 1.236-.751 2.343-1.892 3.134l-.448.317V9h-1.55v6.922h1.55V12.49l2.564 3.43h1.892L8.293 12.64c1.121-.82 1.852-2.096 1.843-3.639z" fill="#0B051D"/></svg> 3424 </li> 3425 <li class="icon--payment"> 3426 <svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-laybuy"><title id="pi-laybuy">Lay-Buy Powered By PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#FFF" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#FFF" d="M3 6h31v11H3z"/><path fill="#263B80" d="M33 18.5H5c-1.7 0-3-1.3-3-3v-7c0-1.7 1.3-3 3-3h28c1.7 0 3 1.3 3 3v7c0 1.7-1.3 3-3 3z"/><path d="M6.5 14.2h2.2v.8H5.4v-5h1v4.2zm5.6-.2h-1.8l-.3 1H8.9l1.9-5h1l1.9 5h-1.1l-.5-1zm-1.5-.9h1.2l-.6-1.9-.6 1.9zm4.6-.8l1-2.2h1.1l-1.6 3.2V15h-1v-1.8L13.1 10h1.1l1 2.3zm4 1h-1.9v-.8h1.9v.8zM20 15v-5h1.7c.6 0 1.1.1 1.4.3.3.2.5.6.5 1 0 .2-.1.5-.2.6-.1.2-.3.3-.5.4.3.1.5.2.6.4.1.2.2.4.2.7 0 .5-.2.8-.5 1.1s-.7.5-1.2.5h-2zm1-2.9h.8c.5 0 .8-.2.8-.6 0-.2-.1-.4-.2-.5-.1-.1-.3-.1-.6-.1H21v1.2zm0 .7v1.3h.9c.2 0 .4-.1.6-.2s.2-.3.2-.5c0-.5-.2-.7-.7-.7h-1zm7.3-2.8v3.3c0 .5-.2 1-.5 1.3-.3.3-.8.5-1.4.5-.6 0-1-.2-1.4-.5s-.5-.7-.5-1.3V10h1v3.3c0 .3.1.6.2.7.2.1.4.2.6.2.6 0 .9-.3.9-.9V10h1.1zm2.5 2.3l1-2.2H33l-1.6 3.2V15h-1v-1.8L28.7 10h1.1l1 2.3z" fill="#FFF"/></svg> 3427 </li> 3428 <li class="icon--payment"> 3429 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114
3429c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 3430 3431 </li></ul><p class="footer__small-text"> 3432 © 2026 Horizon Micromobility 3433| We are authorised & regulated by the Financial Conduct Authority: FRN: 988626 3434</p><p class="footer__small-text"><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore"> </a></p> 3435 3436 </div> 3437</footer> 3438 3439 3440</div></div> 3441 </div><div id="shopify-section-newsletter-popup" class="shopify-section index-section--hidden"><div 3442 id="NewsletterPopup-newsletter-popup" 3443 class="modal modal--square modal--mobile-friendly" 3444 data-section-id="newsletter-popup" 3445 data-section-type="newsletter-popup" 3446 data-delay-days="2" 3447 data-delay-seconds="20" 3448 data-test-mode="false"> 3449 <div class="modal__inner"> 3450 <div class="modal__centered medium-up--text-center"> 3451 <div class="modal__centered-content"> 3452 3453 <div class="newsletter"><h3>Thanks for Subscribing ð</h3><div class="rte"> 3454 <p>Look out for the email confirmation with your discount codes and link to update your preferences </p> 3455 </div><div class="popup-cta"><form method="post" action="/contact#newsletter-newsletter-popup" id="newsletter-newsletter-popup" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 3456<label for="Email-newsletter-popup" class="hidden-label">Enter your email</label> 3457 <input type="hidden" name="contact[tags]" value="prospect,newsletter"> 3458 <input type="hidden" name="contact[context]" value="popup"> 3459 <div class="input-group newsletter__input-group"> 3460 <input type="email" value="" placeholder="Enter your email" name="contact[email]" id="Email-newsletter-popup" class="input-group-field newsletter__input" autocorrect="off" autocapitalize="off"> 3461 <div class="input-group-btn"> 3462 <button type="submit" class="btn" name="commit"> 3463 <span class="form__submit--large">Subscribe</span> 3464 <span class="form__submit--small"> 3465 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-arrow-right" viewBox="0 0 50 15"><path d="M0 9.63V5.38h35V0l15 7.5L35 15V9.63z"/></svg> 3466 </span> 3467 </button> 3468 </div> 3469 </div></form> 3470</div><button type="button" class="text-close js-modal-close"></button> 3471 </div> 3472 </div> 3473 3474 <button type="button" class="modal__close js-modal-close text-link"> 3475 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg>
3476 <span class="icon__fallback-text">"Close (esc)"</span> 3477 </button> 3478 </div> 3479 </div> 3480</div> 3481</div><div id="VideoModal" class="modal modal--solid"> 3482 <div class="modal__inner"> 3483 <div class="modal__centered page-width text-center"> 3484 <div class="modal__centered-content"> 3485 <div class="video-wrapper video-wrapper--modal"> 3486 <div id="VideoHolder"></div> 3487 </div> 3488 </div> 3489 </div> 3490 </div> 3491 3492 <button type="button" class="modal__close js-modal-close text-link"> 3493 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg> 3494 <span class="icon__fallback-text">"Close (esc)"</span> 3495 </button> 3496</div> 3497<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true"> 3498 <div class="pswp__bg"></div> 3499 <div class="pswp__scroll-wrap"> 3500 <div class="pswp__container"> 3501 <div class="pswp__item"></div> 3502 <div class="pswp__item"></div> 3503 <div class="pswp__item"></div> 3504 </div> 3505 3506 <div class="pswp__ui pswp__ui--hidden"> 3507 <button class="btn btn--body btn--circle pswp__button pswp__button--arrow--left" title="Previous"> 3508 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-left" viewBox="0 0 284.49 498.98"><path d="M249.49 0a35 35 0 0 1 24.75 59.75L84.49 249.49l189.75 189.74a35.002 35.002 0 1 1-49.5 49.5L10.25 274.24a35 35 0 0 1 0-49.5L224.74 10.25A34.89 34.89 0 0 1 249.49 0z"/></svg> 3509 </button> 3510 3511 <button class="btn btn--body btn--circle btn--large pswp__button pswp__button--close" title="Close (esc)"> 3512 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 64 64"><path d="M19 17.61l27.12 27.13m0-27.12L19 44.74"/></svg> 3513 </button> 3514 3515 <button class="btn btn--body btn--circle pswp__button pswp__button--arrow--right" title="Next"> 3516 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-right" viewBox="0 0 284.49 498.98"><path d="M35 498.98a35 35 0 0 1-24.75-59.75l189.74-189.74L10.25 59.75a35.002 35.002 0 0 1 49.5-49.5l214.49 214.49a35 35 0 0 1 0 49.5L59.75 488.73A34.89 34.89 0 0 1 35 498.98z"/></svg> 3517 </button> 3518 </div> 3519 </div> 3520</div>
3521<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
3521 3522 3523 3524 3525 3526 3527
3527<script src="//horizonmicromobility.com/cdn/shopifycloud/storefront/assets/themes_support/api.jquery-7ab1a3a4.js" type="text/javascript"></script>
3527 3528<!--
3528<script src="//horizonmicromobility.com/cdn/shop/t/91/assets/custom.js?v=128682891780347262361736174245" defer="defer"></script>
3528 -->
3529<script> 3530$(document).ready(function(){ 3531 $("body").on("change","[name=id]",function(){ 3532 $(".product_extraOptions input:checked").each(function(){ 3533 $(this).click(); 3534 }); 3535 }); 3536 $("body").on("change",".extra_options input",function(){ 3537 var price = $("#product_extraOpt").attr("data-price"); 3538 var cprice = $("#product_extraOpt").attr("data-compare-price"); 3539 var price1 = 0; 3540 $(".product_extraOptions input:checked").each(function(){ 3541 if(price1 != "undefined"){ 3542 price1 += parseInt($(this).attr("data-price")); 3543 } 3544 else{ 3545 price1 += 0; 3546 } 3547 }) 3548 var total = parseInt(price) + price1; 3549 3550 if(cprice != "undefined"){ 3551 var ctotal = parseInt(cprice) + price1; 3552 if($('.product-block--price [data-compare-price]').length > 0){ 3553 $('.product-block--price [data-compare-price]').html(Shopify.formatMoney(ctotal,"£{{amount}} GBP")); 3554 } 3555 } 3556 $('.product-block--price [data-product-price]').html(Shopify.formatMoney(total,"£{{amount}} GBP")); 3557 }) 3558 3559 function addExtra(){ 3560 let formData = { 3561 'items':[] 3562 }; 3563 $("#product_extraOpt .extra_options input:checked").each(function(){ 3564 var pid1 = $(this).parent().attr('v_id'); 3565 if(pid1 != "undefined"){ 3566 let item = { 3567 id : pid1 , 3568 quantity : 1 3569 } 3570 formData['items'].push(item) 3571 } 3572 3573 }); 3574 //console.log("len", formData.items.length) 3575 if(formData.items.length > 0) { 3576 fetch(window.Shopify.routes.root + 'cart/add.js', { 3577 method: 'POST', 3578 headers: { 3579 'Content-Type': 'application/json' 3580 }, 3581 body: JSON.stringify(formData) 3582 }) 3583 .then(response => { 3584 // var cart = new theme.CartDrawer 3585 // cart.init() 3586 //cart.open(); 3587 console.log("formData:",formData); 3588 return response.json(); 3589 }) 3590 .catch((error) => { 3591 console.error('Error:', error); 3592 }); 3593 } 3594 } 3595 $(".add_extra").click(function(){ 3596 addExtra(); 3597 setTimeout(function(){ 3598 $(".add-to-cart[name='add']").click(); 3599 var checkboxes = document.getElementsByName('prd_options'); 3600 for (var i = 0; i < checkboxes.length; i++) { 3601 checkboxes[i].checked = false; 3602 } 3603 },600); 3604 }); 3605}); 3606</script>
vendor: 1 bytes, line 3606
3606
3607<script src="//horizonmicromobility.com/cdn/shop/t/91/assets/tiny-img-link-preloader.js?v=26403198945174473401736174245" type="text/javascript"></script>
3607 3608 3609 3610 3611<style> </style> 3612<div id="shopify-block-AV1c1MGppS3Bld2V0Z__1967102994182284862" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: connected_sdk_script -->
3612<script src='https://www.paypalobjects.com/pa/js/min/pa.js'></script>
3612 3613
3614<script 3615 src='https://www.paypal.com/sdk/js?client-id=AbtXlp5R3xc83T9xW_ZXKTK8IVZ-14EMelDioU4VC285IqSuxUI4yotKxjV0sz_X6YsONYi10vSBPNKM&merchant-id=XXLXZYZP7L7TA&components=messages' 3616 data-namespace='PayPalSDK' 3617 data-partner-attribution-id='JADEDPIXEL_SHOPPINGCART_EC_CA' 3618></script>
3618 3619<!-- END app snippet --><!-- BEGIN app snippet: utils -->
3619<script> 3620 // ============================================ 3621 // Core Utilities 3622 // ============================================ 3623 3624 // Setup FPTI Analytics 3625 if (PAYPAL && PAYPAL.analytics) { 3626 PAYPAL.analytics.setup({ 3627 data: { 3628 pgrp: 'shopify:messaging:app-embed', 3629 comp: 'shopify-app-embed', 3630 }, 3631 }); 3632 } 3633 3634 const recordEvent = (event_name, additionalData) => { 3635 PAYPAL.analytics.instance.recordEvent(event_name, { 3636 theme: window?.Shopify?.theme?.name || 'unknown', 3637 shop: window?.Shopify?.shop || 'unknown', 3638 path: window.location.pathname, 3639 flow: 'Shopify - Pay Later', 3640 space_key: 'SKD8GM', 3641 ...additionalData, 3642 }); 3643 }; 3644 3645 // In Theme Editor when using Advanced Settings 3646 // User chooses copy as JS Path from their browser 3647 // The pasted value will be a string that contains "document.querySelector("...") 3648 // Remove document.querySelector(" and ") 3649 // Using JS Path we can ensure the path to the element is accurate 3650 const parseSelector = (selector) => { 3651 try { 3652 // Handle both single and double quotes 3653 return selector 3654 .replace(/document\.querySelector\(["']/g, '') 3655 .replace(/["']\)/g, ''); 3656 } catch (e) { 3657 recordEvent('appEmbed:parseSelector:error', { error: e.message }); 3658 } 3659 }; 3660 3661 // Waits for Element to be rendered 3662 // Uses mutation observer to watch for changes in the DOM 3663 // https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver 3664 // On changes, check for the selector again 3665 const waitForElement = (selector) => { 3666 try { 3667 return new Promise((resolve) => { 3668 const existing = document.querySelector(selector); 3669 if (existing) return resolve(existing); 3670 3671 const observer = new MutationObserver(() => { 3672 const el = document.querySelector(selector); 3673 if (el) { 3674 observer.disconnect(); 3675 resolve(el); 3676 } 3677 }); 3678 3679 observer.observe(document.body, { 3680 childList: true, 3681 subtree: true, 3682 }); 3683 }); 3684 } catch (e) { 3685 recordEvent('appEmbed:waitForElement:error', { error: e.message }); 3686 } 3687 }; 3688 3689 // Formats correct cart/drawer subtotal and adds or updates messaging 3690 const addOrUpdateMessagingPriceAttribute = async (price, locator, messaging) => { 3691 try { 3692 // Format price to 2 decimal places ex: 150000 => 1500.00 3693 // Messaging requires price to be in string format 3694 const formattedPrice = Number((price / 100).toFixed(2)).toString(); 3695 3696 const messagingId = messaging.id; 3697 const existingMessaging = document.getElementById(messagingId); 3698 3699 if (existingMessaging) { 3700 // Update the data-pp-amount attribute on the existing element 3701 existingMessaging.setAttribute('data-pp-amount', formattedPrice); 3702 } else { 3703 const element = await waitForElement(locator); 3704 3705 const updatedPriceMessaging = messaging.cloneNode(); 3706 updatedPriceMessaging.setAttribute('data-pp-amount', formattedPrice); 3707 3708 element.after(updatedPriceMessaging); 3709 } 3710 } catch (e) { 3711 recordEvent('appEmbed:addOrUpdateMessagingPriceAttribute:error', { error: e.message }); 3712 } 3713 }; 3714 3715 // Fetches cart details from Shopify cart endpoint 3716 const fetchCartDetails = async () => { 3717 try { 3718 const response = await fetch('/cart.js'); 3719 const cart = await response.json(); 3720 3721 return cart.total_price; 3722 } catch (e) { 3723 recordEvent('appEmbed:fetchCartDetails:error', { error: e.message }); 3724 } 3725 }; 3726 3727 // Fetches variant details Shopify product endpoint 3728 // https://shopify.dev/docs/api/ajax/reference/product 3729 const fetchVariant = async () => { 3730 try { 3731 // Ex: https://test-store.myshopify.com/products/the-multi-location-snowboard?variant=45268551368883 3732 const urlParams = new URLSearchParams(window.location.search); 3733 const urlVariantId = parseInt(urlParams.get('variant'), 10); 3734 const productHandle = window.location.pathname.split('/products/')[1]?.split('?')[0]; 3735 3736 const response = await fetch(`/products/${productHandle}.js`); 3737 const productData = await response.json(); 3738 const variants = productData.variants; 3739 const selectedVariant = variants.find(v => v.id === urlVariantId); 3740 3741 if (selectedVariant) { 3742 return selectedVariant; 3743 } 3744 3745 return variants.find(v => v.available) || variants[0]; 3746 } catch (e) { 3747 recordEvent('appEmbed:fetchVariant:error', { error: e.message }); 3748 } 3749 }; 3750 3751 // Get the selected variant ID from URL, form input, or select element
3752 const getSelectedVariantId = () => { 3753 try { 3754 const urlParams = new URLSearchParams(window.location.search); 3755 const urlVariant = urlParams.get('variant'); 3756 if (urlVariant) return parseInt(urlVariant, 10); 3757 3758 const formInput = document.querySelector('form[action*="/cart/add"] input[name="id"]'); 3759 if (formInput?.value) return parseInt(formInput.value, 10); 3760 3761 const selectInput = document.querySelector('form[action*="/cart/add"] select[name="id"]'); 3762 if (selectInput?.value) return parseInt(selectInput.value, 10); 3763 3764 return null; 3765 } catch (e) { 3766 recordEvent('appEmbed:getSelectedVariantId:error', { error: e.message }); 3767 return null; 3768 } 3769 }; 3770 3771 const getShopifyData = () => { 3772 try { 3773 const selectedVariantId = getSelectedVariantId(); 3774 3775 const findVariant = (variants) => { 3776 if (!variants?.length) return null; 3777 if (selectedVariantId) { 3778 const selected = variants.find(v => v.id === selectedVariantId); 3779 if (selected) return selected; 3780 } 3781 return variants.find(v => v.available) || variants[0]; 3782 }; 3783 3784 if (window.meta?.product) { 3785 const product = window.meta.product; 3786 const variant = findVariant(product.variants); 3787 return { 3788 product: { title: product.title, vendor: product.vendor, type: product.type, id: product.id }, 3789 price: variant ? { 3790 priceInCents: variant.price, 3791 compareAtPrice: variant.compare_at_price, 3792 currency: window.Shopify?.currency?.active || 'USD', 3793 variantId: variant.id, 3794 variantTitle: variant.title 3795 } : null 3796 }; 3797 } 3798 3799 if (window.ShopifyAnalytics?.meta?.product) { 3800 const product = window.ShopifyAnalytics.meta.product; 3801 const variant = findVariant(product.variants); 3802 return { 3803 product: { title: product.title, vendor: product.vendor, id: product.id }, 3804 price: variant ? { 3805 priceInCents: variant.price, 3806 currency: window.Shopify?.currency?.active || 'USD', 3807 variantId: variant.id 3808 } : null 3809 }; 3810 } 3811 3812 return null; 3813 } catch (e) { 3814 recordEvent('appEmbed:getShopifyData:error', { error: e.message }); 3815 return null; 3816 } 3817 }; 3818 3819 // Generic function to watch for changes in the DOM 3820 // and listen for specific API calls made by the Shopify store 3821 // Callback provides specific logic for handling the response 3822 const watchForChanges = (locator, messaging, callback) => { 3823 try { 3824 // Overrides the native `fetch` function to listen for specific API calls. 3825 // Wrapped in an Immediately Invoked Function Expression (IIFE) 3826 // To avoid polluting the global namespace. 3827 (function (window, windowFetch) { 3828 // Check if `fetch` is a function. If not, exit early. 3829 if (typeof fetch !== 'function') return; 3830 3831 window.fetch = function () { 3832 // Call the original `fetch` function with the provided arguments. 3833 const response = windowFetch.apply(this, arguments); 3834 3835 response.then(async (res) => { 3836 if (typeof callback === 'function') { 3837 callback(res, locator, messaging); 3838 } 3839 }); 3840 3841 // Return the original `fetch` response. 3842 return response; 3843 }; 3844 })(window, window.fetch); 3845 } catch (e) { 3846 recordEvent('appEmbed:watchForChanges:error', { error: e.message }); 3847 } 3848 }; 3849 3850 // Provides ability to watch for cart changes 3851 // such as increment, decrement, or remove items 3852 // Also handles adding new items which opens Cart Drawer 3853 // and updates the messaging with the new cart total 3854 // This function is used for both Cart Drawer and Cart Page 3855 const watchForCartChanges = (locator, messaging) => { 3856 const cartChangeCallback = async (res, locator, messaging) => { 3857 // Determine the id of messaging div either #paypal-upstream-messaging-cart-{page | drawer} 3858 const messagingId = messaging.id; 3859 3860 // Changes (e.g., increment, decrement, or remove items). 3861 if (res.url.includes('/cart/change')) { 3862 // Clone the response to read its JSON data without consuming the original response. 3863 res 3864 .clone() 3865 .json() 3866 .then((data) => { 3867 addOrUpdateMessagingPriceAttribute(data.total_price, locator, messaging); 3868 }); 3869 3870 // Called when adding a new item which opens Cart Drawer 3871 } else if (res.url.includes('/cart/add')) { 3872 // Adding items does not return the updated cart details, 3873 // Fetch the updated cart details (e.g., total_price). 3874 const updatedPrice = await fetchCartDetails(); 3875 3876 // Introduce a delay to handle potential race conditions where the cart drawer has not rendered yet. 3877 setTimeout(async () => { 3878 await addOrUpdateMessagingPriceAttribute(updatedPrice, locator, messaging); 3879 }, 500); 3880 } 3881 }; 3882 3883 watchForChanges(locator, messaging, cartChangeCallback); 3884 }; 3885
3886 // Provides ability to watch for product specific changes 3887 // such as variant selection on product pages 3888 const watchForProductChanges = (locator, messaging) => { 3889 let lastVariantId = new URLSearchParams(window.location.search).get('variant'); 3890 3891 const handleVariantChange = async () => { 3892 const currentVariantId = new URLSearchParams(window.location.search).get('variant'); 3893 if (currentVariantId && currentVariantId !== lastVariantId) { 3894 lastVariantId = currentVariantId; 3895 3896 const newVariantData = await fetchVariant(); 3897 const newPriceInCents = newVariantData?.price; 3898 3899 if (newPriceInCents) { 3900 await addOrUpdateMessagingPriceAttribute(newPriceInCents, locator, messaging); 3901 } else { 3902 recordEvent('appEmbed:watchForProductChanges:error:noNewVariantPrice'); 3903 } 3904 } 3905 }; 3906 3907 // Shopify themes can either handle variant changes on the client-side or server-side (via variant API calls) 3908 // We will "intercept" and handle variant changes by: 3909 // 1. Watching for URL changes 3910 const _pushState = history.pushState.bind(history); 3911 const _replaceState = history.replaceState.bind(history); 3912 3913 history.pushState = function (...args) { 3914 _pushState(...args); 3915 handleVariantChange(); 3916 }; 3917 3918 history.replaceState = function (...args) { 3919 _replaceState(...args); 3920 handleVariantChange(); 3921 }; 3922 3923 // 2. Watching for back/forward browser clicks 3924 window.addEventListener('popstate', handleVariantChange); 3925 3926 // 3. Fallback: Watching for variant API calls 3927 // Future optimization: This fallback could be removed if all Shopify themes can be handled with 1. and 2. 3928 const productChangeCallback = async (res, locator, messaging) => { 3929 if (res.url.includes('/variants')) { 3930 await handleVariantChange(); 3931 return; 3932 } 3933 }; 3934 3935 watchForChanges(locator, messaging, productChangeCallback); 3936 }; 3937</script>
3937 3938<!-- END app snippet --><!-- BEGIN app snippet: price-detection -->
3938<script> 3939 // ============================================ 3940 // Price Detection & Element Scoring 3941 // Depends on: utils.liquid (recordEvent, getShopifyData) 3942 // ============================================ 3943 3944 const extractPriceFromText = (text) => { 3945 const match = text.match(/[\d,]+\.?\d*/); 3946 if (!match) return null; 3947 return parseFloat(match[0].replace(/,/g, '')); 3948 }; 3949 3950 const textMatchesPrice = (text, knownPriceInCents) => { 3951 const extracted = extractPriceFromText(text); 3952 if (extracted === null) return false; 3953 const knownPrice = knownPriceInCents / 100; 3954 return Math.abs(extracted - knownPrice) < 0.01; 3955 }; 3956 3957 const hasStrikethrough = (element) => { 3958 let el = element; 3959 while (el && el !== document.body) { 3960 const style = getComputedStyle(el); 3961 if (style.textDecoration.includes('line-through') || 3962 style.textDecorationLine?.includes('line-through')) { 3963 return true; 3964 } 3965 if (['S', 'DEL', 'STRIKE'].includes(el.tagName)) { 3966 return true; 3967 } 3968 el = el.parentElement; 3969 } 3970 return false; 3971 }; 3972 3973 // Find the add-to-cart button. Result is cached since the button doesn't change per page load. 3974 let _cachedAddToCartButton; 3975 const findAddToCartButton = () => { 3976 if (_cachedAddToCartButton !== undefined) return _cachedAddToCartButton; 3977 try { 3978 const formButton = document.querySelector('form[action*="/cart/add"] button[type="submit"]'); 3979 if (formButton) return (_cachedAddToCartButton = formButton); 3980 3981 const buttons = document.querySelectorAll('button'); 3982 for (const btn of buttons) { 3983 const text = btn.textContent.toLowerCase(); 3984 if (text.includes('add to cart') || text.includes('add to bag') || 3985 text.includes('buy now') || text.includes('add to basket')) { 3986 return (_cachedAddToCartButton = btn); 3987 } 3988 } 3989 3990 return (_cachedAddToCartButton = null); 3991 } catch (e) { 3992 recordEvent('appEmbed:findAddToCartButton:error', { error: e.message }); 3993 return (_cachedAddToCartButton = null); 3994 } 3995 }; 3996 3997 // Find element containing specific text (used for product title proximity). 3998 // Result is cached per text string â title is static per page load and scoreElement 3999 // calls this once per candidate, so without caching it's O(candidates) full DOM walks. 4000 let _titleElementCache = {}; 4001 const findElementContainingText = (text) => { 4002 if (text in _titleElementCache) return _titleElementCache[text]; 4003 try { 4004 const normalizedText = text.toLowerCase().trim(); 4005 const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT); 4006 4007 let node; 4008 while (node = walker.nextNode()) { 4009 const nodeText = node.textContent.trim().toLowerCase(); 4010 if (nodeText.length > 5 && normalizedText.includes(nodeText.substring(0, 20))) { 4011 const el = node.parentElement; 4012 const rect = el.getBoundingClientRect(); 4013 if (rect.width > 0 && rect.height > 0) { 4014 const fontSize = parseFloat(getComputedStyle(el).fontSize); 4015 if (fontSize >= 16) return (_titleElementCache[text] = el); 4016 } 4017 } 4018 } 4019 return (_titleElementCache[text] = null); 4020 } catch (e) { 4021 return null; 4022 } 4023 }; 4024 4025 const getViewportThresholds = () => { 4026 const vh = window.innerHeight; 4027 const isMobile = window.innerWidth < 768; 4028 4029 return { 4030 position: [[vh * 0.6, 50], [vh * 1.2, 30], [vh * 2.0, 10]], 4031 fontSize: [ 4032 [isMobile ? 18 : 24, 40], 4033 [isMobile ? 14 : 18, 25], 4034 [isMobile ? 12 : 14, 10], 4035 ], 4036 proximity: { 4037 close: isMobile ? 60 : 100, 4038 medium: isMobile ? 120 : 200, 4039 far: isMobile ? 240 : 400, 4040 }, 4041 }; 4042 }; 4043 4044 const getTieredScore = (value, tiers, defaultScore = 0) => { 4045 for (const [threshold, points] of tiers) { 4046 if (value < threshold) return points; 4047 } 4048 return defaultScore; 4049 }; 4050 4051 // Scores a DOM element on how likely it is to be the product's main price. 4052 // Higher score = better candidate. Factors: 4053 // - Position on page (elements higher up score better) 4054 // - Font size (larger text = more likely a displayed price) 4055 // - Proximity to product title and add-to-cart button 4056 // - Structural exclusions (footer/header/nav/hidden = heavy penalty) 4057 // - Strikethrough detection (compare-at prices = heavy penalty) 4058 const scoreElement = (element, productMeta = null, debug = false) => { 4059 let score = 0; 4060 const breakdown = debug ? {} : null; 4061 const { position, fontSize, proximity } = getViewportThresholds(); 4062 const { close, medium, far } = proximity; 4063 const rect = element.getBoundingClientRect(); 4064 4065 // POSITION ON PAGE 4066 const absoluteTop = rect.top + window.scrollY; 4067 const posScore = getTieredScore(absoluteTop, position, -30); 4068 score += posScore; 4069 if (debug) breakdown.position = `${posScore >= 0 ? '+' : ''}${posScore} (top ${Math.round(absoluteTop)}px)`; 4070 4071 // FONT SIZE 4072 const fontPx = parseFloat(getComputedStyle(element).fontSize); 4073 const fontScore = fontSize.find(([t]) => fontPx >= t)?.[1] ?? -10; 4074 score += fontScore; 4075 if (debug) breakdown.fontSize = `${fontScore >= 0 ? '+' : ''}${fontScore} (${fontPx}px)`; 4076 4077 // PROXIMITY TO PRODUCT TITLE 4078 if (productMeta?.title) { 4079 const titleElement = findElementContainingText(productMeta.title); 4080 if (titleElement) { 4081 const distance = Math.abs(titleElement.getBoundingClientRect().bottom - rect.top); 4082 const titleScore = getTieredScore(distance, [[close, 40], [medium, 25], [far, 10]], 0); 4083 score += titleScore; 4084 if (debug) breakdown.titleProximity = `+${titleScore} (${Math.round(distance)}px)`; 4085 } else if (debug) { 4086 breakdown.titleProximity = 'title element not found'; 4087 } 4088 } else if (debug) { 4089 breakdown.titleProximity = 'no product title'; 4090 } 4091 4092 // PROXIMITY TO ADD-TO-CART BUTTON 4093 const addButton = findAddToCartButton(); 4094 if (addButton) { 4095 const distance = Math.abs(addButton.getBoundingClientRect().top - rect.top); 4096 const cartScore = getTieredScore(distance, [[close, 30], [medium, 20], [far, 10]], 0); 4097 score += cartScore; 4098 if (debug) breakdown.cartProximity = `+${cartScore} (${Math.round(distance)}px)`; 4099 } else if (debug) { 4100 breakdown.cartProximity = 'add-to-cart not found'; 4101 } 4102 4103 // STRUCTURAL EXCLUSIONS 4104 const exclusions = [ 4105 ['footer, header, nav', 'in footer/header/nav'], 4106 ['button, a[href*="/cart"], [type="submit"]', 'in button/link'], 4107 ['[aria-hidden="true"], [hidden], .hidden, .visually-hidden', 'hidden'], 4108 ]; 4109 for (const [selector, reason] of exclusions) { 4110 if (element.closest(selector)) { 4111 score -= 100; 4112 if (debug) breakdown.structural = `-100 (${reason})`; 4113 break; 4114 } 4115 } 4116 if (debug && !breakdown.structural) breakdown.structural = '+0'; 4117 4118 // STRIKETHROUGH 4119 if (hasStrikethrough(element)) { 4120 score -= 100; 4121 if (debug) breakdown.strikethrough = '-100 (compare-at price)'; 4122 } else if (debug) { 4123 breakdown.strikethrough = '+0'; 4124 } 4125 4126 if (debug) { 4127 breakdown.totalScore = score; 4128 breakdown.elementText = element.textContent.trim().substring(0, 30); 4129 breakdown.elementTag = element.tagName; 4130 } 4131 4132 return debug ? { score, breakdown } : score; 4133 }; 4134 4135 // Find all elements containing a specific price value 4136 const findElementsWithPrice = (knownPriceInCents, productMeta = null, debug = false, log = () => {}) => { 4137 const candidates = []; 4138 const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT); 4139 4140 let node; 4141 while (node = walker.nextNode()) { 4142 const text = node.textContent.trim(); 4143 if (text.length > 30 || !textMatchesPrice(text, knownPriceInCents)) continue; 4144 4145 const element = node.parentElement; 4146 const rect = element.getBoundingClientRect(); 4147 4148 if (rect.width === 0 || rect.height === 0 || hasStrikethrough(element)) continue; 4149 4150 const score = scoreElement(element, productMeta, false); 4151 candidates.push({ element, text, score }); 4152 } 4153 4154 if (debug && candidates.length > 0) { 4155 candidates.sort((a, b) => b.score - a.score); 4156 log(` Candidates: ${candidates.length}, top: score=${candidates[0].score}, text="${candidates[0].text}"`); 4157 } 4158 4159 return candidates; 4160 }; 4161 4162 // Find the /cart/add form by traversing from the price element 4163 // This is more reliable than name-based container detection since all Shopify themes have this form 4164 const findCartFormFromPrice = (priceElement, debug = false, log = () => {}) => { 4165 let el = priceElement; 4166 4167 while (el && el !== document.body) { 4168 if (el.tagName === 'FORM' && el.action?.includes('/cart/add')) { 4169 if (debug) log(` Found /cart/add form (element itself)`); 4170 return el; 4171 } 4172 4173 let sibling = el.nextElementSibling; 4174 while (sibling) { 4175 if (sibling.tagName === 'FORM' && sibling.action?.includes('/cart/add')) { 4176 if (debug) log(` Found /cart/add form as sibling`); 4177 return sibling; 4178 } 4179 // Check if sibling contains the form 4180 const formInSibling = sibling.querySelector('form[action*="/cart/add"]'); 4181 if (formInSibling) { 4182 if (debug) log(` Found /cart/add form inside sibling`); 4183 return formInSibling; 4184 } 4185 sibling = sibling.nextElementSibling; 4186 } 4187 4188 el = el.parentElement; 4189 } 4190 4191 if (debug) log(` No /cart/add form found`); 4192 return null; 4193 }; 4194 4195 // Fallback: walk up from the price text element to find a suitable wrapper. 4196 // Used when no /cart/add form exists near the price element. 4197 const findPriceContainer = (priceElement) => { 4198 let el = priceElement; 4199 let bestContainer = priceElement; 4200 4201 while (el && el !== document.body) { 4202 // Look for elements with price-related IDs (common Shopify pattern) 4203 if (el.id && /price/i.test(el.id)) { 4204 bestContainer = el; 4205 } 4206 // Look for elements with price-related classes that seem like containers 4207 if (el.className && typeof el.className === 'string') { 4208 const classes = el.className.toLowerCase(); 4209 if (/\bprice\b/.test(classes) && !/price-item|price__regular|price__sale/.test(classes)) { 4210 bestContainer = el; 4211 } 4212 } 4213 // Stop at major structural elements 4214 if (el.tagName === 'SECTION' || el.tagName === 'ARTICLE' || el.tagName === 'MAIN') { 4215 break; 4216 } 4217 el = el.parentElement; 4218 } 4219 4220 return bestContainer; 4221 }; 4222 4223 // Try common Shopify theme price selectors (Dawn and derivatives) 4224 const findPriceByTemplateSelector = (debug = false, log = () => {}) => { 4225 const selectors = [ 4226 '[id*="price-template"]', // Dawn theme pattern 4227 '.price-item--regular:not(s):not(del)',
4228 '[data-product-price]', 4229 ]; 4230 4231 for (const selector of selectors) { 4232 const el = document.querySelector(selector); 4233 if (el && !hasStrikethrough(el)) { 4234 if (debug) log(`Template selector found: ${selector}`); 4235 return el; 4236 } 4237 } 4238 return null; 4239 }; 4240 4241 // Check if we're in an isolated/sandboxed iframe (theme editor) 4242 const isIsolatedContext = () => { 4243 if (window === window.top) return false; // Not in iframe 4244 try { 4245 // Try to access parent - if cross-origin, we're isolated 4246 const test = window.parent.document; 4247 return false; // Can access parent, not isolated 4248 } catch (e) { 4249 return true; // Cross-origin, we're isolated 4250 } 4251 }; 4252 4253 // Try to find price element in sibling iframes (theme editor workaround) 4254 const findPriceInSiblingIframes = (knownPriceInCents) => { 4255 const iframes = document.querySelectorAll('iframe'); 4256 4257 for (const iframe of iframes) { 4258 try { 4259 const iframeDoc = iframe.contentDocument || iframe.contentWindow?.document; 4260 if (!iframeDoc) continue; 4261 4262 const priceElement = iframeDoc.querySelector('.price-item, .price, [data-product-price]'); 4263 if (priceElement) { 4264 return { element: priceElement, document: iframeDoc }; 4265 } 4266 } catch (e) { 4267 // Cross-origin iframe, skip 4268 } 4269 } 4270 4271 return null; 4272 }; 4273 4274 // Helper: Insert messaging near a price element (before cart form or after price container). 4275 // Returns the price container element used as the logical anchor. 4276 const insertMessagingNearPrice = (priceElement, messaging, debug = false, log = () => {}) => { 4277 const cartForm = findCartFormFromPrice(priceElement, debug, log); 4278 const container = findPriceContainer(priceElement); 4279 if (cartForm) { 4280 cartForm.before(messaging.cloneNode()); 4281 if (debug) log('Inserted messaging before /cart/add form'); 4282 } else { 4283 container.after(messaging.cloneNode()); 4284 if (debug) log('Inserted after price container (no form found)'); 4285 } 4286 return container; 4287 }; 4288 4289 // Insert messaging after price element 4290 const insertMessagingWithRetry = (shopifyData, messaging, debug = false, log = () => {}) => { 4291 // Skip visual preview iframe 4292 if (window.location.search.includes('source=visualPreviewInitialLoad')) return; 4293 if (document.querySelector('#paypal-upstream-messaging-product')) return; 4294 4295 const liquidPriceInCents = shopifyData?.price?.priceInCents; 4296 const isIsolated = isIsolatedContext(); 4297 4298 if (debug) { 4299 log('=== Price Detection ==='); 4300 log(`Context: ${isIsolated ? 'Theme Editor' : 'Live Storefront'}`); 4301 log(`Price: ${liquidPriceInCents} cents ($${(liquidPriceInCents / 100).toFixed(2)})`); 4302 } 4303 4304 // Priority 1: Template selectors (common theme patterns like Dawn) 4305 const templateElement = findPriceByTemplateSelector(debug, log); 4306 if (templateElement) { 4307 return insertMessagingNearPrice(templateElement, messaging, debug, log); 4308 } 4309 4310 // Priority 2: Scoring-based price detection 4311 const priceElement = findPriceElement(shopifyData, debug, log); 4312 if (priceElement) { 4313 return insertMessagingNearPrice(priceElement, messaging, debug, log); 4314 } 4315 4316 // Priority 3: Sibling iframes (theme editor only) 4317 if (isIsolated) { 4318 const siblingResult = findPriceInSiblingIframes(liquidPriceInCents); 4319 if (siblingResult) { 4320 return insertMessagingNearPrice(siblingResult.element, messaging, debug, log); 4321 } 4322 } 4323 4324 if (!isIsolated) { 4325 log('Could not find price element. Consider using Advanced Settings with a custom selector.'); 4326 } 4327 return null; 4328 }; 4329 4330 const findPriceElement = (shopifyData = null, debug = false, log = () => {}) => { 4331 try { 4332 const knownPriceInCents = shopifyData?.price?.priceInCents; 4333 const productMeta = shopifyData?.product; 4334 4335 if (debug) log(`findPriceElement: ${knownPriceInCents} cents`); 4336 4337 if (knownPriceInCents) { 4338 const candidates = findElementsWithPrice(knownPriceInCents, productMeta, debug, log); 4339 if (candidates.length > 0) { 4340 candidates.sort((a, b) => b.score - a.score); 4341 if (debug) log(` â FOUND (score=${candidates[0].score})`); 4342 return candidates[0].element; 4343 } 4344 } 4345 4346 if (debug) log(' â null (no candidates)'); 4347 return null; 4348 } catch (e) { 4349 if (debug) log(` â Error: ${e.message}`); 4350 recordEvent('appEmbed:findPriceElement:error', { error: e.message }); 4351 return null; 4352 } 4353 }; 4354</script>
4354 4355<!-- END app snippet --><!-- BEGIN app snippet: navigator-panel --><template id="pp-nav-template"> 4356 <style> 4357 /* --- Floating placement panel shell --- */ 4358 #pp-nav-panel { 4359 position: fixed; 4360 top: 50%; 4361 left: 20px; 4362 transform: translateY(-50%); 4363 background: #fff; 4364 border-radius: 12px; 4365 font-family: system-ui, -apple-system, sans-serif; 4366 font-size: 13px; 4367 z-index: 999999; 4368 width: 340px; 4369 box-shadow: 0 8px 32px rgba(0,0,0,0.18); 4370 overflow: hidden; 4371 transition: transform 0.3s ease, height 0.3s ease; 4372 } 4373 #pp-nav-panel.minimized { 4374 display: none; 4375 } 4376 4377 /* --- Minimized pill button --- */ 4378 #pp-nav-pill { 4379 position: fixed; 4380 bottom: 20px; 4381 left: 20px; 4382 background: #003087; 4383 color: #fff; 4384 border: none; 4385 border-radius: 24px; 4386 padding: 10px 18px; 4387 font-family: system-ui, -apple-system, sans-serif; 4388 font-size: 13px; 4389 font-weight: 600; 4390 cursor: pointer; 4391 z-index: 999999; 4392 box-shadow: 0 4px 16px rgba(0,48,135,0.3); 4393 display: none; 4394 align-items: center; 4395 gap: 8px; 4396 transition: box-shadow 0.2s; 4397 } 4398 #pp-nav-pill:hover { 4399 box-shadow: 0 6px 20px rgba(0,48,135,0.45); 4400 } 4401 4402 /* --- Header --- */ 4403 .pp-panel-header { 4404 background: #003087; 4405 color: #fff; 4406 padding: 14px 16px; 4407 display: flex; 4408 align-items: center; 4409 justify-content: space-between; 4410 } 4411 .pp-panel-title { 4412 font-size: 14px; 4413 font-weight: 700; 4414 margin: 0; 4415 letter-spacing: 0.01em; 4416 } 4417 .pp-minimize-btn { 4418 background: none; 4419 border: none; 4420 color: rgba(255,255,255,0.8); 4421 cursor: pointer; 4422 font-size: 18px; 4423 line-height: 1; 4424 padding: 2px; 4425 border-radius: 4px; 4426 transition: color 0.15s; 4427 } 4428 .pp-minimize-btn:hover { 4429 color: #fff; 4430 } 4431 4432 /* --- Panel body --- */ 4433 .pp-panel-content { 4434 padding: 16px; 4435 } 4436 4437 /* --- Step info boxes --- */ 4438 .pp-step-box { 4439 border-radius: 8px; 4440 padding: 10px 12px; 4441 font-size: 12px; 4442 line-height: 1.5; 4443 margin-bottom: 12px; 4444 display: flex; 4445 align-items: flex-start; 4446 gap: 8px; 4447 } 4448 .pp-step-box.blue { 4449 background: #e8f4fd; 4450 border: 1px solid #b8dff5; 4451 color: #0a5a96; 4452 } 4453 .pp-step-box.green { 4454 background: #e6f9ee; 4455 border: 1px solid #a3e4b8; 4456 color: #1a7a3a; 4457 } 4458 .pp-step-text { 4459 flex: 1; 4460 } 4461 .pp-step-text p { 4462 margin: 0 0 8px 0; 4463 } 4464 .pp-step-text p:last-child { 4465 margin-bottom: 0; 4466 } 4467 .pp-step-text strong { 4468 display: block; 4469 font-size: 12px; 4470 margin-bottom: 2px; 4471 } 4472 .pp-step-dismiss { 4473 background: none; 4474 border: none; 4475 color: inherit; 4476 opacity: 0.5; 4477 cursor: pointer; 4478 font-size: 16px; 4479 line-height: 1; 4480 padding: 0; 4481 flex-shrink: 0; 4482 } 4483 .pp-step-dismiss:hover { 4484 opacity: 1; 4485 } 4486 4487 /* --- Warning banners --- */ 4488 .pp-warning { 4489 background: #fff3cd; 4490 border: 1px solid #ffc107; 4491 border-radius: 8px; 4492 padding: 10px 12px; 4493 margin-bottom: 12px; 4494 font-size: 12px; 4495 color: #856404; 4496 line-height: 1.4; 4497 } 4498 .pp-warning-icon { 4499 margin-right: 4px; 4500 } 4501 4502 /* --- Pick placement + copy actions --- */ 4503 .pp-pick-btn { 4504 width: 100%; 4505 padding: 12px; 4506 border: 2px solid #0070ba; 4507 border-radius: 8px; 4508 background: #0070ba; 4509 color: #fff; 4510 cursor: pointer; 4511 font-size: 13px; 4512 font-weight: 600; 4513 transition: all 0.15s; 4514 display: flex; 4515 align-items: center; 4516 justify-content: center; 4517 gap: 8px; 4518 } 4519 .pp-pick-btn:hover { 4520 opacity: 0.9; 4521 } 4522 .pp-pick-btn.active { 4523 background: #f0f7ff; 4524 color: #0070ba; 4525 border-color: #b8dff5; 4526 } 4527 .pp-pick-btn.active:hover { 4528 background: #e0efff; 4529 } 4530 4531 /* --- Copy button --- */ 4532 #pp-apply-btn { 4533 width: 100%; 4534 background: #28a745; 4535 color: #fff; 4536 border: none; 4537 padding: 12px; 4538 border-radius: 8px; 4539 font-weight: 600; 4540 cursor: pointer; 4541 font-size: 13px; 4542 transition: all 0.2s; 4543 display: none; 4544 align-items: center; 4545 justify-content: center; 4546 gap: 8px; 4547 margin-top: 12px; 4548 } 4549 #pp-apply-btn:hover { 4550 opacity: 0.9; 4551 } 4552 #pp-apply-btn.applied { 4553 background: #28a745; 4554 } 4555 4556 /* --- Step 2 confirmation --- */ 4557 #pp-step2 { 4558 display: none; 4559 margin-top: 18px; 4560 } 4561 </style> 4562 <div class='pp-panel-header'> 4563 <div class='pp-panel-title'>PayPal Pay Later Messaging</div> 4564 <button class='pp-minimize-btn' id='pp-collapse-btn' title='Minimize panel'>▾</button> 4565 </div> 4566 <div class='pp-panel-content'> 4567 <div id='pp-warning' class='pp-warning' style='display: none;'></div> 4568 <div id='pp-inspector-warning' class='pp-warning' style='display: none;'></div> 4569 <div class='pp-step-box blue' id='pp-step1'>
4570 <span class='pp-step-text' 4571 ><strong>Step 1: Choose message placement</strong> 4572 Click the button below and then hover over your page to select a placement. 4573 </span> 4574 </div> 4575 <button id='pp-pick-btn' class='pp-pick-btn'>◎ Start Picking Placement</button 4576 ><button id='pp-apply-btn'>Copy Current Placement</button> 4577 <div id='pp-step2' style='display:none;'> 4578 <div class='pp-step-box green'> 4579 <span class='pp-step-text' 4580 ><strong>Step 2: Paste and save</strong> 4581 <p style='margin: 0 0 8px 0;'> 4582 You have copied the placement for the <b id='pp-context-name'>Product Page</b>. 4583 </p> 4584 <p style='margin: 0;'> 4585 Go back to the App Embeds section, and in the Paypal Advanced Settings, paste the copied value into the 4586 <b id='pp-selector-name'>Product Page</b> field and click the 'Save' button in the top right corner. 4587 </p></span 4588 ><button class='pp-step-dismiss' id='pp-step2-dismiss' title='Dismiss'>×</button> 4589 </div> 4590 </div> 4591 </div> 4592</template> 4593<!-- END app snippet --><!-- BEGIN app snippet: navigator -->
4593<script> 4594 // ============================================ 4595 // DOM Traversal Controls for Theme Editor 4596 // Depends on: price-detection.liquid (isIsolatedContext) 4597 // ============================================ 4598 4599 const OVERLAY_STYLE = 4600 'position:fixed;pointer-events:none;background:rgba(255,152,0,0.12);border:2px solid rgba(255,152,0,0.6);z-index:999998;display:none;'; 4601 const OVERLAY_LABEL_STYLE = 4602 'position:absolute;bottom:100%;left:-2px;background:#f57c00;color:#fff;font:10px system-ui;padding:2px 6px;border-radius:3px 3px 0 0;white-space:nowrap;'; 4603 const COPY_BUTTON_LABEL = 'Copy Current Placement'; 4604 const COPIED_BUTTON_LABEL = 'Placement Copied!'; 4605 4606 const isInOverlay = (el) => { 4607 while (el && el !== document.body) { 4608 if (getComputedStyle(el).position === 'fixed') return true; 4609 el = el.parentElement; 4610 } 4611 return false; 4612 }; 4613 4614 // Position a fixed overlay to cover a target element 4615 const positionOverlayOnElement = (overlay, el) => { 4616 const rect = el.getBoundingClientRect(); 4617 Object.assign(overlay.style, { 4618 top: rect.top + 'px', 4619 left: rect.left + 'px', 4620 width: rect.width + 'px', 4621 height: rect.height + 'px', 4622 display: 'block', 4623 }); 4624 }; 4625 4626 // Module-level refs for global listeners added by createNavigationPanel. 4627 // Stored here so they can be removed if the panel is re-initialized. 4628 let _panelInspectorActivate = null; 4629 let _panelInspectorDeactivate = null; 4630 let _highlightedElement = null; 4631 let _panelPickModeCleanup = null; 4632 4633 // Detect UID pattern in ID (Shopify's --suffix or long numeric/hex suffixes) 4634 const hasUid = (id) => { 4635 if (!id) return false; 4636 if (/--/.test(id)) return true; 4637 return /[-_](\d{5,}|[a-f0-9]{8,})$/i.test(id); 4638 }; 4639 const getIdPrefix = (id) => { 4640 if (id.includes('--')) return id.split('--')[0]; 4641 const match = id.match(/^(.+?)[-_](\d{5,}|[a-f0-9]{8,})$/i); 4642 return match ? match[1] : null; 4643 }; 4644 const getMeaningfulClasses = (el) => { 4645 if (!el.className || typeof el.className !== 'string') return []; 4646 return el.className.trim().split(/\s+/).filter(c => 4647 c && !c.startsWith('_') && !c.startsWith('js-') && 4648 c.length < 30 && !/^[a-f0-9]{6,}$/i.test(c) && !/^[A-Z]/.test(c) 4649 ); 4650 }; 4651 const isUnique = (selector) => document.querySelectorAll(selector).length === 1; 4652 4653 // Returns null if no unique selector can be generated 4654 const generateSelector = (element) => { 4655 if (!element || element === document.body || element === document.documentElement) { 4656 return null; 4657 } 4658 const classes = getMeaningfulClasses(element); 4659 4660 // Priority 1: Clean ID 4661 if (element.id && !hasUid(element.id)) return `#${element.id}`; 4662 4663 // Priority 2: ID with UID â attribute wildcard selector 4664 if (element.id && hasUid(element.id)) { 4665 const prefix = getIdPrefix(element.id); 4666 if (prefix) { 4667 const selector = `[id^="${prefix}-"]`; 4668 if (isUnique(selector)) return selector; 4669 } 4670 } 4671 4672 // Priority 3: Unique class 4673 for (const cls of classes) { 4674 if (isUnique('.' + cls)) return '.' + cls; 4675 } 4676 4677 // Priority 4: Ancestor + target class combinations (walk up to 5 levels) 4678 if (classes.length > 0) { 4679 let ancestor = element.parentElement; 4680 let depth = 0; 4681 while (ancestor && ancestor !== document.body && ancestor !== document.documentElement && depth < 5) { 4682 const ancClasses = getMeaningfulClasses(ancestor); 4683 if (ancClasses.length > 0) { 4684 const s1 = `.${ancClasses[0]} .${classes[0]}`; 4685 if (isUnique(s1)) return s1; 4686 const s2 = `.${ancClasses[0]} > .${classes[0]}`; 4687 if (isUnique(s2)) return s2; 4688 } 4689 if (ancestor.id && !hasUid(ancestor.id)) { 4690 const s3 = `#${ancestor.id} .${classes[0]}`; 4691 if (isUnique(s3)) return s3; 4692 } 4693 ancestor = ancestor.parentElement; 4694 depth++; 4695 } 4696 } 4697 4698 // NO FALLBACK - return null if no unique selector exists 4699 return null; 4700 }; 4701 const hasSpecificSelector = (el) => generateSelector(el) !== null; 4702 const shouldSkipElement = (el) => { 4703 if (!el || el.hidden) return true; 4704 if (['SCRIPT', 'STYLE', 'TEMPLATE'].includes(el.tagName)) return true; 4705 if ( 4706 el.closest('#pp-nav-panel') || 4707 el.closest('#pp-nav-pill') || 4708 el.closest('#pp-pick-overlay') 4709 ) 4710 return true; 4711 if (el.hasAttribute('data-pp-message')) return true; 4712 if (!hasSpecificSelector(el)) return true; 4713 return false;
4714 }; 4715 const resolveContextName = (providedContextName, messagingTemplate) => { 4716 if (providedContextName && providedContextName !== 'this area') return providedContextName; 4717 const id = messagingTemplate?.id || ''; 4718 if (id.includes('cart-drawer')) return 'Cart Drawer'; 4719 if (id.includes('cart')) return 'Cart Page'; 4720 if (id.includes('product')) return 'Product Page'; 4721 return 'this area'; 4722 }; 4723 4724 // Called when the cart drawer closes (via IntersectionObserver in cartDrawer.liquid) 4725 // and at the start of createNavigationPanel to tear down any existing instance. 4726 // Cleans up pick mode listeners, DOM elements, highlights, and preview clones. 4727 const destroyNavigationPanel = () => { 4728 if (_panelPickModeCleanup) { 4729 _panelPickModeCleanup(); 4730 _panelPickModeCleanup = null; 4731 } 4732 document.getElementById('pp-nav-panel')?.remove(); 4733 document.getElementById('pp-nav-pill')?.remove(); 4734 const preview = document.querySelector('[id$="-preview"][data-pp-message]'); 4735 if (preview) preview.remove(); 4736 if (_highlightedElement) { 4737 _highlightedElement.style.outline = ''; 4738 _highlightedElement.style.outlineOffset = ''; 4739 _highlightedElement = null; 4740 } 4741 if (_panelInspectorActivate) { 4742 document.removeEventListener('shopify:inspector:activate', _panelInspectorActivate); 4743 document.removeEventListener('shopify:inspector:deactivate', _panelInspectorDeactivate); 4744 _panelInspectorActivate = _panelInspectorDeactivate = null; 4745 } 4746 document.documentElement.style.cursor = ''; 4747 }; 4748 4749 const createNavigationPanel = ( 4750 initialElement, 4751 messagingTemplate, 4752 warningMessage = null, 4753 contextName = 'this area', 4754 ) => {
4755 let currentTarget = initialElement; 4756 let resolvedContextName = resolveContextName(contextName, messagingTemplate); 4757 destroyNavigationPanel(); 4758 4759 const panel = document.createElement('div'); 4760 panel.id = 'pp-nav-panel'; 4761 const tmpl = document.getElementById('pp-nav-template'); 4762 panel.appendChild(tmpl.content.cloneNode(true)); 4763 4764 // Create minimized pill button (separate from panel) 4765 const pill = document.createElement('button'); 4766 pill.id = 'pp-nav-pill'; 4767 pill.innerHTML = 'PayPal Pay Later Messaging'; 4768 const applyBtn = panel.querySelector('#pp-apply-btn'); 4769 const warningEl = panel.querySelector('#pp-warning'); 4770 const step2 = panel.querySelector('#pp-step2'); 4771 const step2Dismiss = panel.querySelector('#pp-step2-dismiss'); 4772 const contextEl = panel.querySelector('#pp-context-name'); 4773 const selectorEl = panel.querySelector('#pp-selector-name'); 4774 const updateContextUI = (newContext) => { 4775 resolvedContextName = newContext; 4776 if (contextEl) contextEl.textContent = resolvedContextName; 4777 if (selectorEl) { 4778 selectorEl.textContent = resolvedContextName; 4779 } 4780 }; 4781 updateContextUI(resolvedContextName); 4782 const detectContextFromElement = (el) => { 4783 if (el.closest('#CartDrawer, .drawer, .cart-drawer, [id*="cart-drawer"], [class*="cart-drawer"]')) 4784 return 'Cart Drawer'; 4785 if (window.location.pathname.endsWith('/cart') || el.closest('.cart, #cart, #main-cart-items, #main-cart-footer')) 4786 return 'Cart Page'; 4787 return 'Product Page'; 4788 }; 4789 4790 // Show warning message if provided 4791 if (warningMessage && warningEl) { 4792 warningEl.innerHTML = `<span class="pp-warning-icon">â ï¸</span>${warningMessage}`; 4793 warningEl.style.display = 'block'; 4794 } 4795 let isInitialRender = true; 4796 const updateUI = () => { 4797 // Highlight element 4798 highlightElement(currentTarget); 4799 // Update button states 4800 applyBtn.textContent = COPY_BUTTON_LABEL; 4801 applyBtn.classList.remove('applied'); 4802 // Reposition messaging â skip on initial render (already placed correctly by auto-detection) 4803 if (!isInitialRender) repositionMessaging(); 4804 isInitialRender = false;
4805 }; 4806 4807 const highlightElement = (el) => { 4808 if (_highlightedElement) { 4809 _highlightedElement.style.outline = ''; 4810 _highlightedElement.style.outlineOffset = ''; 4811 } 4812 _highlightedElement = el; 4813 if (el) { 4814 el.style.outline = '2px solid rgba(255,152,0,0.6)'; 4815 el.style.outlineOffset = '-1px'; 4816 } 4817 }; 4818 4819 const repositionMessaging = () => { 4820 if (!currentTarget) return; 4821 const existing = document.getElementById(messagingTemplate.id); 4822 const targetInOverlay = isInOverlay(currentTarget); 4823 const msgInOverlay = existing && isInOverlay(existing); 4824 if (targetInOverlay !== msgInOverlay) { 4825 // Cross-context: reposition messaging in the target's context without touching the original 4826 const allMessaging = document.querySelectorAll('[data-pp-message]'); 4827 let contextMsg = null; 4828 for (const el of allMessaging) { 4829 if (isInOverlay(el) === targetInOverlay) { contextMsg = el; break; } 4830 } 4831 if (!contextMsg) { 4832 contextMsg = messagingTemplate.cloneNode(true); 4833 contextMsg.id = messagingTemplate.id + '-preview'; 4834 } 4835 contextMsg.remove(); 4836 currentTarget.after(contextMsg); 4837 return; 4838 } 4839 if (existing) existing.remove(); 4840 const newMessaging = messagingTemplate.cloneNode(true); 4841 currentTarget.after(newMessaging); 4842 }; 4843 4844 const collapseBtn = panel.querySelector('#pp-collapse-btn'); 4845 const pickBtn = panel.querySelector('#pp-pick-btn'); 4846 let pickMode = false; 4847 let pickHoverTarget = null; 4848 let pickOverlay = null; 4849 let pickLabel = null; 4850 let applyBtnResetTimer = null; 4851 let _pickRafId = null; 4852 4853 const enterPickMode = () => { 4854 pickMode = true; 4855 document.documentElement.style.cursor = 'crosshair'; 4856 pickBtn.classList.add('active'); 4857 pickBtn.innerHTML = 'â Pick a spot on the page...'; 4858 applyBtn.textContent = COPY_BUTTON_LABEL; 4859 applyBtn.classList.remove('applied'); 4860 applyBtn.style.display = 'flex'; 4861 step2.style.display = 'none'; 4862 if (contextEl) contextEl.textContent = resolvedContextName; 4863 // Create overlay for highlighting (pointer-events:none prevents interference) 4864 pickOverlay = document.createElement('div'); 4865 pickOverlay.id = 'pp-pick-overlay'; 4866 pickOverlay.style.cssText = OVERLAY_STYLE; 4867 pickLabel = document.createElement('div'); 4868 pickLabel.style.cssText = OVERLAY_LABEL_STYLE; 4869 pickOverlay.appendChild(pickLabel); 4870 document.body.appendChild(pickOverlay); 4871 4872 document.addEventListener('mousemove', onPickHover, true); 4873 document.addEventListener('click', onPickClick, true); 4874 document.addEventListener('mousedown', onPickSuppressEvent, true); 4875 document.addEventListener('pointerdown', onPickSuppressEvent, true); 4876 }; 4877 4878 const exitPickMode = () => { 4879 pickMode = false; 4880 document.documentElement.style.cursor = ''; 4881 pickBtn.classList.remove('active'); 4882 pickBtn.innerHTML = 'â Start Picking Placement'; 4883 applyBtn.style.display = 'none'; 4884 // Remove overlay 4885 const overlay = document.getElementById('pp-pick-overlay'); 4886 if (overlay) overlay.remove(); 4887 pickOverlay = null; 4888 pickLabel = null; 4889 pickHoverTarget = null; 4890 4891 if (_pickRafId) { cancelAnimationFrame(_pickRafId); _pickRafId = null; } 4892 document.removeEventListener('mousemove', onPickHover, true); 4893 document.removeEventListener('click', onPickClick, true); 4894 document.removeEventListener('mousedown', onPickSuppressEvent, true); 4895 document.removeEventListener('pointerdown', onPickSuppressEvent, true); 4896 }; 4897 4898 // Find the nearest visible child element to cursor coordinates 4899 const snapToNearestChild = (parent, cx, cy) => { 4900 const children = parent.children; 4901 if (!children.length) return null; 4902 let best = null; 4903 let bestDist = 30; 4904 for (const child of children) { 4905 if (shouldSkipElement(child)) continue; 4906 const r = child.getBoundingClientRect(); 4907 if (r.width === 0 || r.height === 0) continue; 4908 const dx = cx < r.left ? r.left - cx : cx > r.right ? cx - r.right : 0; 4909 const dy = cy < r.top ? r.top - cy : cy > r.bottom ? cy - r.bottom : 0; 4910 const dist = Math.sqrt(dx * dx + dy * dy); 4911 if (dist < bestDist) { 4912 bestDist = dist; 4913 best = child; 4914 } 4915 } 4916 return best; 4917 }; 4918 4919 const onPickHover = (e) => { 4920 if (_pickRafId) return; 4921 _pickRafId = requestAnimationFrame(() => { 4922 _pickRafId = null; 4923 let el = document.elementFromPoint(e.clientX, e.clientY); 4924 if (!el || shouldSkipElement(el)) { 4925 document.documentElement.style.cursor = 'not-allowed'; 4926 if (pickOverlay) pickOverlay.style.display = 'none'; 4927 pickHoverTarget = null; 4928 return; 4929 } 4930 4931 if (el.children.length > 0) { 4932 const snapped = snapToNearestChild(el, e.clientX, e.clientY); 4933 if (snapped) el = snapped; 4934 } 4935 4936 // Skip elements without a unique selector 4937 if (shouldSkipElement(el)) { 4938 document.documentElement.style.cursor = 'not-allowed'; 4939 pickHoverTarget = null; 4940 if (pickOverlay) pickOverlay.style.display = 'none'; 4941 return; 4942 } 4943 document.documentElement.style.cursor = 'crosshair'; 4944 if (el === pickHoverTarget) return; 4945 pickHoverTarget = el; 4946 positionOverlayOnElement(pickOverlay, el);
4947 pickLabel.innerHTML = 'Select this placement'; 4948 }); 4949 }; 4950 4951 const onPickSuppressEvent = (e) => { 4952 if (e.target.closest('#pp-nav-panel')) return; 4953 e.preventDefault(); 4954 e.stopPropagation(); 4955 }; 4956 4957 const onPickClick = (e) => { 4958 if (e.target.closest('#pp-nav-panel')) return; 4959 e.preventDefault(); 4960 e.stopPropagation(); 4961 e.stopImmediatePropagation(); 4962 if (pickHoverTarget && !shouldSkipElement(pickHoverTarget)) { 4963 currentTarget = pickHoverTarget; 4964 updateContextUI(detectContextFromElement(currentTarget)); 4965 updateUI(); 4966 } 4967 }; 4968 4969 // --- Pick button --- 4970 pickBtn.addEventListener('click', () => { 4971 if (pickMode) exitPickMode(); 4972 else enterPickMode(); 4973 }); 4974 4975 _panelPickModeCleanup = () => { if (pickMode) exitPickMode(); }; 4976 4977 // --- Minimize / expand --- 4978 collapseBtn.addEventListener('click', () => { 4979 if (pickMode) exitPickMode(); 4980 panel.classList.add('minimized'); 4981 pill.style.display = 'flex'; 4982 highlightElement(null); 4983 }); 4984 pill.addEventListener('click', () => { 4985 panel.classList.remove('minimized'); 4986 pill.style.display = 'none'; 4987 highlightElement(currentTarget); 4988 }); 4989 4990 // --- Step 2 dismiss --- 4991 step2Dismiss.addEventListener('click', () => { 4992 step2.style.display = 'none'; 4993 }); 4994 4995 // Handle copy button click 4996 panel.addEventListener('click', async (e) => { 4997 const button = e.target.closest('#pp-apply-btn'); 4998 if (!button) return; 4999 // Skip buttons handled separately 5000 if (button.id === 'pp-collapse-btn' || button.id === 'pp-pick-btn' || button.id === 'pp-step2-dismiss') return; 5001 if (button.id === 'pp-apply-btn') { 5002 const selector = generateSelector(currentTarget); 5003 if (!selector) return; 5004 let copied = false; 5005 try { 5006 // Try multiple copy methods (iframe security blocks clipboard API) 5007 if (navigator.clipboard?.writeText) { 5008 await navigator.clipboard.writeText(selector); 5009 copied = true; 5010 } 5011 } catch {} 5012 if (!copied) { 5013 try { 5014 const ta = document.createElement('textarea'); 5015 ta.value = selector; 5016 ta.style.position = 'fixed'; 5017 ta.style.opacity = '0'; 5018 document.body.appendChild(ta); 5019 ta.select(); 5020 copied = document.execCommand('copy'); 5021 ta.remove(); 5022 } catch {} 5023 } 5024 if (copied) { 5025 applyBtn.textContent = COPIED_BUTTON_LABEL; 5026 applyBtn.classList.add('applied'); 5027 if (applyBtnResetTimer) clearTimeout(applyBtnResetTimer); 5028 applyBtnResetTimer = setTimeout(() => { 5029 applyBtn.textContent = COPY_BUTTON_LABEL; 5030 applyBtn.classList.remove('applied'); 5031 applyBtnResetTimer = null; 5032 }, 1200); 5033 // Show Step 2 confirmation 5034 step2.style.display = 'block'; 5035 } 5036 exitPickMode(); 5037 } 5038 }); 5039 5040 // --- Inspector mode detection --- 5041 const inspectorWarning = panel.querySelector('#pp-inspector-warning'); 5042 let inspectorActive = typeof Shopify !== 'undefined' && Shopify.inspectMode; 5043 const isMac = navigator.platform?.startsWith('Mac') || navigator.userAgentData?.platform === 'macOS'; 5044 const shortcut = isMac ? 'â â§ I' : 'Ctrl + Shift + I'; 5045 const enableInspectorMode = () => { 5046 inspectorActive = true; 5047 inspectorWarning.innerHTML = `<span class="pp-warning-icon">â ï¸</span> For a better experience, press <strong>${shortcut}</strong> to turn off inspector mode`; 5048 inspectorWarning.style.display = 'block'; 5049 }; 5050 const disableInspectorMode = () => { 5051 inspectorActive = false; 5052 inspectorWarning.style.display = 'none'; 5053 }; 5054 _panelInspectorActivate = enableInspectorMode; 5055 _panelInspectorDeactivate = disableInspectorMode; 5056 document.addEventListener('shopify:inspector:activate', enableInspectorMode); 5057 document.addEventListener('shopify:inspector:deactivate', disableInspectorMode); 5058 5059 // Prevent panel/pill clicks from closing cart drawer (themes close drawer on outside mousedown) 5060 const stopBubble = (e) => e.stopPropagation(); 5061 panel.addEventListener('mousedown', stopBubble); 5062 panel.addEventListener('pointerdown', stopBubble); 5063 pill.addEventListener('mousedown', stopBubble); 5064 pill.addEventListener('pointerdown', stopBubble); 5065 5066 document.body.appendChild(panel); 5067 document.body.appendChild(pill); 5068 if (inspectorActive) enableInspectorMode(); 5069 updateUI(); 5070 return panel; 5071 }; 5072</script>
5072 5073<!-- END app snippet --><!-- BEGIN app snippet: cartDrawer -->
5073<script> 5074 // Determine correct locator by theme name 5075 const cartDrawerThemeName = window.Shopify.theme.name; 5076 let cartDrawerLocator, cartDrawerNodeToObserve, cartDrawerMutationNode; 5077 5078 switch (cartDrawerThemeName) { 5079 // to support other themes add cases 5080 // default case supports Shopify Free themes 5081 default: 5082 cartDrawerLocator = '.cart-drawer__footer .totals'; 5083 cartDrawerNodeToObserve = '#CartDrawer'; 5084 cartDrawerMutationNode = 'drawer__inner'; 5085 break; 5086 } 5087 // Begin Upstream Messaging Implementation 5088 try { 5089 const cartDrawerMessaging = document.createElement('div'); 5090 const price = 0 / 100; 5091 5092 const cartDrawerAttributes = { 5093 'id': 'paypal-upstream-messaging-cart-drawer', 5094 'data-pp-message': '', 5095 'data-pp-placement': 'cart', 5096 'data-pp-style-layout': 'text', 5097 'data-pp-style-text-align': 'right', 5098 'data-pp-style-logo-type': "inline", 5099 'data-pp-style-text-color': "black", 5100 'data-pp-style-text-size': "12", 5101 'data-pp-style-logo-position': "", 5102 'data-pp-amount': price, 5103 }; 5104 5105 Object.keys(cartDrawerAttributes).forEach((key) => { 5106 cartDrawerMessaging.setAttribute(key, cartDrawerAttributes[key]); 5107 }); 5108 5109 const advancedSettingsEnabled = 'true' === 'true'; 5110 const customCartDrawerSelector = ''.trim(); 5111 5112 if (advancedSettingsEnabled && customCartDrawerSelector !== '') { 5113 // utils.liquid 5114 cartDrawerLocator = parseSelector(customCartDrawerSelector); 5115 } 5116 5117 if ("enabled" === 'enabled') { 5118 waitForElement(cartDrawerLocator).then(elem => { 5119 elem.after(cartDrawerMessaging.cloneNode()); 5120 5121 if (advancedSettingsEnabled && isIsolatedContext() && !document.getElementById('pp-nav-panel')) { 5122 let drawerPanelActive = false; 5123 new IntersectionObserver((entries) => { 5124 if (entries[0].isIntersecting) { 5125 if (!document.getElementById('pp-nav-panel')) { 5126 setTimeout(() => { 5127 if (!document.getElementById('pp-nav-panel')) { 5128 createNavigationPanel(elem, cartDrawerMessaging, null, 'Cart Drawer'); 5129 drawerPanelActive = true; 5130 } 5131 }, 300); 5132 } 5133 } else if (drawerPanelActive) { 5134 destroyNavigationPanel(); 5135 drawerPanelActive = false; 5136 } 5137 }, { threshold: 0.1 }).observe(elem); 5138 } 5139 }); 5140 5141 // Custom selector not found â show navigator with warning when drawer opens 5142 if (advancedSettingsEnabled && customCartDrawerSelector && !document.querySelector(cartDrawerLocator) && isIsolatedContext() && !document.getElementById('pp-nav-panel')) { 5143 const drawerContainer = document.querySelector(cartDrawerNodeToObserve); 5144 if (drawerContainer) { 5145 let warningPanelActive = false; 5146 const warning = 'Selected placement not found on this page. Please choose an element that is present on all page templates.'; 5147 recordEvent('appEmbed:advanced-settings-selector-not-found', { locator: cartDrawerLocator }); 5148 new IntersectionObserver((entries) => { 5149 if (entries[0].isIntersecting) { 5150 if (!document.getElementById('pp-nav-panel')) { 5151 setTimeout(() => { 5152 if (!document.getElementById('pp-nav-panel')) { 5153 createNavigationPanel(drawerContainer, cartDrawerMessaging, warning, 'Cart Drawer'); 5154 warningPanelActive = true; 5155 } 5156 }, 300); 5157 } 5158 } else if (warningPanelActive) { 5159 destroyNavigationPanel(); 5160 warningPanelActive = false; 5161 } 5162 }, { threshold: 0.1 }).observe(drawerContainer); 5163 } 5164 } 5165 5166 // utils.liquid 5167 watchForCartChanges(cartDrawerLocator, cartDrawerMessaging); 5168 } 5169 } catch (e) { 5170 // utils.liquid 5171 recordEvent('appEmbed:query-selector-not-found-cart-drawer', { locator: cartDrawerLocator, error: e.message }); 5172 } 5173 </script>
5173 5174<!-- END app snippet --> 5175 5176 5177</div><div id="shopify-block-AQjljYnY3a0w4YmdFR__4544727506294933986" class="shopify-block shopify-app-block"><input type="hidden" id="page" value="blog"/>
5178<script> 5179 const base_url = "https://open-close-hours.addifyplugins.com/api/"; 5180</script>
5180 5181 5182 5183</div>
5183<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
5183 5184<shopify-store store-domain="https://horizonmicromobility.com" country="GB" language="en"></shopify-store> 5185<shopify-chat></shopify-chat> 5186</body> 5187</html> 5188
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.