Chat on WhatsApp
Industry · CBD + hemp + delta-8 / delta-9

Magento for CBD + hemp brands: payment, age-gate, and 50-state shipping done honestly

CBD ecom has one unique pain: Stripe, PayPal, and Square all reject you. We wire the actual high-risk stack — NMI, Easy Pay Direct, Aeropay, Plaid ACH — plus age-gate + ID verification, a 50-state shipping matrix per cannabinoid, COA per batch on every PDP, and DSHEA-compliant copy guardrails. Brands like Charlotte’s Web, Joy Organics, and CBDistillery run this same pattern.

  • NMI + Authorize.net high-risk MID + Aeropay + ACH (no Stripe pretending it works)
  • Veratad / Yoti / AgeChecker.net at checkout — 21+ or 18+ by state
  • State matrix auto-blocks delta-8 to Idaho/SD/etc., flags CBD-only states
Adobe-Certified Magento + Hyvä developer CBD high-risk builds shipped — honest about payment pain
Why Magento for CBD + hemp

Four numbers that decide whether a CBD store survives its first year

Payment processor stability, age-gate defensibility, state shipping accuracy, and COA traceability. Get these four right and you scale. Get them wrong and an MID freeze, an FDA letter, or a state AG kills the brand.

  • High-risk Processor native, no Stripe pretending

    Stripe, PayPal, and Square all reject CBD merchants. We wire NMI, Authorize.net with a high-risk MID (Easy Pay Direct, Square 1), Aeropay, and Plaid ACH as the actual processors. Crypto fallback for resilience when an MID gets shut down mid-quarter.

  • 21+ / 18+ ID verification at checkout

    Veratad, Yoti, and AgeChecker.net plug into Magento checkout via API. Block under-age purchases server-side, log every verification attempt for compliance audits, and switch the threshold by state (21+ in CA/CO, 18+ in most other CBD states).

  • 50 states Shipping matrix per cannabinoid

    Idaho and South Dakota ban delta-8 outright; some states ban delta-8 while allowing CBD. We build a state × cannabinoid matrix that auto-blocks at cart, flags borderline orders for manual review, and updates when a state legislature flips. Quarterly review baked in.

  • COA / batch Per-lot lab certificates on every PDP

    Each batch gets a QR code on the bottle linking to a public Magento URL with the COA PDF, lot number, harvest date, and lab name. Recall workflow lets us pull a specific lot in <15 minutes if a state AG sends a letter. FDA-letter response template included.

What gets built

Six CBD-specific capabilities, wired into one Magento instance

