Maintenance
Sell Your Bike
!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) {
// No matching locale has translations; drop payload to save memory
console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
const translatedFields = translations[normalizedLocale];
if (translatedFields && typeof translatedFields === 'object') {
Object.keys(translatedFields).forEach(function(key) {
const value = translatedFields[keyeCartSellingPlans()
.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);
});
}
});
}
// 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 = {
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}`);
// Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions
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);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collectContact Us
.site-footer {
--bg: #1f2324;
--text: #ffffff;
--text-alpha-15: rgba(255, 255, 255, 0.15);
--text-alpha-60: rgba(255, 255, 255, 0.6);
--text-alpha-85: rgba(255, 255, 255, 0.85);
}
.footer-content__logo__image { width: 170px; }Hybrid / City Bikes
Finance
Road / Gravel / Touring Bikes
Life Systems Pocket First Aid Kit - HIRE – ProjektRide
<
Mountain BikesOpen cart
<<
translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
consElectric BikesHome3,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849.png?v=1691610428","width":952}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eA high security U-lock at a great price.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eFeatures:\u003c\/b\u003e\u003c\/p\u003e\n\u003cul class=\"description-overview\"\u003e\n\u003cli\u003e12.7mm hardened performance steel shackle\u003c\/li\u003e\n\u003cli\u003eNew patent-pending hardened double deadbolt design gives additional protection against twist attacks\u003c\/li\u003e\n\u003cli\u003eHigh security disc-style cylinder is pick and drill resistant\u003c\/li\u003e\n\u003cli\u003eIncludes 2 stainless steel keys, with ergonomic design to reduce the amount of torque, and keep them from bending or breaking\u003c\/li\u003e\n\u003cli\u003eIncludes 120cm x 10mm Kryptoflex double looped cable to secure your front wheel or a
ntsPreorderMaxCountForMarket = {44210951880930 : null,};
window._RestockRocketConfig.variantsShippingText = {44210951880930 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {44210951880930 : null,};
window._RestockRocketConfig.selected_variant_id = 44210951880930;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lcket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-

Protective vinyl coating
Product weight: 1.66 kgs
ProjektRide Bike Hire Edinburgh.Workshop
See Moree8c9f11849.png?v=1691610428","width":952}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eA high security U-lock at a great price.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eFeatures:\u003c\/b\u003e\u003c\/p\u003e\n\u003cul class=\"description-overview\"\u003e\n\u003cli\u003e12.7mm hardened performance steel shackle\u003c\/li\u003e\n\u003cli\u003eNew patent-pending hardened double deadbolt design gives additional protection against twist attacks\u003c\/li\u003e\n\u003cli\u003eHigh security disc-style cylinder is pick and drill resistant\u003c\/li\u003e\n\u003cli\u003eIncludes 2 stainless steel keys, with ergonomic design to reduce the amount of torque, and keep them from bending or breaking\u003c\/li\u003e\n\u003cli\u003eIncludes 120cm x 10mm Kryptoflex double looped cable to secure your front wheel or accessories\u003c\/li\u003e\n\u003cli\u003eNew dust cover\u003c\/li\u003e\n\u003cli\u003eIncludes flexframe-u bracket providing convenient mult
Other
Search<
Brands
<