This site has limited support for your browser. We recommend switching to Edge, Chrome, Safari, or Firefox.

Gears & Drivetrain
See More
Cart
E-bike Batteries

Header Image

You'll be amazed at where you can go with a bike. And especially with the Access WS. Thanks to the comfortable suspension fork, the powerful disc brakes and the wide tires. No matter the weather, you can brake quickly and safely. And thanks to the Shimano gears, no hill is too high. The geometry offers a nice mix of agility and stability. Where are you going next?

Frame descriptionRegular
The beauty of the Access WS is in the details. Such as the smooth welds, the beautiful integration of standard and disc brake mounts and the also integrated mounting points for ACID rear mudguards and luggage carriers. The geometry not only offers a dynamic appearance, but also a lot of freedom of movement and space for wide tires. We have also further refined our famous SizeSplit system. So whether you are short or tall, you will always find a perfectly fitting Access WS. Of course, the cables run neatly internally, for a neat appearance and less maintenance.

 Select variant dropdown

FrameSlim - Sold Out
Regular - Sold Out Decrease quantity
FrameQuantity: Aluminum Lite, AMF, Double Butted, Internal Cable Routing, Flat Mount Brake, SIC Mount, FM Kickstand Mount1
Front fork1+ SR Suntour XCE, 100mm
Drive and brakes
Increase quantity <> < After the successful launch of the GD1 Factory in 2017, Ergon have launched and entry-level GD1 using GravityControl Rubber.{"id":8055185735906,"title":"Ergon GD1 EVO","handle":"ergon-gd1-evo","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eAfter the successful launch of the GD1 Factory in 2017, Ergon have launched and entry-level GD1 using GravityControl Rubber.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e2 grip diameters: Standard for glove size Large\/X-Large (8.5-10.5) \u0026amp; Slim for glove sizes Small\/Medium (6.5 -8.5)\u003c\/li\u003e\n\u003cli\u003eCarbon friendly CNC Aluminium clamps\u003c\/li\u003e\n\u003cli\u003eInterchangeable end plugs\u003c\/li\u003e\n\u003cli\u003e140g per pair (Standard)\u003c\/li\u003e\n\u003cli\u003e125g per pair (Slim)\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2023-03-18T19:41:51+00:00","created_at":"2023-03-18T19:41:51+00:00","vendor":"Ergon","type":"grips","tags":["Accessories","cockpit","grips","Grips \u0026 Bar-tape","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":3299,"price_min":3299,"price_max":3299,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":43936692961506,"title":"Slim","option1":"Slim","option2":null,"option3":null,"sku":"EG-42440016","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Ergon GD1 EVO - Slim","public_title":"Slim","options":["Slim"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43936692994274,"title":"Regular","option1":"Regular","option2":null,"option3":null,"sku":"EG-42440017","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Ergon GD1 EVO - Regular","public_title":"Regular","options":["Regular"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/26509-pm.png?v=1679168513","\/\/projektride.co.uk\/cdn\/shop\/products\/26511-pm.png?v=1679168513","\/\/projektride.co.uk\/cdn\/shop\/products\/26513-pm.png?v=1679168513"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/26509-pm.png?v=1679168513","options":["Size"],"media":[{"alt":null,"id":31695337750754,"position":1,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn \/shop\/products\/26509-pm.png?v=1679168513"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26509-pm.png?v=1679168513","width":776},{"alt":null,"id":31695337783522,"position":2,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26511-pm.png?v=1679168513"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26511-pm.png?v=1679168513","width":776},{"alt":null,"id":31695337816290,"position":3,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26513-pm.png?v=1679168513"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26513-pm.png?v=1679168513","width":776}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eAfter the successful launch of the GD1 Factory in 2017, Ergo { "@context": "http://schema.org/", "@type": "Product", "name": "Ergon GD1 EVO", "url": "https:\/\/projektride.co.uk\/products\/ergon-gd1-evo","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/products\/26509-pm_776x.png?v=1679168513" ],"description": "\nAfter the successful launch of the GD1 Factory in 2017, Ergon have launched and entry-level G D1 using GravityControl Rubber.\n\n2 grip diameters: Standard for glove size Large\/X-Large (8.5-10.5) \u0026amp; Slim for glove sizes Small\/Medium (6.5-8.5)\nCarbon friendly CNC Aluminium clamps\nInterchangeable end plugs\n140g per pair (Standard)\n125g per pair (Slim)\n","sku": "EG-42440016","brand": { "@type": "Thing", "name": "Ergon" },"gtin8": "","offers": [{ "@type" : "Offer","sku": "EG-42440016","availability" : "http://schema.org/OutOfStock", "price" : 32.99, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/ergon-gd1-evo?variant=43936692961506" }, { "@type" : "Offer","sku": "EG-42440017","availability" : "http://schema.org/OutOfStock", "price" : 32.99, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/ergon-gd1-evo?variant=43936692994274" } ] }
label for="quantity--template--15326745395426__main">QuantityClarks Clout 1, Hydr. Disc Brake PM/FM (160/160)
Shifters Shimano SL-M315, Rapidfire PlusProduct Details
Crankset
Cockpit
Would you like to add on any equipment? Hire Lazer Compact Helmet< a class="product__media product__media--featured" href="/products/hire-smith-convoy-helmet" title="Hire Lazer Compact Helmet" aria-label="Hire Lazer Compact Helmet" style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)"> Hire Lazer Compact Helmet £0.00 Black Hire Ortlieb 40L Pannier Bags
Ball head Cube FPH863, Semi-Integrated
Send Hire Lazer Compact Helmet
Stem Cube Performance Stem, 31.8mm
Handlebar tape/Grips Acid React
Wheels<
a class="product__media product__media--featured" href="/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)"> <span class="visually-hidden">Hire Ortlieb 40L Pannier Bags > << span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE Life Systems Pocket First Aid Kit - HIRE £0.00
Rims
a class="product__media product__media--featured" href="/products/life-systems-pocket-first-aid-kit-hire" title="Life Systems Pocket First Aid Kit - HIRE" aria-label="Life SystemsRear hub Pocket First Aid Kit - HIRE" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.22_5c0e6e2d-1913-4fd1-a90d-b486895960b6_600x.png?v=1691610357)">
Front tire
Rear tire Cube IMPAC Smartpac, 2.25
Other partsHire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
<< span class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable #FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; }
a class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-Saddlekryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)"> Natural Fit Venec Lite WS
Seatpost£0.00 Cube Performance Post, 27.2mm
Seatpost clamp Cube Varioclose, 31.8mm
ProjektRide Bike Shop Edinburgh
.
ts = {"variant_shipping_texts":{},"updated_at":"2025-12-14T11:48:07Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_l imit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","p
reorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_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.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];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"],"configura

