{"product_id":"cauda-fish-5","title":"Cauda Fish 5","description":"\u003cdiv id=\"ff-configurator-wrapper\" style=\"width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;max-width:100vw;\"\u003e\n  \u003ciframe id=\"ff-configurator\" style=\"width:100%;height:900px;border:none;border-radius:0;display:block;\" frameborder=\"0\" title=\"Board Configurator\"\u003e\u003c\/iframe\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var CONFIGURATOR_URL = \"https:\/\/shapersportal.app\/configurator?shape_id=6a3880a2bab6d704901c8f67\u0026v=1782197672878\";\n  var DRAFT_ORDER_URL = \"https:\/\/shapersportal.app\/functions\/createDraftOrder\";\n  var SHAPE_ID = \"6a3880a2bab6d704901c8f67\";\n  var submitting = false;\n\n  \/\/ Resolve the buyer's SELECTED country from Shopify's storefront (the\n  \/\/ currency\/country dropdown), so the configurator prices for the country the\n  \/\/ buyer picked rather than their geo-IP. Shopify exposes the active country\n  \/\/ on window.Shopify.country (ISO-2). Fall back to nothing → the configurator\n  \/\/ uses geo-IP. Append it as a ?country= param on the iframe src.\n  function buyerCountry(){\n    try { if (window.Shopify \u0026\u0026 window.Shopify.country) return String(window.Shopify.country).toUpperCase(); } catch(e){}\n    return '';\n  }\n  (function(){\n    var f = document.getElementById('ff-configurator');\n    if (f){\n      var c = buyerCountry();\n      f.src = CONFIGURATOR_URL + (c ? '\u0026country=' + encodeURIComponent(c) : '');\n    }\n  })();\n\n  window.addEventListener('message', function(event){\n    var data = event.data || {};\n    if (data.type === 'ff_add_to_cart'){\n      if (submitting) return;\n      submitting = true;\n      fetch(DRAFT_ORDER_URL, {\n        method: 'POST',\n        headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' },\n        body: JSON.stringify({\n          shape_id: SHAPE_ID,\n          config: data.config || {},\n          deposit_price: data.price,\n          total_price: data.totalPrice,\n          currency: data.currency,\n          country_code: data.country_code\n        })\n      }).then(function(r){\n        return r.json().then(function(body){ return { ok: r.ok, body: body }; });\n      }).then(function(res){\n        submitting = false;\n        if (!res.ok || !res.body || !res.body.invoice_url){\n          throw new Error((res.body \u0026\u0026 res.body.error) || 'Could not start checkout');\n        }\n        window.top.location.href = res.body.invoice_url;\n      }).catch(function(err){\n        submitting = false;\n        alert(err.message || 'Could not start checkout. Please try again.');\n      });\n    }\n    if (data.type === 'ff_resize'){\n      var f = document.getElementById('ff-configurator');\n      if (f \u0026\u0026 data.height){\n        f.style.height = data.height + 'px';\n        f.style.minHeight = data.height + 'px';\n        \/\/ Make sure no ancestor clips the grown iframe.\n        var p = f.parentElement;\n        while (p \u0026\u0026 p !== document.body){\n          p.style.overflow = 'visible';\n          p.style.maxHeight = 'none';\n          p = p.parentElement;\n        }\n      }\n    }\n  });\n})();\n\u003c\/script\u003e","brand":"Verdure Surf","offers":[{"title":"Default Title","offer_id":46130997166216,"sku":null,"price":0.0,"currency_code":"NZD","in_stock":true}],"url":"https:\/\/www.flexframe.tech\/products\/cauda-fish-5","provider":"Verdure Surf","version":"1.0","type":"link"}