Mastercard
Home
Hire
Essentials
Rwanda (RWFFRw)
PayPal
Clothing and Protection
ProjektRide MerchandiseHelmetsGlovesClothing
Building Your Bike From the Box&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age Socks
Insure Your Bikeck.product.id) || '',
channel: channel,
market_id: _sqTrack.marketId || '',
country_code: _sqTrack.countryIsoCode || '',
page_type: _sqTrack.pageType || '',
cart_token: _sqTrack.cartToken || '',
page_url: (window.location && window.location.href) || '',
properties: {
is_preorder_variant: (function () {
var vid = Number(variantId);
var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; };
return has(_sqTrack.preorderVariantIds) ||
has(_sqTrack.cachedPreorderVariantIds &&
_sqTrack.cachedPreorderVariantIds.preorder_variant_ids);
})(),
in_enabled_plan: !!_sqPlan,
is_instock_variant: (function () {
var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; };
return has(_sqTrack.inStockVariantIds) ||
h
t ok');
}
return response.json();
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
}
})
.catch(function(e) {
console.error(e)
})
}
function fetchEmbedConfig(endpoint, apply) {
return fetch(
`${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`,
{
headers: {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
}
}
)
.then(function(response) {
if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`);
return response.json();
})
.then(function(data) {
try {
apply(data);
} catch (applyError) {
c
- Chad (XAFCFA)
- Suggested search terms About Us
- Contact Us
- Blog Track Service Progress
- Building Your Bike From the Box Insure Your Bike
- Privacy Policy
- Cookie Policy Terms of Service
- Refund policy
| Kenya (KESKSh) | ||
| Kosovo (EUR€) | ||
| Hub Front | Book a ServiceFormula DC-20 LW, alloy, 6-bolt, 100x5 mm | Lesotho (GBP£)|
| Hub RearOther | Liberia (GBP£)Formula DC-22LW, 6-bolt, Shimano 8/9/10 freehub, 135x5 mmCustom Builds | |
| Rims | Bontrager Kovee, double-wall, Tubeless-Ready, 28-hole, 23 mm width, Presta valve // Bontrager Kovee, double-wall, Tubeless-Ready, 32-hole, 23 mm width, Presta valveInsure Your Bike | Liechtenstein (CHFCHF)|
| Shifter | Lithuania (EUR€)SRAM | |
| Derailleur Rear | SRAM NX Eagle, 12-speed Brands | Madagascar (GBP£)|
| Crank | Malawi (MWKMK) EnveSRAM SX Eagle, 30T steel ring, 49 mm chainline, 175 mm length | Cockpit|
| Bottom Bracket | Truvativ Powerspline, 73 mm, threaded cartridge, 118 mm spindle Stems | Malta (EUR€)|
| Cassette | Mauritania (GBP£)SRAM PG-1210 Eagle, 11-50, 12-speed Verifying your connection...Headsets | |
| ChainYour connection needs to be verified before you can proceed Complete Brakes | SRAM SX Eagle, 12-speed< | Brake Spares |
| Pedals | Front SuspensionVP-536 nylon platform | Montenegro (EUR€)|
| Saddle Finishing Kit | Morocco (MADد.م.)Bontrager Verse Short, stainless steel rails Tyres | |
| Seatpost | TranzX JD-YSI34, 150 mm travel, internal routing, 31.6 mm, 456 mm length Tubeless | Namibia (GBP£)|
| Handlebar | Netherlands (EUR€)Bontrager alloy, 31.8 mm, 15 mm rise, 750 mm width Seat Posts & Clamps | |
| Stem | Gears & DrivetrainBontrager Comp, 31.8 mm, Blendr compatible, 7-degree, 50 mm length | Nigeria (NGN₦) Components|
| Headset E-bike Batteries and chargers | North Macedonia (MKDден)Semi-integrated, 1-1/8" Wheels | |
| Grips Tubeless | Tools & MaintenanceTrek Line Comp, nylon lock-on Clothing and Protection | Poland (PLNzł)|
| Size Chart Rider Height | Portugal (EUR€) HelmetsRider Height - 177.0 - 188.0 | |
| Size Chart Rider Inseam | ClothingInseam - 84.0 - 89.0 | Romania (RONLei)
São Tomé & Príncipe (STDDb)
-
Serbia (RSDРСД)Sierra Leone (SLLLe)








ProjektRide



See More
Tubes
E-bike Batteries and chargers
Complete Wheels
See More
<
liquid_cache_age: _stoqInitConfig.liquidCacheAge,
inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '',
inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId],
});
} catch (e) {
console.debug('STOQ - stoq_initialized publish failed:', e);
}
try {
var _sqTrack = window._RestockRocketConfig;
if (_sqTrack.preordersConfigured) {
document.addEventListener('click', function (e) {
try {
var t = e.target;
if (!t || !t.closest) return;
var host = t.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 || '';
atus); }
return response.json();
})
.then(function(body) {
if (body && body.errors && body.errors.length) {
throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', '));
}
const value = body && body.data && body.data.shop && body.data.shop.metafield && body.data.shop.metafield.value;
if (!value) { throw new Error('Storefront API returned no settings metafield value'); }
cfg.storefrontSettings = JSON.parse(value);
console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings');
})
.catch(function(e) {
console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message);
});
}
if (typeof window.requestIdleCallback === 'function') {
window.requestIdleCallback(run, { timeout: 5000 });
} else {
setTimeout(run, 0);
}
})();
const cachedSettings = window._RestockRocketConfig.cachedSetti







