Supplements, two storefronts · WooCommerce
The Kratom Connection
The Kratom Connection sells kratom and botanical supplements direct to consumers, shipped from stock they hold and pack themselves, across two storefronts sharing one catalog and one codebase.
Customers reorder on a cycle of weeks, so the returning buyer is the economics of the store. The category is unforgiving in ways most supplement brands never meet: payment processing is harder to hold, ad channels are narrow, and compliance expectations move.

They needed expertise in custom payment solutions, and arrived with a theme that had been built without regard for standards: business logic buried inside it, security issues throughout, and no way to replace it. Nothing was broken badly enough to force a rewrite, which is exactly how a store ends up unmaintainable.
- WooCommerce
- Custom theme + site plugin
- Custom product taxonomies
- Fulfillment unit inventory
- Bootstrap 5 + ACF
- Klaviyo
- GA4/GSC
Separated the business logic from the theme.
Every WooCommerce customization, tracking script, and admin feature moved into a dedicated site plugin. The theme can now be updated or replaced without the store losing its behavior. That single change is the reason the rest of this list was safe to do.
Turned product attributes into an indexable catalog.
Strain, vein color, and speed were dropdown filters, which meant they were invisible to search. We rebuilt them as real taxonomies with their own URL structure, so every one of them became a landing page a shopper can arrive on, and migrated the whole catalog across without breaking existing URLs.
Built one landing-page framework behind every category and term.
Hero, filter bar, product grid, reviews, benefits, long-form copy, and FAQ, composed per page and controlled by their own team rather than by a developer. FAQ schema outputs automatically, and shoppers narrow the grid without page reloads.
Rebuilt the product page around conversion.
A ground-up replacement for the WooCommerce default: visual variation swatches with per-option pricing in place of dropdowns, a sticky add-to-cart bar carrying live price and selection, a shipping cutoff countdown that flips itself to next-day messaging, and lab-testing and comparison sections. Swappable site-wide or per product.
Solved the phantom inventory problem.
Some sizes aren't real SKUs: a large order is picked and shipped as several smaller packs. Those sizes now derive availability from the stock they actually consume, the cart validates in aggregate so a mixed order can't oversell one shared pool, and the pick detail is written onto the order so the warehouse sees what to pull.
Built the payment gateway compatibility layer.
Their funnel checkout and their CRM payment gateway did not agree with each other. We built and maintain the layer that keeps them working together, including a dry-run mode that exercises the full checkout flow without charging a card.
Made the catalog legible to AI answer engines.
An llms.txt generated from live site data rather than hand-maintained, so it always reflects the real catalog, plus content-signal directives declaring how AI systems may use the content. Both run independently of whichever SEO plugin is active.
Brought the template layer current and up to standard.
Critical overrides that had fallen years behind the platform were updated with the custom styling preserved rather than re-skinned, and the whole layer brought up to current WordPress security and coding standards, with proper output handling, input validation, and full internationalization.
Cut the front-end weight.
Localized the web fonts, compressed and converted oversized images, deleted unused font variants, and consolidated the JavaScript that was sitting inline in the footer.
Broke up the monolith.
An overgrown functions file became organized modules. Template parts moved into their own directory with a naming convention, and a large volume of dead commented-out code went in the bin.
Then kept shipping.
A steady queue across both storefronts since: cart update failures, session expiry for returning customers, shipping totals not recalculating, payment-processor styling, checkout defaults, and product page rebuilds.