PhytoSmart
Design Review Portal
PROJECT SCOPE

Planning Document

Project Scope

Project brief, feature matrix, and gap analysis for the PhytoSmart website build

Client: PhytoSmart Platform: WordPress + WooCommerce Last updated: July 27, 2026 8 workstreams · 50 features · 22 gaps

1. Context

PhytoSmart sells algae-based, whole-cell Omega-3 supplements for pets (dogs, cats, and now equine). Three retail SKUs today: Omega-3 DHA + EPA, Omega-3 DHA, and Omega-3 DHA + Broccoli Sprout. The site runs WooCommerce with an auto-ship subscription option (5% off, free shipping over $50 on subscriptions).

Active business drivers this build must serve:

  1. Pre-order capability for the new Equine Omega-3 product with an availability date 3 weeks out. This is the only item with a hard clock.
  2. Google Ads ramping toward 20-30 purchases per rolling 30 days. New pages must generate or feed purchase conversions.
  3. Email nurture flows for non-checkout visitors. Every new page should capture and tag leads where it can do so without friction.
  4. Testimonial giveaway (free 70g product with next order for a qualifying video) needs a submission and management mechanism.
  5. Retailer and distributor email campaigns need dedicated landing destinations.
  6. Naming migration: "Krumble" retiring in favor of proper Omega-3 naming; "Cell-abrate" dropping except in descriptions.

2. Objectives and Success Metrics

ObjectiveMetricTarget Window
Launch equine pre-orderPre-order revenue + reserve-list signupsLive within 3 weeks
Grow purchase conversionsContribution to 20-30 purchases / 30 daysOngoing
Grow subscription mix% of orders on auto-ship90 days
Grow nurture listTagged email captures from tools30/60/90 days
Activate UGC pipelineVideo testimonial submissions/month60 days
Open retail channelWholesale inquiries/month90 days

3. Design System Extraction

Brand color and type sheets are received and authoritative. Remaining work before build:

4. Workstreams

WS-1 · Priority Build

Equine Pre-Order Page

Real WooCommerce pre-order product with countdown to availability date, notify-me capture tagged equine-waitlist, and barn/distributor interest block linking to WS-6. Pre-order purchases fire standard purchase conversion events for Google Ads goal.

Blockers: Equine product photography, final label art (Tess), availability date + charge model from client, pricing and container sizes, WP/WooCommerce credentials.

Priority 1Mockup ready

WS-2 · Interactive Tool

Dosage Calculator

Shake-band dosing by weight and SKU, subscription cadence, optional dose card email gate tagged calculator-lead. Figma design received July 23 - shake ranges per weight band, universal table for cats, dogs, small animals, birds, reptiles.

Blockers: Shakes-per-container calibration (grams/shake) from client or Maine facility; Figma design approval confirmation from client.

Priority 1Mockup ready

WS-3 · Interactive Tool

Product Finder Quiz

4-5 question flow routing to the right SKU (pet type, age/life stage, primary goal, current supplement use). Result screen with email capture tagged quiz-{sku}. Logic in editable mapping table.

Blockers: Final product naming (post-Krumble), approved claims per SKU, product photography.

Priority 1Mockup ready

WS-4 · Program Page

Affiliates & Ambassadors

Two-tier program: open affiliates (creators) and ambassador tier (vets, trainers, barns). Testimonial giveaway video submission module with admin moderation queue. FTC disclosure language included.

Blockers: Commission rates and terms, giveaway terms confirmation, application review owner, plugin selection (AffiliateWP vs SliceWP).

Priority 2Mockup ready

WS-5 · Product Page

Reviews Module

Product reviews with photo/video, verified-buyer badge, moderation queue, schema.org markup. Migrate 4 existing homepage testimonials as seed content.

Blockers: Reviews plugin selection (Judge.me vs Reviews for WooCommerce), moderation owner assignment.

Priority 2Mockup ready

WS-6 · B2B + Retail

Wholesale, Retail Page & Store Locator

Wholesale landing with line sheet request form, retailer positioning, equine distributor callout. Store locator replacing legacy Shopify stub - seeded with LB Healthy Pet Markets NJ (4 locations verified July 2026).

