{postMessage(e)})};’));flspdx.onmessage = function (t) {var e = document.createElement(“script”);e.type = “text/javascript”, e.textContent = t.data, document.head.appendChild(e)}, flspdx.postMessage(“init”);]]]]]]]]>]]]]]]>]]]]>]]> TriplePixel :: start*/ ~function(W,H,A,L,E,_,B,N){function O(U,T,H,R){void 0===R&&(R=!1),H=new XMLHttpRequest,H.open(“GET”,U,!0),H.send(null),H.onreadystatechange=function(){4===H.readyState&&200===H.status?(R=H.responseText,U.includes(“.txt”)?eval(R):N[B]=R):(299 -1 || window.location.href.toLowerCase().indexOf(‘kayak-angler-package?’) > -1){ modalToggle = true; } else { modalToggle = false; } }, 1000) // Check if product is an extend warranty, if so disable the atc function isExtend() { if(meta.product && meta.product.vendor == “Extend”){ addToCartButton.disabled = true; } } // Checks if product is an Extend warranty and if so disables isExtend(); var variantId; // Grabs all swatch options on PDP var swatches = productForm.querySelectorAll(‘.nt-swatch’) // Listens for changes to the variant options on the PDP and sets the activeProduct for extend via variantID swatches.forEach(option => { option.addEventListener(‘click’, function(){ window.setTimeout(function() { variantId = productForm.id.value Extend.setActiveProduct(‘#extend-offer’, variantId); isExtend(); }, 500) }) }) // Grabs the variantId from the productForm and renders the initial offers for it variantId = productForm.id.value Extend.buttons.render(extendOffer, {referenceId: variantId }) //click simulation handling add to cart function handleAddToCart(e) { e.preventDefault(); e.stopImmediatePropagation(); var quantityEl = productForm.querySelector(‘[name=”quantity”]’); var quantity = quantityEl && quantityEl.value; ExtendShopify.handleAddToCart(extendOffer, { quantity: quantity, modal: modalToggle, done: function () { // Trigger Analytics if (Extend.analytics) window.Extend.productAnalytics(variantId, quantity); // remove default click listener addToCartButton.removeEventListener(‘click’, handleAddToCart, true); //click atc button addToCartButton.click(); // add default click listener back addToCartButton.addEventListener(‘click’, handleAddToCart, true); window.setTimeout(function() { window.dispatchEvent(Extend.CustomEvent(“refreshAjaxMOCart”)) }, 500) }, }); } // Run handleCaddtoCart when we click ATC, capturing event addToCartButton.addEventListener(‘click’, handleAddToCart, true); // Refresh sidecart offers when adding normal products to cart from cbb-also-bought buttons document.querySelectorAll(‘.cbb-also-bought-add-to-cart-button’).forEach(function(button){ button.addEventListener(‘click’, function(){ window.setTimeout(function() { window.dispatchEvent(Extend.CustomEvent(“refreshAjaxMOCart”)) }, 1000) }) }) } if(window.location.href.toLowerCase().indexOf(‘/products’) > -1){ // Initial product offer render initProductOffer(); } } }) ]]]]]]]]>]]]]]]>]]]]>]]> { icon.removeEventListener(‘click’, listeners) icon.addEventListener(‘click’, listeners) }) document.querySelectorAll(‘.qty_cart_js’).forEach(value => { value.removeEventListener(‘change’, listeners) value.addEventListener(‘change’, listeners) }) document.querySelectorAll(‘.cart_ac_remove’).forEach(icon => { icon.removeEventListener(‘click’, listeners) icon.addEventListener(‘click’, listeners) }) }, 500); } /********************************/ /* refreshCart – THEME SPECIFIC */ /********************************/ // Hard Refreshes the sidecart function refreshCart() { fetch(“/cart.js”, { credentials: “same-origin”, method: “GET”, headers: { “Content-Type”: “application/json”, “X-Requested-With”: “XMLHttpRequest” }, }).then(function (e) { e.json().then(function (e) { if (Extend.analytics) window.Extend.cartAnalytics(localCart, e); localCart = e; return location.href = location.hash ? location.href.substring(0, location.href.indexOf(‘#’)) : location.href; }); }); } /*****************/ /* createElement */ /*****************/ // createElement(product) – Takes in the product element, and creates the Extend offer element + appends the offer function createElement(product, index){ // Removes existing offer elements before creating new ones var extendOffer = product.querySelector(‘#’ + offerId); if (extendOffer) { extendOffer.parentNode.removeChild(extendOffer); } // Grab href from product name and fail safes if (!product.querySelector(cartRowItemTitle)) return; var url = product.querySelector(cartRowItemTitle).href; if(!url) return; // Grab the variantId out of the URL var regEx = /d+$/; var variantId; //Grabs variant ID from URL if available, otherwise from localCart if (url.match(regEx)) { variantId = url.match(regEx)[0]; } else { variantId = localCart.items[index].id } // Select quantity value var quantity = product.querySelector(cartRowItemQuantity).value; // Parent container to append ajax offer var container = product.querySelector(warrantyContainer); // Fail safes if(!variantId || !quantity || !container) return; // Create new element & set id, data-extend-variant, and data-extend-quantity attributes var extendOffer = document.createElement(‘div’); extendOffer.id = offerId; extendOffer.setAttribute(‘data-extend-variant’, variantId); extendOffer.setAttribute(‘data-extend-quantity’, quantity); // Append the offer to the container element (THEME SPECIFIC) container.insertBefore(extendOffer, container.children[2]); } /******************/ /* Handle Styling */ /******************/ // Finds all cartRowItems and styles only Extend warranties function handleStyling() { findAll(cartRowItem).forEach(function(el, index) { // Grab the title of the current item var title = el.querySelector(cartRowItemTitle); // Title fail safe if(!title) return; // If it’s a warranty set isExtend to true and remove links if (title.innerText.toLowerCase().indexOf(‘extend protection’) > -1) { // Grab the image of the current item and fail safe var image = el.querySelector(cartRowItemImage).parentElement if(!image) return; var variantTitle = el.querySelector(‘.cart_meta_variant’) var isExtend = el.querySelector(‘.product-details__item-label’) if(variantTitle && isExtend){ variantTitle.remove(); isExtend.remove(); } // Select and remove pointerEvents from warranty image image.style.pointerEvents = “none” // Select and remove pointerEvents from warranty title title.style.pointerEvents = “none” // Select and remove pointerEvents from warranty editIcon var editIcon = el.querySelector(‘.cart_ac_edit’) editIcon.style.pointerEvents = “none” /********************************/ /* THEME SPECIFIC STYLING START */ /********************************/ // Removes old metadata if (el.querySelector(warrantyOriginalMeta)) { findAll(warrantyOriginalMeta, el).forEach(function(each) { each.remove() }) } // Selects where to append warranty metadata var contentContainer = el.querySelector(metadataContainer) var warrantyProductData; var warrantyTermData; if(localCart.items[index] && localCart.items[index].options_with_values && localCart.items[index].options_with_values[1]) { // Finds the ref id string in the product info string and replaces with an empty string var regexReplace = localCart.items[index].options_with_values[0].value.match(/-d{5,}/g) warrantyProductData = localCart.items[index].options_with_values[0].value.replace(regexReplace, ”) warrantyTermData = localCart.items[index].options_with_values[1].value } else if(localCart.items[index]) { warrantyProductData = localCart.items[index].properties.Product warrantyTermData = localCart.items[index].properties.Term } // Appends Product and Term metadata if (el.querySelector(metadataContainer)) { var warrantyProductName = document.createElement(‘p’); warrantyProductName.className = ‘extend-warranty-info’; warrantyProductName.innerHTML = ‘Product: ‘ + warrantyProductData; warrantyProductName.style.margin = “0” var warrantyProductTerm = document.createElement(‘p’) warrantyProductTerm.className = ‘extend-warranty-info’; warrantyProductTerm.innerHTML = ‘Term: ‘ + warrantyTermData; warrantyProductTerm.style.margin = “0” // Only append the metadata if it’s not already there if (!el.querySelector(‘.extend-warranty-info’)) { contentContainer.insertBefore(warrantyProductTerm, contentContainer.children[1]) contentContainer.insertBefore(warrantyProductName, contentContainer.children[1]) } } /******************************/ /* THEME SPECIFIC STYLING END */ /******************************/ } else { // Create an offer element for each product createElement(el, index) } }); } /************************/ /* initializeCartOffer */ /************************/ // Invokes handleStyling and finds all offers in the cart, handling both normalization and balancing function initializeCartOffer() { // Handles styling and creates offer elements handleStyling(); // Find all offer elements findAll(‘#’ + offerId).forEach(function(el){ // Grab attributes out of element var variantId = el.getAttribute(‘data-extend-variant’) var quantity = el.getAttribute(‘data-extend-quantity’) // If there’s already a warranty in cart, return if(ExtendShopify.warrantyAlreadyInCart(variantId, localCart.items)){ return } // Render all other buttons Extend.buttons.renderSimpleOffer(el, { referenceId: variantId, onAddToCart: function (options) { ExtendShopify.addPlanToCart( { plan: options.plan, product: options.product, quantity: quantity, }, function (err) { // An error occurred if (err) { return; } else { ExtendShopify.getPlanVariant({ “referenceId” : variantId, “termLength” : options.plan.term} , function (err, planVariant) { if(err){ console.log(err) return }; // use existing geckoShopify theme method for updating cart geckoShopify.onCartUpdate(quantity, 1, planVariant) }); } } ); }, }); }) // Normalization ensures there is a 1:1 relationship between the product and the warranty ExtendShopify.normalizeCart({cart: localCart, balance: true}, function (err, data) { if (data && data.updates) { // Calls refreshCart to update the cart for normalization refreshCart(); } }); } window.addEventListener(“refreshAjaxMOCart”, function (e) { window.setTimeout(function() { fetch(“/cart.js”, { credentials: “same-origin”, method: “GET”, headers: { “Content-Type”: “application/json”, “X-Requested-With”: “XMLHttpRequest” }, }).then(function (e) { e.json().then(function (e) { if (Extend.analytics) window.Extend.cartAnalytics(localCart, e); localCart = e; initializeCartOffer(); applyListeners(); }); }); }, 500) }); // When the mouse enters the sidecart icon apply event listeners since we can’t access sidecart code document.querySelector(mouseOverHoverElement).addEventListener(‘mouseenter’, e => { window.dispatchEvent(Extend.CustomEvent(“refreshAjaxMOCart”)) }) } }); ]]]]]]]]>]]]]]]>]]]]>]]> -1) { // Grab the image of the current item and fail safe var image = el.querySelector(cartRowItemImage) if(!image) return; // Select and remove pointerEvents from warranty image image.style.pointerEvents = “none” // Select and remove pointerEvents from warranty title title.style.pointerEvents = “none” if (titleReformat == true) { title.innerText = “Extend Protection Plan” } // Select and hide is.ExtendWarranty var isExtendWarranty = el.querySelector(‘.product-details__item’) isExtendWarranty.style.display = ‘none’; // Select and remove pointerEvents from warranty editIcon var editIcon = el.querySelector(‘.cart_ac_edit’) editIcon.style.pointerEvents = “none” /**************************************/ /* THEME SPECIFIC STYLING START */ /**************************************/ // Removes old metadata if (el.querySelector(warrantyOriginalMeta)) { findAll(warrantyOriginalMeta, el).forEach(function(each) { each.style.display = ‘none’ }) } // Removes extra metadata visible from leads el.querySelectorAll(‘.product-details__item’).forEach(function(metaData){ metaData.style.display = ‘none’ }) // Selects where to append warranty metadata var contentContainer = el.querySelector(metadataContainer) var warrantyProductData; var warrantyTermData; if(localCart.items[index].options_with_values && localCart.items[index].options_with_values[1]) { // Finds the ref id string in the product info string and replaces with an empty string var regexReplace = localCart.items[index].options_with_values[0].value.match(/-d{5,}/g) warrantyProductData = localCart.items[index].options_with_values[0].value.replace(regexReplace, ”) warrantyTermData = localCart.items[index].options_with_values[1].value } else { warrantyProductData = localCart.items[index].properties.Product warrantyTermData = localCart.items[index].properties.Term } // Appends Product and Term metadata if (el.querySelector(metadataContainer)) { var warrantyProductName = document.createElement(‘p’); warrantyProductName.className = ‘extend-warranty-info’; warrantyProductName.innerHTML = ‘Product: ‘ + warrantyProductData; warrantyProductName.style.margin = “0” var warrantyProductTerm = document.createElement(‘p’) warrantyProductTerm.className = ‘extend-warranty-info’; warrantyProductTerm.innerHTML = ‘Term: ‘ + warrantyTermData; warrantyProductTerm.style.margin = “0” // Only append the metadata if it’s not already there if (!el.querySelector(‘.extend-warranty-info’)) { contentContainer.append(warrantyProductName, warrantyProductTerm) } } /**************************************/ /* THEME SPECIFIC STYLING END */ /**************************************/ } else { // Create an offer element for each product createElement(el, index) } }); } /************************/ /* initializeCartOffer */ /************************/ // Invokes handleStyling and finds all offers in the cart, handling both normalization and balancing function initializeCartOffer() { // Handles styling and creates offer elements handleStyling(); // Find all offer elements findAll(‘#’ + offerId).forEach(function(el){ // Grab attributes out of element var variantId = el.getAttribute(‘data-extend-variant’) var quantity = el.getAttribute(‘data-extend-quantity’) // If there’s already a warranty in cart, return if(ExtendShopify.warrantyAlreadyInCart(variantId, localCart.items)){ return } // Render all other buttons Extend.buttons.renderSimpleOffer(el, { referenceId: variantId, onAddToCart: function (options) { ExtendShopify.addPlanToCart( { plan: options.plan, product: options.product, quantity: quantity, }, function (err) { // An error occurred if (err) { return; } else { refreshCart(); } } ); }, }); }) // Normalization ensures there is a 1:1 relationship between the product and the warranty ExtendShopify.normalizeCart({cart: localCart, balance: true}, function (err, data) { if (data && data.updates) { // Calls refreshCart to update the cart for normalization refreshCart(); } }); } window.addEventListener(“refreshAjaxCart”, function (e) { window.setTimeout(function() { fetch(“/cart.js”, { credentials: “same-origin”, method: “GET”, headers: { “Content-Type”: “application/json”, “X-Requested-With”: “XMLHttpRequest” }, }).then(function (e) { e.json().then(function (e) { if (Extend.analytics) window.Extend.cartAnalytics(localCart, e); localCart = e; initializeCartOffer(); }); }); }, 500) }); if(window.location.href.toLowerCase().indexOf(‘/cart’) > -1){ document.querySelectorAll(‘.plus’).forEach(icon => { icon.addEventListener(‘click’, function(){ window.dispatchEvent(Extend.CustomEvent(“refreshAjaxCart”)) }) }) document.querySelectorAll(‘.minus’).forEach(icon => { icon.addEventListener(‘click’, function(){ window.dispatchEvent(Extend.CustomEvent(“refreshAjaxCart”)) }) }) document.querySelectorAll(‘input[type=”number”]’).forEach(value => { value.addEventListener(‘change’, function(){ window.dispatchEvent(Extend.CustomEvent(“refreshAjaxCart”)) }) }) document.querySelectorAll(‘.cart_ac_remove’).forEach(icon => { icon.addEventListener(‘click’, function(){ window.dispatchEvent(Extend.CustomEvent(“refreshAjaxCart”)) }) }) window.dispatchEvent(Extend.CustomEvent(“refreshAjaxCart”)) } } }); ]]]]]]]]>]]]]]]>]]]]>]]> {if (!selector || selector.length === 0) {return;}const selectorArray = Array.isArray(selector) ? selector : [selector];for (const selector of selectorArray) {if (!selector) {continue;}const inputUserValue = form.querySelector(selector);const userValue = (inputUserValue && inputUserValue.value) || ”;if (userValue) {user[userKey] = userValue;break;}}});return user;};const sendUserData = (userData) => {if (!userData || !Object.keys(userData).length) {return;}edgetag(‘data’, userData);};const actions = [{selectors: [‘[type=”submit”]’, newsletterForm],length: 2,fun: (ele) => {const user = getUser(ele, {email: [‘input[type=”email”]’, ‘input[name*=”email” i]’],phone: [‘input[type=”tel”]’, ‘input[name*=”phone” i]’],firstName: ‘input[name*=”name” i]’,dateOfBirth: ‘input[name*=”birthday” i]’});sendUserData(user);edgetag(‘tag’, ‘Subscribe’, {}, {}, { method: ‘beacon’ });},current: 0},{selectors: [‘button’, newsletterForm],length: 2,fun: (ele) => {const user = getUser(ele, {email: [‘input[type=”email”]’, ‘input[name*=”email” i]’],phone: [‘input[type=”tel”]’, ‘input[name*=”phone” i]’],firstName: ‘input[name*=”name” i]’,dateOfBirth: ‘input[name*=”birthday” i]’});sendUserData(user);edgetag(‘tag’, ‘Subscribe’, {}, {}, { method: ‘beacon’ });},current: 0},{selectors: [‘[type=”submit”]’, ‘form[action=”/account/login”]’],length: 2,fun: (ele) => {const user = getUser(ele, {email: ‘input[type=”email”]’});sendUserData(user);},current: 0},{selectors: [‘[type=”submit”]’, ‘form[action=”/account”]’],length: 2,fun: (ele) => {let user = getUser(ele, {email: ‘input[type=”email”]’,phone: ‘input[type=”tel”]’,firstName: ‘input[name*=”first” i]’,lastName: ‘input[name*=”last” i]’});if (!user.firstName && !user.lastName) {user = {…user,…getUser(ele, { firstName: ‘input[name*=”name” i]’ })};}sendUserData(user);edgetag(‘tag’, ‘CompleteRegistration’);},current: 0},{selectors: [‘[type=”submit”]’, ‘form[action^=”/contact”]’],length: 2,fun: (ele) => {const user = getUser(ele, {email: [‘input[type=”email”]’, ‘input[name*=”email” i]’],phone: [‘input[type=”tel”]’, ‘input[name*=”phone” i]’],firstName: [‘input[name*=”first” i]’, ‘input[name*=”name” i]’, ‘input[name*=”nom” i]’],lastName: ‘input[id*=”last” i]’});sendUserData(user);edgetag(‘tag’, ‘Contact’);},current: 0}];const resetActions = () => {for (let i = 0; i {if (!element || element.nodeName === ‘BODY’) {resetActions();return;}if (element.nodeName !== ‘DIV’ && element.nodeName !== ‘INPUT’ && element.nodeName !== ‘A’ && element.nodeName !== ‘BUTTON’ && element.nodeName !== ‘FORM’) {checkElement(element.parentElement);return;}for (let i = 0; i {checkElement(e.target);});window.addEventListener(‘message’,(event) => {if (event.origin !== ‘https://creatives.attn.tv’) {return;}if (!event.data || !event.data.__attentive) {return;}try {const data = event.data.__attentive;if (!data.action || !data.action.includes(‘LEAD’)) {return;}const user = {};if(data.email) {user.email = data.email;}if(data.phone) {user.phone = data.phone.replace(/[^0-9]/g, ”);}sendUserData(user);edgetag(‘tag’, ‘Subscribe’);} catch (e) {console.log(“[Edgetag]”, e);}},false);}();!function() {}();]]]]]]]]>]]]]]]>]]]]>]]> -1&&(window.Shopify.analytics.identify=a.identify)}},onerror:function(){var n=(e.storefrontBaseUrl?e.storefrontBaseUrl.replace(//$/,””):self.location.origin)+”/.well-known/shopify/monorail/unstable/produce_batch”,a=JSON.stringify({metadata:{event_sent_at_ms:(new Date).getTime()},events:[{schema_id:”web_pixels_manager_load/2.0″,payload:{version:o||”latest”,page_url:self.location.href,status:”failed”,error_msg:S+” has failed to load”},metadata:{event_created_at_ms:(new Date).getTime()}}]});try{if(self.navigator.sendBeacon.bind(self.navigator)(n,a))return!0}catch(e){}const t=new XMLHttpRequest;try{return t.open(“POST”,n,!0),t.setRequestHeader(“Content-Type”,”text/plain”),t.send(a),!0}catch(e){console&&console.warn&&console.warn(“[Web Pixels Manager] Got an unhandled error while logging a load error.”)}return!1}},y=document.createElement(“script”),m=h.src,g=h.async||!0,v=h.onload,_=h.onerror,b=document.head,x=document.body,y.async=g,y.src=m,v&&y.addEventListener(“load”,v),_&&y.addEventListener(“error”,_),b?b.appendChild(y):x?x.appendChild(y):console.error(“Did not find a head or body element to append the script”)})({shopId: 56838783154,storefrontBaseUrl: “https://vibekayaks.com”,cdnBaseUrl: “https://vibekayaks.com/cdn”,surface: “storefront-renderer”,enabledBetaFlags: [“web_pixels_shopify_pixel_validation”,”web_pixels_manager_runtime_asset_prefix”,”web_pixels_async_pixel_refactor”],webPixelsConfigList: [{“id”:”9797810″,”eventPayloadVersion”:”1″,”runtimeContext”:”LAX”,”scriptVersion”:”1″,”type”:”CUSTOM”},{“id”:”shopify-app-pixel”,”configuration”:”{}”,”eventPayloadVersion”:”v1″,”runtimeContext”:”STRICT”,”scriptVersion”:”0551″,”apiClientId”:”shopify-pixel”,”type”:”APP”},{“id”:”shopify-custom-pixel”,”eventPayloadVersion”:”v1″,”runtimeContext”:”LAX”,”scriptVersion”:”0551″,”apiClientId”:”shopify-pixel”,”type”:”CUSTOM”}],initData: {“cart”:null,”checkout”:null,”customer”:null,”productVariants”:[{“id”:”40224364265650″,”image”:{“src”:”//vibekayaks.com/cdn/shop/products/shearwater-125-289099.jpg?v=1684741786″},”price”:{“amount”:1699.99,”currencyCode”:”USD”},”product”:{“id”:”6801559716018″,”title”:”Shearwater 125″,”untranslatedTitle”:”Shearwater 125″,”vendor”:”Vibe”,”type”:”Kayaks”},”sku”:”VKB-21R-SW12502-TS”,”title”:”Tsunami Red”,”untranslatedTitle”:”Tsunami Red”},{“id”:”40224364298418″,”image”:{“src”:”//vibekayaks.com/cdn/shop/products/shearwater-125-117362.jpg?v=1684741786″},”price”:{“amount”:1699.99,”currencyCode”:”USD”},”product”:{“id”:”6801559716018″,”title”:”Shearwater 125″,”untranslatedTitle”:”Shearwater 125″,”vendor”:”Vibe”,”type”:”Kayaks”},”sku”:”VKB-21R-SW12502-SB”,”title”:”Slate Blue”,”untranslatedTitle”:”Slate Blue”},{“id”:”40224364331186″,”image”:{“src”:”//vibekayaks.com/cdn/shop/products/shearwater-125-409255.jpg?v=1684741786″},”price”:{“amount”:1699.99,”currencyCode”:”USD”},”product”:{“id”:”6801559716018″,”title”:”Shearwater 125″,”untranslatedTitle”:”Shearwater 125″,”vendor”:”Vibe”,”type”:”Kayaks”},”sku”:”VKB-21R-SW12502-GX”,”title”:”Galaxy”,”untranslatedTitle”:”Galaxy”},{“id”:”40224364363954″,”image”:{“src”:”//vibekayaks.com/cdn/shop/products/shearwater-125-686970.jpg?v=1684741786″},”price”:{“amount”:1699.99,”currencyCode”:”USD”},”product”:{“id”:”6801559716018″,”title”:”Shearwater 125″,”untranslatedTitle”:”Shearwater 125″,”vendor”:”Vibe”,”type”:”Kayaks”},”sku”:”VKB-21R-SW12502-RV”,”title”:”Raven”,”untranslatedTitle”:”Raven”}]},},function pageEvents(webPixelsManagerAPI) {webPixelsManagerAPI.publish(“page_viewed”);webPixelsManagerAPI.publish(“product_viewed”, {“productVariant”:{“id”:”40224364265650″,”image”:{“src”:”//vibekayaks.com/cdn/shop/products/shearwater-125-289099.jpg?v=1684741786″},”price”:{“amount”:1699.99,”currencyCode”:”USD”},”product”:{“id”:”6801559716018″,”title”:”Shearwater 125″,”untranslatedTitle”:”Shearwater 125″,”vendor”:”Vibe”,”type”:”Kayaks”},”sku”:”VKB-21R-SW12502-TS”,”title”:”Tsunami Red”,”untranslatedTitle”:”Tsunami Red”}});},”https://vibekayaks.com/cdn”,”browser”,”0.0.336″,”27de2f9bw3d786b6dpc46d0da3m3b2e6571″,[“web_pixels_shopify_pixel_validation”,”web_pixels_manager_runtime_asset_prefix”,”web_pixels_async_pixel_refactor”]);]]]]]]]]>]]]]]]>]]]]>]]> { } } }) ]]]]]]]]>]]]]]]>]]]]>]]>
OWN THE WATER
The most complete fishing kayak ever, the Shearwater 125’s unrivaled speed and stability is only exceeded by its limitless options for angling customization and its incomparable choices of pedal, power, or paddle acceleration – Vibe X-Drive pedal system, Bixpy Jet motor, Vibe Evolve paddle, or the unique combo of all three – at an unmatched price to build the fishing kayak of your dreams to fit any and all budgets.
The Shearwater 125 has been engineered from the water up to be the world’s most versatile and customizable fishing kayak. Ownership delivers a whole new level of pro angling performance and powerhouse personalization written in limitless tight fishing lines and uncompromised confidence with every cast.
California’s Proposition 65 entitles California consumers to special warnings for products that contain chemicals known to the state of California to cause cancer and birth defects or other reproductive harm if those products expose consumers to such chemicals above certain threshold levels. We care about our customers’ safety and hope that the information below helps with your buying decisions.
We are providing the following warning for products linked to this page:
WARNING: This product can expose you to chemicals which are known to the State of California to cause cancer. For more information go to www.P65Warnings.ca.gov.
As far as we know our kayaks have never caused cancer, but California says they may, so here ya go. BTW wear sunscreen, the sun actually does cause cancer.
Paddle. Pedal. Power.
The Shearwater comes ready to deploy 3 different propulsion methods including foot pedals and jet motor options.
Low Profile Hull Design
Spend more time fishing and less time fighting the wind with shallow freeboard designed for maximum efficiency.
Carry 4x More Gear
4 horizontal rod holders, 4 vertical rod holders, 4 tackle tray slots, under seat drawer — the Shearwater is designed to haul everything.
475 Pound Weight Capacity
Designed to carry you and plenty of gear, the Shearwater is unrivaled when it comes to speed, stability and weight capacity.
Optional Foot Pedal System
Upgrade to the optional Vibe X-Drive pedal drive for fast, smooth & easy foot pedal acceleration and stopping in an exceptionally powerful light-weight 7 lb drive.
Optional Bixpy Jet Motor
Adding the Bixpy Jet to the Bixpy-ready Gravity Rudder gives you a stealthy powerful punch at a weight of only 9 lbs including the battery pack for getting anywhere faster. Adventure further and breeze through currents and windy days.
Quick Paddle Park
The Shearwater Flex-Top Cover provides ample gear security for the spacious front cargo well, while also giving you a quick place to park your paddle or stakeout pole when switching from paddling to casting.
Versa Console
The Vibe Shearwater Versa Pod is versatility defined. Huge weather-tight storage locker, magnetic tackle tray for lures, tools & loose hooks, and quick-access bungee stow for out-of-your-way, but quick-to-grab items.
x4 Horizontal Rod Stagers
River and offshore fishermen know the importance of having rods horizontal, out of the way and securely fastened. The Shearwater 125 fits 4 7′ rods flush on the gunwale giving you plenty of casting, paddling and work space.
x4 Flush Mount Rod Holders
Tournament anglers need more gear at their reach and 4 rear flush mount rod holders keep your needed rods within quick grab distance. Rear two rod holders are angled downwards to keep rods out of the way of casting and branches.
x4 Tackle Tray Slots
Tackle changes are fast-and-easy with the four 3600 series tackle tray slots – two on either side of your chair – which can be secured under the bungee lashing and pulled out with just one hand.
Under Seat Storage
Keep your most useful tools and items out of the way and at your fingertips with the under seat storage drawer. Items are safe and securely stowed under a bungee-lashed mesh cover.
Stand Up Assist Strap Mount
Designed for standing — the Shearwater 125 comes fitted with a stainless steel stand assist strap mounting location; and attaching a stand assist strap is a snap.