www.maxoutil.com
Open in
urlscan Pro
2606:4700:10::ac43:97f
Public Scan
Submitted URL: https://maxoutils.ch/
Effective URL: https://www.maxoutil.com/
Submission: On December 01 via api from CH — Scanned from CH
Effective URL: https://www.maxoutil.com/
Submission: On December 01 via api from CH — Scanned from CH
Form analysis
23 forms found in the DOMPOST https://www.maxoutil.com/pslogin/account/loginPost/
<form style="display:none;" class="form" action="https://www.maxoutil.com/pslogin/account/loginPost/" method="post" id="pslogin-login-form">
<input id="pslogin-login-referer" name="referer" type="hidden" value="">
<input id="pslogin-login-action" name="auth_action" type="hidden" value="">
<input id="pslogin-login-submit" type="submit" value="">
</form>
Name: pslogin_bind —
<form name="pslogin_bind" id="pslogin_bind">
<fieldset class="fieldset">
<div class="fieldset-wrapper">
<template x-if="5 === step">
<div class="field mb-3">
<label class="label mb-0 text-dark-grey" for="pslogin_bind_email">E-mail</label>
<div class="control">
<input type="email" id="pslogin_bind_email" name="pslogin_email" autocomplete="email" value="" title="Your Email Address" class="form-input required-entry w-full" data-validate="{"required": true}" aria-required="true"
required="">
</div>
</div>
</template>
<template x-if="1 === step || 2 === step">
<div class="field mb-3">
<label class="label mb-0 text-dark-grey" for="pslogin_bind_email">E-mail</label>
<div class="control">
<input type="email" id="pslogin_bind_email" name="pslogin_email" autocomplete="email" :value="customer.email" x-model="customer.email" title="Your Email Address" :disabled="2 === step" class="form-input required-entry w-full"
data-validate="{"required": true}" aria-required="true" required="">
</div>
</div>
</template>
<template x-if="2 === step || 5 === step">
<div class="field mb-3">
<label class="label mb-0 text-dark-grey" for="pslogin_bind_pass">Mot de passe</label>
<div class="control">
<input id="pslogin_bind_pass" type="password" name="pslogin_pass" title="Mot de passe" class="form-input w-full" data-validate="{"required": true, "password": true, "minlength": 8}" autocomplete="off"
aria-required="true" aria-autocomplete="list" required="">
</div>
</div>
</template>
</div>
</fieldset>
<template x-if="3 !== step">
<div class="button-wrapper flex flex-wrap items-center justify-between gap-3">
<template x-if="1 === step || 2 === step || 5 === step">
<button class="action primary pslogin-bind-step-5 btn btn-primary" type="button" @click="loginDependOnStep">
<span>S’identifier</span>
</button>
</template>
<template x-if="2 === step || 5 === step">
<div class="secondary">
<a class="text-primary-1 hover:text-black transition-all underline" target="_blank" :href="forgotPassUrl">
<span>Mot de passe oublié?</span>
</a>
</div>
</template>
<template x-if="4 === step">
<div class="p-4 flex gap-x-4 w-full border-t border-light-grey-2">
<button class="btn-secondary-2 w-full" type="button" @click="setFifthStep()">
<span>Oui, j'ai déjà un compte</span>
</button>
<button class="btn w-full btn-secondary-1 register" type="button" @click="registerWithEmail">
<span>Non, je veux créer un nouveau compte</span>
</button>
</div>
</template>
</div>
</template>
</form>
Name: pslogin_bind —
<form name="pslogin_bind" id="pslogin_bind">
<fieldset class="fieldset">
<div class="fieldset-wrapper">
<template x-if="5 === step">
<div class="field mb-3">
<label class="label mb-0 text-dark-grey" for="pslogin_bind_email">E-mail</label>
<div class="control">
<input type="email" id="pslogin_bind_email" name="pslogin_email" autocomplete="email" value="" title="Your Email Address" class="form-input required-entry w-full" data-validate="{"required": true}" aria-required="true"
required="">
</div>
</div>
</template>
<template x-if="1 === step || 2 === step">
<div class="field mb-3">
<label class="label mb-0 text-dark-grey" for="pslogin_bind_email">E-mail</label>
<div class="control">
<input type="email" id="pslogin_bind_email" name="pslogin_email" autocomplete="email" :value="customer.email" x-model="customer.email" title="Your Email Address" :disabled="2 === step" class="form-input required-entry w-full"
data-validate="{"required": true}" aria-required="true" required="">
</div>
</div>
</template>
<div class="field mb-3">
<label class="label mb-0 text-dark-grey" for="pslogin_bind_email">E-mail</label>
<div class="control">
<input type="email" id="pslogin_bind_email" name="pslogin_email" autocomplete="email" :value="customer.email" x-model="customer.email" title="Your Email Address" :disabled="2 === step" class="form-input required-entry w-full"
data-validate="{"required": true}" aria-required="true" required="">
</div>
</div>
<template x-if="2 === step || 5 === step">
<div class="field mb-3">
<label class="label mb-0 text-dark-grey" for="pslogin_bind_pass">Mot de passe</label>
<div class="control">
<input id="pslogin_bind_pass" type="password" name="pslogin_pass" title="Mot de passe" class="form-input w-full" data-validate="{"required": true, "password": true, "minlength": 8}" autocomplete="off"
aria-required="true" aria-autocomplete="list" required="">
</div>
</div>
</template>
</div>
</fieldset>
<template x-if="3 !== step">
<div class="button-wrapper flex flex-wrap items-center justify-between gap-3">
<template x-if="1 === step || 2 === step || 5 === step">
<button class="action primary pslogin-bind-step-5 btn btn-primary" type="button" @click="loginDependOnStep">
<span>S’identifier</span>
</button>
</template>
<template x-if="2 === step || 5 === step">
<div class="secondary">
<a class="text-primary-1 hover:text-black transition-all underline" target="_blank" :href="forgotPassUrl">
<span>Mot de passe oublié?</span>
</a>
</div>
</template>
<template x-if="4 === step">
<div class="p-4 flex gap-x-4 w-full border-t border-light-grey-2">
<button class="btn-secondary-2 w-full" type="button" @click="setFifthStep()">
<span>Oui, j'ai déjà un compte</span>
</button>
<button class="btn w-full btn-secondary-1 register" type="button" @click="registerWithEmail">
<span>Non, je veux créer un nouveau compte</span>
</button>
</div>
</template>
</div>
</template>
<div class="button-wrapper flex flex-wrap items-center justify-between gap-3">
<template x-if="1 === step || 2 === step || 5 === step">
<button class="action primary pslogin-bind-step-5 btn btn-primary" type="button" @click="loginDependOnStep">
<span>S’identifier</span>
</button>
</template><button class="action primary pslogin-bind-step-5 btn btn-primary" type="button" @click="loginDependOnStep">
<span>S’identifier</span>
</button>
<template x-if="2 === step || 5 === step">
<div class="secondary">
<a class="text-primary-1 hover:text-black transition-all underline" target="_blank" :href="forgotPassUrl">
<span>Mot de passe oublié?</span>
</a>
</div>
</template>
<template x-if="4 === step">
<div class="p-4 flex gap-x-4 w-full border-t border-light-grey-2">
<button class="btn-secondary-2 w-full" type="button" @click="setFifthStep()">
<span>Oui, j'ai déjà un compte</span>
</button>
<button class="btn w-full btn-secondary-1 register" type="button" @click="registerWithEmail">
<span>Non, je veux créer un nouveau compte</span>
</button>
</div>
</template>
</div>
</form>
GET https://www.maxoutil.com/catalogsearch/result/
<form class="form minisearch" id="search_mini_form" action="https://www.maxoutil.com/catalogsearch/result/" method="get">
<div class="">
<label class="sr-only" for="search"> Rechercher par mot de..... </label>
<input id="search" x-on:input.debounce.500ms="getSearchResults()" x-ref="searchInput" type="text" class="form-input pl-14 pr-10 xl:pr-[70px] xl:w-full h-12 w-[calc(100%-73px)]" autocapitalize="off" autocomplete="off" autocorrect="off" name="q"
value="" placeholder="Rechercher par mot clé ou référence..." maxlength="100" @click="openSearchBox()" x-model="message" :class="{ 'relative z-10 w-full': $store.header.active, 'w-[calc(100%-73px)]': !$store.header.active }">
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48" fill="none" class="absolute top-0 left-0 z-20">
<path d="M27.125 29L24 25.875" stroke="#5E7179" stroke-miterlimit="10"></path>
<path d="M25.875 24L29 27.125" stroke="#5E7179" stroke-miterlimit="10"></path>
<mask id="path-3-inside-1_828_2273" fill="white">
<rect x="29.2427" y="25" width="12" height="6" rx="1" transform="rotate(45 29.2427 25)"></rect>
</mask>
<rect x="29.2427" y="25" width="12" height="6" rx="1" transform="rotate(45 29.2427 25)" fill="#F6F9FB" stroke="black" stroke-width="2"></rect>
<path d="M27 19.5C27 23.6421 23.6421 27 19.5 27C15.3579 27 12 23.6421 12 19.5C12 15.3579 15.3579 12 19.5 12C23.6421 12 27 15.3579 27 19.5Z" fill="white" stroke="black" stroke-width="2" stroke-miterlimit="10"></path>
<path d="M19.5 24C21.9853 24 24 21.9853 24 19.5C24 17.0147 21.9853 15 19.5 15C17.0147 15 15 17.0147 15 19.5C15 21.9853 17.0147 24 19.5 24Z" fill="#F6F9FB" stroke="#5E7179" stroke-miterlimit="10"></path>
</svg>
<span @click="show = false, message = ''; closeSearchContent();
$store.header.showSearch = false;
$store.header.active = false;
document.querySelector('#search-content #search').value = '';
document.getElementById('header').classList.remove('open-search-box');" :class="{ 'xl:right-0 right-20 opacity-0': !$store.header.active, 'xl:right-12 right-0 opacity-30 hover:opacity-100': $store.header.active }"
class="absolute top-0 z-20 w-12 h-12 xl:right-0 right-20 opacity-0" style="transition: right .5s ease,opacity .5s ease;">
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48" fill="none" class="
cursor-pointer">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M24.026 22.635L18.3417 16.9506L16.9153 18.3526L22.6057 24.043L16.9245 29.6754L18.3448 31.0835L24.0199 25.4572L29.6432 31.0805L31.0696 29.6786L25.4402 24.0492L31.1276 18.4107L29.7073 17.0026L24.026 22.635Z" fill="black"></path>
</svg>
</span>
<button type="submit" id="action_search" title="Rechercher" class="action btn-secondary-2 absolute top-0 h-12 w-12 p-0 z-20 hidden xl:block -right-5 opacity-0" aria-label="Search"
:class="{ '-right-5 opacity-0': !$store.header.active, 'xl:right-0 right-[5.2rem] opacity-1': $store.header.active }" style="transition: right .5s ease,opacity .5s ease;"> OK </button>
</div>
<div id="search_autocomplete" class="search-autocomplete-unique relative w-full" x-show="show" style="display:none;">
<div class="fixed left-4 right-4 bottom-4 bg-white z-50 border-custom border-dark-grey rounded-md
px-4 pb-0 xl:pl-12 xl:pr-0 rounded-tl-none rounded-tr-none xl:rounded-tl-md
xl:rounded-tr-md overflow-y-auto overflow-x-hidden xl:overflow-y-hidden" id="search-autocomplete-content" style="top: 144px;">
<div class="xl:flex relative">
<span class="hidden xl:block absolute top-0 right-0 cursor-pointer bg-light" @click="
show = false, message = ''; closeSearchContent()">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 48 48" fill="none" class="w-12 h-12">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M24.026 22.635L18.3417 16.9506L16.9153 18.3526L22.6057 24.043L16.9245 29.6754L18.3448 31.0835L24.0199 25.4572L29.6432 31.0805L31.0696 29.6786L25.4402 24.0492L31.1276 18.4107L29.7073 17.0026L24.026 22.635Z" fill="black"></path>
</svg>
</span>
<div class="hidden xl:block xl:max-h-[calc(100vh-134px)] overflow-y-auto overflow-x-hidden flex-shrink-0
pt-2 sm:pt-4 xl:!pt-16">
<template x-if="searchResultsByType.hasOwnProperty('term') || searchResultsByType.hasOwnProperty('category')">
<div>
<template x-for="searchResultByType in Object.values(searchResultsByType)">
<template x-if="searchResultByType[0].type == 'term' || searchResultByType[0].type == 'category'">
<div class="flex flex-col w-[368px] flex-shrink-0">
<template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].title && templates[searchResultByType[0].type].titleRenderer === undefined">
<div class="uppercase font-style text-secondary-3 text-title-color text-title-desktop-2 font-title-desktop-2">
<span x-text="templates[searchResultByType[0].type].title1"></span>
<span x-text="templates[searchResultByType[0].type].title2" class="text-second-txt"></span>
</div>
</template>
<template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].titleRenderer !== undefined">
<div class="uppercase font-style text-secondary-3 text-title-desktop-2 font-title-desktop-2" x-text="window[templates[searchResultByType[0].type].titleRenderer](searchResultByType)"></div>
</template>
<div class="mb-6 xl:mb-8 xl:mt-0">
<template x-for="searchResult in searchResultByType">
<div class="">
<template x-if="searchResult.type == 'term'">
<a class="w-full block py-2 text-dark-grey transition-all hover:text-dark" x-bind:href="'https://www.maxoutil.com/catalogsearch/result/?q=' + searchResult.title" :title="searchResult.title">
<span x-text="searchResult.title"></span>
<span x-text="'(' + searchResult.num_results + ')'"></span>
</a>
</template>
<script>
function initProduct() {
return {
label: '',
setLabel() {
this.label = '';
let url = 'https://www.maxoutil.com/recommender/label/' + '?' + new URLSearchParams({
product_id: this.searchResult.entity_id,
}).toString();
fetch(url, {
method: 'POST',
"headers": {
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest"
},
}).then((response) => {
if (response.ok) {
return response.text();
}
}).then((data) => {
this.label = data;
});
},
}
}
</script>
<template x-if="searchResult.type == 'product'">
<form action="" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full" x-data="initProduct()" x-init="setLabel()">
<a class="product-item-link flex gap-x-5 hover:no-underline p-4 h-full group
xl:flex-col xl:bg-light-grey-1" :href="getUrl(searchResult.url)" :title="searchResult.name">
<div class="mb-0.5">
<div class="product photo product-item-photo block w-24 mx-auto mb-4 relative
pb-100pc overflow-hidden bg-light
xl:w-full xl:border xl:rounded-sm xl:border-light-grey-2">
<img :src="searchResult.thumbnail_image" :alt="searchResult.name" class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1">
<div class="catalog-labels-list">
<div x-html="label"></div>
</div>
</div>
<div x-text="Array.isArray(searchResult.sku) ? searchResult.sku[0] : searchResult.sku" class="product-item-sku text-xs text-middle-grey font-normal">
</div>
</div>
<div class="product-info flex flex-col grow 1">
<span class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]" x-text="searchResult.name"></span>
<div class="mt-auto flex flex-col items-start" style="min-height: 48px" x-show="searchResult.group_column_contactus!=1">
<div>
<span class="price-label text-white text-xs bg-middle-grey uppercase py-0
px-1 rounded-sm mr-2 flex-shrink-0" x-show="searchResult.type_id=='configurable'">
À partir de </span>
<div class="price xl:flex mt-1">
<div class="mt-auto flex flex-col xl:flex-row items-start xl:items-center">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center price-including-tax" x-show="searchResult.msrp_price > searchResult.final_price">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-including-tax" data-label="TTC">
<span x-html="hyva.formatPrice(searchResult.final_price)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
<div class="price xl:flex">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center
w-fit price-excluding-tax" x-show="searchResult.msrp_price > 0
&& searchResult.msrp_price_exclu_tax > searchResult.price_excl_tax">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price_exclu_tax)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">
-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-excluding-tax" data-label="HT">
<span x-html="hyva.formatPrice(searchResult.price_excl_tax)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
</div>
<div x-show="searchResult.is_freeshipping" class="text-xs text-tertiary-3 uppercase font-bold
mt-2 xl:mt-4 whitespace-nowrap">
Livraison Offerte
</div>
</div>
<div x-show="searchResult.group_column_contactus==1">
<span class="uppercase px-1 rounded-sm border border-light-grey-2 bg-light text-xs">
PRIX SUR DEMANDE </span>
</div>
</div>
</div>
</a>
</form>
</template>
<template x-if="searchResult.type == 'category' && searchResult.tree !== undefined && searchResult.tree.length > 0">
<a class="w-full block py-2" :href="getUrl(searchResult.url)" :title="searchResult.name">
<span class="text-dark-grey transition-all hover:text-dark" x-text="searchResult.name"></span>
</a>
</template>
<template x-if="searchResult.type == 'product_attribute'">
<a class="w-full block p-2" :href="getUrl(searchResult.url)" :title="searchResult.title">
<span class="text-sm" x-text="searchResult.title"></span>
<span class="text-xs uppercase text-gray-500" x-text="searchResult.attribute_label" style="vertical-align: super;"></span>
</a>
</template>
<script>
function renderEsAutocompleteTitleAttribute(data) {
data = data.filter(function(item) {
return item.type === 'product_attribute';
}).map(function(item) {
return item['attribute_label']
}).reduce(function(prev, item) {
if (item in prev) {
prev[item]++;
} else {
prev[item] = 1;
}
return prev;
}, {});
data = Object.entries(data).sort(function(item1, item2) {
return item2[1] - item1[1]
}).map(function(item) {
return item[0]
});
if (data.length > 2) {
data = data.slice(0, 2);
data.push('...');
}
return data.join(', ');
}
</script>
<template x-if="searchResult.type == 'cms_page'">
<a class="w-full block p-2" :href="getUrl(searchResult.url)" :title="searchResult.title">
<span class="text-sm" x-text="searchResult.title"></span>
</a>
</template>
</div>
</template>
</div>
</div>
</template>
</template>
</div>
</template>
</div>
<div class="block xl:hidden pt-2 sm:pt-4">
<template x-if="searchResultsByType.hasOwnProperty('term')">
<div>
<template x-for="searchResultByType in Object.values(searchResultsByType)">
<template x-if="searchResultByType[0].type == 'term'">
<div class="flex flex-col xl:w-[368px] flex-shrink-0">
<div class="mb-6 xl:mb-8 xl:mt-0">
<template x-for="searchResult in searchResultByType">
<div class="">
<template x-if="searchResult.type == 'term'">
<a class="w-full block py-2 text-dark-grey transition-all hover:text-dark" x-bind:href="'https://www.maxoutil.com/catalogsearch/result/?q=' + searchResult.title" :title="searchResult.title">
<span x-text="searchResult.title"></span>
<span x-text="'(' + searchResult.num_results + ')'"></span>
</a>
</template>
<script>
function initProduct() {
return {
label: '',
setLabel() {
this.label = '';
let url = 'https://www.maxoutil.com/recommender/label/' + '?' + new URLSearchParams({
product_id: this.searchResult.entity_id,
}).toString();
fetch(url, {
method: 'POST',
"headers": {
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest"
},
}).then((response) => {
if (response.ok) {
return response.text();
}
}).then((data) => {
this.label = data;
});
},
}
}
</script>
<template x-if="searchResult.type == 'product'">
<form action="" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full" x-data="initProduct()" x-init="setLabel()">
<a class="product-item-link flex gap-x-5 hover:no-underline p-4 h-full group
xl:flex-col xl:bg-light-grey-1" :href="getUrl(searchResult.url)" :title="searchResult.name">
<div class="mb-0.5">
<div class="product photo product-item-photo block w-24 mx-auto mb-4 relative
pb-100pc overflow-hidden bg-light
xl:w-full xl:border xl:rounded-sm xl:border-light-grey-2">
<img :src="searchResult.thumbnail_image" :alt="searchResult.name" class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1">
<div class="catalog-labels-list">
<div x-html="label"></div>
</div>
</div>
<div x-text="Array.isArray(searchResult.sku) ? searchResult.sku[0] : searchResult.sku" class="product-item-sku text-xs text-middle-grey font-normal">
</div>
</div>
<div class="product-info flex flex-col grow 1">
<span class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]" x-text="searchResult.name"></span>
<div class="mt-auto flex flex-col items-start" style="min-height: 48px" x-show="searchResult.group_column_contactus!=1">
<div>
<span class="price-label text-white text-xs bg-middle-grey uppercase py-0
px-1 rounded-sm mr-2 flex-shrink-0" x-show="searchResult.type_id=='configurable'">
À partir de </span>
<div class="price xl:flex mt-1">
<div class="mt-auto flex flex-col xl:flex-row items-start xl:items-center">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center price-including-tax" x-show="searchResult.msrp_price > searchResult.final_price">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-including-tax" data-label="TTC">
<span x-html="hyva.formatPrice(searchResult.final_price)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
<div class="price xl:flex">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center
w-fit price-excluding-tax" x-show="searchResult.msrp_price > 0
&& searchResult.msrp_price_exclu_tax > searchResult.price_excl_tax">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price_exclu_tax)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">
-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-excluding-tax" data-label="HT">
<span x-html="hyva.formatPrice(searchResult.price_excl_tax)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
</div>
<div x-show="searchResult.is_freeshipping" class="text-xs text-tertiary-3 uppercase font-bold
mt-2 xl:mt-4 whitespace-nowrap">
Livraison Offerte
</div>
</div>
<div x-show="searchResult.group_column_contactus==1">
<span class="uppercase px-1 rounded-sm border border-light-grey-2 bg-light text-xs">
PRIX SUR DEMANDE </span>
</div>
</div>
</div>
</a>
</form>
</template>
<template x-if="searchResult.type == 'category' && searchResult.tree !== undefined && searchResult.tree.length > 0">
<a class="w-full block py-2" :href="getUrl(searchResult.url)" :title="searchResult.name">
<span class="text-dark-grey transition-all hover:text-dark" x-text="searchResult.name"></span>
</a>
</template>
<template x-if="searchResult.type == 'product_attribute'">
<a class="w-full block p-2" :href="getUrl(searchResult.url)" :title="searchResult.title">
<span class="text-sm" x-text="searchResult.title"></span>
<span class="text-xs uppercase text-gray-500" x-text="searchResult.attribute_label" style="vertical-align: super;"></span>
</a>
</template>
<script>
function renderEsAutocompleteTitleAttribute(data) {
data = data.filter(function(item) {
return item.type === 'product_attribute';
}).map(function(item) {
return item['attribute_label']
}).reduce(function(prev, item) {
if (item in prev) {
prev[item]++;
} else {
prev[item] = 1;
}
return prev;
}, {});
data = Object.entries(data).sort(function(item1, item2) {
return item2[1] - item1[1]
}).map(function(item) {
return item[0]
});
if (data.length > 2) {
data = data.slice(0, 2);
data.push('...');
}
return data.join(', ');
}
</script>
<template x-if="searchResult.type == 'cms_page'">
<a class="w-full block p-2" :href="getUrl(searchResult.url)" :title="searchResult.title">
<span class="text-sm" x-text="searchResult.title"></span>
</a>
</template>
</div>
</template>
</div>
</div>
</template>
</template>
</div>
</template>
</div>
<template x-for="searchResultByType in Object.values(searchResultsByType)">
<template x-if="searchResultByType[0].type == 'product'">
<div class="products w-full overflow-y-auto overflow-x-hidden xl:max-h-[calc(100vh-134px)] xl:pr-5 xl:mr-5 xl:pt-16 xl:pb-16">
<div class="flex w-full sm:-mx-4 sm:w-[calc(100%+32px)] xl:!-mx-8 xl:!w-[calc(100%+82px)]
flex-wrap">
<template x-for="searchResult in searchResultByType">
<div class="flex shrink-0 px-0 pb-4 sm:px-4 xl:!px-8 sm:pb-8 xl:!pb-16 w-full sm:w-1/2 xl:!w-[368px]">
<template x-if="searchResult.type == 'term'">
<a class="w-full block py-2 text-dark-grey transition-all hover:text-dark" x-bind:href="'https://www.maxoutil.com/catalogsearch/result/?q=' + searchResult.title" :title="searchResult.title">
<span x-text="searchResult.title"></span>
<span x-text="'(' + searchResult.num_results + ')'"></span>
</a>
</template>
<script>
function initProduct() {
return {
label: '',
setLabel() {
this.label = '';
let url = 'https://www.maxoutil.com/recommender/label/' + '?' + new URLSearchParams({
product_id: this.searchResult.entity_id,
}).toString();
fetch(url, {
method: 'POST',
"headers": {
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest"
},
}).then((response) => {
if (response.ok) {
return response.text();
}
}).then((data) => {
this.label = data;
});
},
}
}
</script>
<template x-if="searchResult.type == 'product'">
<form action="" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full" x-data="initProduct()" x-init="setLabel()">
<a class="product-item-link flex gap-x-5 hover:no-underline p-4 h-full group
xl:flex-col xl:bg-light-grey-1" :href="getUrl(searchResult.url)" :title="searchResult.name">
<div class="mb-0.5">
<div class="product photo product-item-photo block w-24 mx-auto mb-4 relative
pb-100pc overflow-hidden bg-light
xl:w-full xl:border xl:rounded-sm xl:border-light-grey-2">
<img :src="searchResult.thumbnail_image" :alt="searchResult.name" class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1">
<div class="catalog-labels-list">
<div x-html="label"></div>
</div>
</div>
<div x-text="Array.isArray(searchResult.sku) ? searchResult.sku[0] : searchResult.sku" class="product-item-sku text-xs text-middle-grey font-normal">
</div>
</div>
<div class="product-info flex flex-col grow 1">
<span class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]" x-text="searchResult.name"></span>
<div class="mt-auto flex flex-col items-start" style="min-height: 48px" x-show="searchResult.group_column_contactus!=1">
<div>
<span class="price-label text-white text-xs bg-middle-grey uppercase py-0
px-1 rounded-sm mr-2 flex-shrink-0" x-show="searchResult.type_id=='configurable'">
À partir de </span>
<div class="price xl:flex mt-1">
<div class="mt-auto flex flex-col xl:flex-row items-start xl:items-center">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center price-including-tax" x-show="searchResult.msrp_price > searchResult.final_price">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-including-tax" data-label="TTC">
<span x-html="hyva.formatPrice(searchResult.final_price)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
<div class="price xl:flex">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center
w-fit price-excluding-tax" x-show="searchResult.msrp_price > 0
&& searchResult.msrp_price_exclu_tax > searchResult.price_excl_tax">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price_exclu_tax)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">
-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-excluding-tax" data-label="HT">
<span x-html="hyva.formatPrice(searchResult.price_excl_tax)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
</div>
<div x-show="searchResult.is_freeshipping" class="text-xs text-tertiary-3 uppercase font-bold
mt-2 xl:mt-4 whitespace-nowrap">
Livraison Offerte
</div>
</div>
<div x-show="searchResult.group_column_contactus==1">
<span class="uppercase px-1 rounded-sm border border-light-grey-2 bg-light text-xs">
PRIX SUR DEMANDE </span>
</div>
</div>
</div>
</a>
</form>
</template>
<template x-if="searchResult.type == 'category' && searchResult.tree !== undefined && searchResult.tree.length > 0">
<a class="w-full block py-2" :href="getUrl(searchResult.url)" :title="searchResult.name">
<span class="text-dark-grey transition-all hover:text-dark" x-text="searchResult.name"></span>
</a>
</template>
<template x-if="searchResult.type == 'product_attribute'">
<a class="w-full block p-2" :href="getUrl(searchResult.url)" :title="searchResult.title">
<span class="text-sm" x-text="searchResult.title"></span>
<span class="text-xs uppercase text-gray-500" x-text="searchResult.attribute_label" style="vertical-align: super;"></span>
</a>
</template>
<script>
function renderEsAutocompleteTitleAttribute(data) {
data = data.filter(function(item) {
return item.type === 'product_attribute';
}).map(function(item) {
return item['attribute_label']
}).reduce(function(prev, item) {
if (item in prev) {
prev[item]++;
} else {
prev[item] = 1;
}
return prev;
}, {});
data = Object.entries(data).sort(function(item1, item2) {
return item2[1] - item1[1]
}).map(function(item) {
return item[0]
});
if (data.length > 2) {
data = data.slice(0, 2);
data.push('...');
}
return data.join(', ');
}
</script>
<template x-if="searchResult.type == 'cms_page'">
<a class="w-full block p-2" :href="getUrl(searchResult.url)" :title="searchResult.title">
<span class="text-sm" x-text="searchResult.title"></span>
</a>
</template>
</div>
</template>
</div>
<template x-for="searchResultByType in Object.values(searchResultsByType)">
<template x-if="searchResultByType[0].type == 'product' && searchResultByType[0].count > 0">
<a id="show-all-results" x-text="getShowAllText(searchResultByType[0].count)" class="block btn-secondary-2 w-full mt-4 mb-6 xl:mb-0 text-center xl:w-[370px]
xl:m-auto xl:mb-4" :href="getShowAllUrl()">Show All Results</a>
</template>
</template>
</div>
</template>
</template>
<div class="block xl:hidden">
<template x-if="searchResultsByType.hasOwnProperty('category')">
<div>
<template x-for="searchResultByType in Object.values(searchResultsByType)">
<template x-if="searchResultByType[0].type == 'category'">
<div class="flex flex-col xl:w-[368px] flex-shrink-0">
<template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].title && templates[searchResultByType[0].type].titleRenderer === undefined">
<div class="uppercase font-style text-secondary-3 text-title-color text-title-mobile-2 font-title-desktop-2 mt-8 mb-4">
<span x-text="templates[searchResultByType[0].type].title1"></span>
<span x-text="templates[searchResultByType[0].type].title2" class="text-second-txt"></span>
</div>
</template>
<div class="mb-4 -mt-2 xl:mt-0">
<template x-for="searchResult in searchResultByType">
<div class="">
<template x-if="searchResult.type == 'term'">
<a class="w-full block py-2 text-dark-grey transition-all hover:text-dark" x-bind:href="'https://www.maxoutil.com/catalogsearch/result/?q=' + searchResult.title" :title="searchResult.title">
<span x-text="searchResult.title"></span>
<span x-text="'(' + searchResult.num_results + ')'"></span>
</a>
</template>
<script>
function initProduct() {
return {
label: '',
setLabel() {
this.label = '';
let url = 'https://www.maxoutil.com/recommender/label/' + '?' + new URLSearchParams({
product_id: this.searchResult.entity_id,
}).toString();
fetch(url, {
method: 'POST',
"headers": {
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest"
},
}).then((response) => {
if (response.ok) {
return response.text();
}
}).then((data) => {
this.label = data;
});
},
}
}
</script>
<template x-if="searchResult.type == 'product'">
<form action="" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full" x-data="initProduct()" x-init="setLabel()">
<a class="product-item-link flex gap-x-5 hover:no-underline p-4 h-full group
xl:flex-col xl:bg-light-grey-1" :href="getUrl(searchResult.url)" :title="searchResult.name">
<div class="mb-0.5">
<div class="product photo product-item-photo block w-24 mx-auto mb-4 relative
pb-100pc overflow-hidden bg-light
xl:w-full xl:border xl:rounded-sm xl:border-light-grey-2">
<img :src="searchResult.thumbnail_image" :alt="searchResult.name" class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1">
<div class="catalog-labels-list">
<div x-html="label"></div>
</div>
</div>
<div x-text="Array.isArray(searchResult.sku) ? searchResult.sku[0] : searchResult.sku" class="product-item-sku text-xs text-middle-grey font-normal">
</div>
</div>
<div class="product-info flex flex-col grow 1">
<span class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]" x-text="searchResult.name"></span>
<div class="mt-auto flex flex-col items-start" style="min-height: 48px" x-show="searchResult.group_column_contactus!=1">
<div>
<span class="price-label text-white text-xs bg-middle-grey uppercase py-0
px-1 rounded-sm mr-2 flex-shrink-0" x-show="searchResult.type_id=='configurable'">
À partir de </span>
<div class="price xl:flex mt-1">
<div class="mt-auto flex flex-col xl:flex-row items-start xl:items-center">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center price-including-tax" x-show="searchResult.msrp_price > searchResult.final_price">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-including-tax" data-label="TTC">
<span x-html="hyva.formatPrice(searchResult.final_price)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
<div class="price xl:flex">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center
w-fit price-excluding-tax" x-show="searchResult.msrp_price > 0
&& searchResult.msrp_price_exclu_tax > searchResult.price_excl_tax">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price_exclu_tax)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">
-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-excluding-tax" data-label="HT">
<span x-html="hyva.formatPrice(searchResult.price_excl_tax)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
</div>
<div x-show="searchResult.is_freeshipping" class="text-xs text-tertiary-3 uppercase font-bold
mt-2 xl:mt-4 whitespace-nowrap">
Livraison Offerte
</div>
</div>
<div x-show="searchResult.group_column_contactus==1">
<span class="uppercase px-1 rounded-sm border border-light-grey-2 bg-light text-xs">
PRIX SUR DEMANDE </span>
</div>
</div>
</div>
</a>
</form>
</template>
<template x-if="searchResult.type == 'category' && searchResult.tree !== undefined && searchResult.tree.length > 0">
<a class="w-full block py-2" :href="getUrl(searchResult.url)" :title="searchResult.name">
<span class="text-dark-grey transition-all hover:text-dark" x-text="searchResult.name"></span>
</a>
</template>
<template x-if="searchResult.type == 'product_attribute'">
<a class="w-full block p-2" :href="getUrl(searchResult.url)" :title="searchResult.title">
<span class="text-sm" x-text="searchResult.title"></span>
<span class="text-xs uppercase text-gray-500" x-text="searchResult.attribute_label" style="vertical-align: super;"></span>
</a>
</template>
<script>
function renderEsAutocompleteTitleAttribute(data) {
data = data.filter(function(item) {
return item.type === 'product_attribute';
}).map(function(item) {
return item['attribute_label']
}).reduce(function(prev, item) {
if (item in prev) {
prev[item]++;
} else {
prev[item] = 1;
}
return prev;
}, {});
data = Object.entries(data).sort(function(item1, item2) {
return item2[1] - item1[1]
}).map(function(item) {
return item[0]
});
if (data.length > 2) {
data = data.slice(0, 2);
data.push('...');
}
return data.join(', ');
}
</script>
<template x-if="searchResult.type == 'cms_page'">
<a class="w-full block p-2" :href="getUrl(searchResult.url)" :title="searchResult.title">
<span class="text-sm" x-text="searchResult.title"></span>
</a>
</template>
</div>
</template>
</div>
</div>
</template>
</template>
</div>
</template>
</div>
</div>
</div>
</div>
</form>
<form action="" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full" x-data="initProduct()" x-init="setLabel()">
<a class="product-item-link flex gap-x-5 hover:no-underline p-4 h-full group
xl:flex-col xl:bg-light-grey-1" :href="getUrl(searchResult.url)" :title="searchResult.name">
<div class="mb-0.5">
<div class="product photo product-item-photo block w-24 mx-auto mb-4 relative
pb-100pc overflow-hidden bg-light
xl:w-full xl:border xl:rounded-sm xl:border-light-grey-2">
<img :src="searchResult.thumbnail_image" :alt="searchResult.name" class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1">
<div class="catalog-labels-list">
<div x-html="label"></div>
</div>
</div>
<div x-text="Array.isArray(searchResult.sku) ? searchResult.sku[0] : searchResult.sku" class="product-item-sku text-xs text-middle-grey font-normal">
</div>
</div>
<div class="product-info flex flex-col grow 1">
<span class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]" x-text="searchResult.name"></span>
<div class="mt-auto flex flex-col items-start" style="min-height: 48px" x-show="searchResult.group_column_contactus!=1">
<div>
<span class="price-label text-white text-xs bg-middle-grey uppercase py-0
px-1 rounded-sm mr-2 flex-shrink-0" x-show="searchResult.type_id=='configurable'">
À partir de </span>
<div class="price xl:flex mt-1">
<div class="mt-auto flex flex-col xl:flex-row items-start xl:items-center">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center price-including-tax" x-show="searchResult.msrp_price > searchResult.final_price">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-including-tax" data-label="TTC">
<span x-html="hyva.formatPrice(searchResult.final_price)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
<div class="price xl:flex">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center
w-fit price-excluding-tax" x-show="searchResult.msrp_price > 0
&& searchResult.msrp_price_exclu_tax > searchResult.price_excl_tax">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price_exclu_tax)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">
-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-excluding-tax" data-label="HT">
<span x-html="hyva.formatPrice(searchResult.price_excl_tax)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
</div>
<div x-show="searchResult.is_freeshipping" class="text-xs text-tertiary-3 uppercase font-bold
mt-2 xl:mt-4 whitespace-nowrap">
Livraison Offerte
</div>
</div>
<div x-show="searchResult.group_column_contactus==1">
<span class="uppercase px-1 rounded-sm border border-light-grey-2 bg-light text-xs">
PRIX SUR DEMANDE </span>
</div>
</div>
</div>
</a>
</form>
<form action="" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full" x-data="initProduct()" x-init="setLabel()">
<a class="product-item-link flex gap-x-5 hover:no-underline p-4 h-full group
xl:flex-col xl:bg-light-grey-1" :href="getUrl(searchResult.url)" :title="searchResult.name">
<div class="mb-0.5">
<div class="product photo product-item-photo block w-24 mx-auto mb-4 relative
pb-100pc overflow-hidden bg-light
xl:w-full xl:border xl:rounded-sm xl:border-light-grey-2">
<img :src="searchResult.thumbnail_image" :alt="searchResult.name" class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1">
<div class="catalog-labels-list">
<div x-html="label"></div>
</div>
</div>
<div x-text="Array.isArray(searchResult.sku) ? searchResult.sku[0] : searchResult.sku" class="product-item-sku text-xs text-middle-grey font-normal">
</div>
</div>
<div class="product-info flex flex-col grow 1">
<span class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]" x-text="searchResult.name"></span>
<div class="mt-auto flex flex-col items-start" style="min-height: 48px" x-show="searchResult.group_column_contactus!=1">
<div>
<span class="price-label text-white text-xs bg-middle-grey uppercase py-0
px-1 rounded-sm mr-2 flex-shrink-0" x-show="searchResult.type_id=='configurable'">
À partir de </span>
<div class="price xl:flex mt-1">
<div class="mt-auto flex flex-col xl:flex-row items-start xl:items-center">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center price-including-tax" x-show="searchResult.msrp_price > searchResult.final_price">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-including-tax" data-label="TTC">
<span x-html="hyva.formatPrice(searchResult.final_price)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
<div class="price xl:flex">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center
w-fit price-excluding-tax" x-show="searchResult.msrp_price > 0
&& searchResult.msrp_price_exclu_tax > searchResult.price_excl_tax">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price_exclu_tax)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">
-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-excluding-tax" data-label="HT">
<span x-html="hyva.formatPrice(searchResult.price_excl_tax)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
</div>
<div x-show="searchResult.is_freeshipping" class="text-xs text-tertiary-3 uppercase font-bold
mt-2 xl:mt-4 whitespace-nowrap">
Livraison Offerte
</div>
</div>
<div x-show="searchResult.group_column_contactus==1">
<span class="uppercase px-1 rounded-sm border border-light-grey-2 bg-light text-xs">
PRIX SUR DEMANDE </span>
</div>
</div>
</div>
</a>
</form>
<form action="" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full" x-data="initProduct()" x-init="setLabel()">
<a class="product-item-link flex gap-x-5 hover:no-underline p-4 h-full group
xl:flex-col xl:bg-light-grey-1" :href="getUrl(searchResult.url)" :title="searchResult.name">
<div class="mb-0.5">
<div class="product photo product-item-photo block w-24 mx-auto mb-4 relative
pb-100pc overflow-hidden bg-light
xl:w-full xl:border xl:rounded-sm xl:border-light-grey-2">
<img :src="searchResult.thumbnail_image" :alt="searchResult.name" class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1">
<div class="catalog-labels-list">
<div x-html="label"></div>
</div>
</div>
<div x-text="Array.isArray(searchResult.sku) ? searchResult.sku[0] : searchResult.sku" class="product-item-sku text-xs text-middle-grey font-normal">
</div>
</div>
<div class="product-info flex flex-col grow 1">
<span class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]" x-text="searchResult.name"></span>
<div class="mt-auto flex flex-col items-start" style="min-height: 48px" x-show="searchResult.group_column_contactus!=1">
<div>
<span class="price-label text-white text-xs bg-middle-grey uppercase py-0
px-1 rounded-sm mr-2 flex-shrink-0" x-show="searchResult.type_id=='configurable'">
À partir de </span>
<div class="price xl:flex mt-1">
<div class="mt-auto flex flex-col xl:flex-row items-start xl:items-center">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center price-including-tax" x-show="searchResult.msrp_price > searchResult.final_price">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-including-tax" data-label="TTC">
<span x-html="hyva.formatPrice(searchResult.final_price)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
<div class="price xl:flex">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center
w-fit price-excluding-tax" x-show="searchResult.msrp_price > 0
&& searchResult.msrp_price_exclu_tax > searchResult.price_excl_tax">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price_exclu_tax)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">
-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-excluding-tax" data-label="HT">
<span x-html="hyva.formatPrice(searchResult.price_excl_tax)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
</div>
<div x-show="searchResult.is_freeshipping" class="text-xs text-tertiary-3 uppercase font-bold
mt-2 xl:mt-4 whitespace-nowrap">
Livraison Offerte
</div>
</div>
<div x-show="searchResult.group_column_contactus==1">
<span class="uppercase px-1 rounded-sm border border-light-grey-2 bg-light text-xs">
PRIX SUR DEMANDE </span>
</div>
</div>
</div>
</a>
</form>
<form action="" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full" x-data="initProduct()" x-init="setLabel()">
<a class="product-item-link flex gap-x-5 hover:no-underline p-4 h-full group
xl:flex-col xl:bg-light-grey-1" :href="getUrl(searchResult.url)" :title="searchResult.name">
<div class="mb-0.5">
<div class="product photo product-item-photo block w-24 mx-auto mb-4 relative
pb-100pc overflow-hidden bg-light
xl:w-full xl:border xl:rounded-sm xl:border-light-grey-2">
<img :src="searchResult.thumbnail_image" :alt="searchResult.name" class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1">
<div class="catalog-labels-list">
<div x-html="label"></div>
</div>
</div>
<div x-text="Array.isArray(searchResult.sku) ? searchResult.sku[0] : searchResult.sku" class="product-item-sku text-xs text-middle-grey font-normal">
</div>
</div>
<div class="product-info flex flex-col grow 1">
<span class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]" x-text="searchResult.name"></span>
<div class="mt-auto flex flex-col items-start" style="min-height: 48px" x-show="searchResult.group_column_contactus!=1">
<div>
<span class="price-label text-white text-xs bg-middle-grey uppercase py-0
px-1 rounded-sm mr-2 flex-shrink-0" x-show="searchResult.type_id=='configurable'">
À partir de </span>
<div class="price xl:flex mt-1">
<div class="mt-auto flex flex-col xl:flex-row items-start xl:items-center">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center price-including-tax" x-show="searchResult.msrp_price > searchResult.final_price">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-including-tax" data-label="TTC">
<span x-html="hyva.formatPrice(searchResult.final_price)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
<div class="price xl:flex">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center
w-fit price-excluding-tax" x-show="searchResult.msrp_price > 0
&& searchResult.msrp_price_exclu_tax > searchResult.price_excl_tax">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span x-html="hyva.formatPrice(searchResult.msrp_price_exclu_tax)"></span>
</del>
<span x-show="searchResult.rate_price > 0" class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">
-<span x-html="searchResult.rate_price"></span>%
</span>
</div>
<div class="price-box price-final_price">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span class="price-wrapper price-excluding-tax" data-label="HT">
<span x-html="hyva.formatPrice(searchResult.price_excl_tax)" class="price"></span>
</span>
</span>
</span>
</div>
</div>
</div>
<div x-show="searchResult.is_freeshipping" class="text-xs text-tertiary-3 uppercase font-bold
mt-2 xl:mt-4 whitespace-nowrap">
Livraison Offerte
</div>
</div>
<div x-show="searchResult.group_column_contactus==1">
<span class="uppercase px-1 rounded-sm border border-light-grey-2 bg-light text-xs">
PRIX SUR DEMANDE </span>
</div>
</div>
</div>
</a>
</form>
POST
<form class="form form-login" method="post" @submit.prevent="submitForm();" id="login-form">
<div class="fieldset login">
<div class="field email required">
<label class="label" for="form-login-username" form="login-form">
<span>Adresse email</span>
</label>
<div class="control">
<input name="username" id="form-login-username" x-ref="customer-email" @change="errors = 0" type="email" required="" class="form-input input-text">
</div>
</div>
<div class="field password required">
<label for="form-login-password" class="label" form="login-form">
<span>Mot de passe</span>
</label>
<div class="control">
<input name="password" id="form-login-password" type="password" class="form-input input-text" required="" x-ref="customer-password" @change="errors = 0">
</div>
</div>
<input name="context" type="hidden" value="checkout">
<div class="actions-toolbar flex justify-between pt-6 pb-2 items-center">
<button type="submit" class="inline-flex btn btn-primary disabled:opacity-75"> Connexion </button>
<a href="https://www.maxoutil.com/customer/account/forgotpassword/">
Mot de passe oublié? </a>
</div>
</div>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/124759/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/124759/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="124759">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-ctl-26-e-ac-festool-574945.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CLEANTEC CTL 26 E AC - FESTOOL - 574945" title="Aspirateur CLEANTEC CTL 26 E AC - FESTOOL - 574945" src="https://www.maxoutil.com/media/catalog_webp/product/n/a/naa10339_1.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
NAA10339 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTL 26 E AC - FESTOOL - 574945 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-124759.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(983.14)">983,14 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(819.280000)">819,28 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-24%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="124759" data-price-box="product-id-124759">
<div class="xl:flex">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-124759" data-label="TTC" data-price-amount="749.004001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">749,00 €</span></span>
<span id="price-excluding-tax-product-price-124759" data-label="HT" data-price-amount="624.17" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">624,17 €</span></span>
</span>
</span>
</div>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/124962/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/124962/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="124962">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-ctl-26-e-festool-574947.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CLEANTEC CTL 26 E 1200W - FESTOOL - 574947" title="Aspirateur CLEANTEC CTL 26 E 1200W - FESTOOL - 574947" src="https://www.maxoutil.com/media/catalog_webp/product/n/a/NAA10341_0.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
NAA10341 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTL 26 E 1200W - FESTOOL - 574947 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-124962.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(838.69)">838,69 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(698.910000)">698,91 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-20%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="124962" data-price-box="product-id-124962">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-124962" data-label="TTC" data-price-amount="674.988001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">674,99 €</span></span>
<span id="price-excluding-tax-product-price-124962" data-label="HT" data-price-amount="562.49" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">562,49 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126636/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126636/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="126636">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-festool-ctl-36-e-ac-574958.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur FESTOOL CTL 36 E AC - 574958" title="Aspirateur FESTOOL CTL 36 E AC - 574958" src="https://www.maxoutil.com/media/catalog_webp/product/1/f/1ff82a5e-c6e6-11ec-8126-005056b31774_1600_1066.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
FEST2206 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTL 36 E AC - FESTOOL - 574958 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-126636.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(1155.62)">1 155,62 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(963.020000)">963,02 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-9%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="126636" data-price-box="product-id-126636">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-126636" data-label="TTC" data-price-amount="1049.028001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">1 049,03 €</span></span>
<span id="price-excluding-tax-product-price-126636" data-label="HT" data-price-amount="874.19" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">874,19 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126638/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126638/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="126638">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-festool-ctl-36-e-574965.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CLEANTEC CTL 36 E - FESTOOL - 574965" title="Aspirateur CLEANTEC CTL 36 E - FESTOOL - 574965" src="https://www.maxoutil.com/media/catalog_webp/product/7/7/77f28d9c-c6e6-11ec-8126-005056b31774_1600_1066.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
NAA10342 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTL 36 E - FESTOOL - 574965 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-126638.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(1012.55)">1 012,55 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(843.790000)">843,79 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-19%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="126638" data-price-box="product-id-126638">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-126638" data-label="TTC" data-price-amount="822.216001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">822,22 €</span></span>
<span id="price-excluding-tax-product-price-126638" data-label="HT" data-price-amount="685.18" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">685,18 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126643/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126643/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="126643">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-festool-ctm-26-e-574981.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CLEANTEC CTM 26 E - FESTOOL - 574981" title="Aspirateur CLEANTEC CTM 26 E - FESTOOL - 574981" src="https://www.maxoutil.com/media/catalog_webp/product/6/b/6bae9a68-c6e8-11ec-8126-005056b31774_1600_1066.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
NAA10337 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTM 26 E - FESTOOL - 574981 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-126643.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(1116.97)">1 116,97 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(930.810000)">930,81 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-25%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="126643" data-price-box="product-id-126643">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-126643" data-label="TTC" data-price-amount="839.004001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">839,00 €</span></span>
<span id="price-excluding-tax-product-price-126643" data-label="HT" data-price-amount="699.17" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">699,17 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126644/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126644/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="126644">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-festool-ctm-36-e-ac-574983.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CLEANTEC CTM 36 E AC - FESTOOL - 574983" title="Aspirateur CLEANTEC CTM 36 E AC - FESTOOL - 574983" src="https://www.maxoutil.com/media/catalog_webp/product/9/7/974e3934-c6e8-11ec-8126-005056b31774_1600_1066.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
FEST2217 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTM 36 E AC - FESTOOL - 574983 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-126644.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(1417.79)">1 417,79 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(1181.490000)">1 181,49 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-4%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="126644" data-price-box="product-id-126644">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-126644" data-label="TTC" data-price-amount="1366.212001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">1 366,21 €</span></span>
<span id="price-excluding-tax-product-price-126644" data-label="HT" data-price-amount="1138.51" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">1 138,51 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126646/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126646/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="126646">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-festool-ctm-36-e-574988.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CLEANTEC CTM 36 E - FESTOOL - 574988" title="Aspirateur CLEANTEC CTM 36 E - FESTOOL - 574988" src="https://www.maxoutil.com/media/catalog_webp/product/f/3/f3084382-c6e8-11ec-8126-005056b31774_1600_1066.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
NAA10338 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTM 36 E - FESTOOL - 574988 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-126646.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(1280.09)">1 280,09 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(1066.740000)">1 066,74 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-22%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="126646" data-price-box="product-id-126646">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-126646" data-label="TTC" data-price-amount="996.336001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">996,34 €</span></span>
<span id="price-excluding-tax-product-price-126646" data-label="HT" data-price-amount="830.28" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">830,28 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126652/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/126652/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="126652">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-festool-ctl-sys-575279.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CLEANTEC CTL SYS - FESTOOL - 575279" title="Aspirateur CLEANTEC CTL SYS - FESTOOL - 575279" src="https://www.maxoutil.com/media/catalog_webp/product/0/e/0efc99d9-c6e8-11ec-8126-005056b31774_1600_1066.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
NAA10344 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTL SYS - FESTOOL - 575279 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-126652.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(481.57)">481,57 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(401.310000)">401,31 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-19%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="126652" data-price-box="product-id-126652">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-126652" data-label="TTC" data-price-amount="389.004001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">389,00 €</span></span>
<span id="price-excluding-tax-product-price-126652" data-label="HT" data-price-amount="324.17" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">324,17 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/169023/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/169023/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="169023">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-ctl-mini-i-cleantec-festool-574840.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CTL MINI I CLEANTEC - FESTOOL - 574840" title="Aspirateur CTL MINI I CLEANTEC - FESTOOL - 574840" src="https://www.maxoutil.com/media/catalog_webp/product/c/t/ctl_mini.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
FEST2363 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CTL MINI I CLEANTEC - FESTOOL - 574840 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-169023.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(607.26)">607,26 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(506.050000)">506,05 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-18%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="169023" data-price-box="product-id-169023">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-169023" data-label="TTC" data-price-amount="498.996001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">499,00 €</span></span>
<span id="price-excluding-tax-product-price-169023" data-label="HT" data-price-amount="415.83" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">415,83 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/183331/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/183331/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="183331">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-ctm-midi-i-cleantec-festool-avec-accessoires-574822.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CTM MIDI I CLEANTEC - FESTOOL - avec accessoires - 574822" title="Aspirateur CTM MIDI I CLEANTEC - FESTOOL - avec accessoires - 574822" src="https://www.maxoutil.com/media/catalog_webp/product/6/1/61uzsslaxpl._ac_sl1100_.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
FEST2406 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CTM MIDI I CLEANTEC - FESTOOL - avec accessoires - 574822 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-183331.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(803.93)">803,93 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(669.940000)">669,94 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-18%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="183331" data-price-box="product-id-183331">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-183331" data-label="TTC" data-price-amount="658.992001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">658,99 €</span></span>
<span id="price-excluding-tax-product-price-183331" data-label="HT" data-price-amount="549.16" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">549,16 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/229919/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/229919/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="229919">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-ctl-36-e-ac-renofix-festool-575842.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CLEANTEC CTL 36 E AC RENOFIX - FESTOOL - 575842" title="Aspirateur CLEANTEC CTL 36 E AC RENOFIX - FESTOOL - 575842" src="https://www.maxoutil.com/media/catalog_webp/product/2/c/2cf1aa7d-de98-11e9-8102-005056b31774_1600_1066.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
FEST2519 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CLEANTEC CTL 36 E AC RENOFIX - FESTOOL - 575842 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-229919.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(1179.82)">1 179,82 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(983.180000)">983,18 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-27%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="229919" data-price-box="product-id-229919">
<div class="xl:flex">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-229919" data-label="TTC" data-price-amount="858.996001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">859,00 €</span></span>
<span id="price-excluding-tax-product-price-229919" data-label="HT" data-price-amount="715.83" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">715,83 €</span></span>
</span>
</span>
</div>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/304787/
<form method="post" action="https://www.maxoutil.com/checkout/cart/add/uenc/%25uenc%25/product/304787/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full
">
<input type="hidden" name="product" value="304787">
<a class="product-item-link flex gap-x-4 hover:no-underline p-4 h-full group
flex-col xl:bg-light-grey-1" href="https://www.maxoutil.com/aspirateur-ctm-36-e-ac-planex-cleantec-festool-576853.html">
<div class="mb-0.5">
<div class="
product photo product-item-photo block mx-auto mb-4 relative pb-100pc overflow-hidden bg-light
w-full xl:border xl:rounded-sm xl:border-light-grey-2
" tabindex="-1">
<div class="catalog-labels-list">
<script type="text/x-magento-init">
{
"*": {
"Mirasvit_CatalogLabel/js/label/product/view": {}
}
}
</script>
</div>
<img class="absolute inset-0 object-contain w-full h-full group-hover:scale-105 duration-300 p-1" loading="lazy" decoding="async" alt="Aspirateur CTM 36 E AC-PLANEX CLEANTEC FESTOOL - 576853" title="Aspirateur CTM 36 E AC-PLANEX CLEANTEC FESTOOL - 576853" src="https://www.maxoutil.com/media/catalog_webp/product/f/e/fest2822.webp?width=360&height=360&store=fr&image-type=small_image">
</div>
<div class="product-item-sku text-xs text-middle-grey font-normal">
FEST2822 </div>
</div>
<div class="product-info flex flex-col grow 1">
<div class="mb-4 font-medium grow xl:line-clamp-3 xl:max-h-[72px] line-clamp-4 max-h-[96px]">
Aspirateur CTM 36 E AC-PLANEX CLEANTEC FESTOOL - 576853 </div>
<div class="flex xl:items-center flex-col xl:flex-row items-start">
<div style="min-height: 48px;">
<div x-data="initPriceBox()" @update-prices-304787.window="updatePrice($event.detail);" class="mt-auto flex flex-col 2xl:flex-row items-start 2xl:items-center xl:h-[42px] 2xl:h-auto">
<div class="mb-2 2xl:mb-0 2xl:mr-2 border-tertiary-2 border rounded-2 flex items-center">
<del class="old-price font-inter block w-min text-tertiary-2 rounded-2 text-xs px-1
mb-0 bg-light">
<span class="price-including-tax" x-html="hyva.formatPrice(1484.76)">1 484,76 €</span>
<span class="price-excluding-tax" x-html="hyva.formatPrice(1237.300000)">1 237,30 €</span>
</del>
<span class="text-white bg-tertiary-2 px-1 text-xs h-4 flex items-center">-8%</span>
</div>
<div class="price-box price-final_price" data-role="priceBox" data-product-id="304787" data-price-box="product-id-304787">
<span class="normal-price">
<span class="price-container price-final_price tax weee">
<span id="price-including-tax-product-price-304787" data-label="TTC" data-price-amount="1360.908001" data-price-type="finalPrice" class="price-wrapper price-including-tax"><span class="price">1 360,91 €</span></span>
<span id="price-excluding-tax-product-price-304787" data-label="HT" data-price-amount="1134.09" data-price-type="basePrice" class="price-wrapper price-excluding-tax font-title-mobile-1 font-extrabold">
<span class="price text-dark">1 134,09 €</span></span>
</span>
</span>
</div> </div>
<div class="h-4 text-xs text-tertiary-3 uppercase font-bold mt-4">
Livraison Offerte </div>
</div>
</div>
</div>
</a>
</form>
POST https://www.maxoutil.com/newsletter/subscriber/new/
<form class="mb-2 relative" action="https://www.maxoutil.com/newsletter/subscriber/new/" method="post" x-data="initNewsletterForm()" @submit.prevent="submitForm()" id="newsletter-validate-detail">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 48 48" fill="none" class="w-12 h-12 absolute left-0 top-0">
<rect x="14" y="17" width="20" height="14" rx="1" stroke="black" stroke-width="2"></rect>
<path d="M14.8333 17.7778L22.7566 25.2904C23.4423 25.9403 24.5575 25.9403 25.2433 25.2904L33.1666 17.7778" stroke="black" stroke-miterlimit="10"></path>
<path d="M14.8333 30.2222L21.2499 24" stroke="black" stroke-miterlimit="10"></path>
<path d="M33.1667 30.2222L26.75 24" stroke="black" stroke-miterlimit="10"></path>
</svg>
<input name="email" type="email" pattern="[^@\s]+@[^@\s]+\.[^@\s]+" required="" id="newsletter-subscribe" class="form-input bg-light hover:bg-light focus:bg-light pr-16 pl-12 h-12" placeholder="Votre email" style="border: none;">
<input name="form_key" type="hidden" value="ggAJCCMt0SVvuYzl"> <button class="btn-secondary-2 absolute top-0 right-0 h-12 xl:w-20 w-16"> OK </button>
<div>
<template x-if="displayErrorMessage">
<p class="flex items-center text-red">
<span class="inline-block w-8 h-8 mr-3">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" width="24" height="24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
</svg>
</span>
<template x-for="errorMessage in errorMessages">
<span x-html="errorMessage"></span>
</template>
</p>
</template>
</div>
<style>
.amgdpr-text a {
text-decoration: underline;
}
.amgdpr-checkbox-block:last-child {
margin-bottom: 5px;
}
</style>
</form>
<form class="amgdprcookie-form-container" id="amgdprcookie-form" data-amcookie-js="form-cookie">
<template x-for="(item, index) in items" :key="item.groupId">
<div class="amgdprcookie-item mb-8">
<div class="header flex justify-between items-start pb-2">
<h3 class="text-lg font-semibold pr-6" :style="isSidebar ? `color: ${ styles.title_text_color }`:''" x-text="item.name"></h3>
<div class="amgdprcookie-toggle-cookie field choice w-6">
<div class="control">
<input class="amgdprcookie-input" data-amcookie-js="field" type="checkbox" name="groups[]" :id="'switchBox-' + item.groupId" :disabled="item.isEssential" :value="item.groupId" :checked="item.checked">
<label class="amgdprcookie-label label" :for="'switchBox-' + item.groupId"></label>
</div>
</div>
</div>
<p class="py-2" x-html="item.description" :style="isSidebar ? `color: ${ styles.description_text_color }`:''"></p>
<a class="text-primary-1 underline transition-all hover:text-black cursor-pointer accordion" :style="isSidebar ? `border-color: ${ styles.accept_btn_bg }` : ''" type="button" title="Plus d’information" aria-label="Plus d’information" @click="selectedTab !== index ? selectedTab = index : selectedTab = null;" x-html="selectedTab!==index?
'Plus d’information':
'Replier les informations'">
</a>
<div class="w-full p-0 relative transition-all duration-700 pannel-accordion" x-show="selectedTab==index">
<table class="mb-4 text-left w-full">
<thead>
<tr>
<th class="pr-4">Nom</th>
<th class="pr-4">Service</th>
<th class="min-w-[30%] pr-4"> Description </th>
<th class="pr-4">Durée de vie</th>
<th class="pr-4">Type</th>
</tr>
</thead>
<tbody>
<template x-for="(cookie, i) in item.cookies" :key="index">
<tr>
<td x-text="cookie.name" class="font-semibold pr-4"></td>
<td x-text="cookie.provider" class="pr-4"></td>
<td x-html="cookie.description" class="min-w-[30%] pr-4"></td>
<td x-text="cookie.lifetime" class="pr-4"></td>
<td x-text="cookie.type" class="pr-4"></td>
</tr>
</template>
</tbody>
</table>
</div>
</div>
</template>
<template x-if="showButtons">
<div class="mt-16">
<template x-for="(button, index) in buttons" :key="index">
<button class="btn btn-secondary-2 w-full" data-role="action" x-html="button.title" :title="button.title" :data-amcform-js="button.amcformjs" @click.prevent="button.action($el)"></button>
</template>
</div>
</template>
<div class="mt-16">
<template x-for="(button, index) in buttons" :key="index">
<button class="btn btn-secondary-2 w-full" data-role="action" x-html="button.title" :title="button.title" :data-amcform-js="button.amcformjs" @click.prevent="button.action($el)"></button>
</template>
</div>
</form>
Text Content
The wishlist name can't be left blank ✕ Veuillez fournir votre email Veuillez fournir votre email Nous n'avons pas trouvé de compte avec vos informations d'identification. Êtes-vous déjà inscrit dans notre magasin? Veuillez saisir le mot de passe de votre boutique pour lier votre compte social. Ou connectez-vous en utilisant les réseaux sociaux précédemment utilisés. E-mail E-mail Mot de passe S’identifier Mot de passe oublié? Oui, j'ai déjà un compte Non, je veux créer un nouveau compte E-mail E-mail E-mail Mot de passe S’identifier Mot de passe oublié? Oui, j'ai déjà un compte Non, je veux créer un nouveau compte S’identifier S’identifier Mot de passe oublié? Oui, j'ai déjà un compte Non, je veux créer un nouveau compte MERCI! Livraison offerte dès 100€ TTC d’achat* Rechercher par mot de..... OK À partir de -% -% Livraison Offerte PRIX SUR DEMANDE À partir de -% -% Livraison Offerte PRIX SUR DEMANDE À partir de -% -% Livraison Offerte PRIX SUR DEMANDE Show All Results À partir de -% -% Livraison Offerte PRIX SUR DEMANDE Rechercher Me connecter S’identifier Je suis un particulier Je m’identifie sur MaxOutil avec mon adresse E-mail. Je suis un professionnel Je m’identifie sur MaxOutil PRO avec numéro de SIRET. Mes listes Mon panier 0 1. Tous nos produits Tous nos produits 1. Outillage Outillage 1. Voir tout Outillage 2. Outillage électroportatif 1. Voir tout 2. Perceuse Visseuse 3. Perforateur - Burineur 4. Meuleuse 5. Scie 6. Ponceuse Polisseuse 7. Défonceuse - Affleureuse - Plaqueuse 8. Fraiseuse - Paumelleuse - Mortaiseuse 9. Mesures et contrôles 10. Outils oscillants 11. Cloueur Agrafeuse Riveteuse 12. Rabot électrique 13. Décapeur 14. Aspirateur 15. Malaxeur 16. Batterie et chargeur 17. Pack Outils - Combo pack 18. Éclairage de chantier 19. Radio de chantier 3. Outillage à main 1. Voir tout 2. Pinces 3. Clés 4. Tournevis 5. Marteau Masse 6. Couteau Cutter Ciseau 7. Scie 8. Outil de mesure 9. Rabot 10. Lime – Râpe 11. Agrafeuse 12. Niveaux 13. Coffret d'outils 14. Pistolet extrudeur 15. Rangement - Mallette - Caisse - Sac à outils 16. Divers outillage à main 17. Embouts vissage 18. Lames de scie 19. Traçage Marquage 20. Balai, pelle, brosserie, racloir 21. Automobile 22. Clés 23. Pinces 4. Outillage d'atelier 1. Voir tout 2. Perceuse à colonne et pneumatique 3. Scie stationnaire 4. Touret 5. Rabot Dégauchisseuse stationnaire 6. Serre joint- étaux – presse 7. Rangement, stockage 8. Servante 9. Etablis, table de monteur, tréteaux 10. Armoire, vestiaire 11. Poste à souder et accessoire 12. Perceuse à colonne 5. Outillage spécifique métiers 1. Voir tout 2. Outillage peintre plaquiste 3. Outillage frigoriste 4. Outillage carreleur, maçon, façadier 5. Outillage plombier, chauffagiste, électricien 6. Outillage mécanicien 7. Outillage carreleur, maçon, façadier 2. Équipement de protection individuelle Équipement de protection individuelle 1. Voir tout Équipement de protection individuelle 2. Protection de la tête 1. Voir tout 2. Casque de Chantier 3. Casquette, bonnet 3. Protection des yeux 1. Voir tout 2. Lunettes de protection 3. Masque de soudage 4. Protection auditive 1. Voir tout 2. Bouchon d'oreille et arceau 3. Casque et coquille anti bruit 5. Protection respiratoire 1. Voir tout 2. Masque jetable 3. Masque réutilisable 6. Protection des mains 1. Voir tout 2. Gants de travail 3. Gants anti coupure 4. Gants jetables 5. Gants de protection chimiques 6. Gants de protection thermiques 7. Protection des pieds 1. Voir tout 2. Chaussures de sécurité 3. Bottes de sécurité 4. Chaussettes, semelles, lacets 8. Protection du corps 1. Voir tout 2. Vêtement haute visibilité 3. Vêtement chauffant 4. Vêtement de pluie 5. Vêtement forestier 6. Vêtement soudeur 7. Vêtement à usage unique 8. Sous vêtement 9. TMS et accessoires 10. Tee-shirt - Polo - Chemise 11. Blouson - Gilet - Veste 12. Sweatshirt - Pull 13. Pantalon 14. Bermuda - Short - Pantacourt 15. Combinaison - Ensemble 9. Protection anti chute 1. Voir tout 2. Harnais anti chute 3. Accessoire anti chute 10. Divers EPI 1. Voir tout 2. Éclairage, signalétique 3. Éclairage 11. Hygiène, premier secours 1. Voir tout 2. Premier secours 3. Hygiène des mains 4. Essuyage et protection 3. Consommable Consommable 1. Voir tout Consommable 2. Abrasif 1. Voir tout 2. Abrasif à main 3. Abrasif ponceuse excentrique 4. Abrasif ponceuse vibrante 5. Abrasif ponceuse à bandes 6. Abrasif meuleuse 7. Abrasif perceuse et meuleuse droite 3. Brosses acier et nylon 4. Disques 1. Voir tout 2. Disque à ébarber 3. Disque à surfacer 4. Disque à tronçonner 5. Disque Diamant 5. Foret et Mèche 1. Voir tout 2. Foret béton 3. Foret métaux 4. Mèche à bois 5. Forets spéciaux 6. Mastic, silicone 1. Voir tout 2. Mastic-colle 3. Mastic d'étanchéité 4. Mastic de collage 5. Colle 6. Mastic à bois 7. Mousse polyuréthane 7. Fraise et meule 8. Fer de rabot 9. Lame de scie 1. Voir tout 2. Lame scie circulaire 3. Lame de scie sabre 4. Lame de scie sauteuse 5. Lame de scie à ruban 6. Lame de scie oscillante 7. Lame de scie métaux 10. Outils de toupie 11. Pierre d'affûtage, polissage, brosse décapage 12. Taraud et filière 13. Trépan 1. Voir tout 2. Trépan bois 3. Trépan acier 4. Trépan béton 14. Adhésifs 1. Voir tout 2. Adhésif emballage 3. Adhésif de réparation 4. Adhésif de masquage 5. Adhésif double face 6. Adhésif d'isolation 15. Cerclage et emballage 16. Embout de vissage 17. Douille, clé à douille, clé mâle 18. Produit chimique, scellement 19. Étanchéité et joints 20. Huile, graisse, lubrifiant, dégrippant 21. Piles 22. Traitement du bois 1. Voir tout 2. Lasure 3. Teinte 4. Vernis 23. Peinture, enduit et aérosol 24. Traçage et marquage 25. Produits d'entretien 26. Sac poubelle, gravât 27. Sac aspirateur 4. Fixation - visserie Fixation - visserie 1. Voir tout Fixation - visserie 2. Visserie 1. Visserie PVC 2. Visserie autoperceuse 3. Visserie bois 4. Visserie béton 5. Visserie PVC 6. Visserie plaque de plâtre 7. Visserie de pose et de menuiserie 8. Visserie béton pour menuiserie 3. Fixation 1. Voir tout 2. Tirefond 3. Boulon, vis métrique 4. Tige filetée 5. Cheville fixation légère 6. Cheville fixation lourde 7. Cheville à frapper 8. Goujon d'ancrage 9. Pointe tête plate, torsadée, ancrage 10. Collier de fixation 11. Boulonnerie métrique 4. Agrafes 5. Sabot, équerre et connecteur de charpente 1. Voir tout 2. Feuillard charpente 6. Pitonnerie 7. Rivet 8. Cale de menuiserie 5. Matériel et équipement de chantier Matériel et équipement de chantier 1. Voir tout Matériel et équipement de chantier 2. Matériel de chantier 1. Voir tout 2. Nettoyeur Haute pression 3. Chauffage 4. Compresseurs, outils pneumatiques et accessoires 5. Équipements urbains 6. Groupe électrogène 7. Matériel de signalisation et sécurité 8. Poubelles 9. Téléphonie 10. Aspirateur 11. Autolaveuse balayeuse 12. Découpeuse, tronçonneuse 13. Bouteille de gaz 14. Bétonniere 15. Communication 3. Levage et manutention 1. Voir tout 2. Brouette, bac, benne 3. Échafaudage 4. Échelles Escabeaux 5. Roues et roulettes de manutention 6. Chariots diables transpalettes 7. Palans treuils crics poulies 8. Chaîne, cable, élingue, cordage 4. Equipement électrique de chantier 1. Enrouleurs et rallonges 6. Quincaillerie générale Quincaillerie générale 1. Voir tout Quincaillerie générale 2. Cadenas 3. Verrou 4. Boite aux lettres 5. Batteuse et clés 6. Aération 7. Affichage, signalétique 8. Coffre fort et boite à clés 9. Patères, porte manteaux 10. Mains courantes et garde corps 11. Plat et nez de marche 12. Plinthes 13. Seuils 14. Anti pince doigts et joint de battement 15. Entrebâilleurs et judas 16. Accessoires quincaillerie 17. Trappe de visite 18. Accessoires divers quincaillerie 7. Équipements portes et fenêtres Équipements portes et fenêtres 1. Voir tout Équipements portes et fenêtres 2. Cylindre 1. Voir tout 2. Cylindre européen varié et s'entrouvrant standard 3. Cylindre européen varié et s'entrouvrant de sécurité 4. Cylindres spéciaux et accessoires 5. Cylindre rond 6. Cylindre électronique 3. Serrure 1. Voir tout 2. Serrure à larder 3. Serrure à larder profil alu ou métal 4. Serrure en applique 5. Gâche, accessoire 6. Serrure tubulaire 7. Serrure de porte en verre (miroiterie) 8. Serrure de porte coulissante 9. Verrous de sûreté 10. Serrure à larder monopoint 11. Gâche 12. Verrous de sûreté à bouton 4. Fermeture anti panique 5. Crémone en applique type pompier 6. Contrôle d'accès et sécurité 1. Voir tout 2. Gâche électrique 3. Ventouse et verrouillage électromagnétique 4. Contrôle d'accès et accessoires 5. Sécurité Incendie 6. Garniture autonome mécanique 7. Garniture autonome électrique 7. Ferme Porte 1. Voir tout 2. Ferme Portail 3. Ferme porte en applique 4. Ferme porte encastré 5. Pivot de sol 8. Poignée pour portes et fenêtres 1. Voir tout 2. Ensemble de porte moderne 3. Ensemble de porte rustique 4. Ensemble de porte Inox 5. Ensemble de porte polyamide 6. Ensemble de porte Aluminium 7. Ensemble de porte et fenêtre de sécurité 8. Accessoire 9. Butée et arrêt de porte 10. Ensemble de porte PMR et poignée de tirage 9. Ferrure de porte et fenêtre 1. Voir tout 2. Crémone 3. Mécanisme ouvrant à la française 4. Paumelles, fiches et charnières 5. Mécanisme à soufflet 6. Mécanisme Oscillo battant 7. Mécanisme coulissant 8. Crémone en applique 9. Paumelles 10. Ferrure de volet et portail 1. Voir tout 2. Pentures et Gonds 3. Ferrures et accessoires de volet battant 4. Accessoires de volet roulant 11. Ferrure de porte coulissante 1. Voir tout 2. Ferrure de porte coulissante sur profil alu 3. Ferrure de porte coulissante sur fer plat 4. Accessoires de porte coulissante 12. Moustiquaires 13. Stores 14. Automatismes 1. Voir tout 2. Automatisme de volet 3. Automatisme portail battant 4. Automatisme portail coulissant 5. Accessoire 15. Accessoires de porte 8. Agencement Agencement 1. Voir tout Agencement 2. Bouton et poignée de porte 1. Voir tout 2. Bouton poignée Rustique 3. Bouton poignée Contemporain 4. Poignée cuvette et coquille 5. Entrée rosace 3. Fermeture de meubles 1. Voir tout 2. Serrure en applique 3. Serrure à encastrer 4. Clés 5. Cylindre et batteuse 6. Loqueteau 4. Assemblage de meuble 1. Voir tout 2. Assemblage mécanique 3. Assemblage bois Lamelo domino tourillon 5. Pieds, vérins, patins, roulettes de meuble 1. Voir tout 2. Pied de table 3. Vérin et embout 4. Patin et butoir 5. Pied de meuble et composant 6. Ferrure de porte 1. Voir tout 2. Charnière invisible 3. Charnière et pivot 4. Fiche et paumelle 5. Ferrure d'abattant compas coulisseau 7. Machine et accessoires 8. Tiroirs et coulissants 1. Voir tout 2. Coulisse 3. Côté de tiroir 9. Équipement 1. Voir tout 2. Cuisine 3. Placard et Dressing 4. Bureau, Multimédia 5. Taquet 6. Profilé et chant à plaquer 7. Tubes suspentes entretoises râteliers 8. Crémaillères consoles 9. Bureau 10. Luminaire 9. Sanitaire Sanitaire 1. Voir tout Sanitaire 2. Bain 1. Voir tout 2. Baignoire 3. Vidage baignoire 3. Douche 1. Voir tout 2. Receveur de douche 3. Cabine et Paroi de douche 4. Bonde de douche 5. Panneaux muraux 4. Lavabo et vasque 5. WC 1. Voir tout 2. WC au sol 3. WC suspendu 4. Bâti supports et plaques 5. Abattants et accessoires 6. Mécanismes de chasse 6. Meuble salle de bain 7. Robinetterie 1. Voir tout 2. Robinetterie baignoire 3. Robinetterie douche 4. Colonne de douche 5. Hydrothérapie 6. Robinetterie lavabo et bidet 7. Robinetterie de cuisine 8. Accessoires robinetterie 9. Bonde de lavabo 10. Robinetterie collectivités 8. Éviers 1. Voir tout 2. Évier inox 3. Évier céramique 9. Collectivités PMR 1. Voir tout 2. Sanitaire collectivités 3. Robinetterie Collectivités 4. Barre appui, siège douche 5. Accessoires robinetterie 6. Barre appui 10. Accessoires sanitaire 10. Chauffage climatisation Chauffage climatisation 1. Voir tout Chauffage climatisation 2. Chaudière 1. Voir tout 2. Chaudière murale gaz 3. Chaudière sol fioul 3. Pompe à chaleur 1. Voir tout 2. Pompe à chaleur aérothermie 3. Pompe à chaleur géothermie 4. Pompe à chaleur hybride 5. Accessoires PAC 4. Poêle et cuisinière 1. Voir tout 2. Poêle à bûche 3. Poêle à granulé 5. Climatisation 1. Voir tout 2. Liaison frigorifique et accessoires 3. Groupe de climatisation 6. Chaufferie 1. Voir tout 2. Pompe et circulateur 3. Sécurité chaufferie 4. Accessoires de chaufferie 5. Vase expansion 6. Bouteille de mélange 7. Vannes mélangeuses 7. Cuve Fioul 1. Voir tout 2. Accessoires équipements 8. Régulation 1. Voir tout 2. Régulation 3. Thermostat 9. Fumisterie 1. Voir tout 2. Raccordement émaillé noir 3. Conduit inox 4. Ventouse fioul 5. Ramonage, accessoires 10. Radiateur 1. Voir tout 2. Radiateur acier 3. Sèche serviette 4. Radiateur électrique 5. Robinetterie et Accessoires 11. Plancher chauffant 1. Voir tout 2. Dalle isolante 3. Outils et accessoires 4. Tube et composants 12. Eau chaude sanitaire 1. Voir tout 2. Chauffe eau électrique 3. Chauffe eau instantané 4. Chauffe eau thermodynamique 5. Préparateur ECS 6. Accessoires chauffe eau / ECS 13. Énergie solaire 1. Voir tout 2. Photovoltaïque 3. Solaire, thermique 4. Solaire 14. Divers chauffage climatisation 11. Plomberie Plomberie 1. Voir tout Plomberie 2. Tube et raccord cuivre et laiton 1. Voir tout 2. Raccord cuivre à souder 3. Raccord laiton à souder 4. Raccord laiton à visser 5. Raccord laiton à compresser 6. Raccord cuivre à sertir 3. Tube et raccord PER 1. Voir tout 2. Tube PER 3. Raccord à sertir 4. Raccord à compression 5. Raccord à glissement 6. Accessoires PER 7. Collecteurs, supports, colliers et accessoires 4. Tube et raccord multicouche 1. Voir tout 2. Tube multicouche 3. Raccord multicouche 5. Tube et Raccord PE 6. Tube et Raccord PVC 1. Voir tout 2. Tube PVC 3. Siphons et accessoires 4. Accessoires PVC evacuation 5. Raccord PVC evacuation 7. Robinetterie bâtiment 1. Voir tout 2. Robinet d'arrêt 3. Robinet de puisage 4. Mesure et comptage 5. Protection de réseaux 6. Flexible d'alimentation 7. Raccordement machine à laver 8. Joint 9. Collecteurs, supports, colliers et accessoires 8. Robinetterie gaz 1. Voir tout 2. Tuyau gaz 3. Raccords et joints gaz 4. Detendeur gaz 5. Raccords joints et gaz 6. Robinet d'arret 9. Pompe eau froide 1. Voir tout 2. Pompe immergée 3. Pompe de surface 4. Surpresseur 5. Accessoires pompes 6. Station de relevage 7. Réservoir stockage d'eau 10. Traitement de l'eau 1. Voir tout 2. Adoucisseur 3. Filtration 4. Accessoires et consommables 11. Consommable 1. Voir tout 2. Étanchéité et accessoires 3. Produits de traitement de réseaux 4. Isolation tuyauterie et accessoires 5. Supportage 12. Outillage Plombier chauffagiste 1. Voir tout 2. Sertissage et raccordement 3. Coupe tube, calibreurs, outils de cintrage 4. Carotteuse 5. Soudure oxy-acéthylénique 6. Traitement des réseaux 7. Débouchage 8. Clés, pinces outils divers 9. Carotteuse et accessoires 10. Collecteurs, supports, colliers et accessoires 11. Clés 12. Coupe tube 12. Électricité Électricité 1. Voir tout Électricité 2. Branchement et protection 1. Voir tout 2. Coffret et armoire 3. Protection de l'habitat 4. Puissance, commande, mesure 5. Puissance 3. Appareillage terminal 1. Voir tout 2. Prises de l'habitat 3. Prises tertiaires 4. Prises spécifiques 5. Prises industrielles 6. Accessoires 4. Communication et réseaux 1. Voir tout 2. Connectique TV et téléphone 3. Connectique audio et vidéo 4. Multimédia et VDI 5. Carillon 5. Fils et câbles 1. Voir tout 2. Câbles et fils domestiques 3. Câbles et fils industriels 4. Câbles spécifiques 5. Connectique 6. Accessoires de câblage 6. Conduits et chemins de câbles 1. Voir tout 2. Conduits tubulaires 3. Moulures et plinthes 4. Protection des câbles 5. Goulotte 6. Colonnes 7. Chemin de câbles 7. Accessoires, enrouleurs et raccordements 1. Voir tout 2. Matériel d'installation 3. Mise à la terre 4. Connexion fixation 5. Connexion mobile 6. Équipement bureaux et cuisines 7. Enrouleurs et rallonges 8. Éclairage 1. Voir tout 2. Sources, lampes 3. Luminaires habitat 4. Luminaires commerces 5. Luminaires d'extérieur 6. Alimentations 7. Accessoires d'éclairage 8. Sources 9. Réseaux et système VDI tertiaire 1. Voir tout 2. Système de détection pour l’éclairage 3. Solutions sans fil 10. Sécurité, alarme 1. Voir tout 2. Interphonie et visiophonie 3. Éclairage de sécurité 4. Onduleur 5. Vidéosurveillance, alarmes anti intrusion 6. Alarme et détection incendie 11. Équipements électriques 1. Voir tout 2. Sèche mains 3. Désinsectiseur 13. Maison - Jardin - Piscine Maison - Jardin - Piscine 1. Voir tout Maison - Jardin - Piscine 2. Outils électrique et thermique 1. Voir tout 2. Souffleur 3. Broyeur 4. Tronçonneuse 5. Débroussailleuse 6. Tondeuse 7. Taille-haie 3. Outils de jardinage manuel 4. Piscine et SPA 1. Voir tout 2. SPA 3. Piscine et accessoires 4. Filtration et réseaux 5. Robot 6. Consommables piscine 7. Pompe à chaleur piscine 5. Gazon synthétique et accessoires 6. Arrosage jardin 7. Pompe d'évacuation 8. Petit Électroménager 9. Équipements d'extérieur 10. Divers maison et jardin 14. Couverture Couverture 1. Voir tout Couverture 2. Ardoises et tuiles 1. Voir tout 2. Fixation ardoise 3. Fixation tuile 3. Bac de couverture 1. Voir tout 2. Pliage acier 4. Étanchéité 1. Voir tout 2. Étanchéité EPDM 3. Étanchéité liquide 4. Réparation étanchéité 5. Gouttière et descente 1. Voir tout 2. Pluvial PE 3. Gouttière 1 6. Composant de toiture 1. Voir tout 2. Divers 7. Velux fenêtre de toit 8. Habillage sous-toiture 9. Accessoires de ventilation 1. Voir tout 2. Closoir de faîtage 3. Liteau de ventilation 4. Chapeau de ventilation 10. Accessoires - Fixation 1. Voir tout 2. Fixation de sécurité 3. Fixation divers 4. Pointe 11. Évacuation des fumées 1. Voir tout 2. Sortie de toit cheminée 3. Conduit cheminée isolé 12. Isolation 1. Voir tout 2. Isolation toiture 3. Kit isolation porte de garage 4. Fixation isolant 13. Outillage couvreur 1. Voir tout 2. Échelle 3. Outillage ardoise 4. Outillage tuile 5. Outillage consommable - traçage 6. Soudure 7. Outillage zinc 8. Bâche 9. Outillage couvreur 14. Sécurité 1. Voir tout 2. Garde-corps 3. Sécurité de chantier 15. Bois de couverture 1. Voir tout 2. Liteau 3. Lambourde et chevron 16. Traitement de toiture 15. Toutes les marques Service client disponible par e-mail ou téléphone Service Client Nous contacter par e-mail Appeler le service client Service client disponible au 05 65 62 99 48 Service client au 05 65 62 99 48 uniquement de lundi à jeudi : 8h30-12h00 13h30-17h30 et le vendredi : 8h30-12h00 13h30-16h00 2. Toutes les marques 3. Black Friday 2024 1. Tous nos produits 2. Toutes les marques 3. Black Friday 2024 Prix Commander en utilisant votre compte Adresse email Mot de passe Connexion Mot de passe oublié? Commander en tant que nouveau client La création d’un compte possède de nombreux avantages : * Voir le statut de la commande et de l’expédition * Suivi de la commande * Commandez plus rapidement Créer un compte Allez au contenu MAXOUTIL : OUTILLAGES ET ÉQUIPEMENTS POUR PROFESSIONNELS ET PARTICULIERS TOP MARQUES MILWAUKEE MILWAUKEE BOSCH BOSCH MAKITA MAKITA DEWALT DEWALT FESTOOL FESTOOL FACOM FACOM HIKOKI HIKOKI GEBERIT GEBERIT STANLEY STANLEY FREUD FREUD TOP CATÉGORIES Perceuse Visseuse Meuleuse Ponceuse Polisseuse Scie Consommables Aspirateur Voir toutes les catégories RECOMMANDÉ POUR VOUS NAA10339 Aspirateur CLEANTEC CTL 26 E AC - FESTOOL - 574945 983,14 € 819,28 € -24% 749,00 € 624,17 € Livraison Offerte NAA10341 Aspirateur CLEANTEC CTL 26 E 1200W - FESTOOL - 574947 838,69 € 698,91 € -20% 674,99 € 562,49 € Livraison Offerte FEST2206 Aspirateur CLEANTEC CTL 36 E AC - FESTOOL - 574958 1 155,62 € 963,02 € -9% 1 049,03 € 874,19 € Livraison Offerte NAA10342 Aspirateur CLEANTEC CTL 36 E - FESTOOL - 574965 1 012,55 € 843,79 € -19% 822,22 € 685,18 € Livraison Offerte NAA10337 Aspirateur CLEANTEC CTM 26 E - FESTOOL - 574981 1 116,97 € 930,81 € -25% 839,00 € 699,17 € Livraison Offerte FEST2217 Aspirateur CLEANTEC CTM 36 E AC - FESTOOL - 574983 1 417,79 € 1 181,49 € -4% 1 366,21 € 1 138,51 € Livraison Offerte NAA10338 Aspirateur CLEANTEC CTM 36 E - FESTOOL - 574988 1 280,09 € 1 066,74 € -22% 996,34 € 830,28 € Livraison Offerte NAA10344 Aspirateur CLEANTEC CTL SYS - FESTOOL - 575279 481,57 € 401,31 € -19% 389,00 € 324,17 € Livraison Offerte FEST2363 Aspirateur CTL MINI I CLEANTEC - FESTOOL - 574840 607,26 € 506,05 € -18% 499,00 € 415,83 € Livraison Offerte FEST2406 Aspirateur CTM MIDI I CLEANTEC - FESTOOL - avec accessoires - 574822 803,93 € 669,94 € -18% 658,99 € 549,16 € Livraison Offerte FEST2519 Aspirateur CLEANTEC CTL 36 E AC RENOFIX - FESTOOL - 575842 1 179,82 € 983,18 € -27% 859,00 € 715,83 € Livraison Offerte FEST2822 Aspirateur CTM 36 E AC-PLANEX CLEANTEC FESTOOL - 576853 1 484,76 € 1 237,30 € -8% 1 360,91 € 1 134,09 € Livraison Offerte MAX SERVICES Paiement 3 ou 4x sans frais par carte bancaire ou Paypal Paiement en plusieurs fois Avec Alma, nous vous offrons la possibilité d’étaler votre paiement en payant en plusieurs fois. C’est simple, sécurisé et sans frais ! Si vous ne connaissez pas Alma, rendez-vous sur https://getalma.eu/customers Comment ça marche ? - Choisissez Alma au moment de payer. Vous pouvez payer en 3x et 4x - Entrez simplement vos coordonnées bancaires comme lors d’un paiement classique. - La validation de votre commande est instantanée. - Vous recevrez ensuite un email avec l’échéancier de paiement puis un rappel 3 jours avant chaque échéance. Conditions d’éligibilité : - Ce type de paiement est disponible pour toutes les commandes supérieures à 100€ et inférieures à 3000€ - Les cartes acceptées sont les cartes émises en France visa, mastercard et Amex. - Les cartes prépayées, virtuelles et à autorisation systématique ne sont pas acceptées. Livraison à domicile offerte en France Métropolitaine dès 100€ * Livraison & retours LIVRAISON EN FRANCE MÉTROPOLITAINE Livraison à domicile ou en point-relais 24-48H offerte à partir de 100€ TTC Surcoût de livraison 49.90€ TTC pour les produits de plus de 30 kg, les matières dangereuses et les produits encombrants LIVRAISON EN CORSE Frais de livraison à domicile de 24.90€ TTC, pas de franco. LIVRAISON EN BENELUX, ALLEMAGNE, SUISSE, ESPAGNE, ITALIE ET AUTRICHE Livraison à domicile est offerte pour une commande supérieure à 100€ TTC. Surcoût de livraison 99.90€ TTC pour les produits de plus de 30 kg, les matieres dangereuse et ls produits encombrants. LIVRAISON EN GUADELOUPE, GUYANE ET MARTINIQUE Calcul du port, de la TVA et des taxes douanières à la commande. Livraison autres DOM/TOM : Nous consulter. En savoir plus sur la livraison Garantie 3 ans + retour gratuit grâce à 1 an d’extension offerte * Garanties Produit GARANTIE 2 ANS Les produits sont garantis en général pour une durée de 2 ans selon les indications portées au descriptif du produit. La garantie permet l’échange, le remboursement ou la réparation. En cas d’avarie ou de panne, durant la période de garantie, nous mettons à disposition une formulaire en ligne de demande de prise en charge et prenons en charge les frais de retour ! + 1 AN D’EXTENSION OFFERTE Sachez que nous offrons une année d’extension de garantie sur les outils et machines électroportatives. Satisfait ou remboursé sous 14 jours après réception Satisfait ou remboursé RÉTRACTATION Vous disposez de 14 jours à compter de la date de réception de la commande pour renvoyer la marchandise pour échange ou remboursement, sans pénalité, à l’exception des frais de retour. RETOUR EN S.A.V. En cas d’avarie ou de panne, durant la période de garantie, nous mettons à disposition une formulaire en ligne de demande de prise en charge et prenons en charge les frais de retour ! En savoir plus sur les retours Fidélité récompensée sur vos prochaines commandes Programme fidélité GAGNEZ DES POINTS À CHAQUE ACHAT ! Le programme fidélité est une carte de fidélité virtuelle. Il vous permet de cumuler des points à chaque achat. Une fois ces points acquis, vous pourrez les utiliser pour régler vos futurs achats sur MAXOUTIL! 1€ HT ACHETÉ = 1 POINT GAGNÉ A chaque fois que vous effectuez un achat sur MAXOUTIL, vous gagnez des points en fonction du prix des produits achetés et ces points sont ajoutés à votre solde de points de fidélité. 50 POINTS = 1€ TTC DE RÉDUCTION Vous pouvez échanger vos points de fidélité à la validation de votre commande. Si vous avez accumulé suffisamment de points pour les échanger, vous aurez la possibilité d'utiliser les points comme l'une des méthodes de paiement et ainsi faire encore plus d’économies. En savoir plus sur la fidélité Service client disponible par e-mail ou téléphone Service Client Une question ? Un conseil sur un produit ? Un renseignement ? Service client disponible au 05 65 62 99 48 Service client au 05 65 62 99 48 uniquement de lundi à jeudi : 8h30-12h00 13h30-17h30 et le vendredi : 8h30-12h00 13h30-16h00 Nous contacter par e-mail Appeler le service client OFFRES EN COURS 100 ANS METABO Pour l'achat d'une machine sans fil Metabo. Une batterie 18V 4,0 Ah Li-Power ou un Pack 18V Batterie 2,0 Ah + chargeur Offert. Voir l’offre OPERATION REDCOMPENSE Du15 Octobre au 15 Décembre 2024 Opération REDCOMPENSE Voir l’offre CASHBACK Profitez de notre promotion PLANEX Cashback avant qu'il ne soit trop tard ! Voir l’offre 500€ EN CASHBACK Offre valable du 18/11/2024 au 31/05/2025 Voir l’offre Newsletter OK Votre adresse e-mail sera exclusivement utilisée par Maxoutil et sera conservée jusqu’à votre désinscription. Celle-ci peut se faire à tout moment, à votre demande, depuis le lien de désinscription présent dans les e-mails que nous vous envoyons, ou en nous contactant directement. Static block content not found Infos Services * Paiement sécurisé * Garantie constructeur Infos Services * Paiement sécurisé * Garantie constructeur A propos de Maxoutil * Qui sommes-nous? * Contact * Conditions Générales de Ventes * Mentions légales * Protection des données personnelles A propos de Maxoutil * Qui sommes-nous? * Contact * Conditions Générales de Ventes * Mentions légales * Protection des données personnelles Nous contacter par e-mail Appeler le service client Service client disponible au 05 65 62 99 48 Service client au 05 65 62 99 48 uniquement de lundi à jeudi : 8h30-12h00 13h30-17h30 et le vendredi : 8h30-12h00 13h30-16h00 Website by Retour Politique de confidentialité J'ai lu et j'accepte PRÉFÉRENCES DES COOKIES PRÉFÉRENCES DES COOKIES Nous utilisons des cookies pour améliorer nos services, faire des offres personnelles et améliorer votre expérience. Si vous n'acceptez pas les cookies facultatifs ci-dessous, votre expérience peut en être affectée. Si vous voulez en savoir plus, lisez la politique en matière de cookies. Tout accepterTout refuserPersonnaliser PRÉFÉRENCES DES COOKIES Nom Service Description Durée de vie Type Cookie Name Cookie Provider Cookie Description Durée de vie Cookie Type