Blockers: Wholesale pricing and MOQ, current retailer list, store locator plugin, legacy /pages/ audit.

Priority 2Mockup ready

WS-7 · Comparison Page

Algae vs Fish Oil

Paid-traffic landing page with side-by-side comparison table using only live-site approved claims. Single primary CTA (quiz vs shop A/B test). Minimal scripts for fast load.

Blockers: Claim sign-off from client, product photography.

Priority 2Mockup ready

WS-8 · Interactive Game

Bloom! Mini Game

Fully playable arcade game where the player is an algae cell growing a bloom. Every mechanic is a product claim in disguise. Score 400+ unlocks a discount code behind email capture tagged game-lead. Placement: 404 easter egg, Learn hub, social campaign landing page.

Blockers: Code economics (value, stacking rules), code single-use enforcement, client sign-off on BLOOM10 placeholder.

Priority 3Playable demo ready

5. Compliance Guardrails

6. Naming & URL Migration

Product URLs carry legacy names. When slugs are renamed, all of the following must happen atomically in a single coordinated release:

Do not rename slugs until redirects are staged. This is a break-the-ads risk if sequenced wrong.

7. Suggested Sequence

WeekFocus
1Design token extraction; WS-1 build with placeholder imagery; client approves mockups; confirm pre-order charge model and date
2WS-1 live pending client images; WS-2 data tables transcribed from labels; Figma calculator reconciled
3WS-2 and WS-3 build; WS-7 copy and claims sign-off
4-5WS-4 plugin setup and applications; WS-5 reviews plugin and testimonial migration
6+WS-6 wholesale page live ahead of retailer email campaign; locator when accounts exist; URL migration as coordinated release

8. Asset Checklist (from Client)

Feature Matrix 50 features across 9 workstreams
MOCKUP Client-reviewable mockup exists SPEC Specified, no mockup needed OPEN Decision pending P1 Ships first P2 Second wave P3 Third wave

WS-1 Equine Pre-Order

IDFeatureStatusPriorityDepends OnBlocker
F-101Equine pre-order product (WooCommerce)MOCKUPP1Plugin selection, charge modelGA-1, GA-5
F-102Availability countdown, single-variable dateMOCKUPP1F-101
F-103Notify-me capture, tag equine-waitlistMOCKUPP1Tracking planGA-9
F-104Pre-order terms blockOPENP1Client approvalGA-2
F-105Pre-order to in-stock page state conversionOPENP1One-page decisionGA-3
F-106Barn/distributor callout linking WS-6MOCKUPP2F-601

WS-2 Dosing Calculator

IDFeatureStatusPriorityDepends OnBlocker
F-201Dosing calculator UIMOCKUPP1Design tokens
F-202Shake-band dosing table (verify vs printed labels)MOCKUPP1Label verification
F-203Container duration and subscription cadence outputMOCKUPP1F-206 calibrationGA-4
F-206Shakes-per-container calibration (grams per shake)OPENP1Client or facility figureGA-4
F-204Dose card email gate, tag calculator-leadMOCKUPP2Tracking plan
F-205Figma design received - confirm client approvalOPENP1Client confirmation

WS-3 Product Finder Quiz

IDFeatureStatusPriorityDepends OnBlocker
F-301Product finder quiz, 4-5 questionsMOCKUPP1Final naming, approved claimsGA-11
F-302Editable routing mapping tableMOCKUPP1
F-303Result email capture, tag quiz-{sku}MOCKUPP2Tracking plan

WS-4 Affiliates & Ambassadors

IDFeatureStatusPriorityDepends OnBlocker
F-401Affiliate program (plugin)MOCKUPP2Plugin + termsGA-5, GA-6
F-402Ambassador tier with facility applicationMOCKUPP2Terms from client
F-403Testimonial video giveaway submission + queueMOCKUPP2Giveaway terms confirmed
F-404FTC disclosure languageMOCKUPP2

WS-5 Reviews Module

IDFeatureStatusPriorityDepends OnBlocker
F-501Product reviews with photo/videoMOCKUPP2Plugin selectionGA-5
F-502Verified-buyer badge (WooCommerce order match)SPECP2F-501
F-503Moderation queue, publish-on-approval onlySPECP2Moderation owner
F-504Review schema markupSPECP3F-501GA-13
F-505Migrate 4 homepage testimonials as seedSPECP3F-501

