Mitre Saws

Follow us for so much more
    \u003cli\u003eRotary dust-extraction attachment for connecting an extractor\u003c/li\u003e \u003cli\u003eDrawing cut for rapid, jolt-free operation and an outstanding cutting quality\u003c/li\u003e \u003cli\u003eEfficient electronics for constant pressure during sawing\u003c/li\u003e \u003cli\u003eDifferent chain cutters for a wide range of cuts\u003c/li\u003e\u003c/ul\u003e~Key Information","display":"Key Information","value":"\u003cul\u003e \u003cli\u003e200 mm cutting depth and 6.5 kg weight\u003c/li\u003e \u003cli\u003eIntegrated guide slot in the aluminium die-cast base plate for accurate cuts using the guide rail\u003c/li\u003e \u003cli\u003eWide application range for mitre cuts up to 60°\u003c/li\u003e \u003cli\u003eChain changed and tensioned without using tools\u003c/li\u003e \u003cli\u003eRotary dust-extraction attachment for connecting an extractor\u003c/li\u003e \u003cli\u003eDrawing cut for rapid, jolt-free operation and an outstanding cutting quality\u003c/li\u003e \u003cli\u003eEfficient electronics for constant pressure during sawing\u003c/li\u003e \u003cli\u003eDifferent chain cutters for a wide range of cuts\u003c/li\u003e\u003c/ul\u003e","fieldText":null,"originalValue":null,"isVariantAttribute":false,"displayInProductDetail":false,"displayInProductList":false,"groupDisplayOrder":0,"valueText":null,"compareAtPDP":false,"compareAtPLP":false},{"key":"global.modelnumber","customkey":"global.modelnumber~SSU200~Model Number","display":"Model Number","value":"SSU200","fieldText":null,"originalValue":null,"isVariantAttribute":false,"displayInProductDetail":false,"displayInProductList":false,"groupDisplayOrder":0,"valueText":null,"compareAtPDP":false,"compareAtPLP":false},{"key":"global.outerbox","customkey":"global.outerbox~1~Outer Box","display":"Outer Box","value":"1","fieldText":null,"originalValue":null,"isVariantAttribute":false,"displayInProductDetail":false,"displayInProductList":false,"groupDisplayOrder":0,"valueText":null,"compareAtPDP":false,"compareAtPLP":false},{"key":"global.pallet","customkey":"global.pallet~24~Pallet","display":"Pallet","value":"24","fieldText":null,"originalValue":null,"isVariantAttribute":false,"displayInProductDetail":false,"displayInProductList":false,"groupDisplayOrder":0,"valueText":null,"compareAtPDP":false,"compareAtPLP":false},{"key":"global.warrantydetail","customkey":"global.warrantydetail~This product is covered by Festool 1 year warranty, extended to 3 upon registration. This is valid from the date of purchase. This warranty covers all workmanship and material faults, this does not cover fair wear and tear, accidental or wilful damage, products that have been modified, accessories or consumables. For this to be activated it must be registered on Festool website within 30 days of purchase. Please note that not all tools are entitled to this extended warranty. For more information please visit the Festool website or visit the Warranty Information section on our website.~Warranty Detail","display":"Warranty Detail","value":"This product is covered by Festool 1 year warranty, extended to 3 upon registration. This is valid from the date of purchase. This warranty covers all workmanship and material faults, this does not cover fair wear and tear, accidental or wilful damage, products that have been modified, accessories or consumables. For this to be activated it must be registered on Festool website within 30 days of purchase. Please note that not all tools are entitled to this extended warranty. For more information please visit the Festool website or visit the Warranty Information section on our website.","fieldText":null,"originalValue":null,"isVariantAttribute":false,"displayInProductDetail":false,"displayInProductList":false,"groupDisplayOrder":0,"valueText":null,"compareAtPDP":false,"compareAtPLP":false},{"key":"sales.average","customkey":"sales.average~0.02~Sales Average","display":"Sales Average","value":"0.02","fieldText":null,"originalValue":null,"isVariantAttribute":false,"displayInProductDetail":false,"displayInProductList":false,"groupDisplayOrder":0,"valueText":null,"compareAtPDP":false,"compareAtPLP":false},{"key":"global.warranty","customkey":"global.warranty~3~Warranty","display":"Warranty","value":"3","fieldText":null,"originalValue":null,"isVariantAttribute":false,"displayInProductDetail":false,"displayInProductList":false,"groupDisplayOrder":0,"valueText":null,"compareAtPDP":false,"compareAtPLP":false}],"variantGroupCode":null,"recordId":"4e845438-c47a-ee11-b1c4-000d3a211cf7","name":"Festool SSU200 240V Sword Saw UNIVERS EB-Plus Systainer","slug":"products/festool-festool-ssu200-240v-sword-saw-univers-eb-plus-systainer-287383","stockCode":"287383","listPrice":{"minPrice":0,"minPriceWithoutTax":0,"maxPrice":0,"maxPriceWithoutTax":0,"currencyDecimalSeparator":",","currencyDigitsAfterDecimal":2,"currencySymbol":"£","formatted":{"withTax":"£0.00","withoutTax":"£0.00","tax":"£0.00"},"raw":{"withTax":0,"withoutTax":0,"tax":0}},"price":{"minPrice":1123,"minPriceWithoutTax":1123,"maxPrice":1123,"maxPriceWithoutTax":1123,"currencyDecimalSeparator":",","currencyDigitsAfterDecimal":2,"currencySymbol":"£","formatted":{"withTax":"£1,123.00","withoutTax":"£935.83","tax":"£187.17"},"raw":{"withTax":1123,"withoutTax":935.8333,"tax":187.1667}},"images":[{"name":"Image01","tag":null,"image":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200.jpg?fm=webp","imageTypes":null,"url":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200.jpg?fm=webp","mobileUrl":null,"alt":"festool_ssu200.jpg","link":null,"description":null,"subTitle":null,"linkType":null,"buttonText":null,"eventCategory":null,"eventAction":null,"gaValue":null,"isActive":false,"cssClass":null,"title":null,"displayOrder":0,"imageTags":[]},{"name":"Image02","tag":null,"image":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_a.jpg?fm=webp","imageTypes":null,"url":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_a.jpg?fm=webp","mobileUrl":null,"alt":"festool_ssu200_a.jpg","link":null,"description":null,"subTitle":null,"linkType":null,"buttonText":null,"eventCategory":null,"eventAction":null,"gaValue":null,"isActive":false,"cssClass":null,"title":null,"displayOrder":0,"imageTags":[]},{"name":"Image03","tag":null,"image":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_b.jpg?fm=webp","imageTypes":null,"url":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_b.jpg?fm=webp","mobileUrl":null,"alt":"festool_ssu200_b.jpg","link":null,"description":null,"subTitle":null,"linkType":null,"buttonText":null,"eventCategory":null,"eventAction":null,"gaValue":null,"isActive":false,"cssClass":null,"title":null,"displayOrder":0,"imageTags":[]},{"name":"Image04","tag":null,"image":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_c.jpg?fm=webp","imageTypes":null,"url":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_c.jpg?fm=webp","mobileUrl":null,"alt":"festool_ssu200_c.jpg","link":null,"description":null,"subTitle":null,"linkType":null,"buttonText":null,"eventCategory":null,"eventAction":null,"gaValue":null,"isActive":false,"cssClass":null,"title":null,"displayOrder":0,"imageTags":[]},{"name":"Image05","tag":null,"image":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_d.jpg?fm=webp","imageTypes":null,"url":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_d.jpg?fm=webp","mobileUrl":null,"alt":"festool_ssu200_d.jpg","link":null,"description":null,"subTitle":null,"linkType":null,"buttonText":null,"eventCategory":null,"eventAction":null,"gaValue":null,"isActive":false,"cssClass":null,"title":null,"displayOrder":0,"imageTags":[]},{"name":"Image06","tag":null,"image":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_e.jpg?fm=webp","imageTypes":null,"url":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200_e.jpg?fm=webp","mobileUrl":null,"alt":"festool_ssu200_e.jpg","link":null,"description":null,"subTitle":null,"linkType":null,"buttonText":null,"eventCategory":null,"eventAction":null,"gaValue":null,"isActive":false,"cssClass":null,"title":null,"displayOrder":0,"imageTags":[]}],"image":"https://www.imagedelivery.space/ffx/products/f/festool_ssu200.jpg?fm=webp","itemType":1,"shortDescription":"This Festool SSU 200 Sword saw UNIVERS EB-Plus 230V Systainer 576564, comes with a universal saw chain, chain oil, 7.5m power cord, protective cover and systainer case. Ideal for use in the workshop this powerful 240V saw is a compact machine","subscriptionPlanType":0,"groupName":null,"relatedType":null,"brand":"Festool","brandSlug":null,"subBrand":"","sku":"576564","priceFrom":{"minPrice":1123,"minPriceWithoutTax":1123,"maxPrice":1123,"maxPriceWithoutTax":1123,"currencyDecimalSeparator":",","currencyDigitsAfterDecimal":2,"currencySymbol":"£","formatted":{"withTax":"£1,123.00","withoutTax":"£935.83","tax":"£187.17"},"raw":{"withTax":1123,"withoutTax":935.8333,"tax":187.1667}},"classification":{"categoryId":"9e4c327f-35f3-442f-bdd1-3b1d366a03f9","categoryCode":"9e4c327f-35f3-442f-bdd1-3b1d366a03f9","mainCategoryId":"6c678eb7-f44b-478c-b401-0275b1bfc852","mainCategoryName":"Tools","category":"Mitre Saws","itemTypeCode":null,"itemType":"1","attributeSet":"Blowers","attributeSetId":"2bb38387-ea17-48ca-848e-b0a6008d821d"},"currentStock":3,"description":"\u003cbr /\u003e\u003cbr /\u003e\u003ch2\u003eFestool Sword saw UNIVERS EB-Plus 230V Systainer 576564 SSU 200\u003c/h2\u003e\u003cp\u003eThis Festool SSU 200 Sword saw UNIVERS EB-Plus 230V Systainer 576564, comes with a universal saw chain, chain oil, 7.5m power cord, protective cover and systainer case. Ideal for use in the workshop this powerful 240V saw is a compact machine, weighing just 6.5kg with a 200mm cutting depth.\u003cbr /\u003eWhen used with a guide rail (not supplied), this saw cuts with an effortless splinter-free, straight cut, with a rapid, jolt-free operation, making this a useful corded tool for carpenters in woodworking workshops or on-site cutting such as wooden fibreboards, PUR, polystyrene and also Chop, mitre, rip and jack-rafter cuts in wood.\u003c/p\u003e\u003cbr /\u003e\u003ch4\u003e Features and Benefits:\u003c/h4\u003e\u003cul\u003e \u003cli\u003e200 mm cutting depth and 6.5 kg weight\u003c/li\u003e \u003cli\u003eIntegrated guide slot in the aluminium die-cast base plate for accurate cuts using the guide rail\u003c/li\u003e \u003cli\u003eWide application range for mitre cuts up to 60°\u003c/li\u003e \u003cli\u003eChain changed and tensioned without using tools\u003c/li\u003e \u003cli\u003eRotary dust-extraction attachment for connecting an extractor\u003c/li\u003e \u003cli\u003eDrawing cut for rapid, jolt-free operation and an outstanding cutting quality\u003c/li\u003e \u003cli\u003eEfficient electronics for constant pressure during sawing\u003c/li\u003e \u003cli\u003eDifferent chain cutters for a wide range of cuts\u003c/li\u003e\u003c/ul\u003e\u003cbr /\u003e\u003ch4\u003eTechnical Specification:\u003c/h4\u003ePower consumption - 1 600 W\u003cbr /\u003eIdle engine speed - 4 600 min?¹\u003cbr /\u003eCutting depth 0°, 90°/45°/60° - 200/140/100 mm\u003cbr /\u003eMitre cuts - 0 - 60 °\u003cbr /\u003eCutting speed (idling) - 10.60 m/s\u003cbr /\u003eBlade position - 0 - 10 °\u003cbr /\u003eCable length - 7.00m\u003cbr /\u003eProduct weight without accessories - 7.10 kg\u003cbr /\u003eTransport weight incl. accessories - 10.90 kg\u003cbr /\u003eDrive type – Mains\u003cbr /\u003eSawing: Total vibration average, Ah - 3.00 m/s²\u003cbr /\u003eSawing: Uncertainty (vibration) K - 1.50 m/s²\u003cbr /\u003eSawing: A-weighted sound power level, LWA - 102.00 dB(A)\u003cbr /\u003eSawing: Standards series EN – 62841\u003cbr /\u003eSawing: Uncertainty (noise) K - 3.00 dB\u003cbr /\u003eSawing: A-weighted sound pressure level, LpA - 91.00 dB(A)\u003cbr /\u003e\u003cbr /\u003e\u003ch4\u003eSupplied With:\u003c/h4\u003e1 x Festool SSU 200 Sword Saw 230V\u003cbr /\u003e1 x Universal saw chain SC 3/8\" 91 U-39E\u003cbr /\u003e1 x chain oil 250ml\u003cbr /\u003e1 x 7.5 m power cord\u003cbr /\u003e1 x Protective cover\u003cbr /\u003e1 x Systainer SYS3 M 437\u003cbr /\u003e\u003cbr /\u003e","fulfilFromWarehouse":true,"fulfilFromStore":false,"fulfilFromSupplier":false,"deliveryMessage":null,"stockAvailabilityMessage":null,"trending":false,"bestSeller":false,"onSale":false,"newLaunch":false,"exclusive":false,"extendedDescription":null,"variantProductsMinimal":null,"variantProductsAttributeMinimal":null,"isVisible":true,"isActive":true,"isMasterStock":true,"hasVariant":false,"promotions":null,"preOrder":{"isEnabled":false,"launchDateTime":"1900-01-01T00:00:00"},"rating":0,"reviewCount":0,"groupNameList":null,"fulfilFromWarehouseDays":1,"fulfilFromSupplierDays":21,"fulfilFromInstoreDays":0,"cutOffTime":null,"supplierCutoffTime":null,"deliveryETA":null}],"filters":[],"groups":null,"snippets":[{"name":"fresh_relevance_data_push_event_1","type":"Javascript","placement":"BodyEndHtmlTagBefore","content":"\u003cscript\u003e\n var isBasketUpdateCaptured = false, isCheckoutCaptured = false, isPDPCaptured = false, isPLPCaptured = false, isPDPPageLoaded = false\n\n function FR_UserEmail() {\n if (window?.localStorage) {\n try {\n var u = JSON.parse(window.localStorage.getItem('user'))\n return u?.userEmail\n } catch (error) {\n }\n }\n return \"\"\n }\n \n function FR_Capture_Data(states) {\n\n if (states?.length) {\n\n // ---UserLoggedInEvent---\n var productVariantEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_userLoggedIn') || []\n if (productVariantEvData?.length) {\n var productVariantData = productVariantEvData[productVariantEvData?.length - 1]?.data\n if (productVariantData) {\n console.log('UserLoggedInEventEvent', productVariantData)\n //debugger\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"userLoggedIn\", productVariantData, { \"sendBeacon\": true });\n } else {\n console.log('UserLoggedInEventEvent: FR Tracker not loaded')\n }\n }\n }\n\n // ---CartUpdateEvent---\n var basketUpdateEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_cartUpdate') || []\n if (/*!isBasketUpdateCaptured \u0026\u0026*/ basketUpdateEvData?.length) {\n //isBasketUpdateCaptured = true\n var basketUpdateData = basketUpdateEvData[basketUpdateEvData?.length - 1]?.data\n if (basketUpdateData) {\n console.log('CartUpdateEvent', basketUpdateData)\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"cartUpdate\", basketUpdateData, { \"sendBeacon\": true, inPage: false });\n } else {\n console.log('CartUpdateEvent: FR Tracker not loaded')\n }\n }\n }\n\n // ---ProductBrowseEvent---\n var productEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_productBrowse') || []\n if (!isPDPCaptured \u0026\u0026 productEvData?.length) {\n isPDPCaptured = true\n var productData = productEvData[productEvData?.length - 1]?.data\n if (productData) {\n console.log('ProductBrowseEvent', productData)\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"productBrowse\", productData, { \"sendBeacon\": true });\n } else {\n console.log('ProductBrowseEvent: FR Tracker not loaded')\n }\n }\n }\n\n // ---ProductVariantSelectedEvent---\n var productVariantEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_productVariantSelected') || []\n if (productVariantEvData?.length) {\n var productVariantData = productVariantEvData[productVariantEvData?.length - 1]?.data\n if (productVariantData) {\n console.log('ProductVariantSelectedEvent', productVariantData)\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"productVariantSelected\", productVariantData, { \"sendBeacon\": true });\n } else {\n console.log('ProductVariantSelectedEvent: FR Tracker not loaded')\n }\n }\n }\n\n // ---ProductListEvent---\n var productListEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_productList') || []\n if (!isPLPCaptured \u0026\u0026 productListEvData?.length) {\n var productListData = productListEvData[productListEvData?.length - 1]?.data\n if (productListData?.length) {\n isPLPCaptured = true\n console.log('ProductListEvent', productListData)\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"productList\", productListData, { \"sendBeacon\": true })\n } else {\n console.log('ProductListEvent: FR Tracker not loaded')\n }\n }\n }\n\n // ---CheckoutEvent---\n //var isCheckoutPage = window.location.pathname.startsWith('/checkout')\n var checkoutEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_checkout') || []\n if (!isCheckoutCaptured \u0026\u0026 checkoutEvData?.length) {\n var checkoutData = checkoutEvData[checkoutEvData?.length - 1]?.data\n if (checkoutData?.products?.length) {\n isCheckoutCaptured = true\n console.log('CheckoutEvent', {...checkoutData, extra_data: { userEmail: FR_UserEmail() }})\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"checkout\", {...checkoutData, extra_data: { userEmail: FR_UserEmail() }}, { \"sendBeacon\": true })\n } else {\n console.log('CheckoutEvent: FR Tracker not loaded')\n }\n }\n }\n\n // ---PurchaseCompleteEvent---\n var purchaseCompleteEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_purchase') || []\n if (purchaseCompleteEvData?.length) {\n var purchaseCompleteData = purchaseCompleteEvData[purchaseCompleteEvData?.length - 1]\n if (purchaseCompleteData?.orderNumber) {\n console.log('PurchaseCompleteEvent', purchaseCompleteData)\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"purchaseComplete\", { orderNumber: purchaseCompleteData?.orderNumber }, { \"sendBeacon\": true })\n } else {\n console.log('PurchaseCompleteEvent: FR Tracker not loaded')\n }\n }\n }\n }\n }\n\n function FR_Capture_PDP_Load(states) {\n\n if (document.location.pathname.startsWith('/products/') \u0026\u0026 !isPDPPageLoaded \u0026\u0026 !isPDPCaptured) {\n //isPDPPageLoaded = true\n\n if (states?.length) {\n\n // ---ProductBrowseEvent---\n var productEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_productBrowse') || []\n if (productEvData?.length) {\n isPDPPageLoaded = true\n var productData = productEvData[productEvData?.length - 1]?.data\n if (productData) {\n console.log('ProductBrowseEvent', productData)\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"productBrowse\", productData, { \"sendBeacon\": true });\n } else {\n console.log('ProductBrowseEvent: FR Tracker not loaded')\n }\n }\n }\n }\n }\n }\n\n function FR_Capture_Checkout_Load(states) {\n\n if (document.location.pathname.startsWith('/checkout') \u0026\u0026 !isCheckoutCaptured) {\n\n if (states?.length) {\n\n // ---CheckoutEvent---\n //var isCheckoutPage = window.location.pathname.startsWith('/checkout')\n var checkoutEvData = states?.filter((x) =\u003e x?.eventName == 'fresh_relevance_checkout') || []\n if (!isCheckoutCaptured \u0026\u0026 checkoutEvData?.length) {\n var checkoutData = checkoutEvData[checkoutEvData?.length - 1]?.data\n if (checkoutData?.products?.length) {\n isCheckoutCaptured = true\n console.log('CheckoutEvent', checkoutData)\n if (typeof $TB !== 'undefined') {\n $TB.hooks.fireEvent(\"checkout\", checkoutData, { \"sendBeacon\": true })\n } else {\n console.log('CheckoutEvent: FR Tracker not loaded')\n }\n }\n }\n }\n }\n }\n\n function FR_DL_Listener() {\n /*if (document.location.origin.indexOf('ffx.co.uk') === -1) {\n return\n }*/\n\n (function () {\n var oldPush = window.dataLayer.push;\n window.dataLayer.push = function () {\n var states = [].slice.call(arguments, 0);\n\n FR_Capture_Data(states)\n\n return oldPush.apply(window.dataLayer, states);\n }\n\n setTimeout(() =\u003e {\n if (window?.dataLayer) {\n FR_Capture_PDP_Load(window?.dataLayer)\n //FR_Capture_Checkout_Load(window?.dataLayer)\n }\n }, 500);\n })()\n }\n\n function FR_DL_InitListener() {\n var handle = null\n\n handle = setInterval(() =\u003e {\n\n if (typeof $TB !== 'undefined') {\n if (handle) {\n clearInterval(handle)\n }\n\n FR_DL_Listener()\n //FR_Hooks_Fire_Interceptor()\n }\n }, 500)\n }\n\n if (document.readyState !== 'loading') {\n FR_DL_InitListener()\n }\n else {\n document.addEventListener('DOMContentLoaded', FR_DL_InitListener)\n }\n\n /*document.addEventListener('popstate', () =\u003e {\n isBasketUpdateCaptured = false, isCheckoutCaptured, isPDPCaptured = false, isPLPCaptured = false\n })*/\n document.addEventListener('beforeunload', () =\u003e {\n isBasketUpdateCaptured = false, isCheckoutCaptured = false, isPDPCaptured = false, isPLPCaptured = false\n })\n\u003c/script\u003e","excludedUrl":null,"microsites":[]},{"name":"freshrelavance_pageChange","type":"Javascript","placement":"BodyStartHtmlTagAfter","content":"\u003cscript type=\"text/javascript\"\u003e\n var isPageLoadCaptured = false\n function fireFRPageChangeEvent() {\n\n if (typeof $TB !== 'undefined') {\n\n if (!isPageLoadCaptured) {\n isPageLoadCaptured = true\n console.log('PageChangeEvent', window?.location?.href)\n $TB.hooks.fireEvent(\"pageChange\", null, { \"sendBeacon\": true })\n }\n } else {\n console.log('PageChangeEvent: FR Tracker not loaded')\n }\n\n }\n\n function FR_InitPageChangeListener() {\n var pcHandle = null\n\n pcHandle = setInterval(() =\u003e {\n\n if (typeof $TB !== 'undefined') {\n if (pcHandle) {\n clearInterval(pcHandle)\n }\n\n fireFRPageChangeEvent()\n }\n }, 500)\n }\n\n if (document.readyState !== 'loading') {\n FR_InitPageChangeListener()\n }\n else {\n document.addEventListener('DOMContentLoaded', FR_InitPageChangeListener)\n }\n\n window.addEventListener('popstate', () =\u003e {\n isPageLoadCaptured = false\n })\n\u003c/script\u003e","excludedUrl":null,"microsites":[]},{"name":"fresh_relavance_tracking_head","type":"Javascript","placement":"BodyStartHtmlTagAfter","content":"\u003cscript async src=\"//d81mfvml8p5ml.cloudfront.net/if5zuzlu.js\"\u003e\u003c/script\u003e","excludedUrl":null,"microsites":[]},{"name":"Shopbox Body Script","type":"Javascript","placement":"BodyEndHtmlTagBefore","content":"\u003cscript type=\"text/javascript\"\u003e\n\nfunction getShopBoxBodyCss(pathname) {\n if (pathname) {\n\t\tvar SHOPBOX_BODY_CSS = sbClasses()\n var bodyClass = '';\n if (pathname === '/') {\n bodyClass = SHOPBOX_BODY_CSS.find((x) =\u003e x?.type === 'home')?.class || EmptyString;\n } else if (pathname?.includes('/category') || pathname?.includes('/collection') || pathname?.includes('/brands/shop-all')) {\n bodyClass = SHOPBOX_BODY_CSS.find((x) =\u003e x?.type === 'categoryOrCollection')?.class || EmptyString;\n } else if (pathname?.includes('/product')) {\n bodyClass = SHOPBOX_BODY_CSS.find((x) =\u003e x?.type === 'pdp')?.class || EmptyString;\n } else if (pathname?.includes('/search')) {\n bodyClass = SHOPBOX_BODY_CSS.find((x) =\u003e x?.type === 'search')?.class || EmptyString;\n } else if (pathname?.includes('/cart')) {\n bodyClass = SHOPBOX_BODY_CSS.find((x) =\u003e x?.type === 'cart')?.class || EmptyString;\n } else if (pathname?.includes('/thank-you')) {\n bodyClass = SHOPBOX_BODY_CSS.find((x) =\u003e x?.type === 'orderConfirmation')?.class || EmptyString;\n }\n return bodyClass\n }\n return ''\n}\n\nfunction applyElementCss(element, classNames) {\n if (element \u0026\u0026 classNames?.length) {\n if (element.classList) {\n if (element?.classList?.length) {\n element?.classList?.forEach((className) =\u003e {\n element?.classList?.remove(className);\n })\n }\n\n classNames?.forEach((className) =\u003e {\n element?.classList?.add(className);\n })\n }\n }\n}\n\nfunction updateBodyCss() {\n//debugger\n var pathname = document.location.pathname\n var bodyCss = getShopBoxBodyCss(pathname) || ''\n var SHOPBOX_BODY_CSS = sbClasses()\n var classes = SHOPBOX_BODY_CSS?.map((x) =\u003e x?.class) || []\n var body = document.querySelector('body')\n try {\n if (body) {\n const bodyClassList = Array.from(body?.classList)\n let applicableCss = bodyClassList?.filter((x) =\u003e !classes.includes(x))\n if (bodyCss) {\n applicableCss = [...applicableCss, bodyCss]\n }\n applyElementCss(body, applicableCss)\n }\n\t\t\t\t\n\t\t\t\tif (!pathname.startsWith('/thank-you')) {\n\t\t\t\t var orderNoDiv = document.querySelector('div[data-bc-shopbox]')\n\t\t\t\t\tif (orderNoDiv) {\n\t\t\t\t\t\torderNoDiv.remove()\n\t\t\t\t\t}\n\t\t\t\t}\n } catch (error) {\n }\n \n let currentTitle = document.title;\nconst observer = new MutationObserver(function (mutations) {\n if (document.title !== currentTitle) {\n //console.log('title changed', document.title);\n //console.log('location also changed', document.location.href);\n // here you can add your own code\n currentTitle = document.title;\n\t\n\tsetTimeout(() =\u003e updateBodyCss, 20)\n }\n});\n\nconst config = { subtree: true, childList: true };\nobserver.observe(document, config);\n\nwindow.addEventListener('beforeunload', function (event) {\n observer.disconnect();\n});\n}\n\nfunction sbClasses() {\nreturn [\n { type: 'home', class: 'sb-homepage' },\n { type: 'categoryOrCollection', class: 'sb-collection' },\n { type: 'pdp', class: 'sb-product-details' },\n { type: 'search', class: 'sb-search-results' },\n { type: 'cart', class: 'sb-cart' },\n { type: 'orderConfirmation', class: 'sb-order-confirmation' },\n]\n}\n\n if (document.readyState !== 'loading') {\n updateBodyCss()\n }\n else {\n document.addEventListener('DOMContentLoaded', updateBodyCss)\n }\n\n\u003c/script\u003e","excludedUrl":null,"microsites":[]},{"name":"Shopbox Load Script","type":"Javascript","placement":"BodyEndHtmlTagBefore","content":"\u003cscript\u003e\n function loadShopBox() {\n var shopboxElem = document.querySelector('shopbox-app-v2')\n if (shopboxElem) {\n try {\n shopboxElem.parentElement.removeChild(shopboxElem)\n } catch (error) {\n }\n }\n\n var sbid = '0xOR4GT7prpSlj6SMM9g';\n var t = document.createElement(\"shopbox-app-v2\"),\n s = document.createElement(\"script\");\n t.setAttribute('cid', sbid); \n s.type = \"text/javascript\"; \n\n try {\n t.setAttribute('data-t', `${Date.now()}`)\n } catch (error) {\n }\n s.async = !0; s.src = \"https://widget.shopbox.ai/js/app.js\";\n document.getElementsByTagName(\"body\")[0].append(t);\n document.getElementsByTagName(\"head\")[0].append(s);\n }\n\n if (document.readyState !== 'loading') {\n loadShopBox()\n }\n else {\n document.addEventListener('DOMContentLoaded', loadShopBox)\n }\n \n\u003c/script\u003e","excludedUrl":null,"microsites":[]},{"name":"Tradedoubler Landing Page","type":"Javascript","placement":"BodyEndHtmlTagBefore","content":"\u003c!-- Sales Script --\u003e\n\u003c!-- Start Tradedoubler Landing Page Tag Insert on all landing pages to handle first party cookie--\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\t(function(i, s, o, g, r, a, m) {\n \t i['TDConversionObject'] = r;\n \t i[r] = i[r] || function() {\n \t (i[r].q = i[r].q || []).push(arguments)\n \t }, i[r].l = 1 * new Date();\n \t a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n \t a.async = 1;\n \t a.src = g;\n \t m.parentNode.insertBefore(a, m)\n \t })(window, document, 'script', 'https://svht.tradedoubler.com/tr_sdk.js?org=2195094', 'tdconv'); \n\n var cookies = Object.fromEntries(document.cookie.split('; ').map(v=\u003ev.split(/=(.*)/s).map(decodeURIComponent)))\n var selection = {}\n try {\n selection = cookies?.selection ? JSON.parse(cookies?.selection) || {} : {}\n } catch(e) {\n // Do nothing\n }\n\t tdconv('cookie-consent', [selection?.analytics || selection?.advertisement || false]); \n\u003c/script\u003e\n\u003cscript src=\"https://swrap.tradedoubler.com/wrap?id=23876\"async\u003e\u003c/script\u003e","excludedUrl":null,"microsites":[]},{"name":"Organisational Schema","type":"Javascript","placement":"FooterBefore","content":"\u003cscript type=\"application/ld+json\"\u003e\n{\n\t\"@context\": \"http://schema.org\",\n\t\"@type\": \"Organization\",\n\t\"name\": \"ffx\",\n \"legalName\" : \"ffx Ltd\",\n \"url\": \"https://www.ffx.com\",\n\t\"logo\": \"https://ffx.bettercommerce.tech/assets/images/logo.svg\",\n\t\"contactPoint\": {\n \"@type\": \"ContactPoint\",\n \"contactType\": \"customer services\",\n \"telephone\": \"[07312 277226]\",\n \"email\": \"customerservices@ffx.co.uk\"},\n\t\"sameAs\": [\n \" https://www.facebook.com/ffxofficial/\",\n \" https://twitter.com/_ffx/\",\n \" https://www.instagram.com/ffxofficial/\",\n \"https://www.youtube.com/user/ffxfashion/featured\"],\n\t\"address\": {\n\t\t\"@type\": \"PostalAddress\",\n\t\t\"streetAddress\": \"FFX Head Office, Dyna House, Lympne Industrial Estate\",\n\t\t\"addressLocality\": \"Otterpool Lane, Lympne Kent \",\n\t\t\"postalCode\": \"CT21 4LR \",\n\t\t\"addressCountry\": \"United Kingdom\"\n\t}\n}\n\u003c/script\u003e","excludedUrl":null,"microsites":[]}]}},"__N_SSG":true},"page":"/category/[category]/[...subcategory]","query":{"category":"tools","subcategory":["saws","mitre-saws"]},"buildId":"LK6nTOW4HmTa-9ZLXHIYS","isFallback":false,"dynamicIds":[71712,85816,42410,84711,68714],"gsp":true,"appGip":true,"locale":"en-GB","locales":["en-GB","es"],"defaultLocale":"en-GB","scriptLoader":[]}