Not a generic Magento build. These six are the load-bearing pieces every CBD/hemp store needs — high-risk payment, age-gate, state matrix, COA, FDA/DSHEA, subscription routing — with the integration patterns I use, not the ones Stripe pretends will work.

  • Payment routing through high-risk processors

    Stripe and PayPal don’t process CBD — full stop. They’ll terminate your account 30–90 days after the first “hemp” transaction shows up in their classifier. We wire the actual high-risk stack: NMI gateway with a high-risk MID via Easy Pay Direct or Square 1 Payments, Authorize.net with high-risk underwriting, Aeropay (ACH cash-network specifically built for cannabis-adjacent), Plaid ACH for instant bank-debit fallback, and crypto (BitPay / NOWPayments) as the resilience layer when an MID gets shut down mid-quarter. Magento handles all of this through the standard payment-method abstraction — no core changes needed.

  • Age-gate + ID verification at checkout

    Three vendors integrate cleanly: Veratad (database-driven, ~$0.85 per check, fastest), Yoti (photo-ID + selfie, ~$1.50 per check, most defensible), AgeChecker.net (cheapest at ~$0.40 per check, CBD-industry default). We wire these as a checkout-step plugin: under-age purchases are blocked server-side, every verification attempt is logged with timestamp + result + customer ID for compliance audits, and the threshold flips by state (21+ in CO/CA/WA for any cannabinoid product, 18+ in most other CBD-only states). Failed verification triggers an email with a manual-review path, not a hard rejection.

  • State-by-state shipping matrix (50 states × cannabinoid)

    Delta-8 is the trap. Idaho, South Dakota, Alaska, Colorado, Connecticut, Delaware, Iowa, Mississippi, Montana, New York, Oregon, Rhode Island, Utah, Vermont, and Washington ban delta-8 specifically while still allowing CBD. CBD itself is restricted in Idaho (must be 0.0% THC) and South Dakota. We build a state × cannabinoid matrix as Magento source restrictions: shopper enters ZIP at cart → matrix auto-filters products → blocked items show a state-specific message (“Delta-8 cannot ship to Idaho; here’s our CBD line that can”). Borderline orders flag for manual review. Quarterly state-law audit baked into the retainer.

  • COA per batch downloadable on PDP

    FDA + state AGs require lot-level traceability. Every batch gets a QR code printed on the bottle that links to a public Magento URL like /coa/lot-2026-04-12-a — the page shows the lab name, harvest date, cannabinoid profile (CBD/THC/CBG/CBN ppm), pesticide screen, heavy-metal screen, and microbial screen as a downloadable PDF. We build the COA as a Magento entity (one COA → many products of that lot), so a recall workflow can pull “every product shipped from lot 2026-04-12-a” in under 15 minutes. FDA-letter response template + email-blast workflow to affected customers included.

  • USDA hemp registration + FDA disclaimer + DSHEA guardrails

    Three compliance layers wired into the build. USDA hemp registration — we capture your license number + state hemp program in store config and surface it in the footer + COA pages. FDA disclaimer — required on every PDP and PDP-adjacent CMS page (“These statements have not been evaluated by the FDA. This product is not intended to diagnose, treat, cure, or prevent any disease.”) auto-injected via a global block. DSHEA-compliant copy guardrails — admin-side content scanner flags banned disease-claim phrases (“cures anxiety”, “treats pain”, “FDA-approved”) before publish. Brands like Charlotte’s Web, Joy Organics, and CBDistillery all run this pattern.

  • Subscriptions, loyalty, referrals (no Stripe / no PayPal)

    The subscription model still works — just not through Stripe Billing or PayPal Subscriptions. We route recurring charges through the high-risk gateway (NMI Customer Vault, Aeropay tokenized ACH, or Authorize.net CIM) and trigger them from Magento + Aheadworks Subscriptions or Mirasvit Subscriptions. Loyalty: LoyaltyLion, Yotpo Loyalty, and Smile.io all integrate with Magento and don’t care which gateway processes the payment — they just listen to order webhooks. Referrals: Friendbuy or Refersion via discount-code attribution. Same playbook Charlotte’s Web and CBDistillery use.

The build process

Five steps from compliance audit to live, defensible CBD store

Audit → plan → build → deploy → stabilise. Tuned for CBD’s compliance cadence: every quarter is a state-law refresh and an MID health check. Optional ongoing retainer.

  1. 01

    Audit

    Payment processor relationship review (who underwrites you, MID stability, reserve rate, chargeback ratio), age-gate vendor (or absence), state shipping policy (which states you currently block, which you should), COA workflow (who issues, where stored, recall plan), FDA disclaimer + DSHEA copy review (banned-phrase scan). 1 week.

    Compliance baseline + gaps
  2. 02

    Plan

    High-risk processor selection (NMI vs Authorize.net + Easy Pay Direct vs Square 1 vs Aeropay), ID-verify vendor pick (Veratad / Yoti / AgeChecker.net by cost-vs-defensibility trade-off), state shipping matrix per cannabinoid (CBD vs delta-8 vs delta-9 vs CBN vs CBG), COA per batch flow + recall workflow, subscription gateway routing. Written spec + Gantt.

    Locked scope
  3. 03

    Build

    Catalog + high-risk gateway + age-gate + state matrix + COA download module + Klaviyo (CBD-allowed ESP) + Hyvä storefront. Built in 6–10 weeks. Test fixtures for under-age block, state-blocked cart, lot-recall workflow. Smoke test the payment flow with a $1 live transaction on each MID before go-live.

    Build + UAT
  4. 04

    Deploy

    Blue-green deploy with payment smoke test (real $1 charge through each gateway), mock under-age block test (verify Veratad/Yoti rejects DOB < 21), state geo-block test (mock Idaho ZIP, verify delta-8 blocked + CBD allowed). DNS + cache plan. War-room for first 48 hours post-launch in case an MID flags transactions.

    Live + verified
  5. 05

    Stabilise

    Monthly COA reconciliation (every batch shipped has a published COA), quarterly state-law update (state AGs change rules constantly, especially on delta-8), FDA warning-letter monitoring (we watch the FDA enforcement page for letters to similar brands), MID health check (reserve rate, chargeback ratio, freeze risk). Optional ongoing retainer ($1.5k–$5k/mo).

    Optimised + compliant