WS-6 Wholesale + Locator

IDFeatureStatusPriorityDepends OnBlocker
F-601Wholesale page + line sheet request formMOCKUPP2Pricing/MOQ from client
F-602Store locator replacing legacy stubMOCKUPP2Plugin, store list confirmedGA-5, GA-15
F-603Suggest-a-store customer lead captureMOCKUPP3Reward code decisionGA-6
F-604Legacy /pages/ audit and redirectsOPENP2Full crawlGA-12

WS-7 + WS-8 Comparison + Game

IDFeatureStatusPriorityDepends OnBlocker
F-701Comparison landing page (algae vs fish oil)MOCKUPP2Claims sign-offGA-11
F-702No-nav ad variant + CTA A/B testSPECP3F-701
F-801Bloom! game (playable)MOCKUPP3
F-802Score-gated code + email capture, tag game-leadMOCKUPP3Code economicsGA-6
F-803404 easter egg + Learn hub placementSPECP3Nav decisionGA-7

Cross-Cutting All Workstreams

IDFeatureStatusPriorityDepends OnBlocker
F-901Brand tokens applied (colors + DM Sans); theme conformance check remainsMOCKUPP1Site accessGA-19
F-902Krumble/Cell-abrate URL migration releaseSPECP2REDIRECT-MAP, ads coordinationGA-21
F-903GTM event wiring per TRACKING-PLANSPECP1GA-18
F-904Claims registry populated from brand inputsOPENP1Brand info deliveryGA-11
F-905Learn hub as home for toolsSPECP2Nav decisionGA-7
F-906Equine photography shot list to clientSPECP1GA-10
F-907Accessibility audit before launchSPECP2GA-16
F-908SEO metadata + sitemap for all new pagesSPECP2GA-13, GA-14
Gap Analysis 22 gaps identified · 6 blocking builds · 12 overlooked · 4 risks

Group A: Open decisions that block builds

Resolve before dependent feature ships
GAP-001
Pre-order charge model
Charge at ship vs charge now changes plugin choice, Stripe flow, refund policy language, and the legal terms on the page. Client decision required. Blocks WS-1 final build (not the mockup review).
GAP-002
Pre-order terms
No cancellation/refund language exists for pre-orders. The Return Policy page was written for standard orders. Needs a short pre-order terms block, client approved. Blocks WS-1 launch.
GAP-003
One equine page or two
Tess is revising an equine page markup with client comments while WS-1 specs a pre-order page. Decide whether these are the same page (pre-order module embedded in the equine product page) or a campaign page that later 301s into the permanent product page. Recommendation: one page that converts from pre-order state to in-stock state on the availability date, avoiding a redirect and preserving ad history.
GAP-004
Dosing calibration
The Figma design arrived and resolved the dosing model: shake ranges per weight band, one universal table for cats, dogs, small animals, birds, and reptiles. What remains blocked is the container-duration and subscription-cadence math, which needs a shakes-per-container calibration (grams per shake) from the client or the Maine facility. The mockup uses a flagged placeholder. Also verify the Figma table matches the printed labels exactly, and confirm the design's approval provenance with the client. Resolved (July 23): brand sheets confirm teal is the sitewide primary; all mockups retokenized. Remaining color question: whether the equine label blue equals brand dark #003E44 (check Tess's label file).
GAP-005
Plugin selections
Pre-orders, affiliates (AffiliateWP vs SliceWP), reviews (Judge.me vs Reviews for WooCommerce), store locator. Each needs a license decision and admin owner. Blocks WS-1, WS-4, WS-5, WS-6 builds.
GAP-006
Discount code economics
BLOOM10 and the store-suggestion thank-you code are placeholders. Value, single-use enforcement, stacking rules with the 5% subscription discount, and abuse controls (rate limiting code issuance per email) need definition. Blocks WS-8 and locator suggest-a-store reward.

Group B: Overlooked in the original 8 workstreams

