Header Image
Burkina Faso (XOFFr) Log inNorway (GBP£)

Cameroon (XAFCFA) Portugal (EUR€) Portugal (EUR€)
Search
Cape Verde (CVE$) Réunion (EUR€) Réunion (EUR€)
Central African Republic (XAFCFA) CountryRomania (RONLei) Romania (RONLei)
GBP£ Chad (XAFCFA) Rwanda (RWFFRw) Rwanda (RWFFRw)
Åland Islands (EUR€) Comoros (KMFFr) San Marino (EUR€) San Marino (EUR€) Congo - Brazzaville (XAFCFA) Tools & Maintenance São Tomé & Príncipe (STDDb) São Tomé & Príncipe (STDDb) Algeria (DZDد.ج) Clothing and Protection Andorra (EUR€) Côte d’Ivoire (XOFFr) See More Serbia (RSDРСД) Serbia (RSDРСД) Croatia (EUR€) ProjektRide Merchandise Seychelles (GBP£) Seychelles (GBP£)
HelmetsArmenia (AMDդր.)
Gloves
Ascension Island (SHP£) Czechia (CZKKč) Slovakia (EUR€) Slovakia (EUR€) Clothing Denmark (DKKkr.) Socks Slovenia (EUR€) Slovenia (EUR€) Georgia (GBP£) Congo - Brazzaville (XAFCFA) Germany (EUR€) Congo - Kinshasa (CDFFr) Ghana (GBP£) Åland Islands (EUR€)
Côte d’Ivoire (XOFFr) Gibraltar (GBP£)
Albania (ALLL)
Croatia (EUR€)
Greece (EUR€)
Algeria (DZDد.ج)
Cyprus (EUR€) Guernsey (GBP£)
Armenia (AMDդր.)
Djibouti (DJFFdj) Egypt (EGPج.م) Austria (EUR€)
Equatorial Guinea (XAFCFA)
Hungary (HUFFt) Belarus (GBP£)
Eritrea (GBP£)
Iceland (ISKkr)
Belgium (EUR€) Estonia (EUR€)
Ireland (EUR€)
Benin (XOFFr)
Eswatini (GBP£)
Isle of Man (GBP£)
Bosnia & Herzegovina (BAMКМ)

Ethiopia (ETBBr)

Italy (EUR€)
Botswana (BWPP)

Faroe Islands (DKKkr.)

Jersey (GBP£)

British Indian Ocean Territory (USD$)

Finland (EUR€)

Kenya (KESKSh)

Bulgaria (EUR€)

France (EUR€)

Kosovo (EUR€)

Burkina Faso (XOFFr)

French Southern Territories (EUR€)

Latvia (EUR€)

Burundi (BIFFr)

Gabon (XOFFr)

Lesotho (GBP£)

Cameroon (XAFCFA)

Gambia (GMDD)


Liberia (GBP£) Cape Verde (CVE$)
Georgia (GBP£) Central African Republic (XAFCFA) Germany (EUR€) Liechtenstein (CHFCHF)
Chad (XAFCFA)
Ghana (GBP£)
Lithuania (EUR€) Gibraltar (GBP£) Luxembourg (EUR€) Congo - Brazzaville (XAFCFA)
Greece (EUR€)
Madagascar (GBP£)
Congo - Kinshasa (CDFFr) Greenland (DKKkr.) Malawi (MWKMK) Côte d’Ivoire (XOFFr)
Guadeloupe (EUR€)
Mali (XOFFr)
Croatia (EUR€)
Malta (EUR€) Cyprus (EUR€) Guinea (GNFFr)
Czechia (CZKKč)
Guinea-Bissau (XOFFr) Denmark (DKKkr.) Hungary (HUFFt)
Djibouti (DJFFdj)
Iceland (ISKkr)
Ireland (EUR€) Equatorial Guinea (XAFCFA)
Isle of Man (GBP£)
Eritrea (GBP£) Italy (EUR€) Estonia (EUR€)
Jersey (GBP£)
Eswatini (GBP£)
Ethiopia (ETBBr) Kosovo (EUR€)
Faroe Islands (DKKkr.)
Latvia (EUR€) Finland (EUR€) Lesotho (GBP£)
France (EUR€)
Liberia (GBP£)
Libya (GBP£) Gabon (XOFFr)
Liechtenstein (CHFCHF)
Lithuania (EUR€)
Luxembourg (EUR€)
Malawi (MWKMK)
Mali (XOFFr) Malta (EUR€)
Mauritania (GBP£)
Mauritius (MUR₨)
Mayotte (EUR€)
Moldova (MDLL)
Monaco (EUR€)
Morocco (MADد.م.)
Mozambique (GBP£) Namibia (GBP£)
Netherlands (EUR€)
Niger (XOFFr)
Nigeria (NGN₦)
North Macedonia (MKDден)
Norway (GBP£)
Portugal (EUR€)
Réunion (EUR€) Romania (RONLei)
Rwanda (RWFFRw)
San Marino (EUR€)
São Tomé & Príncipe (STDDb)
Senegal (XOFFr)
Serbia (RSDРСД)
Sierra Leone (SLLLe)
Slovakia (EUR€) Slovenia (EUR€)
Somalia (GBP£)
South Africa (GBP£)
South Sudan (GBP£)
Spain (EUR€)
St. Helena (SHP£)
Sudan (GBP£)
Svalbard & Jan Mayen (GBP£) Apple Pay
Tanzania (TZSSh) Maestro £38.00
MastercardNorway (GBP£)