Three engagement shapes

Pick the shape that fits — audit, build, or custom multi-brand

Three typical engagements for CBD/hemp brands. All fixed-fee where possible, all priced at $25/hr so the math is visible. No retainer lock-ins. No surprise scope.

  • Audit — $499

    Compliance + payment audit

    • Fixed-fee · 5 business days · ~20h @ $25/hr
    • Payment processor stability + MID risk review
    • Age-gate vendor evaluation + checkout-flow audit
    • State shipping matrix gap analysis (per cannabinoid)
    • COA workflow review + recall-readiness check
    • FDA disclaimer + DSHEA copy scan (banned phrases)
    • Written report + remediation roadmap
  • Custom enterprise

    Multi-brand / dispensary B2B

    • Quote in 24h · multi-week engagement
    • Multi-brand house (e.g. CBD + delta-8 + smokables)
    • B2B wholesale to dispensaries, smoke shops, vape
    • In-state delivery integration (where legal)
    • Multi-MID redundancy (3+ processors load-balanced)
    • Net-30 with tax-exempt resale-cert workflow
    • Multi-state license overlap audit baked in
Free CBD consultation

Book a free 30-min CBD-Magento consultation

Tell me your current processor, age-gate setup, and which cannabinoids you sell. I’ll send a written compliance + payment-stack recommendation within 24 hours, and include a 30-min calendar link if a call would help. No upsell.

We will get back to you shortly.

Past clients say

Reviews from brands I’ve shipped Magento for

Public reviews on Upwork — clickable on each card. Same person, same rate card, same compliance-first playbook for every CBD brand.

Kishan- I appreciate your expertise.

Kishan- I appreciate your expertise. Your work was timely and complete. When I have this task again, I will definitely hire you. Thank you so

JB

Juanita Berguson

Kingdom

Kishan is a very competent and reliable Magento developer.

Kishan is a very competent and reliable Magento developer. He was able to handle every task I gave him quickly and efficiently and his communication was top-notch. I look forward to continuing to work with

PJ

Philip Johnston

Newthink

Kishan provided a quick and straightforward solution to a problem I thought was complicated.

Kishan provided a quick and straightforward solution to a problem I thought was complicated. I am very impressed and I

NN

Neudell Nicholson

Vertex Select Ltd

great professional with enthusiasm, knowledge, skill and exceptional patience in solving problems.

great professional with enthusiasm, knowledge, skill and exceptional patience in solving

D

Dennis

Bay Tech

Consistently accessible with strong Magento expertise.

Consistently accessible with strong Magento expertise. I intend to collaborate with him on another

GY

Gina Yan

Kishan did great job - everything as expected!

Kishan did great job - everything as expected! I would definitely recommend

JM

Jan Mucic

CEO

Shipping CBD + hemp Magento stores across

  • United States
  • United Kingdom
  • Canada
  • Australia
  • Germany
  • France
  • Netherlands
  • India
FAQ

Twelve questions CBD + hemp founders actually ask

Why won’t Stripe / PayPal / Square process my CBD orders — and what do you use instead?

The honest answer: Stripe, PayPal, and Square all classify CBD as a restricted business. Stripe’s prohibited-products list explicitly names “CBD, hemp-derived cannabinoid products, and any product sold as legal cannabis.” PayPal is the same. Square has a narrow CBD program that requires preapproval and rejects ~70% of applicants. Even if you sneak in, their automated classifier flags “hemp” on your product page or invoice and freezes the account 30–90 days later — with 90 days of held funds.

