One client, three stores, three different e-commerce problems
By Spencer Taylor ·
Jeff Savastano runs Embroidery by Cozy and Tuxedos by Cozy out of Nutley and Morristown, New Jersey. Between them, those two shops sell custom embroidery and screen printing, promotional products, firefighter apparel, and formalwear rentals and sales. That is four web properties on the same server I manage, three of them WooCommerce stores. Each store needed something different from its website.
This case study covers the three stores. One sells to individuals and firehouses at the same time. One is a catalog whose job is to get you into one of the two Cozy Formalwear stores, not through a checkout. One is co-branded with a platform Jeff does not control. The point of the three together is that e-commerce is not one problem, and the same stack can solve all of them if you build each store around what it actually has to do.
Search figures in this case study come from Google Search Console, rounded.
Store 1: Firemen Clothing — niche retail with personalization
Firemen Clothing sells firefighter-themed apparel and gifts. The original site was built in Bricks. I rebuilt it from the ground up: a new Kadence build with Elementor for the non-store pages, the WooCommerce side of the database imported so no product, customer, or order was lost, and everything redesigned apart from a handful of original pages I redid in Elementor. The brief underneath the redesign was that the same site has to serve one person buying a personalized gift and a firehouse placing a bulk custom order, and those are different customers with different expectations.
On top of the rebuild: protected wholesale categories so firehouse pricing stays behind a login, OAuth sign-in on the account page so bulk customers are not juggling another password, UPS live-rate shipping so a 40-shirt order quotes correctly, a size-chart plugin for the apparel, and a backend cleanup that fixed PHP errors, cleared a 2 GB log file, and made the admin side noticeably faster. Jeff noticed the speed before I told him.
The result is a store that holds its own in search: roughly 900 clicks from about 73,000 impressions in a single month, for a niche apparel brand competing with much larger retailers.
Firemen Clothing: gifts for one person and bulk orders for a firehouse on the same store.
Store 2: Cozy Tux — browse, don't buy
Cozy Tux is the formalwear side of the business. Nobody rents a tuxedo without trying it on, so the website's job is not checkout. It is helping someone find the right tux or suit and walk into the Nutley or Morristown store with a style already in mind.
That makes it a catalog problem. The whole collection is browsed by attribute: coat color, buttons, designer, tux versus suit. I built the filter as an off-canvas drawer on top of WooCommerce's own attribute archives, with no filter plugin, so it stays fast and there is one less thing to update. Like all of Jeff's sites it sits behind Cloudflare, and here the edge cache has cart, checkout, and filtered views excluded, because a cached filter is a wrong filter. I also locked the account area down after a login problem, and fixed a filter break that only ever hit logged-out visitors, which is the kind of bug you only find by testing as a stranger.
Built on Kadence Pro and WooCommerce, like the other two.
Cozy Tux: a formalwear catalog built to send people to the store, not to a cart.
Store 3: Cozy Imprintables — co-branded with a platform you don't control
Cozy Imprintables launched in October 2026 and replaced the old Cozy T-shirts site. It sells printed and embroidered apparel and promotional products, and it runs as two sites that have to look like one.
The WooCommerce store handles what sells simply: pick a product, upload your art, pay. The promotional-products catalog and design tool live on an industry platform (ESP, from ASI) that Jeff does not control and I cannot restyle. So I audited the ESP storefront and rebuilt its design language in Kadence: the typeface, the blue, the 4 px button corners, the grayscale category cards, the logo and branding, the overall look and feel, and the navigation, so moving between the two sites feels like moving between pages of one site. All of it carries over to mobile, where the menus, buttons, and layout behave the same way on both. A customer cannot tell where one ends and the other begins.
Shipping was cloned from Firemen Clothing: UPS live rates, local pickup at both shops, nothing Jeff has to learn twice. The catalog uses the same plugin-free attribute filter as Cozy Tux. Built on Kadence Pro, Shop Kit, and WooCommerce.
Cozy Imprintables: Woo for direct orders, ESP for custom design, styled to read as one site.
What they share
One Kadence and WooCommerce stack. One host, with Cloudflare in front of every site. One person who knows all three. That is not a slogan; it is the reason the work compounds. The shipping setup from Firemen Clothing became the shipping setup for Cozy Imprintables. The filter drawer from Cozy Tux became the filter drawer for Cozy Imprintables. A security fix on one store is a security fix on all of them. When Jeff emails about a problem, I already know the site.
WooCommerce is the common denominator because it does not care whether the store sells personalized gifts, tuxedos you cannot buy online, or promo products that live half on someone else's platform. It is a toolkit, and the store you get depends on what you build with it.
I have been working with Spencer for years now. He had no problem jumping in and fixing a problem that was created by another designer/developer. Since then, Spencer has helped me redesign and develop new versions of three sites and maintain them.
About the Author
Spencer Taylor
South Jersey–based WordPress web designer and developer, and the person behind Threshold Solutions. I build fast, custom Divi 5 and WordPress sites for businesses across New Jersey and Philadelphia — and share what I learn here.
Products, services, tickets, or a catalog that sends people to your door. Tell me what you sell and I will tell you the straightest way to get it online.
A 100 in PageSpeed Insights is a ceiling, not a measurement. How the score is built, why time to first byte isn’t in it, what Google actually ranks on, and which numbers to compare instead.
After years on Divi, my own site is now plain HTML and CSS: PageSpeed 78 → 98–100, layout shift 0.67 → 0, nothing to update, and faster to add to. Here is why, with the numbers — and who should not do this.