Herramientas de Calidad a Bajo Costo
Sugerencias de Producto
Categorías de Tienda

Milwaukee M12 FUEL 12-Volt Lithium-Ion Brushless Inalámbrico 1/2 in. Taladro Atornillador Kit con M12 HACKZALL - 3403-22-2420-20

MX$10,163.89
Acumula 101 Ferrepoints ℹ️ Puedes usar estos puntos en tu próxima compra.
1 punto = 1 peso
Se acreditan después del pago exitoso.
Más información

- Precios Expresados en MXN
- Precios incluyen IVA

Facturacion

Emitimos facturas en cada compra. Puedes solicitar tu factura de manera sencilla en nuestra página de facturación.


Meses sin Intereses (MSI)

Este producto es elegible para la promoción de hasta 12 meses sin Intereses, a precio Regular.

Términos & Condiciones aplican. Mas Informacion


Envios Internacionales

Hacemos envíos a Guatemala, El Salvador, Honduras, Costa Rica, Panamá, Colombia, Perú, Chile, Argentina y más países de Centroamérica y Sudamérica. Contáctanos por WhatsApp o correo para cotizar el envío internacional.

Más información

Métodos de Pago Aceptados

Información adicional sobre MSI.


Mercado Pago

Precio Regular: $ 9,941.93

