91970175,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,55333738316159,55333738348927,5533373838
1695,55333752865151,55372770935167,55464695333247,55464695366015,55464695398783,55464695431551,55464786264447,55464786297215,55464786329983,55464786362751,55464786395519,55464786428287,55464801927551,55464801960319,55464801993087,55464802025855,55464813035903,55464813068671,55464813101439,55464813134207,55464813166975,55464813199743,55482461389183,55482461421951,55482461454719,55482461487487,55482461520255,55482461553023,55482489176447,55482489209215,55482489241983,55482489274751,55482489307519,55482489340287,55482515620223,55482515652991,55482515685759,55482515718527,55482526794111,55482526826879,55482526859647,55482526892415,55482526925183,55482526957951,55482539016575,55482539049343,55482539082111,55482539114879,55482539147647,55482539180415,55482573554047,55482573586815,55482573619583,55482573652351,55482573685119,55482573717887,55482589643135,55482589675903,55482589708671,55482589741439,55482589774207,55482589806975,55482603536767,55482603569535,55482603602303,55482603635071,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,56166204965247,56166204998015,56189671768447,561
89671801215,56189671833983,56189672456575,56189672489343,56189672522111,56189672554879,56189672620415,56189672653183,56189672685951,56189673177471,56189673243007,56189673275775,56189673472383,56189673537919,56189673570687,56189673734527,56266456596863,56266456629631,56266456662399,56266456695167,56266468819327,56266468852095,56266468884863,56266468917631,56266488480127,56277227274623,56277238088063,56277238120831,56277238153599,56277381316991,56279228547455,56279228612991,56300214583679,56300214616447,56300214649215,56300214681983,56300214714751,56385022361983,56385022460287,56385022558591,56385023345023,56385023377791,56385023443327,56385023476095,56385023574399,56385024295295,56385024360831,56385024393599,56385024426367,56385024459135,56385024491903,56385027768703,56385027867007,56385027932543,56385027965311,56385028030847,56385028063615,56385028129151,56385204388223,56385204420991,56385204453759,56385204486527,56385205797247,56385205862783,56385205895551,56385205928319,56386096628095,56386096660863,56386096824703,56386097021311,56386097217919,56386097250687,56386097283455,56386097316223,56386097348991,56386097381759,56386097414527,56386097447295,56386097480063,56386097512831,56386097545599,56386097578367,56386097611135,56386097643903,56386097676671,56386097807743,56386097840511,56386097873279,56386097906047,56386097938815,56386098004351,56386098037119,56386098102655,56386098135423,56386098168191,56386098266495,56386098495871,56386098594175,56386098626943,56386098659711,56386098758015,56386098790783,56386098823551,56386098856319,56386098921855,56386098987391,56386099020159,56386099675519,56386099872127,56386100363647,56386100527487,56386100593023,56386100658559,56386100953471,56386101051775,56386101084543,56386101117311,56386101150079,56393228648831,56393228812671,56393231630719,56393231761791,56393231991167,56393232155007,56393232220543,56393232384383,56393232449919,56393232580991,56393232777599,56393232875903,56393232974207,56393233236351,56393233367423,56393233629567,56393233760639,56393234088319,56393234252
Electric Bikes159,56393234350463,56393234481535,56393234678143,56393235759487,56393238774143,56393238872447,56393239003519,56393239789951,56393240019327,56393240150399,56430641021311,56430641054079,56430641086847,56430641119615,56430641152383,56430641185151,56479895421311,56479895454079,56479895486847,56479895519615,56479895552383,56479895585151,56479930974591,56479931007359,56479931040127,56479931072895,56479931105663,56479931138431,56490205643135,56494084850047,56494084981119,56494085013887,56494085046655,56494085079423,56494085112191,56494085177727,56494085210495,56494085243263,56494085276031,56494085308799,56494085341567,56494085374335,56494085407103,56494085439871,56494085472639,56494085505407,56494085538175,56494085570943,56494085636479,56494085702015,56494085767551,56494085800319,56494085833087,56494085865855,56494085898623,56494085931391,56494086095231,56494086160767,56494086226303,56494086259071,56494086291839,56494086324607,56494086357375,56494086422911,56494086455679,56494086488447,56494086521215,56494086553983,
91,57319008895359,57392715465087,57392715497855,57392715530623,57392715563391,57392715596159,57578627137919,57578627170687,57579681808767,57579681841535,57579681874303,57579681907071,57579681939839,57579773395327,57579773428095,57579773460863,57579861377407,57579861410175,57579861442943,57579861475711,57579861508479,57581101154687,57581101187455,57581101220223,57581101252991,57581101285759,57582419149183,57582419181951,57582419214719,57582419247487,57582419280255,57596170535295,57596170568063,57596170600831,57596170633599,57596170666367,57596170699135,57596170731903,57596170764671,57596170797439,57596170830207,57596170862975,57596170895743,57596171092351,57596171125119,57596171157887,57596171190655,57596171223423,57596171256191,57596171288959,57596171321727,57596171354495,57596171387263,57596171420031,57596171452799,57596175384959,57596175417727,57596175450495,57596175483263,57596176138623,57596176171391,57596176204159,57596176236927,57596176269695,57596176302463,57596176335231,57596176367999,57596176662911,5
996601215,57602996633983,57602996666751,57602996699519,57602996732287,57602996765055,57602996797823,57602996830591,57602996863359,57602996928895,57602996961663,57602996994431,57602997027199,57602997059967,57602997092735,57602997223807,57602997256575,57602997289343,57602997322111,57602997354879,57602997387647,57602997420415,57602997453183,57602997485951,57602997518719,57602997715327,57602997879167,57602998075775,57602998206847,57602998239615,57602998337919,57602998370687,57602998403455,57602998501759,57602998534527,57602998600063,57602998894975,57602998960511,57602999026047,57602999124351,57602999157119,57602999189887,57602999222655,57603001090431,57603001123199,57603001155967,57603001188735,57603001221503,57603001254271,57603001287039,57603001614719,57603001647487,57603001680255,57603001713023,57603001745791,57603001778559,57603001844095,57603001876863,57603001942399,57603002007935,57603002040703,57603002073471,57603002106239,57603002204543,57603002237311,57603002270079,57603002302847,57603002335615,576030023Kids Bikes
ingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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_enabled":true,"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_limit_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:
{"@context":"http:\/\/schema.org\/","@id":"\/products\/benno-46er-cx-step-thru#product","@type":"ProductGroup","brand":{"@type":"Brand","name":"Benno"},"category":"Bicycles","description":"\nThe 46er is the same length as a regular bike. And that’s where all similarities end. We ditched convention and added capability. Enough to make any cargo bike sweat. And gave it a sporty ride and front suspension. This unequalled combination of ride and capability starts with unequal wheels. 26\" in the front for extra comfort and control, and 24″ in the back for strength and a lower centre of gravity. All powered by the Bosch CX Speed and a 500Wh intube battery. Born of true Etility® Design, the 46er is reshaping the future of the ebike. For Benno Bikes and the industry.\nMANY BIKES IN ONE.\nSwift, smooth and strong, the athletic 46er makes it look easy—hauling a load or just hauling down the road. Front suspension makes short work of uneven terrain, while an oversized rear rack expands your cargo options to give you unequaled capability in a standard-sized bike.\nWARNING: When carrying passengers, rear wheel MUST be covered! Install Benno Wheel Guards or Utility Pannier Bags. Failure to do so could result in serious injury! Make sure that no parts of the body, clothing or load come near moving parts on the bicycle, such as chain, spokes, tyres or brakes.Do not exceed individual load ratings and max gross weight.\nSpecifications\n\n\nFrame6061 Aluminum Alloy with Front Tray Mounts\n\n\nForkSuntour SF18 MOBIE 25, 75mm Travel\n\n\nHeadsetTop: Cane Creek ViscoSet, Mid-Tune \/ Bottom: FSA Integrated\n\n\nHandlebarAluminum, Width 675mm, Rise 76mm\n\n\nStemAluminum, Threadless, Extension 50mm\n\n\nGripsBenno Ergo Profile, Lock-On\n\n\nSaddleBenno Endurance with Rear Handle\n\n\nSeatpostAluminum, Diameter 30.9mm, Length 350mm\n\n\nRear DerailleurShimano Deore\n\n\nGear LeversShimano Deore\n\n\nChainTaya e-DECA-101, 132 Links\n\n\nFront Sprocket44T\n\n\nCassetteShimano 10-Speed, 11~42T\n\n\nBrake LeversMagura MT Thirty\n\n\nFront BrakeMagura MT Thirty Disc 4 Piston, Rotor 180mm\n\n\nRear BrakeMagura MT Thirty Disc 2 Piston, Rotor 180mm\n\n\nPedalsOne Piece Aluminum\n\n\nRimsAluminum, Double Wall with Eyelets, 36H\n\n\nFront HubShimano MT400 36h, 15mm Thru-Axle, Center Lock Disc\n\n\nRear HubShimano MT400 36h, 12mm Thru-Axle, Center Lock Disc\n\n\nSpokesStainless 14G\n\n\nTyresBenno Dual Sport (Front 26\" x 2.35\"\/Rear 24\" x 2.6\") Puncture Resistant, 60\n\n\nAccessoriesFits Most Aftermarket Pannier Bags and Accessories\n\n\nChild SeatDesigned for Thule Yepp EasyFit and Other Compatible Rack Mount Child Seats\n\n\nRack46er Rear Rack, 19mm Tubing, Aluminum, Max. Load 130lbs\/60kg\n\n\nFront TrayCompatible\n\n\nRail SystemCompatible\n\n\nMudguardsExtruded Aluminum\n\n\nControllerBosch Purion Display\n\n\nFront LightGerman Supernova Mini 2\n\n\nRear LightGerman Supernova E3\n\n\nMotorBosch Performance CX 250W, 85Nm, GEN 4\n\n\nAssisted SpeedEU 25km\/h\n\n\nBatteryBosch PowerTube 500Wh Lithium-Ion, DualBattery Compatible (Not Included)\n\n\nBattery Range (Single Battery)Single Battery: 30-80mi (50-130km)\n\n\nBattery Range (Dual Battery)Dual Battery: 60-160mi (100-260km)\n\n\nChargerBosch Compact 4A\n\n\nCharge Time4.5h\n\n\nSizeOne Size – Fits Riders from 5’1” to 6’3”\n\n","hasVariant":[{"@id":"\/products\/benno-46er-cx-step-thru?variant=44459099455714#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.08.54.png?v=1698415805\u0026width=1920","name":"Benno 46er CX Step-Thru - Denim Blue","offers":{"@id":"\/products\/benno-46er-cx-step-thru?variant=44459099455714#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"5799.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/benno-46er-cx-step-thru?variant=44459099455714"},"sku":"5BN2246CB"},{"@id":"\/products\/benno-46er-cx-step-thru?variant=44459099521250#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.05.55.png?v=1698415805\u0026width=1920","name":"Benno 46er CX Step-Thru - Wasabi Green","offers":{"@id":"\/products\/benno-46er-cx-step-thru?variant=44459099521250#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"5799.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/benno-46er-cx-step-thru?variant=44459099521250"},"sku":"5BN2246CG"},{"@id":"\/products\/benno-46er-cx-step-thru?variant=44459099554018#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.09.04.png?v=1698415804\u0026width=1920","name":"Benno 46er CX Step-Thru - Bone Grey","offers":{"@id":"\/products\/benno-46er-cx-step-thru?variant=44459099554018#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"5799.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/benno-46er-cx-step-thru?variant=44459099554018"},"sku":"5BN2246CX"},{"@id":"\/products\/benno-46er-cx-step-thru?variant=44459099586786#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.09.15.png?v=1698415806\u0026width=1920","name":"Benno 46er CX Step-Thru - Anthracite Grey","offers":{"@id":"\/products\/benno-46er-cx-step-thru?variant=44459099586786#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"5799.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/benno-46er-cx-step-thru?variant=44459099586786"},"sku":"5BN2246CZ"}],"name":"Benno 46er CX Step-Thru","productGroupID":"8190514561250","url":"https:\/\/projektride.co.uk\/products\/benno-46er-cx-step-thru"}
Genesis) where on of the team will be more than happy to help.
ProjektRide Bike Shop EdinburghGrips & Bar-Tape
Singular
Headsets
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.
I'm looking to buy this product, when will it arrive and how much does postage cost?
Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.Enigma
We also have a physical store, if you are local please pop in -
ProjektRide Bike Shop Edinburgh
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. Brakes
Cookie PolicyTerms of Service
Refund policy
Road / Gravel / Touring Bikes
ection","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":8190514561250,"title":"Benno 46er CX Step-Thru","handle":"benno-46er-cx-step-thru","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe 46er is the same length as a regular bike. And that’s where all similarities end. We ditched convention and added capability. Enough to make any cargo bike sweat. And gave it a sporty ride and front suspension. This unequalled combination of ride and capability starts with unequal wheels. 26\" in the front for extra comfort and control, and 24″ in the back for strength and a lower centre of gravity. All powered by the Bosch CX Speed and a 500Wh intube battery. Born of true Etility® Design, the 46er is reshaping the future of the ebike. For Benno Bikes and the industry.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eMANY BIKES IN ONE.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eSwift, smooth and strong, the athletic 46er makes it look easy—hauling a load or just hauling down the road. Front suspension makes short work of uneven terrain, while an oversized rear rack expands your cargo options to give you unequaled capability in a standard-sized bike.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eWARNING\u003c\/strong\u003e: When carrying passengers, rear wheel\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003cstrong data-mce-fragment=\"1\"\u003eMUST\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003ebe covered! Install Benno Wheel Guards or Utility Pannier Bags. Failure to do
so could result in serious injury! Make sure that no parts of the body, clothing or load come near moving parts on the bicycle, such as chain, spokes, tyres or brakes.\u003cbr data-mce-fragment=\"1\"\u003eDo not exceed individual load ratings and max gross weight.\u003c\/p\u003e\n\u003ch4 data-mce-fragment=\"1\"\u003eSpecifications\u003c\/h4\u003e\n\u003cul class=\"ui-list ui-list-main\" data-mce-fragment=\"1\"\u003e\n\u003cli class=\"ui-list_item\" data-mce-fragment=\"1\"\u003e\n\u003cspan class=\"ui-list-title\" data-mce-fragment=\"1\"\u003eFrame\u003c\/span\u003e\u003cspan class=\"ui-list-info\" data-mce-fragment=\"1\"\u003e6061 Aluminum Alloy with Front Tray Mounts\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\" data-mce-fragment=\"1\"\u003e\n\u003cspan class=\"ui-list-title\" data-mce-fragment=\"1\"\u003eFork\u003c\/span\u003e\u003cspan class=\"ui-list-info\" data-mce-fragment=\"1\"\u003eSuntour SF18 MOBIE 25, 75mm Travel\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list
Electric Bikesiles\/Screenshot2023-10-27at15.08.54.png?v=1698415805","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.09.04.png?v=1698415804","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.09.15.png?v=1698415806"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.05.55.png?v=1698415805","options":["Color"],"media":[{"alt":null,"id":32401012621538,"position":1,"preview_image":{"aspect_ratio":1.378,"height":1450,"width":1998,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.05.55.png?v=1698415805"},"aspect_ratio":1.378,"height":1450,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.05.55.png?v=1698415805","width":1998},{"alt":null,"id":32401012654306,"position":2,"preview_image":{"aspect_ratio":1.386,"height":1372,"width":1902,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-27at15.08.54.png?v=1698415805"},"aspect_ratio":1.386,"height":1372,"media_type":"image","src":"\/\
regular bike. And that’s where all similarities end. We ditched convention and added capability. Enough to make any cargo bike sweat. And gave it a sporty ride and front suspension. This unequalled combination of ride and capability starts with unequal wheels. 26\" in the front for extra comfort and control, and 24″ in the back for strength and a lower centre of gravity. All powered by the Bosch CX Speed and a 500Wh intube battery. Born of true Etility® Design, the 46er is reshaping the future of the ebike. For Benno Bikes and the industry.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eMANY BIKES IN ONE.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eSwift, smooth and strong, the athletic 46er makes it look easy—hauling a load or just hauling down the road. Front suspension makes short work of uneven terrain, while an oversized rear rack expands your cargo options to give you unequaled capability in a standard-sized bike.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong da
ay Mounts\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\" data-mce-fragment=\"1\"\u003e\n\u003cspan class=\"ui-list-title\" data-mce-fragment=\"1\"\u003eFork\u003c\/span\u003e\u003cspan class=\"ui-list-info\" data-mce-fragment=\"1\"\u003eSuntour SF18 MOBIE 25, 75mm Travel\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\" data-mce-fragment=\"1\"\u003e\n\u003cspan class=\"ui-list-title\" data-mce-fragment=\"1\"\u003eHeadset\u003c\/span\u003e\u003cspan class=\"ui-list-info\" data-mce-fragment=\"1\"\u003eTop: Cane Creek ViscoSet, Mid-Tune \/ Bottom: FSA Integrated\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\" data-mce-fragment=\"1\"\u003e\n\u003cspan class=\"ui-list-title\" data-mce-fragment=\"1\"\u003eHandlebar\u003c\/span\u003e\u003cspan class=\"ui-list-info\" data-mce-fragment=\"1\"\u003eAluminum, Width 675mm, Rise 76mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\" data-mce-fragment=\"1\"\u003e\n\u003cspan class=\"ui-list-tit
0) {
console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else if (liquidCacheAge
= LIQUID_CACHE_MAX_AGE) {
console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
window._RestockRocketConfig.isLiquidCacheFresh = false;
}
}
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
age = Date.now() - updatedAt.getTime();
if (age
Gloria 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')
// Fire stoq_initialized once per page load so the funnel pipeline has a definitive
// "our code ran on this page" signal independent of any cus
ctedVariantId || '',
liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0,
app_version: _stoqInitConfig.appVersion || '',
liquid_cache_age: _stoqInitConfig.liquidCacheAge,
// Selected variant's stock posture as our app saw it at render — explains
// whether we *should* have treated it as a preorder candidate.
inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '',
inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId],
});
} catch (e) {
console.debug('STOQ - stoq_initialized publish failed:', e);
}
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 n