Needs to be owned before production
GAP-007
Navigation placement
No decision on where the calculator, quiz, locator, and affiliate pages live in the site nav. Recommendation: "Learn" becomes a hub housing calculator, quiz, comparison page, and game; locator joins the footer and the Shop dropdown; affiliates in footer.
GAP-008
Mobile navigation in mockups
The mockup nav simply hides below 900px; no hamburger menu was mocked. Production uses the live theme's mobile nav, but flag it so nobody copies the mockup header as-is.
GAP-009
Email flows behind the tags
The tracking plan defines capture tags (equine-waitlist, calculator-lead, quiz-{sku}, game-lead, wholesale-inquiry, store-suggestion) but the flows those tags trigger are unwritten. This is Brandon's email workstream; the tags are the contract between web and email. At minimum the equine-waitlist flow must exist before WS-1 launch or captured leads go cold.
GAP-010
Equine photography shot list
Client photography is the stated blocker on the equine page. Nobody has told the client exactly what shots are needed. A one-page shot list (hero transparent bottle, in-use at feed, scale reference, label close-up) removes the excuse loop. Cheap to produce, high unblock value.
GAP-011
Claims registry
The approvals crisis happened because approved language lived in scattered emails. This package repeatedly says "approved claims only" but no single registry exists. brand-inputs/README defines the registry schema; the client-provided brand info should populate it. Once it exists, every page, email, and game fact toast cites a claim ID. This is the single highest-leverage process fix in the package.
GAP-012
Legacy /pages/ audit is incomplete
Two legacy Shopify-era pages were found (Founders Story, Further Reading) plus the Storeify locator remnant. A full crawl of /pages/* and any other Shopify-era paths has not been done. REDIRECT-MAP.csv marks these as audit-pending.
GAP-013
SEO metadata for new pages
Titles, meta descriptions, and schema (FAQ schema on calculator/quiz, Product + Review schema on PDPs, LocalBusiness schema unnecessary but store data feeds locator) are unspecified. Comparison page especially needs deliberate metadata since it targets non-brand search.
GAP-014
Sitemap and internal linking
New pages need XML sitemap inclusion and deliberate internal links (blog posts about omega-3 should link to quiz and calculator; product pages link to calculator).
GAP-015
Locator data ownership
Who adds stores as retail accounts open? Assign to whoever manages wholesale relationships; the locator is only as credible as its freshness. Verify the LB Healthy Pet Markets relationship is current before featuring it.
GAP-016
Accessibility pass
Mockups carry basics (focus states, labels, aria, reduced-motion). Production needs a real audit: canvas game needs a keyboard-alternative note and the score readable by screen readers; color contrast of the placeholder green on white must be re-checked against final extracted tokens.
GAP-017
Privacy policy touch
New forms introduce marketing tagging and a game issuing codes by email. Confirm the privacy policy's marketing section covers this; likely a one-line addition.
GAP-018
Analytics wiring beyond capture
GTM events are mapped in TRACKING-PLAN.md, but purchase conversion verification after any URL migration, and a pre-order conversion label distinct from standard purchases in Google Ads, need explicit QA steps.

Group C: Risks to keep visible

Monitor, do not ignore
GAP-019
Credential transition
Site, WooCommerce, and Stripe access are still consolidating from the prior operator. Every build in this package assumes admin access. Backup access path exists but should be verified before Week 1.
GAP-020
Client approval bandwidth
Eight workstreams generate a lot of approval requests for a client who rejects rather than edits. Mitigation: batch approvals into one weekly review using the demo suite portal, and route everything through the claims registry so approvals are of claims once, not copy every time.
GAP-021
Naming migration timing
The Krumble/Cell-abrate retirement touches product URLs, the wholesale LP, legacy pages, Amazon (currently paused pending redesigns), and ad final URLs. It must ship as one coordinated release. The package treats it as cross-cutting; it deserves its own release checklist when scheduled.
GAP-022
Scope vs the 3-week clock
Only WS-1 has a deadline. Everything else is elective sequencing. If resourcing tightens, the cut line is: WS-1, then WS-2/WS-3 (conversion tools), then WS-6 (channel), then WS-4/WS-5 (community), then WS-7/WS-8 (campaign).

What is deliberately out of scope

Out of scope