MesesPago por mes
3$ 3,844.21
6$ 1,922.11
9$ 1,281.40
12$ 961.05
HTTP/1.0 200 OK Cache-Control: no-cache, private Content-Type: application/json Date: Sun, 03 Nov 2024 02:44:07 GMT "Server error: `POST https:\/\/api.openai.com\/v1\/chat\/completions` resulted in a `502 Bad Gateway` response:\n\r\n502 Bad Gateway<\/title><\/head>\r\n<body>\r\n<center><h1>502 Bad Gateway<\/h1><\/center>\r\n<hr><center>clou (truncated...)\n" <style> .table { width: 100%; margin-bottom: 1rem; margin: 0 auto; /* Esto centra la tabla */ color: #212529; } .ps-table--oriented { margin-bottom: 50px; border-radius: 4px; overflow: hidden; } .ps-table--oriented tr th { background-color: #f0f2f5; color: #103178; padding: 11px 20px; width: 30%; font-size: 14px; } .ps-table--oriented tr:first-child th:first-child { border-top-left-radius: 4px; border-top-color: transparent; } .ps-table { border-radius: 4px; border-collapse: collapse; border-spacing: 0; } .ps-table tbody tr td { border: none; border-right: 1px solid rgba(16, 49, 120, 0.1); border-bottom: 1px solid rgba(16, 49, 120, 0.1); margin: 0 auto; } .table td, .table th { padding: .75rem; vertical-align: top; border-top: 1px solid #dee2e6; } </style> <div class="col-md-8"> <table class="table ps-table ps-table--oriented mt-5"> <tbody> <tr> <th class="ps-table__th">Battery Amp Hours</th> <td>Multiple Batteries</td> </tr> <tr> <th class="ps-table__th">Battery Power Type</th> <td>Lithium Ion</td> </tr> <tr> <th class="ps-table__th">Battery Voltage (V)</th> <td>12V</td> </tr> <tr> <th class="ps-table__th">Battery/Charger</th> <td>2 Batteries & Charger Included</td> </tr> <tr> <th class="ps-table__th">Charger Included</th> <td>Charger Included</td> </tr> <tr> <th class="ps-table__th">Chuck Size (In.)</th> <td>1/2 In.</td> </tr> <tr> <th class="ps-table__th">Chuck Type</th> <td>Keyless</td> </tr> <tr> <th class="ps-table__th">Color Family</th> <td>Red</td> </tr> <tr> <th class="ps-table__th">Condition</th> <td>New</td> </tr> <tr> <th class="ps-table__th">Cordless Tool Type</th> <td>Drill/Driver</td> </tr> <tr> <th class="ps-table__th">Cordless/Corded</th> <td>Cordless</td> </tr> <tr> <th class="ps-table__th">Drill/ Driver Type</th> <td>Power Drill</td> </tr> <tr> <th class="ps-table__th">Included</th> <td>Belt Clip,Tool Bag</td> </tr> <tr> <th class="ps-table__th">Maximum Speed (RPM)</th> <td>1550 RPM</td> </tr> <tr> <th class="ps-table__th">Motor Type</th> <td>Brushless</td> </tr> <tr> <th class="ps-table__th">Number of Total Batteries Included</th> <td>2</td> </tr> <tr> <th class="ps-table__th">Power Tool Features</th> <td>Built-In Light,Compact,Forward/Reverse Switch,Keyless Chuck,LED Light,Reverse,Variable Speed</td> </tr> <tr> <th class="ps-table__th">Product Weight (lb.)</th> <td>2.5 lb</td> </tr> <tr> <th class="ps-table__th">Returnable</th> <td>90-Day</td> </tr> <tr> <th class="ps-table__th">Tools Product Type</th> <td>Power Tool</td> </tr> <tr> <th class="ps-table__th">Torque (lb-in)</th> <td>400 In lbs</td> </tr> <tr> <th class="ps-table__th">Certifications and Listings</th> <td>UL Listed</td> </tr> <tr> <th class="ps-table__th">Manufacturer Warranty</th> <td>5 Year Limited</td> </tr> <tr> <th class="ps-table__th">Product Depth (in.)</th> <td>5.95 in</td> </tr> <tr> <th class="ps-table__th">Product Height (in.)</th> <td>7.0 in</td> </tr> <tr> <th class="ps-table__th">Product Width (in.)</th> <td>2.25 in</td> </tr> </tbody> </table> </div> </div> <div class="table_component" role="region" tabindex="0"> <button x-cloak type="button" class="btn btn-default btn-show-more" :class="{ 'show': showMore }" @click="toggleDescriptionContent" x-text=" showDescriptionContent ? 'Mostrar Menos' : 'Mostrar Más' "> </button> </div> </div> <div id="reviews" class="tab-pane reviews"> <div class="row"> <div class="col-xl-9 col-lg-18"> <div class="review-form-wrap"> <form @submit.prevent="addNewReview" @input="errors.clear($event.target.name)"> <div class="review-form"> <h4>Agregar una reseña</h4> <div id="my_name_00CyH9EZWftC8OW8_wrap" style="display: none" aria-hidden="true"> <input id="my_name_00CyH9EZWftC8OW8" name="my_name_00CyH9EZWftC8OW8" type="text" value="" autocomplete="nope" tabindex="-1"> <input name="valid_from" type="text" value="eyJpdiI6InZINWYwa3ZER3k2Y2lkTVFYUkhBT3c9PSIsInZhbHVlIjoiRlk2cndsVVRYbWxNMlRUekRXMzQ1UT09IiwibWFjIjoiMjZhZDkzMjk2MDBjOTk2ZWNlZDIzYjI2MDY3NmQwZmE2M2M1NDg5NWIxMjJlMmM2ZGQyODhiYTk4OWNmYzU4YyIsInRhZyI6IiJ9" autocomplete="off" tabindex="-1"> </div> <div class="row"> <div class="col-md-18"> <div class="form-group"> <label>Tu Calificación<span>*</span></label> <div class="rating-input"> <input type="radio" name="rating" x-model="reviewForm.rating" id="star-5" value="5"> <label for="star-5" title="5 star"> <i class="las la-star"></i> </label> <input type="radio" name="rating" x-model="reviewForm.rating" id="star-4" value="4"> <label for="star-4" title="4 star"> <i class="las la-star"></i> </label> <input type="radio" name="rating" x-model="reviewForm.rating" id="star-3" value="3"> <label for="star-3" title="3 star"> <i class="las la-star"></i> </label> <input type="radio" name="rating" x-model="reviewForm.rating" id="star-2" value="2"> <label for="star-2" title="2 star"> <i class="las la-star"></i> </label> <input type="radio" name="rating" x-model="reviewForm.rating" id="star-1" value="1"> <label for="star-1" title="1 star"> <i class="las la-star"></i> </label> </div> <template x-if="errors.has('rating')"> <span class="error-message" x-text="errors.get('rating')"></span> </template> </div> <div class="form-group"> <label for="name"> Nombre<span>*</span> </label> <input type="text" name="reviewer_name" autocomplete="on" id="name" class="form-control" x-model="reviewForm.reviewer_name" > <template x-if="errors.has('reviewer_name')"> <span class="error-message" x-text="errors.get('reviewer_name')"></span> </template> </div> <div class="form-group"> <label for="comment"> Comentario<span>*</span> </label> <textarea rows="5" name="comment" x-model="reviewForm.comment" id="comment" class="form-control"></textarea> <template x-if="errors.has('comment')"> <span class="error-message" x-text="errors.get('comment')"></span> </template> </div> <div class="form-group p-t-5 captcha-field"> <div class="g-recaptcha" data-sitekey="6LeP8W8qAAAAALtvh7gMbgprkk0xCnHJ-5rnBjE9"></div> <template x-if="errors.has('g-recaptcha-response')"> <span class="error-message" x-text="errors.get('g-recaptcha-response')"></span> </template> </div> <button type="submit" class="btn btn-primary btn-submit" :class="{ 'btn-loading': addingNewReview }" > Enviar Reseña </button> </div> </div> </div> </form> </div> </div> <div class="col-xl-9 col-lg-18"> <div class="user-review-wrap" :class="{ loading: fetchingReviews }"> <template x-if="emptyReviews"> <div class="empty-message"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500" preserveAspectRatio="xMidYMid meet"> <path d="M226.53,300a10.1,10.1,0,1,0,3,7.14,10.15,10.15,0,0,0-3-7.14Zm0,0"/> <path d="M219.32,280.5a10,10,0,0,1-3.19-.43c-4.41-1.4-5-5.74-5.3-9.09v-.11c-2.54-28.07-4.18-56.14-6.71-84.21-.18-2-.34-4.12.73-5.94a10.13,10.13,0,0,1,3.83-4c3.16-1.9,6.65-3.83,10.59-3.84s7.25,1.8,10.35,3.61a10.13,10.13,0,0,1,4.6,4.89,9.21,9.21,0,0,1,.37,4.66c-2.56,28.56-4.24,57.11-6.8,85.66a11.09,11.09,0,0,1-1.53,5.57C224.87,279.27,222.1,280.42,219.32,280.5Z"/> <path d="M382.92,118.81l-168.17,0q-60.94,0-121.87,0-10.23,0-20.48,0h-24c-22.18,0-41.58,19-41.62,40.93q-.15,88.1,0,176.18c0,20.66,16.7,39.23,37.25,40.86,11.79.94,23.71.41,35.56.53,1.71,0,3.42,0,5.47,0v69l1.16.58c1.06-1.22,2-2.53,3.2-3.68,20.6-20.7,41.27-41.35,61.8-62.13l.16-.16a14.24,14.24,0,0,1,2.42-2,11.17,11.17,0,0,1,6.3-1.67q111.21.15,222.44.06c27.06,0,45.13-18.1,45.13-45.19v-41q0-63.81,0-127.63C427.66,137.19,409.34,118.81,382.92,118.81Zm24.23,213c0,16-9,25-25.1,25q-103.18,0-206.35-.06-12,0-24.06,0c-.32,0-.62,0-.93,0a11.18,11.18,0,0,0-8,3.7c-12,12.26-24.24,24.34-37.23,37.34V357.08c-1.8-.08-3.36-.21-4.93-.21q-24.69,0-49.37,0c-14.85,0-24-9.28-24-24.18q0-84.72,0-169.46c0-14.62,9.25-23.93,23.81-23.93H383.26c14.44,0,23.88,9.48,23.89,24Z"/> <path d="M493.34,97.83c0-26.34-18.3-44.72-44.72-44.72l-168.17,0q-83.2,0-166.39,0c-22.17,0-41.58,19-41.62,40.93,0,8.25,0,16.5,0,24.76q0,10.23,0,20.46h20.5V97.52c0-14.62,9.25-23.93,23.81-23.93H449c14.44,0,23.88,9.48,23.89,24V266.14c0,16-9,25-25.1,25h-40.6v20.48h41c27.06,0,45.13-18.1,45.13-45.19Q493.32,182.14,493.34,97.83ZM153.75,379c.43-.49.86-1,1.32-1.44q10.31-10.36,20.63-20.71-12,0-24.06,0c-.32,0-.62,0-.93,0v23.81l.62.31Z"/> </svg> <h4>Sé el primero en reseñar este producto.</h4> </div> </template> <template x-if="!emptyReviews"> <template x-for="(review, index) in reviews.data" :key="index"> <div class="user-review"> <div class="user-review-header"> <div class="user-avatar" x-text="review.reviewer_name.substr(0, 1)"></div> <div class="user-review-top"> <h6 class="user-name" x-text="review.reviewer_name"></h6> <div x-data="ProductRating(review)" class="product-rating"> <div class="back-stars"> <i class="las la-star"></i> <i class="las la-star"></i> <i class="las la-star"></i> <i class="las la-star"></i> <i class="las la-star"></i> <div x-cloak class="front-stars" :style="{ width: ratingPercent + '%' }"> <i class="las la-star"></i> <i class="las la-star"></i> <i class="las la-star"></i> <i class="las la-star"></i> <i class="las la-star"></i> </div> </div> <template x-if="hasReviewCount"> <span class="rating-count" x-text="`${reviewCount}`"></span> </template> <template x-if="hasReviewCount"> <div class="reviews" x-text=" reviewCount > 1 ? 'Reseñas' : 'Reseña' " > </div> </template> </div> </div> </div> <p class="reviewer-message" x-text="review.comment"></p> <template x-if="review.is_approved"> <span class="review-date" x-text="review.created_at_formatted"></span> </template> <template x-if="!review.is_approved"> <span class="review-approval"> Your review is submitted for approval </span> </template> </div> </template> </template> </div> <template x-if="totalReviews > 5"> <ul x-data="Pagination" @page-changed="changePage($event.detail.page)" class="pagination" > <li class="page-item" :class="{ disabled: hasFirst }"> <button class="page-link" :disabled="hasFirst" @click="prev"> <i class="las la-angle-left"></i> </button> </li> <li x-show="rangeFirstPage !== 1" class="page-item"> <button class="page-link" @click="goto(1)">1</button> </li> <li x-show="rangeFirstPage === 3" class="page-item"> <button class="page-link" @click="goto(2)">2</button> </li> <li x-show=" rangeFirstPage !== 1 && rangeFirstPage !== 2 && rangeFirstPage !== 3 " class="page-item disabled" > <span class="page-link">...</span> </li> <template x-for="page in range" :key="page"> <li class="page-item" :class="{ active: hasActive(page) }" > <button class="page-link" x-text="page" @click="goto(page)"></button> </li> </template> <li x-show=" rangeLastPage !== totalPage && rangeLastPage !== totalPage - 1 && rangeLastPage !== totalPage - 2 " class="page-item disabled" > <span class="page-link">...</span> </li> <li x-show="rangeLastPage === totalPage - 2" class="page-item"> <button class="page-link" x-text="totalPage - 1" @click="goto(totalPage - 1)"></button> </li> <template x-if="rangeLastPage !== totalPage"> <li class="page-item"> <button class="page-link" x-text="totalPage" @click="goto(totalPage)"></button> </li> </template> <li class="page-item" :class="{ disabled: hasLast }"> <button class="page-link" :class="{ disabled: hasLast }" @click="next" > <i class="las la-angle-right"></i> </button> </li> </ul> </template> </div> </div> </div> </div> </div> </div> </div> </div> </section> <div class="modal fade" id="heatmapModal" tabindex="-1" aria-hidden="true" data-heatmap-hide="true"> <div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title"> 🔥 Heatmap de clicks <span class="badge-count" id="heatmapBadge" style="display:none"></span> </h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Cerrar"></button> </div> <div class="modal-body"> <div class="heatmap-toolbar"> <div id="heatmapMeta"> <span class="dot-pulse"></span> <span id="heatmapMetaText">Preparando captura…</span> </div> <div class="heatmap-legend"> <span class="heatmap-legend-dot"></span> <span>Cada punto = 1 click registrado</span> </div> </div> <div id="heatmapSkeleton"></div> <div id="heatmapScreenshotWrap" style="display:none"> <img id="heatmapScreenshotImage" alt="Captura del producto"> <div id="heatmapPointsLayer"></div> </div> <p id="heatmapCorsNote" style="display:none"> ⚠️ Las imágenes del producto no aparecen en la captura por restricciones CORS del origen externo; los puntos de clicks sí están correctos. </p> </div> <div class="modal-footer"> <div class="heatmap-footer-stat"> Producto: <strong>#5597 — Milwaukee M12 FUEL 12-Volt Lithium-Ion B...</strong> </div> <div class="heatmap-footer-stat" id="heatmapFooterClicks" style="display:none"> Clicks totales: <strong id="heatmapFooterCount">0</strong> </div> </div> </div> </div> </div> <div style="margin-top: 50px;"></div> <!-- --> <!-- <div class="snow-container"></div> --> <!-- <div class="ferre-promo-lights" aria-hidden="true"></div> --> <div style="margin-top:100px;"></div> <!-- ✅ FOOTER CLON (Lowe's-like) — limpio y editable --> <footer class="mega-footer" role="contentinfo"> <!-- Top cap / “roof” --> <div class="mega-footer__cap" aria-hidden="true"> <svg viewBox="0 0 208 48" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet"> <path fill-rule="evenodd" clip-rule="evenodd" d="M104.012 0L50.2927 23.7418H16.7846V33.4273H0V48H208V33.4273H191.224V23.7418H157.728L104.012 0Z" /> <!-- 👇 LOGO en el piquito (ajusta x/y/width/height si quieres) --> <image href="https://img.ferrecdn.com/media/rl3EkmfN7Wh0xaiPemj3I6OPmKCbKAsslqEhtRFA.png" x="94" y="6" width="20" height="20" preserveAspectRatio="xMidYMid meet" /> </svg> </div> <div class="mega-footer__inner"> <!-- Back to top --> <div class="mega-footer__toprow"> <button class="ft-backtop" type="button" data-back-to-top> <span class="ft-backtop__icon" aria-hidden="true"> <!-- circle arrow up --> <svg viewBox="0 0 16 16"> <path fill-rule="evenodd" d="M8 16c4.377 0 8-3.623 8-8 0-4.369-3.631-8-8.008-8C3.624 0 0 3.631 0 8c0 4.377 3.631 8 8 8Zm3.04-6.133H4.956c-.426 0-.597-.349-.367-.62L7.533 5.74c.213-.247.725-.259.939 0l2.935 3.508c.239.288.06.62-.367.62Z" clip-rule="evenodd" /> </svg> </span> <span class="ft-backtop__label">Ir arriba</span> </button> </div> <hr> <!-- Services row --> <nav class="ft-services" aria-label="Enlaces rápidos del pie de página"> <a class="ft-service" href="#"> <span class="ft-service__ico" aria-hidden="true"> <!-- sparkle --> <svg viewBox="0 0 16 16"> <path d="M8 0l1.1 3.7L13 5l-3.9 1.3L8 10 6.9 6.3 3 5l3.9-1.3L8 0zM2 9l.7 2.2L5 12l-2.3.8L2 15l-.7-2.2L-1 12l2.3-.8L2 9z" /> </svg> </span> <span class="ft-service__txt">Preguntar</span> </a> <a class="ft-service" href="#"> <span class="ft-service__ico" aria-hidden="true"> <!-- help --> <svg viewBox="0 0 16 16"> <path d="M8 0a8 8 0 100 16A8 8 0 008 0zm0 13a1 1 0 110 2 1 1 0 010-2zm1.2-3.6c-.6.4-.7.6-.7 1.1V11H7.3v-.7c0-1 .4-1.6 1.3-2.2.6-.4.9-.7.9-1.2 0-.6-.5-1-1.2-1-.7 0-1.2.3-1.4 1l-1.2-.4c.3-1.2 1.4-2 2.7-2 1.5 0 2.6.9 2.6 2.3 0 1-.6 1.6-1.6 2.2z" /> </svg> </span> <span class="ft-service__txt">Centro de ayuda</span> </a> <a class="ft-service" href="#"> <span class="ft-service__ico" aria-hidden="true"> <!-- box --> <svg viewBox="0 0 16 16"> <path d="M1 3l7-3 7 3-7 3-7-3zm1 3v7l6 3V9L2 6zm13 0l-6 3v7l6-3V6z" /> </svg> </span> <span class="ft-service__txt">Estatus del pedido</span> </a> <a class="ft-service" href="#"> <span class="ft-service__ico" aria-hidden="true"> <!-- ruler --> <svg viewBox="0 0 16 16"> <path d="M2 0h4v16H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0zm1 2v2h2V2H3zm0 4v2h2V6H3zm0 4v2h2v-2H3zm5 0h8c0 1.1-.9 2-2 2H8v-2zM8 2h6c1.1 0 2 .9 2 2H8V2zm0 4h6v2H8V6z" /> </svg> </span> <span class="ft-service__txt">Instalación</span> </a> <a class="ft-service" href="#"> <span class="ft-service__ico" aria-hidden="true"> <!-- phone --> <svg viewBox="0 0 16 16"> <path d="M5 0h6c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1zm1 2v10h4V2H6zm2 13a1 1 0 100-2 1 1 0 000 2z" /> </svg> </span> <span class="ft-service__txt">App</span> </a> </nav> <hr class="ft-sep" /> <!-- Desktop columns --> <div class="ft-cols ft-cols--desktop" aria-label="Enlaces del pie de página"> <section class="ft-col"> <h3>ACERCA DE</h3> <ul> <li><a href="/acerca-de-nosotros">Quiénes somos</a></li> <li><a href="https://pro.ferredepot.com/forms/quote/296a478586575aecfa928473f914d705?styled=1" target="__blank">Facturacion</a></li> <li><a href="#">Bolsa de trabajo</a></li> <li><a href="#">Responsabilidad social</a></li> <li><a href="#">Inversionistas</a></li> <li><a href="#">Sala de prensa</a></li> <li><a href="#">Proveedores</a></li> <li><a href="#">Seguridad</a></li> <li><a href="/b">Marcas</a></li> <li><a href="#">Marketplace</a></li> </ul> </section> <section class="ft-col"> <h3>TIENDAS Y SERVICIOS</h3> <ul> <li><a href="#">Directorio de marcas</a></li> <li><a href="#">Talleres DIY</a></li> <li><a href="#">Programa de recompensas</a></li> <li><a href="#">Recursos para profesionales</a></li> <li><a href="/sitemap">Mapa del sitio</a></li> <li><a href="#">Más vendidos</a></li> </ul> </section> <section class="ft-col"> <h3>ATENCIÓN AL CLIENTE</h3> <ul> <li><a href="#">Centro de ayuda</a></li> <li><a href="#">Reembolsos</a></li> <li><a href="/politica-de-envios">Devoluciones y cambios</a></li> <li><a href="/politica-de-envios">Recoger, envío y entrega</a></li> <li><a href="#">Pedidos especiales</a></li> <li><a href="#">Retiros y seguridad de producto</a></li> <li><a href="#">Cupones</a></li> </ul> </section> <section class="ft-col"> <h3>CONECTA CON NOSOTROS</h3> <ul class="ft-contact"> <li> <a class="ft-contact__link" href="tel:+526568960006"> <span class="ft-contact__ico" aria-hidden="true"> </span> <span class="ft-contact__txt">+52 656 896 0006</span> </a> </li> <li> <a class="ft-contact__link" href="tel:+526568960006"> <span class="ft-contact__ico" aria-hidden="true"> </span> <span class="ft-contact__txt">+52 81 8526 2566</span> </a> </li> <li> <a class="ft-contact__link" href="https://wa.me/526566561396" target="_blank" rel="noopener"> <span class="ft-contact__ico" aria-hidden="true"> <!-- whatsapp (simple) --> </span> <span class="ft-contact__txt"> +52 656 656 1396 </span> </a> </li> <li> <a class="ft-contact__link" href="mailto:ventas@ferredepot.com"> <span class="ft-contact__ico" aria-hidden="true"> <!-- mail --> </span> <span class="ft-contact__txt">ventas@ferredepot.com</span> </a> </li> </ul> <div style="margin-bottom: 30px;"></div> <div class="ft-social"> <a aria-label="Facebook" href="https://facebook.com/ferredepot" class="ft-social__btn"> <svg viewBox="0 0 16 16"> <path d="M14.3 0H1.7C.8 0 0 .8 0 1.7v12.6c0 .9.8 1.7 1.7 1.7h4.9v-5.4H4.4V8h2.2V6.1c0-2.2 1.3-3.4 3.3-3.4 1 0 2 .2 2 .2V5h-1.1c-1.1 0-1.4.7-1.4 1.4V8h2.5l-.4 2.6H9.4V16h4.9c.9 0 1.7-.8 1.7-1.7V1.7C16 .8 15.2 0 14.3 0z" /> </svg> </a> <a aria-label="X" href="#" class="ft-social__btn"> <svg viewBox="0 0 16 16"> <path fill-rule="evenodd" d="M12.6.8h2.5L9.7 6.9 16 15.2h-4.9L7.2 10.2 2.8 15.2H.3L6 8.7 0 .8h5.1l3.5 4.6L12.6.8Zm-.9 13h1.4L4.3 2.2H2.9l8.8 11.6Z" clip-rule="evenodd" /> </svg> </a> <a aria-label="Pinterest" href="#" class="ft-social__btn"> <svg viewBox="0 0 16 16"> <path d="M8.4 0C5.1 0 1.9 2.2 1.9 5.7c0 2.3 1.3 3.5 2 3.5.3 0 .5-.9.5-1.1 0-.3-.8-.9-.8-2.2 0-2.6 2-4.4 4.5-4.4 2.2 0 3.8 1.2 3.8 3.5 0 1.7-.7 4.9-2.9 4.9-.8 0-1.5-.6-1.5-1.4 0-1.2.8-2.4.8-3.6 0-2.1-3-1.7-3 .8 0 .5.1 1.1.3 1.6-.4 1.9-1.3 4.7-1.3 6.7 0 .6.1 1.2.1 1.8.1.1.1.1.2 0 .9-2.2.8-2.6 1.5-5.5.4.8 1.4 1.2 2.2 1.2 3.4 0 4.9-3.3 4.9-6.3C14.2 2.1 11.4 0 8.4 0z" /> </svg> </a> <a aria-label="Instagram" href="#" class="ft-social__btn"> <svg viewBox="0 0 16 16"> <path d="M8 3.9A4.1 4.1 0 108 12.1 4.1 4.1 0 008 3.9zm0 6.8A2.7 2.7 0 118 5.3a2.7 2.7 0 010 5.4zm5.2-7a1 1 0 11-2 0 1 1 0 012 0zm2.7 1c-.1-1.3-.4-2.4-1.3-3.4C13.7.4 12.6.1 11.3.1c-1.3-.1-5.3-.1-6.6 0-1.3.1-2.4.4-3.4 1.3C.4 2.3.1 3.4.1 4.7c-.1 1.3-.1 5.3 0 6.6.1 1.3.4 2.4 1.3 3.4.9.9 2.1 1.2 3.4 1.3 1.3.1 5.3.1 6.6 0 1.3-.1 2.4-.4 3.4-1.3.9-.9 1.2-2.1 1.3-3.4.1-1.3.1-5.3 0-6.6zm-1.7 8c-.3.8-.8 1.2-1.5 1.5-1.1.4-3.6.3-4.7.3s-3.7.1-4.7-.3c-.7-.3-1.2-.8-1.5-1.5-.4-1.1-.3-3.6-.3-4.7s-.1-3.7.3-4.7c.3-.7.8-1.2 1.5-1.5C4.3 1.4 6.8 1.5 8 1.5s3.7-.1 4.7.3c.7.3 1.2.8 1.5 1.5.4 1.1.3 3.6.3 4.7s.1 3.7-.3 4.7z" /> </svg> </a> <a aria-label="YouTube" href="#" class="ft-social__btn"> <svg viewBox="0 0 16 16"> <path d="M15.7 4.1c-.2-.7-.8-1.3-1.4-1.4C13 2.3 8 2.3 8 2.3s-5 0-6.3.4C1 2.8.4 3.4.3 4.1 0 5.4 0 8 0 8s0 2.6.3 3.9c.2.7.8 1.3 1.4 1.4 1.3.3 6.3.3 6.3.3s5 0 6.3-.3c.6-.2 1.2-.7 1.4-1.4.3-1.3.3-3.9.3-3.9s0-2.6-.3-3.9zM6.4 10.4V5.6L10.5 8l-4.1 2.4z" /> </svg> </a> </div> </section> <section class="ft-col"> <h3>PRIVACIDAD Y USO</h3> <ul> <li><a href="/terminos-condiciones">Términos & Condiciones</a></li> <li><a href="/informacion-importante">Información Importante</a></li> <li><a href="/descargo-de-responsabilidad">Descargo de responsabilidad</a></li> <li><a href="/politica-de-privacidad">Aviso de privacidad</a></li> <li><a href="#">Anuncios basados en intereses</a></li> <li><a href="/politica-de-privacidad">Derechos de privacidad</a></li> <li><a href="/politica-de-privacidad">No vender/compartir mi información personal</a></li> <li><a href="/politica-de-privacidad">Limitar el uso de información sensible</a></li> </ul> </section> </div> <!-- Mobile accordions (sin JS, usando <details>) --> <div class="ft-cols ft-cols--mobile" aria-label="Enlaces del pie de página (móvil)"> <details class="ft-acc" open> <summary>ACERCA DE</summary> <ul> <li><a href="#">Quiénes somos</a></li> <li><a href="#">Bolsa de trabajo</a></li> <li><a href="#">Responsabilidad social</a></li> <li><a href="#">Inversionistas</a></li> <li><a href="#">Sala de prensa</a></li> <li><a href="#">Proveedores</a></li> <li><a href="#">Seguridad</a></li> <li><a href="#">Marcas</a></li> <li><a href="#">Marketplace</a></li> </ul> </details> <details class="ft-acc"> <summary>SERVICIOS</summary> <ul> <li><a href="#">Directorio de marcas</a></li> <li><a href="#">Talleres DIY</a></li> <li><a href="#">Programa de recompensas</a></li> <li><a href="#">Recursos para profesionales</a></li> <li><a href="#">Mapa del sitio</a></li> <li><a href="#">Más vendidos</a></li> </ul> </details> <details class="ft-acc"> <summary>ATENCIÓN AL CLIENTE</summary> <ul> <li><a href="/terminos-condiciones">Términos & Condiciones</a></li> <li><a href="/informacion-importante">Información Importante</a></li> <li><a href="/descargo-de-responsabilidad">Descargo de responsabilidad</a></li> <li><a href="/politica-de-privacidad">Aviso de privacidad</a></li> <li><a href="#">Anuncios basados en intereses</a></li> <li><a href="/politica-de-privacidad">Derechos de privacidad</a></li> <li><a href="/politica-de-privacidad">No vender/compartir mi información personal</a></li> <li><a href="/politica-de-privacidad">Limitar el uso de información sensible</a></li> </ul> </details> <details class="ft-acc"> <summary>CONECTA CON NOSOTROS</summary> <div class="ft-social ft-social--mobile"> <a aria-label="Facebook" href="#" class="ft-social__btn"><svg viewBox="0 0 16 16"> <path d="M14.3 0H1.7C.8 0 0 .8 0 1.7v12.6c0 .9.8 1.7 1.7 1.7h4.9v-5.4H4.4V8h2.2V6.1c0-2.2 1.3-3.4 3.3-3.4 1 0 2 .2 2 .2V5h-1.1c-1.1 0-1.4.7-1.4 1.4V8h2.5l-.4 2.6H9.4V16h4.9c.9 0 1.7-.8 1.7-1.7V1.7C16 .8 15.2 0 14.3 0z" /> </svg></a> <a aria-label="X" href="#" class="ft-social__btn"><svg viewBox="0 0 16 16"> <path fill-rule="evenodd" d="M12.6.8h2.5L9.7 6.9 16 15.2h-4.9L7.2 10.2 2.8 15.2H.3L6 8.7 0 .8h5.1l3.5 4.6L12.6.8Zm-.9 13h1.4L4.3 2.2H2.9l8.8 11.6Z" clip-rule="evenodd" /> </svg></a> <a aria-label="Pinterest" href="#" class="ft-social__btn"><svg viewBox="0 0 16 16"> <path d="M8.4 0C5.1 0 1.9 2.2 1.9 5.7c0 2.3 1.3 3.5 2 3.5.3 0 .5-.9.5-1.1 0-.3-.8-.9-.8-2.2 0-2.6 2-4.4 4.5-4.4 2.2 0 3.8 1.2 3.8 3.5 0 1.7-.7 4.9-2.9 4.9-.8 0-1.5-.6-1.5-1.4 0-1.2.8-2.4.8-3.6 0-2.1-3-1.7-3 .8 0 .5.1 1.1.3 1.6-.4 1.9-1.3 4.7-1.3 6.7 0 .6.1 1.2.1 1.8.1.1.1.1.2 0 .9-2.2.8-2.6 1.5-5.5.4.8 1.4 1.2 2.2 1.2 3.4 0 4.9-3.3 4.9-6.3C14.2 2.1 11.4 0 8.4 0z" /> </svg></a> <a aria-label="Instagram" href="#" class="ft-social__btn"><svg viewBox="0 0 16 16"> <path d="M8 3.9A4.1 4.1 0 108 12.1 4.1 4.1 0 008 3.9zm0 6.8A2.7 2.7 0 118 5.3a2.7 2.7 0 010 5.4zm5.2-7a1 1 0 11-2 0 1 1 0 012 0zm2.7 1c-.1-1.3-.4-2.4-1.3-3.4C13.7.4 12.6.1 11.3.1c-1.3-.1-5.3-.1-6.6 0-1.3.1-2.4.4-3.4 1.3C.4 2.3.1 3.4.1 4.7c-.1 1.3-.1 5.3 0 6.6.1 1.3.4 2.4 1.3 3.4.9.9 2.1 1.2 3.4 1.3 1.3.1 5.3.1 6.6 0 1.3-.1 2.4-.4 3.4-1.3.9-.9 1.2-2.1 1.3-3.4.1-1.3.1-5.3 0-6.6zm-1.7 8c-.3.8-.8 1.2-1.5 1.5-1.1.4-3.6.3-4.7.3s-3.7.1-4.7-.3c-.7-.3-1.2-.8-1.5-1.5-.4-1.1-.3-3.6-.3-4.7s-.1-3.7.3-4.7c.3-.7.8-1.2 1.5-1.5C4.3 1.4 6.8 1.5 8 1.5s3.7-.1 4.7.3c.7.3 1.2.8 1.5 1.5.4 1.1.3 3.6.3 4.7s.1 3.7-.3 4.7z" /> </svg></a> <a aria-label="YouTube" href="#" class="ft-social__btn"><svg viewBox="0 0 16 16"> <path d="M15.7 4.1c-.2-.7-.8-1.3-1.4-1.4C13 2.3 8 2.3 8 2.3s-5 0-6.3.4C1 2.8.4 3.4.3 4.1 0 5.4 0 8 0 8s0 2.6.3 3.9c.2.7.8 1.3 1.4 1.4 1.3.3 6.3.3 6.3.3s5 0 6.3-.3c.6-.2 1.2-.7 1.4-1.4.3-1.3.3-3.9.3-3.9s0-2.6-.3-3.9zM6.4 10.4V5.6L10.5 8l-4.1 2.4z" /> </svg></a> </div> </details> <details class="ft-acc"> <summary>PRIVACIDAD Y USO</summary> <ul> <li><a href="/terminos-condiciones">Términos & Condiciones</a></li> <li><a href="/informacion-importante">Información Importante</a></li> <li><a href="/descargo-de-responsabilidad">Descargo de responsabilidad</a></li> <li><a href="/politica-de-privacidad">Aviso de privacidad</a></li> <li><a href="#">Anuncios basados en intereses</a></li> <li><a href="/politica-de-privacidad">Derechos de privacidad</a></li> <li><a href="/politica-de-privacidad">No vender/compartir mi información personal</a></li> <li><a href="/politica-de-privacidad">Limitar el uso de información sensible</a></li> </ul> </details> </div> <div class="ft-bottom"> <p> © <span id="ft-year"></span> Ferredepot. Todos los derechos reservados.<br /> <span class="ft-bottom__sub"> Aviso legal: Ferredepot o sus afiliados no es un distribuidor o representante autorizado de los productos presentados en este sitio web. Todos los nombres de productos, marcas comerciales, marcas y logotipos utilizados en este sitio son propiedad de sus respectivos dueños. Todos los derechos reservados. </span> </p> </div> </div> </footer> <style> :root { --ft-bg: #004468; --ft-text: rgba(255, 255, 255, .92); } /* ✅ Mantén tu fondo y color */ .mega-footer { background: var(--ft-bg); color: var(--ft-text); position: relative; overflow: visible; /* para que el “roof” pueda salir hacia arriba */ } /* ✅ Roof arriba del footer */ .mega-footer__cap { position: absolute; left: 0; top: 0; width: 100%; transform: translateY(-100%); display: flex; justify-content: center; pointer-events: none; z-index: 5; /* IMPORTANTE: si aún lo tienes, QUITA padding-top porque lo manda lejísimos */ padding-top: 0; } .mega-footer__cap svg { width: min(260px, 85vw); height: auto; display: block; } .mega-footer__cap path { fill: var(--ft-bg); } .mega-footer__inner { max-width: 1180px; margin: 0 auto; padding: 18px 18px 24px; } .mega-footer__toprow { display: flex; justify-content: flex-end; margin-bottom: 10px; } .ft-backtop { appearance: none; border: 0; background: transparent; color: var(--ft-text); display: inline-flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 999px; cursor: pointer; } .ft-backtop:hover { background: rgba(255, 255, 255, .08); } .ft-backtop__icon { width: 28px; height: 28px; border-radius: 999px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .28); } .ft-backtop__icon svg { width: 14px; height: 14px; fill: var(--ft-text); } .ft-backtop__label { font-weight: 600; font-size: 13px; } .ft-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 150px)); justify-content: center; /* centra el grupo */ gap: 14px; margin: 6px auto 18px; } .ft-service { text-decoration: none; color: var(--ft-text); display: grid; justify-items: center; gap: 8px; padding: 10px 6px; border-radius: 14px; } .ft-service:hover { background: rgba(255, 255, 255, .06); } .ft-service__ico { width: 42px; height: 42px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .35); display: grid; place-items: center; } .ft-service__ico svg { width: 18px; height: 18px; fill: rgba(255, 255, 255, .92); } .ft-service__txt { font-size: 13px; font-weight: 700; color: rgba(255, 255, 255, .85); text-align: center; } .ft-sep { border: none; border-top: 1px solid var(--ft-line); margin: 14px 0 18px; } /* Desktop columns */ .ft-cols--desktop { display: grid; grid-template-columns: 1.1fr 1.1fr 1.1fr .9fr 1.2fr; gap: 26px; } .ft-col h3 { margin: 0 0 10px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255, 255, 255, .85); } .ft-col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; } .ft-col a { color: rgba(255, 255, 255, .9); text-decoration: none; font-weight: 500; font-size: 14px; } .ft-col a:hover { text-decoration: underline; } .ft-social { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 8px; } .ft-social__btn { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); text-decoration: none; } .ft-social__btn:hover { background: rgba(255, 255, 255, .10); } .ft-social__btn svg { width: 16px; height: 16px; fill: #fff; } .ft-bottom { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--ft-line); color: var(--ft-text-soft); font-size: 13px; line-height: 1.45; } .ft-bottom__sub { color: rgba(255, 255, 255, .55); } /* Mobile accordions */ .ft-cols--mobile { display: none; } .ft-acc { border-top: 1px solid var(--ft-line); padding: 6px 0; } .ft-acc summary { list-style: none; cursor: pointer; padding: 12px 0; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; font-size: 12px; color: rgba(255, 255, 255, .85); display: flex; align-items: center; justify-content: space-between; } .ft-acc summary::-webkit-details-marker { display: none; } .ft-acc summary::after { content: ""; width: 10px; height: 10px; border-right: 2px solid var(--ft-accent); border-bottom: 2px solid var(--ft-accent); transform: rotate(45deg); transition: transform .18s ease; margin-left: 10px; } .ft-acc[open] summary::after { transform: rotate(225deg); } .ft-acc ul { list-style: none; padding: 0 0 12px; margin: 0; display: grid; gap: 10px; } .ft-acc a { color: rgba(255, 255, 255, .9); text-decoration: none; font-weight: 600; font-size: 14px; } .ft-acc a:hover { text-decoration: underline; } .ft-social--mobile { padding: 8px 0 16px; } /* Responsive */ @media (max-width: 1024px) { .ft-services { grid-template-columns: repeat(4, minmax(0, 1fr)); } .ft-cols--desktop { grid-template-columns: 1fr 1fr; } } @media (max-width: 720px) { .mega-footer__toprow { justify-content: flex-start; } .ft-services { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ft-cols--desktop { display: none; } .ft-cols--mobile { display: block; } .ft-contact { list-style: none; padding: 0; margin: 10px 0 12px; display: grid; gap: 10px; } .ft-contact__link { display: flex; align-items: center; gap: 10px; padding: 10px 10px; border-radius: 14px; text-decoration: none; color: rgba(255, 255, 255, .92); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); } .ft-contact__link:hover { background: rgba(255, 255, 255, .10); } .ft-contact__ico { width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .22); flex: 0 0 auto; } .ft-contact__ico svg { width: 16px; height: 16px; fill: rgba(255, 255, 255, .92); } .ft-contact__txt { font-weight: 700; font-size: 13px; line-height: 1.1; } .ft-contact__sub { font-weight: 600; color: rgba(255, 255, 255, .70); } } </style> <script> // año automático document.getElementById('ft-year').textContent = new Date().getFullYear(); // back to top const btn = document.querySelector('[data-back-to-top]'); if (btn) { btn.addEventListener('click', () => { window.scrollTo({ top: 0, behavior: 'smooth' }); }); } </script> <div class="overlay" :class="{ active: $store.layout.overlay }" @click="hideOverlay"> </div> <aside class="sidebar-menu-wrap" :class="{ active: $store.layout.isOpenSidebarMenu }"> <div class="sidebar-menu-close" @click="$store.layout.closeSidebarMenu()"> <i class="las la-times"></i> </div> <div class="sidebar-menu-curve-background"> <ul class="nav nav-tabs sidebar-menu-tab" role="tablist"> <li class="nav-item" role="presentation"> <a class="nav-link active" data-bs-toggle="tab" href="#category-menu"> Categorías </a> </li> <li class="nav-item" role="presentation"> <a class="nav-link" data-bs-toggle="tab" href="#main-menu"> Menú </a> </li> <li class="nav-item" role="presentation"> <a class="nav-link" data-bs-toggle="tab" href="#more-menu"> Más </a> </li> </ul> </div> <div class="tab-content custom-scrollbar"> <div id="category-menu" class="tab-pane active"> <ul class="list-inline sidebar-menu"> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/hand-tools/products" class="menu-item" target="_self" @click.stop > Herramientas y Maquinado </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/office-supplies/products" class="menu-item" target="_self" @click.stop > Oficina, Escuela y Envíos </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/plumbing/products" class="menu-item" target="_self" @click.stop > Plomería </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/security-safes/products" class="menu-item" target="_self" @click.stop > Seguridad </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/automotive/products" class="menu-item" target="_self" @click.stop > Mantenimiento Vehicular </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/gardening-garden-tools/products" class="menu-item" target="_self" @click.stop > Jardinería y Exteriores </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/fasteners/products" class="menu-item" target="_self" @click.stop > Calefacción y Enfriamiento </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/fasteners/products" class="menu-item" target="_self" @click.stop > Sujetadores </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/electrical/products" class="menu-item" target="_self" @click.stop > Suministros Eléctricos </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/pneumatic-tools/products" class="menu-item" target="_self" @click.stop > Transmisión de Potencia </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/storage/products" class="menu-item" target="_self" @click.stop > Almacenaje y Espacios de Trabajo </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/material-handling/products" class="menu-item" target="_self" @click.stop > Manejo de Materiales </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/cleaning/products" class="menu-item" target="_self" @click.stop > Limpieza y Suministros de Limpieza </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/lighting/products" class="menu-item" target="_self" @click.stop > Iluminación </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/abrasives/products" class="menu-item" target="_self" @click.stop > Abrasivos y Pulidores </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/adhesives-tapes/products" class="menu-item" target="_self" @click.stop > Adhesivos y Cintas </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/welding/products" class="menu-item" target="_self" @click.stop > Soldadura y Brazing </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/pumps/products" class="menu-item" target="_self" @click.stop > Bombas </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/painting/products" class="menu-item" target="_self" @click.stop > Pintura y Recubrimientos </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/c/multimeters-probes-testers/products" class="menu-item" target="_self" @click.stop > Instrumentos de Prueba y Medidores </a> </li> <li class="more-categories"> <a href="https://www.ferredepot.com/c" class="menu-item"> <span class="menu-item-icon"> <i class="las la-plus-square"></i> </span> Categorías </a> </li> </ul> </div> <div id="main-menu" class="tab-pane"> <ul class="list-inline sidebar-menu"> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/b" class="menu-item" target="_self" @click.stop > Marcas </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/terminos-condiciones" class="menu-item" target="_self" @click.stop > Términos & Condiciones </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/politica-de-envios" class="menu-item" target="_self" @click.stop > Envios </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/ofertas" class="menu-item" target="_blank" @click.stop > Ofertas </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/programa-de-lealtad" class="menu-item" target="_self" @click.stop > Programa de Lealtad </a> </li> <li class="" @click=" $($el).children('ul.list-inline').slideToggle(200); $($el).toggleClass('active'); " > <a href="https://www.ferredepot.com/blog/posts" class="menu-item" target="_self" @click.stop > Blog </a> </li> </ul> </div> <div id="more-menu" class="tab-pane"> <ul class="sidebar-more-menu-items"> <li> <a href="https://www.ferredepot.com/contact"> <div class="sidebar-icon-parent"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M17 20.5H7C4 20.5 2 19 2 15.5V8.5C2 5 4 3.5 7 3.5H17C20 3.5 22 5 22 8.5V15.5C22 19 20 20.5 17 20.5Z" stroke="#292D32" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M17 9L13.87 11.5C12.84 12.32 11.15 12.32 10.12 11.5L7 9" stroke="#292D32" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <span>Contacto</span> </a> </li> </ul> </div> </div> </aside> <aside class="localization" :class="{ active: $store.layout.isOpenlocalizationMenu }"> <div class="localization-header"> <h3>Idioma y Moneda</h3> <div class="localization-cross-icon" @click="$store.layout.closeLocalizationMenu()"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> <path d="M4.00073 11.9996L12 4.00037" stroke="#292D32" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 11.9996L4.00073 4.00037" stroke="#292D32" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> </div> <div class="localization-form"> <div class="form-group"> <label for="language">Idioma</label> <div class="input-group"> <select name="language" id="language" class="form-control" onchange="location = this.value"> <option value="https://www.ferredepot.com/p/p-milwaukee-m12-fuel-12-volt-lithium-ion-brushless-cordless-1-2-in-drill-driver-kit-with-m12-hackzall-3403-22-2420-20-321640431" selected> English </option> </select> <svg class="input-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> <path d="M8.17454 10.2597C8.14888 10.1312 7.26507 5.71216 7.23704 5.57213C7.19326 5.35303 7.00085 5.19531 6.77741 5.19531H5.83991C5.61648 5.19531 5.42407 5.35303 5.38029 5.57213C5.35182 5.71453 4.4671 10.1381 4.44279 10.2596C4.39201 10.5135 4.55666 10.7604 4.81051 10.8112C5.06435 10.862 5.31132 10.6973 5.36207 10.4435L5.6617 8.94531H6.95563L7.25526 10.4435C7.30604 10.6975 7.5531 10.862 7.80682 10.8112C8.06066 10.7604 8.22532 10.5135 8.17454 10.2597ZM5.8492 8.00781L6.2242 6.13281H6.39313L6.76813 8.00781H5.8492Z" fill="#A0AEC0"/> <path d="M15.6836 8.94531H14.2773V8.47656C14.2773 8.21769 14.0675 8.00781 13.8086 8.00781C13.5497 8.00781 13.3398 8.21769 13.3398 8.47656V8.94531H11.9336C11.6747 8.94531 11.4648 9.15519 11.4648 9.41406C11.4648 9.67294 11.6747 9.88281 11.9336 9.88281H12.047C12.3141 10.7457 12.7162 11.408 13.1587 11.9388C12.7986 12.2682 12.4342 12.5383 12.1095 12.798C11.9074 12.9598 11.8746 13.2547 12.0363 13.4569C12.1982 13.6591 12.4932 13.6917 12.6952 13.5301C13.0216 13.2689 13.4129 12.9787 13.8086 12.6156C14.2046 12.9789 14.5966 13.2697 14.922 13.5301C15.1242 13.6918 15.4192 13.659 15.5808 13.4569C15.7426 13.2547 15.7098 12.9597 15.5077 12.798C15.1839 12.5389 14.819 12.2685 14.4584 11.9388C14.9009 11.408 15.3031 10.7457 15.5702 9.88281H15.6836C15.9425 9.88281 16.1523 9.67294 16.1523 9.41406C16.1523 9.15519 15.9425 8.94531 15.6836 8.94531ZM13.8086 11.2498C13.5094 10.8742 13.2402 10.4259 13.0372 9.87969H14.5799C14.377 10.4259 14.1078 10.8742 13.8086 11.2498Z" fill="#A0AEC0"/> <path d="M16.5938 4.84375H9.83122L9.63028 3.23181C9.5425 2.52956 8.94263 2 8.23491 2H3.40625C2.63084 2 2 2.63084 2 3.40625V13.75C2 14.5254 2.63084 15.1562 3.40625 15.1562H7.35884L7.55722 16.7682C7.64484 17.469 8.24472 18 8.95262 18H16.5938C17.3692 18 18 17.3692 18 16.5938V6.25C18 5.47459 17.3692 4.84375 16.5938 4.84375ZM3.40625 14.2188C3.14778 14.2188 2.9375 14.0085 2.9375 13.75V3.40625C2.9375 3.14778 3.14778 2.9375 3.40625 2.9375H8.23491C8.47081 2.9375 8.67078 3.114 8.7 3.34794C8.76794 3.89281 9.98775 13.6783 10.0551 14.2188H3.40625ZM8.46012 16.4297L8.30341 15.1562H9.56103L8.46012 16.4297ZM17.0625 16.5938C17.0625 16.8522 16.8522 17.0625 16.5938 17.0625H9.15231L10.9368 14.9983C11.0282 14.8953 11.0691 14.7585 11.0502 14.6226L9.94809 5.78125H16.5938C16.8522 5.78125 17.0625 5.99153 17.0625 6.25V16.5938Z" fill="#A0AEC0"/> </svg> </div> </div> <div class="form-group"> <label for="currency">Moneda</label> <div class="input-group"> <select name="currency" id="currency" class="form-control" onchange="location = this.value"> <option value="https://www.ferredepot.com/current-currency/MXN" selected > MXN </option> </select> <svg class="input-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> <path d="M7.22656 11.9415C7.22656 13.0165 8.05156 13.8832 9.07656 13.8832H11.1682C12.0599 13.8832 12.7849 13.1249 12.7849 12.1915C12.7849 11.1749 12.3432 10.8165 11.6849 10.5832L8.32656 9.41654C7.66823 9.18321 7.22656 8.82487 7.22656 7.80821C7.22656 6.87487 7.95156 6.11654 8.84323 6.11654H10.9349C11.9599 6.11654 12.7849 6.98321 12.7849 8.05821" stroke="#A0AEC0" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10 5V15" stroke="#A0AEC0" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10.0001 18.3333C14.6025 18.3333 18.3334 14.6024 18.3334 10C18.3334 5.39762 14.6025 1.66666 10.0001 1.66666C5.39771 1.66666 1.66675 5.39762 1.66675 10C1.66675 14.6024 5.39771 18.3333 10.0001 18.3333Z" stroke="#A0AEC0" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> </div> </div> </aside> <aside x-data="SidebarCart" class="sidebar-cart-wrap" :class="{ active: $store.layout.isOpenSidebarCart }"> <div class="sidebar-cart-top"> <h4 class="title"> Mi Carrito <div class="count" x-text="$store.state.cartQuantity"> 0 </div> </h4> <div class="sidebar-cart-close" @click="$store.layout.closeSidebarCart()"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> <path d="M15.8338 4.16663L4.16705 15.8333M4.16705 4.16663L15.8338 15.8333" stroke="#0E1E3E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /> </svg> </div> </div> <div class="sidebar-cart-middle" :class="cartIsEmpty ? 'empty' : 'custom-scrollbar'"> <template x-if="!cartIsEmpty"> <div class="sidebar-cart-items-wrap"> <template x-for="cartItem in $store.state.cartItems" :key="cartItem.id"> <div x-data="CartItem(cartItem)" class="cart-item sidebar-cart-item"> <a :href="productUrl" class="product-image"> <img :src="baseImage" :class="{ 'image-placeholder': !hasBaseImage, }" :alt="productName" loading="lazy" /> </a> <div class="product-info"> <a :href="productUrl" class="product-name" :title="productName" x-text="productName" > </a> <template x-if="hasAnyVariation"> <ul class="list-inline product-options"> <template x-for="(variation, key) in cartItem.variations" :key="variation.id" > <li> <label x-text="`${variation.name}:`"></label> <span x-text="`${variation.values[0].label}${variationsLength === Number(key) ? '' : ','}`"></span> </li> </template> </ul> </template> <template x-if="hasAnyOption"> <ul class="list-inline product-options"> <template x-for="(option, key) in cartItem.options" :key="option.id" > <li> <label x-text="`${option.name}:`"></label> <span x-text="`${optionValues(option)}${optionsLength === Number(key) ? '' : ','}`"></span> </li> </template> </ul> </template> <div class="product-info-bottom d-flex flex-wrap align-items-center justify-content-between"> <div class="number-picker"> <div class="input-group-quantity"> <button type="button" class="btn btn-number btn-minus" :disabled="cartItem.qty <= 1" @click="updateQuantity(cartItem, cartItem.qty - 1)" > <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" > <path d="M13.3333 8H2.66663" stroke="#0E1E3E" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> </button> <input type="text" :value="cartItem.qty" min="1" :max="maxQuantity(cartItem)" class="form-control input-number input-quantity" :id="`sidebar-cart-input-quantity-${cartItem.id}`" @focus="$event.target.select()" @input="changeQuantity(cartItem, Number($event.target.value))" @keydown.up="updateQuantity(cartItem, cartItem.qty + 1)" @keydown.down="updateQuantity(cartItem, cartItem.qty - 1)" /> <button type="button" class="btn btn-number btn-plus" :disabled="isQtyIncreaseDisabled(cartItem)" @click="updateQuantity(cartItem, cartItem.qty + 1)" > <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" > <path d="M7.99996 2.66669V13.3334M13.3333 8.00002H2.66663" stroke="#0E1E3E" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> </button> </div> </div> <div class="product-price" x-text="`x ${formatCurrency(unitPrice)}`"></div> </div> </div> <div class="remove-cart-item"> <button class="btn-remove" @click="removeCartItem"> <i class="las la-times"></i> </button> </div> </div> </template> </div> </template> <template x-if="cartIsEmpty"> <div class="empty-message"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500" preserveAspectRatio="xMidYMid meet"> <g> <path d="M477.52,135.43c3.72-20.13-6.84-37.6-26.3-43.52c-90.6-27.43-180.44-54.64-267.05-80.8 c-5.18-1.57-10.17-2.36-14.82-2.36c-15.49,0-27.41,8.74-34.46,25.26l-22.12,51.7c-12.92,30.19-25.82,60.37-38.74,90.56 c-0.44,1.04-0.92,2.06-1.46,3.14l-3.03-0.9c-3.42-1.04-6.68-2.03-9.92-2.98c-2.89-0.86-5.59-1.29-8-1.29 c-8.27,0-13.96,4.97-16.94,14.77c-3.79,12.5-7.58,25.03-11.33,37.54c-4.35,14.4-0.09,22.37,14.17,26.7l27.25,8.25 c52.7,15.97,107.2,32.47,160.77,48.86c1.8,0.53,3.95,2.33,4.9,4.07c8.71,15.9,17.4,32.15,25.79,47.87 c2.66,4.95,5.29,9.89,7.93,14.84l13.61,25.42c12.37,23.11,25.17,47.03,37.81,70.54c6.12,11.37,16.85,18.17,28.68,18.17 c2.15,0,4.32-0.21,6.45-0.67c10.38-2.17,18.79-8.69,23.09-17.89c4.41-9.41,3.98-20.36-1.2-30.07 c-19.28-36.24-38.99-73.04-58.04-108.61l-10.82-20.18c-0.23-0.44-0.44-0.88-0.67-1.32c-1.34-2.75-3.21-6.49-7.56-6.49 c-1.13,0-2.33,0.28-3.68,0.83c-1.99,0.86-3.33,2.15-3.93,3.84c-0.9,2.54-0.18,5.69,2.4,10.49l17.75,33.19 c16.99,31.71,33.95,63.4,50.89,95.13c5.11,9.57,2.5,19.65-6.33,24.52c-2.57,1.41-5.25,2.1-8.02,2.1c-6.4,0-12.32-3.88-15.83-10.42 c-32.06-59.82-63.33-118.29-92.96-173.81c-4.95-9.29-2.91-17.66,5.73-23.6c6.1-4.16,5.22-8.44,3.42-11.28 c-1.9-2.94-4.32-3.56-6.03-3.56c-1.8,0-3.74,0.67-5.8,2.03c-10.42,6.86-15.44,16.48-14.93,28.57c0.12,2.8,0.67,5.55,1.2,8.21 c0.02,0.12,0.05,0.23,0.07,0.35c-18.95-5.76-37.91-11.53-56.86-17.29c-40.93-12.46-81.87-24.92-122.82-37.35 c-1.39-0.42-2.27-0.97-2.61-1.59c-0.39-0.74-0.3-1.99,0.28-3.84c2.45-7.93,4.88-16.02,7.21-23.85c1.32-4.39,2.63-8.78,3.95-13.17 c1.78-5.85,2.22-6.08,3.14-6.08c1.23,0,3.35,0.62,6.01,1.43l29.58,8.97c40.66,12.32,81.29,24.64,121.94,36.93 c3.04,0.92,6.09,1.85,9.13,2.77c3.06,0.93,6.11,1.85,9.17,2.78c3.06,0.93,6.11,1.85,9.17,2.78c3.06,0.93,6.11,1.85,9.17,2.78 c3.06,0.93,6.12,1.85,9.17,2.78c1.13,0.34,2.28,0.65,3.39,1.03c-0.8-0.32-1.58-0.33-2.41-0.07c-1.3,0.42-2.39,1.28-3.42,2.14 c-0.94,0.78-1.86,1.68-2.22,2.88c-0.11,0.37-0.16,0.75-0.15,1.14c0.05,2.98,2.08,7.12,4.9,8.32c5.2,2.2,8.85,5.73,11.46,11.09 c0.32,0.62,0.62,1.27,0.92,1.92c1.53,3.21,3.1,6.52,5.45,9.29c1.59,1.87,4.67,2.7,6.98,2.7c0.95,0,1.78-0.14,2.5-0.39 c1.18-0.42,2.15-1.53,2.89-3.31c0.25-0.62,1.5-3.84,0.46-6.08c-3.19-6.91-6.7-13.2-10.45-18.74c-3.1-4.55-7.56-7.84-13.59-9.92 c36.22,11,72.46,21.96,108.68,32.94l85.08,25.75c1.62,0.51,4.62,1.41,5.06,2.24c0.44,0.86-0.49,3.91-0.97,5.57 c-1.55,5.11-3.07,10.24-4.62,15.37c-2.1,7.05-4.23,14.12-6.36,21.17c-1.48,4.9-2.03,4.9-2.89,4.9c-1.09,0-2.87-0.49-4.6-1.02 l-13.54-4.09c-31.36-9.48-62.73-18.95-94.07-28.45c-1.8-0.55-3.24-0.81-4.51-0.81c-3.4,0-5.82,1.87-6.86,5.29 c-2.17,7.21,4.74,9.31,7.03,9.98c15.37,4.65,30.74,9.31,46.11,13.98c21.31,6.45,42.62,12.92,63.95,19.35 c2.2,0.67,4.37,0.99,6.43,0.99c7.9,0,14.15-4.95,16.73-13.22c3.79-12.3,7.81-25.63,12.62-42.02c3.14-10.77-1.55-19.58-12.25-23.02 c-3.58-1.13-7.17-2.22-10.93-3.37c-1.16-0.35-2.33-0.69-3.54-1.06c0.02-0.37,0.05-0.69,0.09-0.95 C458.17,239.95,467.83,187.66,477.52,135.43z M438.92,261.3l-4.78,25.86c-0.09,0.53-0.25,1.06-0.46,1.66l-200.41-60.72 L87.39,183.92c0.28-0.76,0.55-1.48,0.86-2.17l6.73-15.72c18.07-42.37,36.15-84.71,54.25-127.05c4.25-9.94,11.33-15.21,20.5-15.21 c2.8,0,5.82,0.49,8.97,1.46c88.85,26.86,177.67,53.76,266.49,80.69c14.03,4.23,19.81,13.68,17.17,28.04 C454.61,176.41,446.64,219.56,438.92,261.3z"/> <path d="M193,311.18c0-2.33,0.02-9.41-7.47-9.64h-0.35c-3.63,0-5.41,1.8-6.24,3.33c-1.04,1.87-1.16,4.21-1.16,6.03 c0.02,27,0.02,53.97,0,80.94c0,1.83,0.12,4.18,1.18,6.06c0.83,1.53,2.61,3.33,6.24,3.33h0.32c7.49-0.21,7.47-7.3,7.47-9.64 c-0.02-9.75-0.02-19.51-0.02-29.26v-22.07C192.97,330.57,192.97,320.86,193,311.18z"/> <path d="M125.84,370.79c-0.07-1.02-0.16-2.05-0.27-3.07c-0.3-2.78-0.93-5.86-3.24-7.43c-2.42-1.64-6.8-1.21-9.02,0.6 c-2.46,2.02-2.74,5.1-2.73,8.11c0.03,6.85,0.06,13.7,0.1,20.55c0.04,7.64-0.06,15.77-4.21,22.18c-3.96,6.14-11.15,9.67-18.39,10.62 c-2.53,0.33-5.31,0.47-7.18,2.21c-1.47,1.36-2.05,3.47-2.03,5.47c0.02,2.01,0.63,4.1,2.08,5.48c1.85,1.76,4.64,2.05,7.19,1.98 c7.61-0.2,15.14-2.74,21.3-7.2c6.17-4.46,10.94-10.81,13.51-17.97c2.32-6.47,2.85-13.43,3.08-20.3c0.15-4.48,0.19-8.95,0.11-13.43 C126.11,375.99,126.02,373.38,125.84,370.79z"/> <path d="M220.11,462.08c-1.62,0-3.33,0.51-5.59,1.62c-2.43,1.2-4.9,1.8-7.35,1.8c-8.07,0-13.98-6.4-14.1-15.25 c-0.07-5.69-0.07-11.74,0-18.51c0.07-7.81-4.62-9.11-7.44-9.18l-0.3-0.02c-2.2,0-3.95,0.67-5.25,1.99 c-1.53,1.55-2.24,3.84-2.2,6.96c0.05,2.47,0.05,5.02,0.02,7.47v5.62h0.02v0.95c-0.02,2.33-0.05,4.76,0.05,7.16 c0.67,15.81,13.73,28.17,29.75,28.17c4.74,0,9.27-1.13,13.52-3.35c2.08-1.11,8.41-4.44,5.11-11.12 C224.59,462.85,221.98,462.08,220.11,462.08z"/> <path d="M447.44,404.04c-0.56-0.14-1.12-0.2-1.68-0.18c-2.22,0.05-4.44,1.14-6.63,1.81 c-4.65,1.44-10.07,0.9-13.83-2.18c-3.13-2.57-4.8-6.58-5.3-10.6c-0.29-2.29-0.27-4.73-1.46-6.71c-1.17-1.93-3.41-3.1-5.66-3.21 c-1.81-0.08-3.61,0.47-5.15,1.42c-0.38,0.23-0.75,0.48-1.09,0.77c-0.29,0.24-0.48,0.7-0.65,1.04c-0.4,0.77-0.71,1.59-0.93,2.44 c-0.44,1.72-0.54,3.51-0.43,5.27c0.04,0.68,0.12,1.36,0.22,2.04c0.97,6.45,4.08,12.56,8.68,17.18c4.6,4.63,10.66,7.77,17.09,8.92 c1.36,0.24,2.75,0.4,4.12,0.25c0.96-0.11,1.9-0.37,2.84-0.63c1.94-0.54,3.89-1.08,5.83-1.62c1.83-0.51,3.67-1.02,5.32-1.95 c1.65-0.93,3.11-2.33,3.73-4.13c0.54-1.57,0.38-3.32-0.15-4.89C451.53,406.77,449.8,404.64,447.44,404.04z"/> <path d="M153.01,332.44h-0.07c-4.78,0-7.65,3.14-7.67,8.39c-0.05,9.18-0.05,18.84,0,30.39 c0.02,5.36,2.77,8.48,7.56,8.53h0.14c4.69,0,7.53-3.12,7.58-8.39c0.05-3.54,0.05-7.1,0.02-10.63v-9.08 c0.02-3.56,0.02-7.12-0.02-10.68C160.48,333.3,155.25,332.44,153.01,332.44z"/> <path d="M111.69,315.61c0.79,1.52,2.01,2.79,3.43,3.74c0.81,0.54,1.72,1,2.7,1.02c1.06,0.03,2.07-0.46,3-0.96 c1.32-0.71,2.65-1.51,3.51-2.74c0.9-1.3,1.18-2.92,1.33-4.49c0.27-2.84,0.21-5.7,0.21-8.55c0-2.36,0.02-4.79-0.85-6.98 c-0.8-2.01-2.38-3.73-4.39-4.54c-2.03-0.82-4.58-0.68-6.28,0.74c-1.83,1.53-2.95,3.38-3.44,5.73c-0.48,2.28-0.39,4.64-0.43,6.97 c-0.05,2.83-0.26,5.79,0.56,8.44C111.21,314.55,111.42,315.09,111.69,315.61z"/> <g> <path d="M244.57,72.74c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62 c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C257.64,84.03,252.89,75.23,244.57,72.74z M213.7,188.93 c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69 L213.7,188.93z"/> <path d="M303.62,90.42c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62 c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C316.69,101.72,311.95,92.92,303.62,90.42z M272.75,206.62 c-0.6,1.99-2.7,3.12-4.69,2.53c-1.99-0.6-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53s3.12,2.7,2.53,4.69 L272.75,206.62z"/> <path d="M362.67,108.11c-8.33-2.49-17.13,2.25-19.62,10.58L313.09,218.7c-2.49,8.33,2.25,17.13,10.58,19.62 s17.13-2.25,19.62-10.58l29.95-100.01C375.74,119.4,371,110.6,362.67,108.11z M331.8,224.3c-0.6,1.99-2.7,3.12-4.69,2.53 c-1.99-0.6-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69L331.8,224.3z"/> <path d="M421.72,125.79c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62 c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C434.79,137.09,430.05,128.29,421.72,125.79z M390.85,241.98 c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69 L390.85,241.98z"/> <path d="M185.52,55.05c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62 c8.33,2.49,17.13-2.25,19.62-10.58L196.1,74.68C198.59,66.35,193.84,57.55,185.52,55.05z M154.65,171.25 c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69 L154.65,171.25z"/> </g> </g> </svg> <h4>Tu carrito está vacío</h4> </div> </template> </div> <template x-if="!cartIsEmpty"> <div class="sidebar-cart-bottom"> <h5 class="sidebar-cart-subtotal"> Subtotal <span x-text="formatCurrency($store.state.cartSubTotal)"></span> </h5> <div class="sidebar-cart-actions"> <button type="button" @click="clearCart" class="btn btn-clear-cart"> Vaciar Carrito </button> <template x-if="! route().current('cart.index')"> <a :href="route('cart.index')" class="btn btn-default btn-view-cart"> Ver Carrito </a> </template> <a :href="route('checkout.create')" class="btn btn-primary btn-checkout"> Pagar </a> </div> </div> </template> </aside> <div x-data="ScrollToTop" class="scroll-to-top" :class="{ active: scrolled }" @click="scrollToTop" > <div class="top-arrow"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.293,1.293a1,1,0,0,1,.325-.216.986.986,0,0,1,.764,0,1,1,0,0,1,.325.216l8,8a1,1,0,0,1-1.414,1.414L13,4.414V22a1,1,0,0,1-2,0V4.414L4.707,10.707A1,1,0,0,1,3.293,9.293Z"/> </svg> </div> <svg> <circle class="text-gray-300" stroke-width="1.5" stroke="currentColor" fill="transparent" r="19" cx="20" cy="20" /> <circle class="text-blue-600" stroke-width="1.5" :stroke-dasharray="circumference" :stroke-dashoffset="circumference - percent / 100 * circumference" stroke-linecap="round" stroke="currentColor" fill="transparent" r="19" cx="20" cy="20" /> </svg> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/intlTelInput.min.js"></script> <script> // ============================================= // Variables globales // ============================================= let phoneInput; const WA_NUMBER = '5216566561396'; const PRODUCT_ID = 5597; const CSRF_TOKEN = () => window.FleetCart?.csrfToken; // ============================================= // Inicialización // ============================================= document.addEventListener('DOMContentLoaded', function () { // --- intl-tel-input --- const phoneField = document.querySelector('#phone'); if (phoneField) { phoneInput = window.intlTelInput(phoneField, { initialCountry: 'mx', preferredCountries: ['mx', 'us'], utilsScript: 'https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/utils.js', }); phoneField.addEventListener('input', function () { document.getElementById('phoneError').style.display = phoneInput.isValidNumber() ? 'none' : 'block'; }); } // --- Modal: cerrar al hacer clic fuera --- document.addEventListener('click', function (e) { const modal = document.getElementById('contactModal'); if (modal && e.target === modal) closeModal(); }); // --- MSI Drawer --- const drawer = document.getElementById('msiDrawer'); const drawerTrigger = document.querySelector('[data-open-drawer]'); if (drawer && drawerTrigger) { drawerTrigger.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); drawer.classList.add('open'); }); document.addEventListener('click', function (e) { if (drawer.classList.contains('open') && !drawer.contains(e.target) && !drawerTrigger.contains(e.target)) { drawer.classList.remove('open'); } }); drawer.addEventListener('click', e => e.stopPropagation()); } // --- Bootstrap tooltips --- document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => { new bootstrap.Tooltip(el); }); // --- Admin: stock status --- const stockSelect = document.getElementById('stock-status'); if (stockSelect) { stockSelect.addEventListener('change', function () { adminFetch('/admin/products/update-stock', { product_id: this.getAttribute('data-product-id'), in_stock: this.value, }, 'Estado de stock actualizado correctamente.'); }); } // --- Admin: botones de actualización --- registerAdminButton('update-shipping-button', 'shipping-cost', 'shipping_cost', 'Costo de envío actualizado correctamente.', '/admin/products/update-shipping', parseFloat); registerAdminButton('update-skuUnit-button', 'sku-unit', 'skuUnit', 'Unidad actualizada correctamente.', '/admin/products/update-unit', String); registerAdminButton('update-minOrderQuantity-button','min-order-quantity', 'minOrderQuantity', 'Cantidad mínima actualizada correctamente.', '/admin/products/update-min-qty', parseInt); registerAdminButton('update-quantityIncrement-button','quantity-increment', 'quantityIncrement', 'Incremento actualizado correctamente.', '/admin/products/update-increments', parseInt); registerAdminButton('update-weight-button', 'product-weight', 'weight', 'Peso actualizado correctamente.', '/admin/products/update-weight', parseFloat); registerAdminButton('update-lead-time-button', 'product-lead-time', 'lead_time_description','Lead time actualizado.', '/admin/products/lead-time', String, true); // --- Admin: borrar caché --- const clearCacheBtn = document.getElementById('clear-cache-button'); if (clearCacheBtn) { clearCacheBtn.addEventListener('click', function () { adminFetch('/admin/products/clear-cache', { product_id: PRODUCT_ID }, null, true); }); } // --- Productos visitados --- const sku = "3403-22-2420-20"; if (sku) { saveVisitedProduct(sku); setProductCookie(sku); } fetchRecommendations(); }); // ============================================= // Modal helpers // ============================================= function openModal() { ['name', 'email', 'phone', 'zipcode', 'quantity'].forEach(id => { const el = document.getElementById(id); if (el) el.value = ''; }); document.getElementById('contactModal').style.display = 'block'; } function closeModal() { document.getElementById('contactModal').style.display = 'none'; } // ============================================= // WhatsApp // ============================================= function askViaWhatsapp() { const productName = document.getElementById('productInformation').value; const productUrl = window.location.href; const message = `Hola, estoy interesado en este producto: ${productName}. Puedes encontrarlo aquí: ${productUrl}. ¿Podrías darme más información?`; window.open(`https://wa.me/${WA_NUMBER}?text=${encodeURIComponent(message)}`, '_blank'); } // ============================================= // Cotización — envío interno // ============================================= async function sendCRMRequest() { const name = document.getElementById('name').value.trim(); const email = document.getElementById('email').value.trim(); const zipcode = document.getElementById('zipcode').value.trim(); const phone = phoneInput?.getNumber() ?? ''; const product = document.getElementById('productInformation').value; const quantity = document.getElementById('quantity').value; const byWhatsapp = document.getElementById('byWhatsapp').checked; // Validación setFieldError('nameError', !name); setFieldError('emailError', !email); setFieldError('zipcodeError', !zipcode); if (!name || !email || !zipcode) return; if (!phoneInput?.isValidNumber()) { document.getElementById('phoneError').style.display = 'block'; alert('Número de teléfono inválido'); return; } document.getElementById('phoneError').style.display = 'none'; closeModal(); try { const response = await fetch('https://www.ferredepot.com/cotizar', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': CSRF_TOKEN(), }, body: JSON.stringify({ name, email, phone, zipcode, quantity, product, by_whatsapp: byWhatsapp }), }); if (!response.ok) throw new Error(`HTTP ${response.status}`); showFlashMessage('success', 'Solicitud enviada. Te contactaremos pronto.'); document.getElementById('byWhatsapp').checked = false; } catch { showFlashMessage('danger', 'Ocurrió un error al enviar la solicitud.'); } } // ============================================= // Flash messages // ============================================= function showFlashMessage(type, message) { const container = document.getElementById('flash-message-container'); if (!container) return; const el = document.createElement('div'); el.className = `alert alert-${type} flash-message`; el.textContent = message; el.style.cssText = 'margin-bottom:10px; opacity:1; transition:opacity 0.5s ease;'; container.appendChild(el); setTimeout(() => { el.style.opacity = '0'; setTimeout(() => el.remove(), 500); }, 3000); } // ============================================= // Admin helpers // ============================================= function adminFetch(url, body, successMsg, reload = false) { fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': CSRF_TOKEN() }, body: JSON.stringify(body), }) .then(r => r.json()) .then(data => { if (data.success) { reload ? location.reload() : (successMsg && alert(successMsg)); } else { alert('Ocurrió un error.'); console.error(data); } }) .catch(err => { console.error(err); alert('Error de conexión.'); }); } function registerAdminButton(btnId, inputId, fieldKey, successMsg, endpoint, castFn, reload = false) { const btn = document.getElementById(btnId); if (!btn) return; btn.addEventListener('click', function () { const input = document.getElementById(inputId); const productId = input.getAttribute('data-product-id'); const value = castFn(input.value); if (castFn === parseFloat || castFn === parseInt) { if (isNaN(value) || value < (castFn === parseInt ? 1 : 0)) { alert('Valor inválido.'); return; } } else if (castFn === String && !input.value.trim()) { alert('Dato inválido.'); return; } adminFetch(endpoint, { product_id: productId, [fieldKey]: value }, successMsg, reload); }); } // ============================================= // Productos visitados // ============================================= function saveVisitedProduct(sku) { let visited = JSON.parse(localStorage.getItem('visited_products') || '[]'); visited = [sku, ...visited.filter(id => id !== sku)].slice(0, 10); localStorage.setItem('visited_products', JSON.stringify(visited)); } function setProductCookie(sku) { const cookieName = `msiItemSeen_${sku}`; if (!document.cookie.includes(`${cookieName}=1`)) { const expires = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toUTCString(); document.cookie = `${cookieName}=1; expires=${expires}; path=/`; } } async function fetchRecommendations() { const visited = JSON.parse(localStorage.getItem('visited_products') || '[]'); if (!visited.length) return; try { const res = await fetch('/api/recommendations', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ visited }), }); const recommended = await res.json(); console.log('Recomendaciones:', recommended); } catch (err) { console.warn('No se pudieron cargar recomendaciones:', err); } } // ============================================= // Util // ============================================= function setFieldError(errorId, show) { const el = document.getElementById(errorId); if (el) el.style.display = show ? 'block' : 'none'; } </script> <script async src="https://www.google.com/recaptcha/api.js"></script> <script> const whatsappNumber = "+5216566561396"; function openWhatsappSupport() { window.open('https://wa.me/' + whatsappNumber, "_blank"); } </script> <a href="https://api.whatsapp.com/send?phone=526566561396&text=Hola%21%20Quisiera%20m%C3%A1s%20informaci%C3%B3n%20" class="float" target="_blank" rel="noopener"> <i class="fa fa-whatsapp my-float"></i> </a> <script id="ACXConnectScript" type="text/javascript" src="https://em.ferredepot.com/rui/websites/6a0f95dfc1e0f/connect-js"></script> <script> document.addEventListener("DOMContentLoaded", function () { const texto = document.getElementById('texto'); const barra = document.getElementById('barra'); // Verifica que existan los elementos antes de continuar if (!texto || !barra) return; let posX = barra.offsetWidth; function desplazarTexto() { posX--; if (posX < -texto.offsetWidth) { posX = barra.offsetWidth; } texto.style.transform = `translateX(${posX}px)`; requestAnimationFrame(desplazarTexto); } desplazarTexto(); }); </script> <script> async function loadAdminMenus() { const adminMenuSetting = "Apps"; // Puedes leerlo desde una variable PHP o un atributo data const menuNames = adminMenuSetting.split(','); const container = document.getElementById('adminMenuContainer'); for (const name of menuNames) { try { const res = await fetch(`/api/menu/${name.trim()}`); const data = await res.json(); const menu = data[0]; if (!menu || !menu.menu_items) continue; const dropdown = document.createElement('li'); dropdown.classList.add('nav-item', 'dropdown'); const toggle = document.createElement('a'); toggle.className = 'nav-link dropdown-toggle'; toggle.href = '#'; toggle.id = `menuDropdown_${name}`; toggle.setAttribute('role', 'button'); toggle.setAttribute('data-bs-toggle', 'dropdown'); toggle.setAttribute('aria-expanded', 'false'); toggle.innerText = name; const submenu = document.createElement('ul'); submenu.className = 'dropdown-menu'; submenu.setAttribute('aria-labelledby', `menuDropdown_${name}`); menu.menu_items.forEach(item => { const li = document.createElement('li'); const a = document.createElement('a'); a.className = 'dropdown-item'; a.href = item.url; a.target = item.target || '_self'; a.innerText = item.name; li.appendChild(a); submenu.appendChild(li); }); dropdown.appendChild(toggle); dropdown.appendChild(submenu); container.appendChild(dropdown); } catch (error) { console.error(`Error loading menu ${name}:`, error); } } } document.addEventListener('DOMContentLoaded', loadAdminMenus); </script> <div id="sale-notification" style="display:none; position:fixed; bottom:20px; left:20px; background:#fff; padding:10px 15px; border:1px solid #ccc; border-radius:5px; box-shadow:0 0 10px rgba(0,0,0,0.1); z-index:9999;"> <span id="notification-text"></span> </div> <script src="https://cookie-consent-js.e.notly.me/cookie-consent.js" data-site-name="Mi Sitio" data-site-id="ferredepot.com" data-api-url="https://cookie-consent-js.e.notly.me" data-privacy-url="/privacidad" data-color="#4f7cff"> </script> </body> </html>