The actual high-risk stack we wire:

  • NMI gateway with a high-risk MID via Easy Pay Direct, Square 1 Payments, or Tasker Payment Gateways. Underwriting is slower (2–6 weeks) and rates are higher (3.5–5.5% vs Stripe’s 2.9%) but the accounts don’t freeze.
  • Authorize.net with high-risk underwriting through the same MID providers.
  • Aeropay — ACH cash-network purpose-built for cannabis-adjacent. Customer links bank, pays via bank-debit, lower fees (~1.5%).
  • Plaid ACH for instant bank-debit fallback.
  • BitPay / NOWPayments for crypto resilience — ~3% of CBD revenue routes through crypto when an MID gets shut down mid-quarter.

Magento handles all of this through the standard payment-method abstraction. No core changes — just configure the right gateway modules.

State-by-state shipping — which states ban delta-8 specifically, and how does the auto-block work?

The legal landscape splits into three buckets:

  • Delta-8 banned outright (15 states as of 2026): Alaska, Colorado, Connecticut, Delaware, Idaho, Iowa, Mississippi, Montana, New York, Oregon, Rhode Island, South Dakota, Utah, Vermont, Washington. Some of these still allow CBD; some restrict CBD too.
  • CBD restricted: Idaho requires 0.0% THC (most CBD has trace amounts and is therefore illegal there). South Dakota has shifting rules.
  • CBD + delta-8 both legal: most other states, but with packaging / labeling / age-gate / per-package THC limits that vary.

How we build it: a state × cannabinoid matrix stored as Magento source restrictions. The customer enters their ZIP at the cart step → matrix looks up “Idaho + delta-8 = blocked” → blocked items get removed from cart with a state-specific message (“Delta-8 cannot ship to Idaho. Here’s our CBD line that’s also Idaho-compliant”). Borderline cases flag for manual review rather than hard-reject. The matrix is reviewed quarterly because state legislatures change rules constantly — Texas, Tennessee, and California have all flipped their delta-8 stance multiple times since 2022.

Hyvä storefront makes this clean because the cart re-renders on state-change without a full page reload — customers see the filtered cart immediately.

Age-gate + ID verification — Veratad vs Yoti vs AgeChecker.net, and when do you use 21+ vs 18+?

Three vendors, three trade-offs:

  • AgeChecker.net — CBD-industry default. Database-driven (matches name + DOB against credit-bureau and public records). ~$0.40 per check. Fastest checkout integration (one Magento extension). Lowest-friction but also lowest defensibility if an AG challenges you. Good fit for <$2M GMV.
  • Veratad — broader database coverage (credit-bureau + DMV + utility records). ~$0.85 per check. API-based integration. Better defensibility. Good fit for $2M–$20M GMV.
  • Yoti — photo-ID + selfie + liveness check. ~$1.50 per check. Most defensible (you have a photo of the ID and the buyer’s face). Higher friction at checkout (~30s extra) but the right call for delta-8 / delta-9 / high-THC products where an AG letter is a real risk. Magento integration via API.

Threshold by state: 21+ for any THC-containing product in CO, CA, WA, OR (matches adult-use cannabis rules in those states). 21+ for delta-8 / delta-9 / hemp-derived THC in most states regardless of CBD age limits. 18+ for CBD-only in most states. We wire the threshold into the matrix so it flips based on cart contents + ship-to state.

Every verification attempt logs to a compliance audit table (timestamp, customer ID, vendor used, result, IP, products in cart) — defensible if challenged.

COA per batch — how does the QR-on-bottle → Magento URL flow work?