tion":{"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":8055185735906,"title":"Ergon GD1 EVO","handle":"ergon-gd1-evo","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eAfter the successful launch of the GD1 Factory in 2017, Ergon have launched and entry-level GD1 using GravityControl Rubber.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e2 grip diameters: Standard for glove size Large\/X-Large (8.5-10.5) \u0026amp; Slim for glove sizes Small\/Medium (6.5-8.5)\u003c\/li\u003e\n\u003cli\u003eCarbon friendly CNC Aluminium clamps\u003c\/li\u003e\n\u003cli\u003eInterchangeable end plugs\u003c\/li\u003e\n\u003cli\u003e140g per pair (Standard)\u003c\/li\u003e\n\u003cli\u003e125g per paFAQir (Slim)\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2023-03-18T19:41:51+00:00","created_at":"2023-03-18T19:41:51+00:00","vendor":"Ergon","type":"grips","tags":["Accessories","cockpit","grips","Grips \u0026 Bar-tape","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":3299,"price_min":3299,"price_max":3299,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":43936692961506,"title":"Slim","option1":"Slim","option2":null,"option3":null,"sku":"EG-42440016","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Ergon GD1 EVO - Slim","public_title":"Slim","options":["Slim"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43936692994274,"title":"Regular","option1":"Regular","option2":null,"option3":null,"sku":"EG-42440017","req

uires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Ergon GD1 EVO - Regular","public_title":"Regular","options":["Regular"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/26509-pm.png?v=1679168513","\/\/projektride.co.uk\/cdn\/shop\/products\/26511-pm.png?v=1679168513","\/\/projektride.co.uk\/cdn\/shop\/products\/26513-pm.png?v=1679168513"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/26509-pm.png?v=1679168513","options":["Size"],"media":[{"alt":null,"id":31695337750754,"position":1,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26509-pm.png?v=1679168513"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26509-pm.png?v=1679168513","width":776},{"alt":null,"id":31695337783522,"positiQuestions and answerson":2,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26511-pm.png?v=1679168513"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26511-pm.png?v=1679168513","width":776},{"alt":null,"id":31695337816290,"position":3,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26513-pm.png?v=1679168513"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26513-pm.png?v=1679168513","width":776}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eAfter the successful launch of the GD1 Factory in 2017, Ergon have launched and entry-level GD1 using GravityControl Rubber.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e2 grip diameters: Standard for glove size Large\/X-Large (8.5-10.5) \u0026amp; Slim for glove sizes Small\/Medium (6.5

-8.5)\u003c\/li\u003e\n\u003cli\u003eCarbon friendly CNC Aluminium clamps\u003c\/li\u003e\n\u003cli\u003eInterchangeable end plugs\u003c\/li\u003e\n\u003cli\u003e140g per pair (Standard)\u003c\/li\u003e\n\u003cli\u003e125g per pair (Slim)\u003c\/li\u003e\n\u003c\/ul\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {43936692961506 : "deny",43936692994274 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {43936692961506 : parseInt("0"),43936692994274 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {43936692961506 : parseInt(""),43936692994274 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {43936692961506 : null,43936692994274 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {43936692961506 : parseInt(""),43936692994274 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43936692961506 : null,43936692994274 : null,}; window._RestockRocketConfig.variants ShippingText = {43936692961506 : "",43936692994274 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {43936692961506 : null,43936692994274 : null,}; window._RestockRocketConfig.selected_variant_id = 43936692961506; 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/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host
= 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds 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; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no 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 age = Date.now() - updatedAt.getTime(); if (age
< 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 || !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._Rest ockRocketConfig.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[key]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete for ${window._RestockRocketConfig.pageType}`); 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_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || 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.dispatchEvent(appLoadedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { 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); }); } else if (attempt