Genesis
We also have a physical store, if you are local please pop in -
ProjektRide Bike Shop Edinburgh
ProjektRide Bike Shop Edinburgh
82 Newington Road, EH91QN, Edinburgh.
rue,"featured_image":{"id":75314469536127,"product_id":15034592461183,"position":12,"created_at":"2025-04-17T10:48:36+01:00","updated_at":"2025-04-17T11:00:20+01:00","alt":null,"width":1800,"height":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003.jpg?v=1744884020","variant_ids":[55333372854655,55333372920191,55333373051263,55333373116799,55333373247871,55333373313407]},"available":true,"name":"Lazer Jackal KinetiCore Helmet - Large \/ Matt Black","public_title":"Large \/ Matt Black","options":["Large","Matt Black"],"price":16000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":65307619164543,"position":12,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003.jpg?v=1744884020"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333373280639,"title":"Large \/ Matt White \/ Black","option1":"Large","option2":"Matt White \/ Black","option3":null,"sku""Small \/ Flash Yellow \/ Black","option1":"Small","option2":"Flash Yellow \/ Black","option3":null,"sku":"CZ2501042","requires_shipping":true,"taxable":true,"featured_image":{"id":75315210912127,"product_id":15034621723007,"position":18,"created_at":"2025-04-17T11:13:37+01:00","updated_at":"2025-04-17T11:13:40+01:00","alt":null,"width":1800,"height":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz250104b.jpg?v=1744884820","variant_ids":[55333439471999,55333439701375,55333439930751,55333440160127]},"available":true,"name":"Lazer Tonic KinetiCore Helmet - Small \/ Flash Yellow \/ Black","public_title":"Small \/ Flash Yellow \/ Black","options":["Small","Flash Yellow \/ Black"],"price":6000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":65308188639615,"position":18,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz250104b.jpg?v=1744884820"}},"requires_selling_plan":false,"sel
tion3":null,"sku":"CZ2440034","requires_shipping":true,"taxable":true,"featured_image":{"id":75314469536127,"product_id":15034592461183,"position":12,"created_at":"2025-04-17T10:48:36+01:00","updated_at":"2025-04-17T11:00:20+01:00","alt":null,"width":1800,"height":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003.jpg?v=1744884020","variant_ids":[55333372854655,55333372920191,55333373051263,55333373116799,55333373247871,55333373313407]},"available":true,"name":"Lazer Jackal KinetiCore Helmet - Large \/ Blue \/ Green","public_title":"Large \/ Blue \/ Green","options":["Large","Blue \/ Green"],"price":16000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":65307619164543,"position":12,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003.jpg?v=1744884020"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333373346175,"title":"Large \/ Light Blue","optue","option1":"Medium","option2":"Blue","option3":null,"sku":"CZ2503023","requires_shipping":true,"taxable":true,"featured_image":{"id":75315211272575,"product_id":15034621723007,"position":37,"created_at":"2025-04-17T11:13:37+01:00","updated_at":"2025-04-17T11:13:40+01:00","alt":null,"width":1800,"height":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz250302c.jpg?v=1744884820","variant_ids":[55333439340927,55333439570303,55333439799679,55333440029055]},"available":true,"name":"Lazer Tonic KinetiCore Helmet - Medium \/ Blue","public_title":"Medium \/ Blue","options":["Medium","Blue"],"price":6000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":65308189491583,"position":37,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz250302c.jpg?v=1744884820"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333439603071,"title":"Medium \/ Matt Black","option1":"Med_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244002e.jpg?v=1744884020","width":1800},{"alt":null,"id":65307619164543,"position":12,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003.jpg?v=1744884020"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003.jpg?v=1744884020","width":1800},{"alt":null,"id":65307619230079,"position":13,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003b.jpg?v=1744884020"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003b.jpg?v=1744884020","width":1800},{"alt":null,"id":65307619328383,"position":14,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244003d.jpg?v=1744884020"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektridelmet - Large \/ Grey","public_title":"Large \/ Grey","options":["Large","Grey"],"price":6000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333439996287,"title":"Large \/ Light Green","option1":"Large","option2":"Light Green","option3":null,"sku":"CZ2503014","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Lazer Tonic KinetiCore Helmet - Large \/ Light Green","public_title":"Large \/ Light Green","options":["Large","Light Green"],"price":6000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333440029055,"title":"Extra Large \/ Blue","option1":"Extra Large","option2":"Blue","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":75315211272575,"product_id":15034621723007,"position":37,"created_at":"2025-04-17T11:13:37+01:00","updated_at":"20
/cz244004_1b.jpg?v=1744884020","width":1800},{"alt":null,"id":65307619492223,"position":18,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244004_1c.jpg?v=1744884020"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244004_1c.jpg?v=1744884020","width":1800},{"alt":null,"id":65307619524991,"position":19,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244004_1d.jpg?v=1744884020"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244004_1d.jpg?v=1744884020","width":1800},{"alt":null,"id":65307619557759,"position":20,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244004_1e.jpg?v=1744884020"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244004_1e.jpg?v=174xtra Large \/ Matt Black","options":["Extra Large","Matt Black"],"price":6000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333440094591,"title":"Extra Large \/ White","option1":"Extra Large","option2":"White","option3":null,"sku":"CZ2501025","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Lazer Tonic KinetiCore Helmet - Extra Large \/ White","public_title":"Extra Large \/ White","options":["Extra Large","White"],"price":6000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333440127359,"title":"Extra Large \/ Titanium","option1":"Extra Large","option2":"Titanium","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Lazer Tonic KinetiCore Helmet - Extra Large \/ Titanium","public_title":"Extra Large \/ Titanium"":65307619787135,"position":24,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244021a.jpg?v=1744884020"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244021a.jpg?v=1744884020","width":1800},{"alt":null,"id":65307619819903,"position":25,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244021b.jpg?v=1744884020"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244021b.jpg?v=1744884020","width":1800},{"alt":null,"id":65307619950975,"position":26,"preview_image":{"aspect_ratio":1.0,"height":3000,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244301.jpg?v=1744884020"},"aspect_ratio":1.0,"height":3000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz244301.jpg?v=1744884020","width":3000},{"alt":null,"id":65307620016511,"position":27,"preve":"","featured_media":{"alt":null,"id":65308188639615,"position":18,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/cz250104b.jpg?v=1744884820"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333440192895,"title":"Extra Large \/ Grey","option1":"Extra Large","option2":"Grey","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Lazer Tonic KinetiCore Helmet - Extra Large \/ Grey","public_title":"Extra Large \/ Grey","options":["Extra Large","Grey"],"price":6000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55333440225663,"title":"Extra Large \/ Light Green","option1":"Extra Large","option2":"Light Green","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Lazer Tonic KinetiCore Helmet - Extra Large \/ Light
SETTINGS_CACHE_DURATION) {
console.debug('STOQ - settings changed recently, skipping cache');
return null;
}
return settings;
} catch (error) {
console.debug('STOQ - Error checking settings cache:', error);
return null;
}
}
function createRestockRocketContainer() {
const restockRocketContainer = document.createElement('div');
restockRocketContainer.id = 'restock-rocket';
document.body.appendChild(restockRocketContainer);
}
function createRestockRocketScript(scriptUrl) {
const restockRocketScriptElement = document.createElement('script');
restockRocketScriptElement.setAttribute('defer', 'defer');
restockRocketScriptElement.src = scriptUrl;
document.body.appendChild(restockRocketScriptElement);
}
createRestockRocketContainer()
console.debug('STOQ - extension activated')
function applyTranslations(settings) {
try {
// Skip translation logic entirely if multi-language is not enabled
if (!settings ||
];
if (value !== null && value !== undefined && value !== '') {
settings[key] = value;
}
});
} else {
console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
}
delete settings.translations;
return settings;
} catch (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
console.debug('STOQ - fetching fresh settings');
const headers = {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
};
if (window.Shopify?.them
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 request failed and we have cached settings (even if expired), use them as fallback
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 initializeScripts(settings) {
settings = applyTranslations(settings);
window._RestockRocketConfig.settings = settings;
console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
if(settings.enable_app) {
- age || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`); } // Check and update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCartSellingPlans(); } // Dispatch custom event when app is loaded const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings } }); console.debug('STOQ - dispatching app loaded event'); window.disppping cart selling plan check'); } } attemptCartCheck(); }

Singular