FDA and state AGs both require lot-level traceability for hemp products. The pattern we ship:

  • COA entity in Magento — one entry per lab batch. Stores lab name (typically InfiniteCAL, SC Labs, ProVerde, or ACS Laboratory), harvest date, batch ID, cannabinoid profile (CBD/THC/CBG/CBN ppm), pesticide screen, heavy-metal screen, microbial screen, residual-solvent screen, and the COA PDF itself.
  • Public Magento URL per COA — pattern /coa/lot-2026-04-12-a. The page renders the COA summary + downloadable PDF. SEO-indexed (transparency is a trust signal).
  • QR code printed on the bottle — encodes the COA URL. Customer scans → lands on the COA page → instant trust.
  • Product → batch mapping — each product variant ships from a specific lot; we store the lot ID as a custom attribute on the order line. Lets us pull “every order that received lot 2026-04-12-a” in <15 minutes if a recall is needed.

The recall workflow: a state AG sends a letter about a lot → we query orders by lot ID → Klaviyo flow sends recall emails to affected customers → optional store-credit auto-issue. We’ve never had to fire this in anger but it’s the kind of thing where if you don’t have it, you find out you needed it the day you need it.

USDA hemp registration — what must merchants maintain, and what sample test cadence?

Under the 2018 Farm Bill, hemp (cannabis sativa L. with ≤0.3% delta-9 THC by dry weight) is federally legal. Each hemp grower needs a USDA-approved license (either directly from USDA or via an approved state hemp program — most states run their own). As a merchant selling finished products, you don’t need a grower license, but you need to maintain documentation that:

  • Your hemp source has a current USDA-approved license (request a copy annually).
  • Each lot tests ≤0.3% delta-9 THC by dry weight at an ISO-17025-accredited lab (this is the COA workflow above).
  • You retain COAs for at least 3 years (some states want 5).

Sample test cadence: every batch. A “batch” is a single homogeneous production run — usually 1,000–10,000 units depending on product. Smaller brands often test once per quarter and pretend it covers everything; that’s the bet that loses if an AG audits. Real brands like Charlotte’s Web and Lazarus Naturals test every batch and publish the COA publicly.

Magento side: we capture USDA license number + state hemp program in store config, surface it in the footer, the privacy/terms page, and on every COA page. If a state inspector visits the site, the documentation trail is one click away.

FDA disclaimer + DSHEA — what copy is required and what gets you a warning letter?

The FDA hasn’t fully regulated CBD as a food / supplement / drug, which leaves merchants in a gray zone. Two rules to follow:

1. The FDA disclaimer. Required on every PDP and any health-related CMS page: “These statements have not been evaluated by the FDA. This product is not intended to diagnose, treat, cure, or prevent any disease.” We auto-inject this via a global block so a content editor can’t accidentally omit it.

2. DSHEA-compliant copy. The Dietary Supplement Health and Education Act lets you make structure-function claims (“supports calm”, “promotes restful sleep”, “may help with everyday stress”) but not disease claims (“treats anxiety”, “cures insomnia”, “heals chronic pain”). The FDA actively sends warning letters for disease claims — ~80–150 letters per year to CBD brands, publicly listed on the FDA enforcement page.

The banned-phrase list we scan for at content-publish time: cures, treats, heals, prevents, FDA-approved, anti-inflammatory, anti-anxiety, anti-cancer, opioid-replacement, addiction-treatment. Admin gets a soft block (“this looks like a disease claim — review before publishing”) rather than a hard block, because edge cases exist.

Real brands have lost millions in revenue and traffic to FDA letters — CBDistillery, Charlotte’s Web, and Curaleaf have all received letters for specific product pages. The guardrails are cheap insurance.

Subscription model without Stripe / PayPal — how do you run recurring billing?

Subscriptions still work for CBD — they just don’t run on Stripe Billing or PayPal Subscriptions. The recurring engine moves into the high-risk gateway’s tokenized vault:

  • NMI Customer Vault — tokenizes the card on first purchase, recurring charge fires on schedule. Same fee structure as one-time charges.
  • Authorize.net CIM (Customer Information Manager) — same pattern, different gateway.
  • Aeropay tokenized ACH — customer links bank once, recurring bank-debit charges fire on schedule. Lower fees (~1.5%) but slightly higher failure rate than card-based.

