- 3 Faroe Islands (DKKkr.)
- Finland (EUR€) 4
- France (EUR€) 5 French Southern Territories (EUR€)
- 6 Gabon (XOFFr)
- 7 Gambia (GMDD)
- Georgia (GBP£) 8
- Germany (EUR€) 9 Ghana (GBP£)
- 10 + Gibraltar (GBP£)
The Restrap Full Frame Bag allows you to easily increase the load out you carry for comfortable bikepacking and touring. The bags come in three sizes, designed to fit most standard frames and geometries.
Two Aquaguard YKK zips on the drive side of the bag allow easy access to the top and bottom sections of the bag, with internal velcro dividers to separate the compartments. These dividers aid the structure of the bag when fully packed, but also fold away to allow use of the full internal space of the bag if needed. The non-drive-side of the bag contains a document pocket, useful for storing smaller items.
The bag is made from durable, textured nylon outer and VX21 fabrics, with a wipeable lower section that means the bag is easy to keep clean when riding off-road or in adverse weather. Rubberised strapping provides extra grip to the frame and webbing straps, with easy-to-use cam locking buckles, keep the bag sitting securely and free of movement while riding.
Hand made in our Yorkshire workshop, all bags are finished with the classic Restrap label, made from vegan-friendly PU.Latvia (EUR€)
SKU - RS_FFB_MED_BLK
Weight - 266g / 320g / 365g (small/medium/large)
Capacity - 6L / 7.5L / 9L (small/medium/large)

Surly
Brake Spares
Essentials
Open search bar
Contact Us
Track Service Progress4,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936332349666,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,43936408568034,43936414400738,43
ll","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_
Insure Your Bikeenabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_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) {
const oldPlans = window._RestockRocketConfig.sellingPlans;
const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
? oldPlans.reduce(function(max, plan) {
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;
}, '')

