Specialty Lumber & Custom Woodworking—Since 1922

SPECIALTY LUMBER & HARDWARE | CNC WOODWORKING | CUSTOM MILLWORK | FURNITURE REFINISHING

How Can We Help You?

specialty lumberyard & millwork in avon, ma

Contractors & Trade Professionals

Contractors & Trades Professionals

With our full-service lumberyard, custom wood shop, and CNC milling capabilities, we’re the partner who helps you control costs, stay on schedule, and deliver clean results.

Our Services
specialty lumberyard & millwork in avon, ma

Hobbyists & Homeowners

Hobbyists & Homeowners

Whether you’re a seasoned DIY enthusiast or you just fired up your first table saw, we’ll help you choose the right materials, get the tools you need, and offer straight, practical advice so your project turns out right.

Our Services

100 Years Strong

Built On a Foundation of Quality & Service

A loaf of bread cost 7¢ and a pound of steak would run you about 26¢. The gummy bear was just invented in Germany, and Babe Ruth was the most famous person in the country. It was 1922, and it was the year that Barney & Carey Company Inc. was founded on the banks of the Neponset River in Milton, MA.

What Our Customers Are Saying

Incredible assortment of high quality wood and products. Friendly staff that helps you get the job done. The big hardware stores can’t match on quality, service, and expertise. Looking forward to years of great products and service to come.

–Jack Laughlin

They do a beautiful job with all the old trim reproductions projects I throw their way. Hard to find a group of true craftsmen these days. Barney & Carey keeps the tradition alive. Keep up the great work, and keep those big box stores at bay!

–Stephen Cobb

Fabulous craftsmanship! I asked them to restore a cedar chest that belonged to my grandmother last year. It had been abused over the years. They did an amazing job, and it now sits proudly at the foot of my bed. My grandmother would be thrilled!

–Deborah Austin

The Barney & Carey Co. Blog

About Rough Lumber, Sourcing, and Drying It

About Rough Lumber, Sourcing, and Drying It

Rough lumber doesn’t start out straight, smooth, or ready to use. In this article, we break down how rough lumber is responsibly sourced and properly dried before it ever reaches your project. Understanding the drying process is key to preventing warping, cracking, and long-term performance issues. Learn what goes on behind the scenes to ensure quality, stable wood.

Why is Furniture Refinishing So Expensive?

Why is Furniture Refinishing So Expensive?

Back in the 1990s, our business accidentally got into furniture repair after the manager of a Boston steakhouse complained about a pile of damaged chairs he couldn’t find anyone to fix. We repaired them on a time and materials basis, a method that often saves clients money. He was so satisfied with the work that we ended up bartering our repairs for meals at the restaurant for a long time. After that, our furniture repair business took off!

Furniture: Buy New or Restore?

Furniture: Buy New or Restore?

Back in the 1990s, our business accidentally got into furniture repair after the manager of a Boston steakhouse complained about a pile of damaged chairs he couldn’t find anyone to fix. We repaired them on a time and materials basis, a method that often saves clients money. He was so satisfied with the work that we ended up bartering our repairs for meals at the restaurant for a long time. After that, our furniture repair business took off!

Order Custom Cabinet Parts

Follow Us on Instagram

Follow Us

Contact Barney & Carey Co.

Give Us a Call

(508) 580-9766

Shoot Us an Email

info@barneyandcarey.com

Our Location

491 West Main St
AvonMA 02322

Business Hours

Monday: 7:30 am - 3:30 pm
Tuesday: 7:30 am - 3:30 pm
Wednesday: 7:30 am - 3:30 pm
Thursday: 7:30 am - 3:30 pm
Friday: 7:30 am - 3:30 pm
Saturday: 8:00 am - 12:00 pm
Sunday: Closed

Cabinet Order Summary