Magento side, two extension options that handle the recurring-charge orchestration:

  • Aheadworks Subscriptions & Recurring Payments — the default for Magento + non-Stripe gateways. Supports prepaid plans, discount-on-renewal, skip-cycle, swap-product. ~$799 one-time + support.
  • Mirasvit Subscriptions — cheaper (~$499), simpler UX, fewer features. Fine for under-2,000-subscriber brands.

The pattern Charlotte’s Web and Medterra use: 15% subscribe-and-save discount, monthly cadence, swap-product / skip-month / cancel buttons in the customer portal. Subscription LTV runs 3.2–4.8x the one-time-purchase LTV in CBD because daily-use customers don’t want to re-buy every 30 days.

B2B wholesale to dispensaries, smoke shops, vape stores — Net-30 and tax-exempt workflow?

This is one of the most under-built parts of most CBD stacks. Three pieces:

  • Customer-segment-based catalog — wholesale buyers see trade pricing (typically 50–65% of MSRP), MOQs (case-pack quantities), and a hidden trade catalog with line-sheet PDF export. DTC visitors never see any of this. Built on Magento customer groups + hidden categories.
  • Net-30 invoicing — wholesale buyers don’t pay at checkout; they get a PO confirmation + invoice with 30-day terms. Routed through Apruve, Resolve, or TreviPay — they underwrite the buyer’s credit, pay you on day 1, and collect from the buyer on day 30. CBD-friendly underwriting is harder than mainstream B2B but all three of these have working CBD programs.
  • Tax-exempt resale certificate workflow — wholesale buyers upload a resale cert (per-state) at registration; we verify + store it + auto-suppress sales tax on their orders. Avalara or TaxJar for tax engine, both handle CBD multi-state nexus.

Real CBD wholesale buyers: dispensaries (medical or recreational, varies by state), smoke shops, vape stores, head shops, natural-health retailers, pet stores (CBD-for-pets is a real category), gym chains (CBD topicals for athletes). Each segment has slightly different MOQ + pricing tier + COA requirements (dispensaries want lot-level COAs with every shipment; smoke shops usually skip them).

Multi-state cannabis-license overlap — when should a CBD store NOT carry hemp-derived delta-9?

Here’s where it gets dangerous. Hemp-derived delta-9 (≤0.3% by dry weight, but a 100g brownie at 0.3% is 300mg of THC — very much intoxicating) is technically federally legal under the 2018 Farm Bill. Several states have decided to treat it as adult-use cannabis anyway: California, Colorado, Connecticut, Minnesota, New York, Oregon, Vermont, Virginia, and Washington all have laws on the books that either ban hemp-derived delta-9 entirely or require it to be sold through licensed dispensaries.

If you hold a cannabis-dispensary license in a state, the state cannabis regulator typically requires your online store to also be license-compliant — which means it can’t carry hemp-derived delta-9 sold under the Farm Bill exemption. Mixing them on one storefront triggers an audit fast.

The architectural answer: separate stores under one Magento instance. Multi-store Magento lets you run brand.com (CBD-only, ships everywhere legal) and brand-dispensary.com (licensed cannabis, in-state delivery only) from one admin, one catalog source-of-truth, completely separate checkout + customer base + payment gateway. License-compliant for the dispensary side, Farm Bill-compliant for the CBD side, never mixed.

If you don’t hold a dispensary license: the safer call is to not carry hemp-derived delta-9 at all until federal regs settle. Stick to CBD + delta-8 (where legal) + CBN + CBG. The marginal revenue from delta-9 isn’t worth losing the rest of the business.

Marketplace bans — Amazon blocks CBD, so what do you do for channel reach?