Togo (XOFFr) ESI RCT Wrap - color variant: Black
PayPal Poland (PLNzł)
  • Satispay ESI RCT Wrap - color variant: Orange Shop Pay
    Portugal (EUR€)

    Tunisia (GBP£) Union Pay edAt = window._RestockRocketConfig.liquidRenderedAt; if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; window._RestockRocketConfig.liquidCacheAge = null; } else { const now = Math.floor(Date.now() / 1000); const liquidCacheAge = now - liquidRenderedAt; window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge); if (liquidCacheAge VisaRéunion (EUR€) 0) { console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else if (liquidCacheAge

    = LIQUID_CACHE_MAX_AGE) { console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); window._RestockRocketConfig.isLiquidCacheFresh = false; } } function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } if (settings.multi_language_enabled) { if (!settings.translations) { console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } if (window._RestockRocketConfig.normalizedLocale &Türkiye (GBP£)

    <
    .body.appendChild(plainScriptElement); }; restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') try { const _stoqInitConfig = window._RestockRocketConfig; const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)) ? _stoqInitConfig.product.variants.map(function(v) { return v.id }) : []; const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id; var _stoqPageSeq = 0; try { _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1; window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq)); } catch (e) { } Shopify?.analytics?.publish?.('stoq_initialized', { cart_token: _stoqInitConfig.cartToken || '', page_url: window.location.origin + window.location.pathname, page_type: _stoqInitConfig.pageType || '', Romania (RONLei)
  • .closest('.shopify-payment-button, shopify-payment-terms'); if (!host) return; var channel = host.matches && host.matches('shopify-payment-terms') ? 'shop_pay_installments' : 'buy_now'; var form = host.closest('form'); var vidEl = form && form.querySelector('[name="id"]'); var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || ''; var _sqVidNum = Number(variantId); var _sqPlan = null; var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : []; var _sqMktId = Number(_sqTrack.marketId); var _sqOffersOn = !!(_sqTrack.readFlags && _sqTrack.readFlags.enable_storefront_plan_offers === true); var _sqAlloc = _sqOffersOn ? ((_sqTrack.offerAllocations && _sqTrack.offerAllocations[_sqVidNum]) || (_sqTrack.variantSellingPlanIds && _sqTrack.variantSellingPlanIds[_sqVidNum])) : null; var _sqPlanIds = function (pl) <
    lassList.contains('stoq-buy-now-pending')), blocked: (function () { try { var rr = window._RestockRocket; return !!(rr && typeof rr.willBlockAcceleratedClick === 'function' && rr.willBlockAcceleratedClick(e)); } catch (err) { return false; } })(), }, }); } catch (err) { } }, true); } } catch (e) { } function applyTranslations(settings) { try { if (!settings || !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); Rwanda (RWFFRw)

    'STOQ - Inventory data loaded, updating cart selling plans'); if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } }); } function storefrontGraphql(query, variables) { const cfg = window._RestockRocketConfig; let token = cfg.storefrontAccessToken || null; if (!token && typeof cfg.sk === 'string' && cfg.sk !== '') { try { token = atob(cfg.sk).split('').reverse().join('') || null; } catch (e) { token = null; } } if (!token || cfg.disableStorefrontApi === true) { return Promise.reject(new Error('Storefro

    urn storefrontGraphql(query, { namespace: cfg.metafieldNamespace, key: key }) .then(function(data) { const value = data && data.shop && data.shop.metafield && data.shop.metafield.value; if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); } return JSON.parse(value); }); } function fetchStorefrontSettings() { const query = 'query StoqSettings($namespace: String!) { shop { settings: metafield(namespace: $namespace, key: "settings") { value } translations: metafield(namespace: $namespace, key: "settings_translations") { value } } }'; return storefrontGraphql(query, { namespace: window._RestockRocketConfig.metafieldNamespace }) .then(function(data) { const settings = JSON.parse(data.shop.settings.value); if (!settings.updated_at) { throw new Error('settings metafield is not a settings payload'); } if (settings.single_locale_translations_inline) { settings.translations = data.shop.translations && JSON.parse(dataUkraine (UAH₴)

    const storefrontRead = window._RestockRocketConfig.readFlags?.enable_storefront_settings_read === true ? Promise.race([ fetchStorefrontSettings(), new Promise(function(_, reject) { setTimeout(function() { reject(new Error('timed out')); }, 1500); }) ]).catch(function(error) { console.debug('STOQ - Storefront settings read failed, using setting.json:', error.message); }) : Promise.resolve(); storefrontRead .then(function(settings) { return settings || fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { if (cachedSettings) { console.de

    r.message); }); } function refreshShopConfig(source) { const cfg = window._RestockRocketConfig; const viaEmbed = function() { return fetchEmbedConfig(source.endpoint, source.apply); }; const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true; if (!flagOn) { return viaEmbed(); } return fetchStorefrontShopMetafield(source.metafieldKey) .then(function(value) { if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); } source.apply(value); console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API'); }) .catch(function(error) { console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message); return viaEmbed(); }); } function refreshIntegrations() { const cfg = window._RestockRocketConfig; return refreshShopConfig({ endpoint: 'integrations', metafieldKey: 'in San Marino (EUR€)

    ngs configured for ${window._RestockRocketConfig.pageType}`); const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid; if (staleRefresh) { console.debug('STOQ - refreshing selling_plans + integrations (Liquid cache stale)'); Promise.race([ Promise.all([refreshSellingPlans(), refreshIntegrations()]), new Promise(function(resolve) { setTimeout(resolve, 1000); }) ]).then(function() { loadScripts(settings); }); return; } loadScripts(settings); } function loadScripts(settings) { setupCartSellingPlanUpdater(settings); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans) && w

    ionScriptUrl = preorderUiOnPage ? window._RestockRocketConfig.scriptUrlCollectionFull : window._RestockRocketConfig.scriptUrlCollection; const collectionScriptUrl = usePreorderBuild ? preorderCollectionScriptUrl : window._RestockRocketConfig.scriptUrlCollectionBis; const productScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlProduct : window._RestockRocketConfig.scriptUrlProductBis; const collectionPageTypes = ['collection', 'index', 'search', 'page']; if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) { createRestockRocketScript(collectionScriptUrl); } else if(pageType === 'product') { createRestockRocketScript(productScriptUrl); } else if(hijackIntegration) { createRestockRocketScript(preorderCollectionScriptUrl); } else if(usePreorderBuild) { createRestockRocketScript(preorderCollUnited Kingdom (GBP£)
    || !(wishlistImageHeart || document.querySelector(wishlistHeartTarget))) return; wishlistHeartsRequested = true; createRestockRocketScript(window._RestockRocketConfig.scriptHost + 'restockrocket-wishlist-hearts.js'); }; loadWishlistHearts(); document.addEventListener('shopify:section:load', loadWishlistHearts); } if (document.querySelector('[data-stoq-wishlist-page]')) { createRestockRocketScript(window._RestockRocketConfig.scriptHost + 'restockrocket-wishlist-page.js'); } try { if (localStorage.getItem('stoq_wl_host') !== window._RestockRocketConfig.scriptHost) localStorage.setItem('stoq_wl_host', window._RestockRocketConfig.scriptHost); } catch (e) {} try { const guestWishlist = window._RestockRocketConfig.customer && !localStorage.getItem('stoq_wl_c') && JSON.parse(localStorage.getItem('stoq_wl')); if (Array.isArray(guestWishlist) && guestWishlist.length) {
São Tomé & Príncipe (STDDb)
United States (GBP£)