{"@context":"http:\/\/schema.org\/","@id":"\/products\/twist-bottle-450-bike-base#product","@type":"Product","brand":{"@type":"Brand","name":"Fidlock"},"category":"Water Bottles","description":"\n450 ml bottle incl. magnetic-mechanical bottle mounting system for bike frames\nSometimes, smaller is just better. If the bike has a tight frame, which does not offer any room for a conventional bike bottle, for example. That’s where the small TWIST bottle 450 comes in: It can be mounted on the smallest frames because compared to the TWIST bottle 600, it is a great space-saving option with its 450 ml (15.22 fl oz) of liquid capacity. Paired with the innovative magnet-mechanical mounting system, which allows for the bottle to be twisted off the bike instead of being lifted upwards out of a cage, there is no frame this bottle system does not ï¬t!\nTWIST bottle 450 including TWIST bike base:\nThe bike bottle comes with a connector fitted with two magnets and an internal mechanic latching system. The two magnets find their counterpart magnets in the bike base automatically and guide the bottle into the right position. With an audible “click”, the mechanic fixture comes into place to hold the bottle securely. To release the bottle, it only needs a simple clockwise TWIST. The bike base is mounted on the bike to the bottle braze-ons with two screws.\nThe advantages in a nutshell\n\n450 ml\nPerfect for small bike frames\nColour: transparent black\nDishwasher-safe\nBPA-free polypropylene\nFits all TWIST bases\n","gtin":"4251207400643","image":"https:\/\/projektride.co.uk\/cdn\/shop\/products\/wcfl-bikekit-450-mkII_1800x1800_f09db165-6f25-4a60-b63d-80ad60c3cd19.jpg?v=1639500652\u0026width=1920","name":"Fidlock TWIST bottle 450ml + bike base","offers":{"@id":"\/products\/tw
Gloss Dark Star/Matte Deep Smokeist-bottle-450-bike-base?variant=42157845184738#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"36.99","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/twist-bottle-450-bike-base?variant=42157845184738"},"sku":"WCFLB450Z","url":"https:\/\/projektride.co.uk\/products\/twist-bottle-450-bike-base"}
I'm looking to find out more information about a product, where can I find this?
Please get in touch with a member of the team either by phone (
Gloss Fury Red/Matte Deep Smoke01313745324
Waist packs have become the new go-to choice for carrying cycling essentials on hot laps, shorter rides and race days. Designed to be lightweight and rugged with a slim profile to fit in smaller spaces, our innovative Contour™ Lumbar reservoir is a perfect hydration upgrade for most lumbar and hip packs. Equipped with performance features and Shape-Loc baffles to stabilize water movement, it’s ready to tackle rowdy and steep lines.
) or email (
[email protected]
) where on of the team will be more than happy to help.
UNIVERSAL HANGER: Compatible with clips, hooks & loops in a wide range of packs.ProjektRide Bike Shop Edinburgh
COMET™ BITE VALVE: Lightweight, self-sealing valve can be opened & locked with one hand.
GRAB HANDLE: Soft touch flexible handle simplifies filling & carrying.I'm looking to buy this product, when will it arrive and how much does postage cost?Gloss Crystal White/Matte Deep Smoke
SLIM PROFILE: Shape-loc baffles create a low reservoir profile & increase stabilization during activities.
If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item.
REVERSIBLE: Use the internal drying tab to reverse the reservoir for deep cleaning and complete drying.Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.
We also have a physical store, if you are local please pop in -
Included magnet clip attaches to reservoir tube and can be paired with your pack of choice for easy accessProjektRide Bike Shop Edinburgh
82 Newington Road, EH91QN, Edinburgh.Show more
Plug-N-Play® connect system lets you easily disconnect the drink tube from the reservoir for easy filling
Show less
Made of ultra-durable, abrasion resistant TPU & RF welded seams for superior durability and elasticity
100% BPA & PVC free, wide working temperature range (can be frozen - max temp 60° C / 140° F)
{"id":56494086095231,"title":"XS \/ Gloss Fury Red\/Matte Deep Smoke","option1":"XS","option2":"Gloss Fury Red\/Matte Deep Smoke","option3":null,"sku":"5337983","requires_shipping":true,"taxable":true,"featured_image":{"id":81226533962111,"product_id":15424864551295,"position":3,"created_at":"2025-11-29T15:02:46+00:00","updated_at":"2025-11-29T15:02:52+00:00","alt":null,"width":1920,"height":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/MadoneSL6-26-57662-B-Primary.png?v=1764428572","variant_ids":[56494086095231,56494086226303,56494086357375,56494086488447,56494086619519,56494086750591]},"available":true,"name":"Trek Madone SL 6 Gen 8 - XS \/ Gloss Fury Red\/Matte Deep Smoke","public_title":"XS \/ Gloss Fury Red\/Matte Deep Smoke","options":["XS","Gloss Fury Red\/Matte Deep Smoke"],"price":380000,"weight":0,"compare_at_price":400000,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":68897004487039,"position":3,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/MadoneSL6-26-57662-B-Primary.png?v=1764428572"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}
Buy, sell and ride in confidence on ProjektRide’s premium bikes
8
9
10 +
Quantity
Decrease Quantity
Add to Cart
£3,800.00
£4,000.00
Estonia (EUR€)
Eswatini (GBP£)
Ethiopia (ETBBr)
239726596479,55245591871871,55245591970175,55245592002943,55245656818047,55245656949119,55245730152831,55245730218367,55245730316671,55245730349439,55245730382207,55245730447743,55245730578815,55245730742655,55245730775423,55245737492863,55245737623935,55245737656703,55245737689471,55245737722239,55294444142975,55294475927935,55294475960703,55294527504767,55294527537535,55294528979327,55333372789119,55333372821887,55333372854655,55333372887423,55333372920191,55333372952959,55333372985727,55333373018495,55333373051263,55333373084031,55333373116799,55333373182335,55333373215103,55333373280639,55333373313407,55333439340927,55333439373695,55333439406463,55333439439231,55333439471999,55333439504767,55333439537535,55333439570303,55333439603071,55333439635839,55333439668607,55333439701375,55333439734143,55333439766911,55333439799679,55333439832447,55333439865215,55333439897983,55333439930751,55333439963519,55333439996287,55333440061823,55333440094591,55333738185087,55333738217855,55333738250623,55333738283391,553337
5071,55482603667839,55482603700607,55482623361407,55482623394175,55482623426943,55482623459711,55482623492479,55482639122815,55482639155583,55482639188351,55482639221119,55482666844543,55482671497599,55482671530367,55482671563135,55482671595903,55482671628671,55482675102079,55482675134847,55482675167615,55482675626367,55482675659135,55482675691903,55482677952895,55482679787903,55482684965247,55553117356415,55553117389183,55553117454719,55553117487487,55553117520255,55553117553023,55553117585791,55570017517951,55585620263295,55585620296063,55585620328831,55585620361599,55664837296511,55664857874815,55664857907583,55664857940351,55664857973119,55664858005887,56051529482623,56051529515391,56051529548159,56051529580927,56051529613695,56063296373119,56063296405887,56063296438655,56063296471423,56063370428799,56063370461567,56063370494335,56063370527103,56063691129215,56140121801087,56140121833855,56140121899391,56140121932159,56140121964927,56166204834175,56166204866943,56166204899711,56166204932479,56166204965247Faroe Islands (DKKkr.)
property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_butto
ss_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}],"disabled_plan_ids":[713813721471,713176482175,714631872895],"cached_at":"2026-04-09T09:16:46Z"};
if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) {
// Find the maximum updated_at from all items in old array
const oldPlans = window._RestockRocketConfig.sellingPlans;
const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
? oldPlans.reduce(function(max, plan) {
// Parse dates for proper comparison (handles mixed ISO formats)
if (plan.updated_at) {
const planDate = new Date(plan.updated_at);
const maxDate = max ? new Date(max) : null;
return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max;
}
return max;
}, '')
: null;
// Use cached if old array
g selling plans from old format (max updated_at: ' + maxUpdatedAt + ')');
}
}
})();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":7473339007202,"title":"Fidlock TWIST bottle 450ml + bike base","handle":"twist-bottle-450-
03eThe bike bottle comes with a connector fitted with two magnets and an internal mechanic latching system. The two magnets find their counterpart magnets in the bike base automatically and guide the bottle into the right position. With an audible “click”, the mechanic fixture comes into place to hold the bottle securely. To release the bottle, it only needs a simple clockwise TWIST. The bike base is mounted on the bike to the bottle braze-ons with two screws.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cu data-mce-fragment=\"1\"\u003eThe advantages in a nutshell\u003c\/u\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003e450 ml\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003ePerfect for small bike frames\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eColour: transparent black\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eDishwasher-safe\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBPA-free polypropylene\u003cmax":null,"increment":1}}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/wcfl-bikekit-450-mkII_1800x1800_f09db165-6f25-4a60-b63d-80ad60c3cd19.jpg?v=1639500652"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/wcfl-bikekit-450-mkII_1800x1800_f09db165-6f25-4a60-b63d-80ad60c3cd19.jpg?v=1639500652","options":["Title"],"media":[{"alt":null,"id":28842467033314,"position":1,"preview_image":{"aspect_ratio":0.928,"height":858,"width":796,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/wcfl-bikekit-450-mkII_1800x1800_f09db165-6f25-4a60-b63d-80ad60c3cd19.jpg?v=1639500652"},"aspect_ratio":0.928,"height":858,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/wcfl-bikekit-450-mkII_1800x1800_f09db165-6f25-4a60-b63d-80ad60c3cd19.jpg?v=1639500652","width":796}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e450 ml bottle incl. magnetic-mechanical bottle mounting system for bike frames\u003
lly and guide the bottle into the right position. With an audible “click”, the mechanic fixture comes into place to hold the bottle securely. To release the bottle, it only needs a simple clockwise TWIST. The bike base is mounted on the bike to the bottle braze-ons with two screws.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cu data-mce-fragment=\"1\"\u003eThe advantages in a nutshell\u003c\/u\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003e450 ml\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003ePerfect for small bike frames\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eColour: transparent black\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eDishwasher-safe\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBPA-free polypropylene\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eFits all TWIST bases\u003c\/li\u003e\n\u003c\/ul\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {42157845184738
version>/assets/...
// Trailing digits (e.g. ".../restockrocket-1-521/assets/" -> "521"). Kept numeric to
// match ParseStoqData, so funnel app_version lines up with the order-attribution
// app_version. Reflects the ACTUAL deployed build. This is the SINGLE source of the
// parsed version — preorder.js getAppVersion() reads it back off config rather than
// re-parsing, so the regex lives in exactly one place.
try {
const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/);
window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || '';
} catch (e) {
window._RestockRocketConfig.appVersion = '';
}
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
const LIQUID_CACHE_MAX_AGE = 15 * 60; // 15 minutes in seconds
// Calculate Liquid cache freshness once at initialization
const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
// Validate timestamp and calculate ca<
<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())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const <tomer interaction.
// Detected variants: the variants present in this page's Liquid context (product page has them;
// collection/index/etc. don't expose variants from Liquid). Used to disambiguate "embed didn't
// load" vs "embed loaded but the variant wasn't a preorder/BIS candidate" in order debug.
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;
Shopify?.analytics?.publish?.('stoq_initialized', {
cart_token: _stoqInitConfig.cartToken || '',
page_url: window.location.href,
page_type: _stoqInitConfig.pageType || '',
shop_domain: _stoqInitConfig.shop || '',
market_id: _stoqInitConfig.marketId || '',
detected_variant_ids: _stoqDetectedVariantIds,
selected_variant_id: _stoqSele