Amazon, Walmart, Target, and eBay all block CBD outright. Etsy allows topicals only, no ingestibles. The marketplace landscape for CBD is brutal — you’re mostly forced into DTC + a narrow set of CBD-friendly channels:

  • Shop App by Shopify — technically allows CBD merchants but Shopify itself often deplatforms CBD brands for payment violations, so the channel inherits that risk.
  • TikTok Shop — CBD topicals are case-by-case approved (mostly approved), ingestibles are mostly blocked. Apply, pray, accept the rejection ratio.
  • Faire — wholesale marketplace for indie retailers. CBD is allowed in their hemp category. Strong channel for selling into smoke shops + natural-health retailers.
  • Mantis Ad Network — cannabis-focused ad network. Not a marketplace but the main way to advertise CBD where Google / Meta restrictions apply.
  • Leafly — cannabis directory + marketplace. CBD listings allowed.
  • Direct-to-consumer email + SMS via Klaviyo — Klaviyo is the only mainstream ESP that reliably accepts CBD. We wire this as the default marketing engine. Some brands also use Postscript for SMS (CBD-friendly).

The pattern that works for CBD reach without marketplaces: Klaviyo email + SMS + organic SEO + affiliate (LTK doesn’t accept CBD but smaller networks do) + Faire for wholesale. Brands like Joy Organics built $50M+ DTC businesses this way without ever appearing on Amazon.

Cost, timeline, and your credentials for building a CBD store?

Realistic ranges for a CBD/hemp brand at $500k–$5M GMV migrating to or rebuilding on Magento:

  • Compliance + payment audit (fixed-fee): $499 — ~20h at $25/hr. 5 business days. Covers processor stability, age-gate vendor pick, state matrix gaps, COA workflow, FDA/DSHEA copy scan. Written report + remediation roadmap.
  • Magento + Hyvä build (fixed-fee): $4,999 — ~200h at $25/hr. 6 weeks. Catalog + Hyvä storefront + high-risk gateway (NMI / Aeropay / ACH) + Veratad ID verify + state matrix + COA download module + Klaviyo wiring.
  • Custom enterprise (quoted): multi-brand house, B2B wholesale to dispensaries, in-state delivery integration, multi-MID redundancy, multi-state license overlap. Typically $25k–$120k depending on scope.
  • Hosting: $400–$1,500/mo on Cloudways or dedicated. CBD doesn’t have the drop-traffic spikes fashion has, so over-provisioning isn’t as critical.
  • Ongoing retainer: $1.5k–$5k/mo for monthly COA reconciliation, quarterly state-law update, MID health monitoring, FDA-letter monitoring.

Credentials: Adobe-Certified Magento + Hyvä developer. CBD high-risk builds shipped (the kind where Stripe deplatforms the client mid-migration and we re-wire to NMI + Easy Pay Direct in a week). I’m honest about the payment pain — no other vertical has it this bad, and pretending Stripe will work is how brands get 90-day fund holds.

Edge cases — single-SKU starter brand vs multi-state dispensary white-label, what changes?

The build varies dramatically by scale. Two opposite ends:

Single-SKU starter brand (e.g. just-launched 30mg CBD gummy, $50k–$300k first-year target). The right call is the $499 audit + $4,999 build. Hyvä-themed Magento, NMI + AgeChecker.net + state matrix for the 15 banned states + one COA workflow + Klaviyo + Aheadworks Subscriptions. Don’t over-build — the brand needs to validate product-market fit first, and a $50k custom build is wrong for the stage. Magento is still better than Shopify here because Shopify will deplatform you the moment they notice; the migration cost later is what makes the upfront Magento spend make sense.

Multi-state dispensary white-label brand (e.g. 200-SKU catalog across CBD + delta-8 + delta-9, $5M–$50M GMV, wholesale to 800 dispensaries + DTC + in-state delivery in 4 states). Custom enterprise quote. The complexity isn’t the catalog — it’s the multi-store Magento setup (one store per state with cannabis-license overlap, one store for federal CBD), the multi-MID redundancy (when one high-risk MID gets frozen, traffic routes to the second one automatically), the B2B layer (wholesale to dispensaries with per-state pricing + per-state COA delivery requirements), and the in-state delivery integration (Dutchie, Jane, or custom for the dispensary side). Builds in this tier run 4–8 months and $60k–$200k.

If you’re between these two — most CBD brands at $500k–$5M GMV — the $4,999 build gets you to defensible compliance + reliable payment + correct state shipping, and you upgrade pieces as you scale.