${customerInfoHTML} ${cabinetDetailsHTML} ${printContent} `); printWindow.document.close(); // Wait for content to load before printing printWindow.onload = function () { printWindow.print(); }; } // Set up form field listeners function setupFormListeners() { // Prevent duplicate listeners by removing existing ones first if (window.cabinetVisListenersSetup) { return; // Already setup, don't duplicate } // Listen for changes on all form inputs in the repeater sections const form = document.querySelector("#form_cab-price-calc"); if (form) { // Mark that we've setup listeners to prevent duplicates window.cabinetVisListenersSetup = true; // Use event delegation to catch changes in current and future repeater sections form.addEventListener("change", function (e) { if (e.target.name && e.target.name.includes("item_meta[42]")) { updateVisualization(); } // Also listen for material changes (field 105) if (e.target.name && e.target.name.includes("item_meta[105]")) { updateVisualization(); } // Also listen for type changes (field 45) if (e.target.name && e.target.name.includes("item_meta[45]")) { updateVisualization(); } // Also listen for delivery option changes if (e.target.name && e.target.name.includes("item_meta[113]")) { updateVisualization(); } }); form.addEventListener("input", function (e) { if (e.target.name && e.target.name.includes("item_meta[42]")) { updateVisualization(); } }); // Watch for repeater add/remove buttons const observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if ( mutation.addedNodes.length || mutation.removedNodes.length ) { // Check if repeater sections were added/removed const hasRepeaterChanges = Array.from( mutation.addedNodes, ) .concat(Array.from(mutation.removedNodes)) .some( (node) => node.nodeType === 1 && (node.classList?.contains( "frm_repeat_sec", ) || node.querySelector?.( ".frm_repeat_sec", )), ); if (hasRepeaterChanges) { setTimeout(updateVisualization, 100); // Small delay to ensure DOM is updated } } }); }); observer.observe(form, { childList: true, subtree: true, }); } } // Initialize function init() { const container = document.getElementById("sheetVis"); if (!container) { // If sheetVis doesn't exist yet, wait for it const observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if (mutation.addedNodes.length) { Array.from(mutation.addedNodes).forEach( function (node) { if ( node.nodeType === 1 && (node.id === "sheetVis" || node.querySelector?.("#sheetVis")) ) { observer.disconnect(); // Stop observing updateVisualization(); setupFormListeners(); } }, ); } }); }); observer.observe(document.body, { childList: true, subtree: true, }); return; // Exit early if container not found } // Container exists, proceed normally updateVisualization(); setupFormListeners(); } // Handle Formidable Forms multi-step navigation function handleFormPageChange() { // Reset listener setup flag to allow re-initialization window.cabinetVisListenersSetup = false; // Small delay to ensure DOM is fully updated after page change setTimeout(function () { const container = document.getElementById("sheetVis"); if (container) { updateVisualization(); // Re-setup form listeners in case they were lost during navigation setupFormListeners(); } else { // If container doesn't exist, re-run full initialization init(); } }, 50); } // Additional fallback detection for form changes function setupGlobalFormWatcher() { // Watch for any significant DOM changes that might indicate form step changes const globalObserver = new MutationObserver(function (mutations) { let shouldReinit = false; mutations.forEach(function (mutation) { if (mutation.addedNodes.length > 0) { Array.from(mutation.addedNodes).forEach(function (node) { if (node.nodeType === 1) { // Check for form content changes or step navigation if ( node.classList?.contains("frm_form_content") || node.querySelector?.(".frm_form_content") || node.id === "form_cab-price-calc" || node.querySelector?.("#form_cab-price-calc") ) { shouldReinit = true; } } }); } }); if (shouldReinit) { handleFormPageChange(); } }); globalObserver.observe(document.body, { childList: true, subtree: true, }); } // Export global interface window.cabinetVis = { init: init, update: updateVisualization, getCabinets: extractCabinetData, handleFormPageChange: handleFormPageChange, debug: function () { console.log("Cabinet Visualization Debug Info:", { containerExists: !!document.getElementById("sheetVis"), formExists: !!document.querySelector("#form_cab-price-calc"), listenersSetup: !!window.cabinetVisListenersSetup, jQueryAvailable: typeof jQuery !== "undefined", cabinetCount: extractCabinetData().length, }); }, }; // Handle Formidable Forms multi-step navigation if (typeof jQuery !== "undefined") { jQuery(document).ready(function ($) { // Use both event delegation and direct binding for better compatibility $(document).on("frmPageChanged", function (event, form, response) { console.log( "Cabinet Vis: Formidable form page changed detected", ); handleFormPageChange(); }); // Also listen for form completion which might trigger on some step changes $(document).on("frmFormComplete", function (event, form, response) { setTimeout(function () { const container = document.getElementById("sheetVis"); if (container) { console.log( "Cabinet Vis: Form complete, updating visualization", ); updateVisualization(); } }, 100); }); }); } else { console.log( "Cabinet Vis: jQuery not available, relying on DOM observation for form changes", ); } // Setup global form watcher as fallback setupGlobalFormWatcher(); // Auto-initialize if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })();