Veld Botanicals · Combined Reference v1.0
Veld Botanicals · Brand Personas · v1.0

Four audiences.
One clear voice.

Every Veld touchpoint — label, listing, post, trade email — is written for one of these four people. Know which one you're addressing before you write the first word.

The Four Audiences
Brand Personas
01
Retail · D2C · Takealot
The Everyday Aromatherapist
"I just want a good lavender I can actually trust."
Age25 – 45
ChannelsInstagram · Takealot · D2C
Basket2–4 oils + carrier

Who they are

Home user with a diffuser. Buys for relaxation and light topical use. Has been burned by fragrance oils sold as "essential oil." Values purity but lacks technical vocabulary. Discovers on Instagram, buys on Takealot reviews.

What they need

  • Confidence the bottle says what it is
  • Plain-language instructions
  • Clear price-to-quality signal
  • Packaging they're proud to display
  • A natural starter-kit pathway

Their oils

L · LavenderP · PeppermintE · EucalyptusSo · Sweet OrangeLe · Lemon

Their triggers

  • "100% pure" — backed by INCI name
  • Made in South Africa
  • White glass = credibility signal
  • Real dilution instructions on label
  • Price that feels fair, not budget
Write like this

"Lavender · L · 12. Steam-distilled, single-origin. 30 ml — nothing added, nothing removed. 3–5 drops in your diffuser."

Not like this

"Unlock the calming magic of our lovingly curated lavender blend. Let the stress melt away."

02
DIY Makers · Side-Hustle Brands
The Maker
"I'm scaling my soap brand and need consistent, affordable supply."
Age24 – 40
ChannelsTikTok · Facebook Groups · Direct
Basket100 ml+ · repeat orders

Who they are

Hobbyist turned side-hustle — soap, candle, balm, skincare. Buying 50–250 ml at a time. Cares about price-per-ml, batch consistency, and not second-guessing their supplier. Has an Instagram shop or sells at markets.

What they need

  • Honest volume pricing — no markups
  • Consistent batch quality to formulate around
  • Correct INCI names for their own labels
  • Wide range from a single supplier
  • Frictionless reorder process

Their oils

L · LavenderLg · LemongrassCw · CedarwoodCl · Cinnamon LeafR · Rosemary

Their triggers

  • Clear price breaks at 100 / 250 ml
  • Correct INCI saves label compliance work
  • Batch code = traceability for their buyers
  • COA/SDS = they can answer questions
  • Maker-fluent language
Write like this

"100 ml for your formulations. INCI: Lavandula angustifolia (Lavender) Flower Oil. Batch-coded — COA/SDS on request. Same farm, every order."

Not like this

"Perfect for your crafting journey! Our artisanal lavender adds a luxe touch to any handmade creation."

03
Formulators · Indie Cosmetic Brands
The Formulator
"I need traceability, a COA/SDS, and a supplier who won't change spec on me."
Age28 – 50
ChannelsEmail · Direct · LinkedIn
Basket500 ml – 25 L · contract

Who they are

Indie cosmetic brand or microformulator. Uses oils as defined raw material inputs. Has product safety reports and INCI-compliant labels. Needs batch codes matched to retrievable COAs. Treats Veld as a supply partner, not a shop.

What they need

  • COA/SDS per batch — no friction
  • Exact, reproducible INCI naming
  • Supply continuity — same species, same farm
  • Scale from 250 ml to bulk drums
  • Direct trade account relationship

Their oils

F · FrankincenseL · LavenderYy · Ylang YlangR · RosemaryTt · Tea Tree

Their triggers

  • Batch code + COA/SDS on every invoice
  • Latin binomial on all documentation
  • "Same farm, every batch" — explicit
  • Bulk pricing tiers clearly published
  • Direct contact — not just a form
Write like this

"INCI: Boswellia serrata (Frankincense) Oil. Steam-distilled, single-origin. Batch code on every unit. COA/SDS on request — hello@veldbotanicals.com."

Not like this

"Our frankincense is sourced with love from ancient resin traditions. Feel the transformative difference."

04
Practitioners · Spas · Therapists
The Practitioner
"Reliable bulk supply at trade pricing. Same quality, every month."
Age30 – 55
ChannelsEmail · Direct · Trade account
Basket500 ml – 5 L · monthly

Who they are

Aromatherapist, massage therapist, spa, or small clinic. Buys the same 8–12 oils on rotation. Needs consistent quality for client safety and professional credibility. Loyalty is high — deliver reliably and they stay.

What they need

  • Trade pricing with clear volume tiers
  • Consistent supply — never out of stock
  • Predictable quality, every order
  • Easy reorder — minimal friction
  • Professional documentation for clients

Their oils

L · LavenderE · EucalyptusR · RosemaryP · PeppermintF · FrankincenseYy · Ylang Ylang

Their triggers

  • Trade account — relationship, not transaction
  • Consistent spec across every order
  • Proactive comms if anything changes
  • 500 ml minimum at practitioner pricing
  • Predictable lead time, every time
Write like this

"Trade accounts: same supplier, same method, batch to batch. 500 ml from R___. Email trade@veldbotanicals.com — we'll confirm pricing and lead times directly."

Not like this

"Treat your clients to the ultimate wellness experience with our premium spa-quality oils!"

Veld Botanicals · Voice & Tone

A lab tech at
a market stall.

Informed, calm, honest. Clinical without being cold. If a sentence wouldn't sit comfortably on a Certificate of Analysis, it's probably not Veld.

Four Principles
The Voice

01 · Precise

Use the actual name, actual quantity, actual method. Specificity is the brand's proof of purity. Vague language erodes trust immediately.
Do"Steam-distilled lavender, Western Cape. 30 ml."
Don't"Pure relaxation in a bottle."

02 · Plain

Short sentences. Active verbs. No jargon unless defined. Write so both a first-timer and a working chemist can follow.
Do"Batch-coded. COA/SDS available on request."
Don't"Traceable via our proprietary chain-of-custody verification framework."

03 · Honest

Conventional, not certified organic. We say so. If a batch varies, we say so. If we don't know, we say so. Trust is the product.
Do"Conventional production. Not certified organic."
Don'tImply organic credentials you don't hold.

04 · Useful

Every paragraph tells the reader what something is, how to use it, or how to buy it. Decorative copy is not Veld. If it doesn't inform or direct — cut it.
Do"Dilute 1–5 drops in 10 ml carrier oil."
Don't"Imagine a world where wellness is within reach…"
Vocabulary
Words we own, use sparingly, and avoid

We say freely

single oilpureunrefinedsteam-distilledcold-pressedbatchCOA/SDSINCIelementraw materialsingle-originconventionaltraceablebatch-codedfarm-direct

Use sparingly

wellnessritualbotanicalsaromatherapytherapeuticnature

Never use

magicluxecuratedartisanalsoulfuldetoxhealcuremiraclemedicinecleansepremium luxuryImagine…
Per-Platform
Same voice. Different rhythm.
PlatformTone & LengthLead withAvoid
InstagramVisual-first. 15–40 words. Confident, dry.Element symbol or bottle. One fact.Exclamation marks. Emoji overload. "Imagine…"
Facebook30–80 words. Practical. Older audience.Use-case or batch update. Direct value.Hashtag stacking. Promotional urgency.
TikTokEducational. Dry. 30–45 sec. Hook in 1.5 sec.Element tile on colour. A counter-intuitive fact.Trending audio that clashes with clinical tone.
Takealot5 factual bullets. INCI first.INCI name → volume → method → origin → COA/SDS.Adjective-heavy claims. Wellness promises.
AmazonLead-capped bullets. Title ≤200 chars."PURE & SINGLE-ORIGIN:" — factual, scannable."Treats", "cures", "heals". Never therapeutic claims.
Trade emailDirect. No preamble. First sentence = the point.The offer or update. Price and lead time.Inspirational quotes. Boilerplate footers.
Veld Botanicals · Typography System

Three families.
Specific roles.

The typography system is fixed. Avenir Next handles the periodic-table tile. Raleway handles brand voice and Latin binomials. Helvetica Neue LT Std (Medium Condensed) handles all utility copy. No substitutions in print.

Approved Typeface 01

Avenir Next

The element tile is built entirely in Avenir Next. Its geometric clarity is what makes the periodic-table system read at every scale, from a 10 ml label to a 200 L drum.

UseSpecificationSample
Tile symbol (e.g. Cw)Avenir Next Demi Boldscaled to 82% horizontally · 44ptCw
Tile atomic numberAvenir Next Bold9pt3.23
Tile EO / CO flagAvenir Next Bold9ptEO
Tile element nameAvenir Next Bold8pt · all capsCEDARWOOD
Approved Typeface 02

Raleway

Raleway carries the brand voice — the wordmark, tagline, and Latin binomial. It is also the system typeface for any digital surface (web, social, email).

UseSpecificationSample
WordmarkRaleway SemiBold11pt · all capsVELD BOTANICALS
TaglineRaleway Regular6pt · spaced lowercaseelements of wellness
Latin binomialRaleway Italic7pt · lowercasecedrus atlantica
Approved Typeface 03

Helvetica Neue LT Std (Medium Condensed)

All utility copy on the label uses Helvetica Neue LT Std in its Medium Condensed cuts (57 and 67). The condensed proportions allow dense legal and ingredient information to fit at small sizes without sacrificing legibility.

UseSpecificationSample
ESSENTIAL OIL headerHelvetica Neue LT Std 67 Medium Condensed6.5pt · all capsESSENTIAL OIL
Volume (30ml/1 fl.oz)Helvetica Neue LT Std 67 Medium Condensed8pt30ml/1 fl.oz
DIRECTIONS / CAUTION / INCI headsHelvetica Neue LT Std 67 Medium Condensed~6.5pt · all capsDIRECTIONS:
Body text · purity statement · INCI · addressHelvetica Neue LT Std 57 Medium Condensed6pt100% pure oil, steamed distilled, unrefined
BARCODE label (vertical)Helvetica Neue LT Std 57 Medium Condensed6pt · verticalB A R C O D E
Substitution policy
When the licensed font isn't available
Approved (print + design)Web fallbackSystem fallback
Avenir Next Demi Bold / BoldNunito Sans 600/700 (Google Fonts)system geometric sans
Raleway SemiBold / Regular / ItalicRaleway (Google Fonts) — same family, freely availablesystem sans
Helvetica Neue LT Std 57/67 Med Cond"Helvetica Neue", "Arial Narrow"condensed system sans

For any printed or production artwork — labels, brochures, retail point-of-sale, trade documentation — the licensed Avenir Next and Helvetica Neue LT Std must be used. Web fallbacks are only acceptable on the live website and email signatures where the user does not have the licensed font installed locally.

Veld Botanicals · Website Direction

A chemistry catalogue
built on a farm.

veldbotanicals.com should feel like a well-organised supply catalogue designed by someone who grew up in KwaZulu-Natal. Clinical structure, warm provenance, zero clutter. Raleway throughout — the same brand voice as the wordmark.

Homepage
Structure & hierarchy
veldbotanicals.com
Elements
of Wellness.
Pure single-origin essential and carrier oils from South Africa. Batch-coded. Traceable. Fairly priced. 10 ml retail to 200 L bulk.
Shop the Range
No.SymElementBinomial
5EEucalyptuseucalyptus smithii
6FFrankincenseboswellia serrata
3.12ClCinnamon Leafcinnamomum zeylanicum
3.23CwCedarwoodcedrus atlantica
12LLavenderlavandula angustifolia
12.5LeLemoncitrus limon
12.7LgLemongrasscymbopogon flexuosus
16PPeppermintmentha piperita
18RRosemaryrosmarinus officinalis
19.15SoSweet Orangecitrus aurantium dulcis
20.20TtTea Treemelaleuca alternifolia
25.25YyYlang Ylangcananga odorata
12 elements · Phase 1Browse the full range →
36+

SKUs at launch

12 essential oils now. 24 EO + 12 CO at full range. Each one an element.

COA/SDS

Batch traceability

Every bottle carries a batch code. Certificate of Analysis on request.

10 ml — 200 L

One range, any scale

Same brand, same label — retail bottles to 200 L bulk drums.

1
"COA/SDS" as nav item: Signals trade credibility before scrolling — formulators and practitioners see it and know you're serious.
2
No hero photo: Type + the element catalog only above the fold. Product photography appears in the range grid below.
3
Catalog list right: Number · symbol · element · binomial — a proper periodic-table contents page. Each row carries a 3 px element-colour mark on its left edge, so colour identifies the oil without dominating the layout.
4
Three facts below hero: SKU count + COA/SDS + size range answer the three questions every buyer has before scrolling deeper.
Product Page
Individual oil
veldbotanicals.com/range/lavender
12EOLLavender
Range → Essential Oils → Lavender
Lavender · L · 12
lavandula angustifolia
MethodSteam-distilled
OriginWestern Cape, SA
RefinedUnrefined
COA/SDSOn request
10 ml
30 ml
100 ml
250 ml
Add to Cart
100% pure essential oil. INCI: Lavandula angustifolia (Lavender) Flower Oil. No carriers, no synthetics, no fragrance oils. Batch-coded. Made in South Africa, Windermere Farm, Gingindlovu, KwaZulu-Natal.
1
Tile as hero: Element tile sits where a product photo normally goes. Bottle photograph appears as image 2.
2
Latin binomial italic: Raleway Italic 7pt — directly below the product name. Never inside the tile.
3
4-item spec row: Method · Origin · Refined? · COA/SDS — answers the formulator's first four questions before scrolling.
4
All four sizes visible: Never hide sizes behind a dropdown. Per-ml value improves naturally as size increases.
Design Principles
How the site should feel

80% Neutral · 20% Element

Stone and white dominate every page. Element colour arrives only in the tile and small accents. Never as a page-wide wash — except on single-product campaign assets.

Typography is structure

Raleway 600 for headings, 400 for body, Italic for binomials. Tile uses Avenir Next on screen too. No serifs, no scripts. Generous tracking on labels and tags.

Photography rules

Bottle on Stone background — single soft light, no reflections, no props. The plant in the veld — macro or wide, never styled on a wooden tray. Hands working, not posing.

Empty space is intentional

Compose like a chemistry textbook. Air is information. A single tile on a white page communicates more than a busy lifestyle collage.
Veld Botanicals · Colour System

One colour per element.
Always.

The element colour is a property of the oil. It doesn't change for seasons, sizes, or campaigns. Neutrals hold 80% of every composition so the element colours speak at full volume.

Master Palette
Neutrals — 80% of every composition
Veld Ink
#1A1A1A · CMYK 0·0·0·90
Type, wordmark, primary
Veld Graphite
#4D4D4D · CMYK 0·0·0·70
Captions, secondary text
Veld Stone
#F7F5F2 · CMYK 2·2·4·0
Background, packaging
Pure Paper
#FFFFFF
Label stock, page white
Element Palette — Phase 1
12 Essential Oils · Exact artwork values
L · Lavender
#7533FF
54·80·0·0
P · Peppermint
#1C61FF
89·62·0·0
R · Rosemary
#2E7248
76·41·63·24
Lg · Lemongrass
#62BF00
60·22·100·4
E · Eucalyptus
#529CDE
68·39·13·0
F · Frankincense
#75ADBD
54·32·26·0
Le · Lemon ⚑
#FFCF14
0·19·92·0
So · Sweet Orange
#FF7A17
0·52·91·0
Yy · Ylang Ylang
#C70009
16·100·96·7
Cl · Cinnamon Leaf
#9C0058
27·100·59·16
Tt · Tea Tree
#894D00
32·62·100·21
Cw · Cedarwood
#2C4110
66·50·88·49

⚑ Lemon (#FFCF14) — light tile exception. Number, symbol and name render in Veld Ink (#1A1A1A). EO triangle renders in Ink. Test all future pale-ground oils against WCAG AA (4.5:1) contrast ratio before production.

Veld Botanicals · Photography

One bottle.
One soft light.

Veld product photography is documentary, not commercial. Every bottle shot uses a single soft light source from the upper-right, a Stone or pale-grey backdrop, no props, no styling. The shadow is the second subject — it's what gives the bottle weight on the surface. The reference below is the standard. Every product image on the site, every social tile, every press asset is shot to this exact specification.

Reference
The Veld product shot — exact spec

Reference shot — 30 ml dropper, white

This is the visual the entire site, every social asset and every press appearance is built around. The bottle sits in the upper-right third of the frame. A soft directional light from the upper-right creates a defined silhouette shadow on the back wall and a softer ground shadow displaced slightly to the left. No reflections, no props, no surface texture beyond the bare Stone backdrop. The bottle reads as an object on a surface — not a styled scene.

LightSingle soft source · upper-right · 45° from bottle face
BackgroundVeld Stone (#F7F5F2) seamless · graduated darker toward bottom-left
Bottle positionUpper-right third · base sits on visible horizon line
ShadowsWall silhouette + ground ellipse · both soft-edged · ~40% opacity
CompositionBottle slightly off-axis · pipette dead-vertical · no tilt
CropSquare 1:1 for grid · 4:5 portrait for PDP hero · 16:9 for social header
Resolution3000 × 3000 minimum · web export 1200 × 1200
Post-productionMinimal · no skin-smoothing equivalents · preserve true label colour
Principles
The four photography rules

01 · One light, no fill

Single soft source. No fill light, no reflectors, no rim. The shadow is the second subject — it's what makes the bottle real. A reflector kills it.

02 · Stone, never wood

Background is Veld Stone (#F7F5F2) seamless paper. Never wood, never linen, never marble, never plant leaves. The product is the subject — the surface is invisible.

03 · No props

No dried lavender, no pipette in the frame, no flat-lay clutter. If a second object appears, it's another bottle in the same shot — never a styling decoration.

04 · Documentary, not commercial

The bottle is photographed the way a chemist would photograph a sample — to document it accurately, not sell it through atmosphere. The credibility IS the conversion driver.

Use Cases
Where each photo type appears
TypeWhereSpec
Bottle on StonePDP hero (image 2 after tile) · range cards · social asset1:1 square · 1200×1200 · single bottle · reference shot above
Bottle groupRange index header · trade landing · press kit4:5 portrait · 2–4 bottles in same lighting · staggered depth
Plant in the veldAbout page · Journal articles · element profilesMacro or wide · natural light · never styled · taken at Windermere or supplier farm
Process shotAbout page · method explainer · trade trust signalDistillation equipment · hands working · documentary · no posed shots
Hands workingMaker Journal · trade page · packaging lineHands in motion · never posing · environmental light · natural skin tones
Avoid
What never appears in Veld photography

No wood backgrounds · no marble surfaces · no dried botanicals as props · no candles · no bath imagery · no models · no hands holding bottles · no overhead flat-lays of multiple oils · no soft pink lighting · no Instagram filters · no logo overlays on hero shots · no quotes pasted on images · no lifestyle "wellness" cliché.

Veld Botanicals · Copy Templates

Ready to use.
Built on the voice.

Adjust oil name, INCI, method and volume. Keep the structure. Consistency is what makes the system work.

Label & Listing
Product copy templates

30 ml Label — standard copy blocks

ESSENTIAL OIL
100 % pure oil, [steam distilled / cold pressed], unrefined

INGREDIENTS INCI
[Botanical binomial] ([Common name]) [Plant part] Oil.

DIRECTIONS:
Topical: Dilute 1-5 drops in 10ml carrier oil.
Diffuser: Add 3-5 drops to water.

CAUTION:
Keep out of reach of children. Avoid use during pregnancy and use on infants.
Do not take internally or apply undiluted to the skin.

MADE IN SOUTH AFRICA
Windermere Farm, Gingindlovu, 3800 · veldbotanicals.com

Takealot listing template

TITLE:
Veld Botanicals [Oil] Essential Oil — [Volume] | Pure, [Method]

BULLETS:
• 100% pure essential oil — INCI: [Binomial] ([Common]) [Part] Oil.
• [Volume] in white powder-coated glass with [cap type].
• [Method], single-origin, unrefined. No carriers, no synthetics, no fragrance oils.
• Batch-coded. Certificate of Analysis available on request.
• Made in South Africa at Windermere Farm, KwaZulu-Natal.

PARA 1: [Oil] is one of the most-used oils in aromatherapy. Veld Botanicals supplies
it as a single ingredient — pure, traceable, identified by its botanical name.

PARA 2: Topical: dilute 1–5 drops in 10 ml carrier oil. Diffuser: 3–5 drops in water.
Avoid use during pregnancy and on infants. Do not take internally.

Amazon listing template

TITLE (≤200 chars, brand first):
Veld Botanicals Pure [Oil] Essential Oil, [Vol] / [fl.oz], [Method], Single-Origin South Africa

BULLETS (lead-capped):
• PURE & SINGLE-ORIGIN: 100% [Binomial] [part] oil. No carriers, synthetics, or fragrance oils.
• [METHOD]: extracted to preserve volatile aromatic compounds. Unrefined.
• RETAIL & TRADE SIZES: [vol] retail; 10/100/250 ml retail and 500 ml–200 L trade available.
• BATCH-CODED & COA/SDS AVAILABLE: traceable to production batch. COA/SDS supplied on request.
• MADE IN SOUTH AFRICA: Windermere Farm, Gingindlovu, KwaZulu-Natal. White powder-coated glass.
Social Content
Five pillars — rotate in sequence
Pillar 01 · Instagram 3×/week · FB 1×

The Element

Single oil as itself. Tile + one fact. Extraction method, origin, or use-case.
Example

"Element 12. Lavender. Steam-distilled, Western Cape, 30 ml. ↗ veldbotanicals.com"

Pillar 02 · TikTok 1×/week · IG Reels

The Process

Plant to bottle. Distillation, cold-pressing, pouring. Documentary — no styling.
Example

"30 kg of rosemary leaf goes into the still. 12 hours later, 200 ml of pure essential oil comes out."

Pillar 03 · TikTok 1×/week · FB 1×

The Science

COA/SDS reads, INCI vs common name, batch variation explained.
Example

"INCI: Rosmarinus officinalis (Rosemary) Leaf Oil. That's the only thing in the bottle."

Pillar 04 · Instagram 1×/week

The Use

Specific. Dilution-correct. No medical claim. Quantities, not promises.
Example

"Topical: dilute 1–5 drops in 10 ml carrier oil. Diffuser: 3–5 drops in water."

Pillar 05 · Instagram 1×/week

The Place

The veld. The farm, the team, KwaZulu-Natal. Roots the brand.
Example

"Windermere Farm, Gingindlovu, KwaZulu-Natal. Where every Veld bottle comes from."

Cadence guide

Per-platform

Instagram: 5×/week
Facebook: 2–3×/week
TikTok: 2×/week
Stories/Reels: daily IG · weekly TikTok

Trade enquiry response

Hi [Name],

Trade pricing for [Oil]: R___ per [volume] ex-VAT. Batch-coded, COA/SDS on request, same supplier every run.
Sizes: 500 ml / 1 L / 5 L / 25 L. Lead time: [X] working days from order confirmation.

Reply to set up your account — we'll send a trade application form.

[Name] · [Role] · Veld Botanicals · trade@veldbotanicals.com
Veld Botanicals · Website Brief · v1.0 · May 2026

A chemistry catalogue
that sells.

veldbotanicals.com is the front door to the brand — equally a retail shop for the everyday aromatherapist, a working catalogue for makers and formulators, and a credible trade resource for spas and practitioners. This brief defines the strategy, the look-and-feel, the page system, and the WooCommerce build that makes all four audiences feel like the site was made for them.

01 · Vision
What we're building

A clinical, confident e-commerce site that treats every essential oil as an element on the periodic table of wellness — with the same supplier discipline a chemist would expect, and the same warmth as a Saturday morning at Windermere Farm. The site sells, but it also teaches — turning casual visitors into informed customers, and informed customers into trade accounts.

02 · Strategic Objectives
Six things this site must do
01
Convert retail traffic at premium prices
Every product page must communicate purity, traceability, and South African origin clearly enough that a R250 30 ml bottle feels honestly priced — not budget, not luxury, just correct.
02
Capture trade and wholesale leads without friction
Makers, formulators, spas and practitioners need to self-identify as trade and request an account in under 60 seconds. No phone calls, no PDFs to fill out.
03
Make the COA/SDS story unmissable
"COA/SDS on request" lives in the global nav, on every product page, and on every order email. It's the credibility flag that separates Veld from fragrance-oil sellers.
04
Land the periodic-table identity from second one
The hero is the brand story. A first-time visitor should understand "12 elements, each one an oil, all single-origin South Africa" before they scroll.
05
Make repeat purchase frictionless
Reorder in two clicks from the account page. Saved sizes. Saved batch preferences. Email re-engagement when an oil runs out, not generic nurture spam.
06
Scale from 12 to 36 SKUs without rebuilding
The system is built for the full Phase 2 range from day one — the periodic table grows, the navigation absorbs new categories, the templates don't change.
03 · Success Metrics
How we'll know it's working — Year 1
2.8%
Retail conversion
D2C sessions to paid order. Industry baseline 1.6%; the catalogue UX should beat it.
R650
Average retail order value. Two oils + carrier, on average — supported by guided-bundle prompts.
Avg order value
120
Trade accounts
Approved trade accounts in first 12 months. Pipeline KPI for the wholesale arm.
42%
Repeat rate
Customers placing a 2nd order within 90 days. Driven by reorder UX + oil-runs-out emails.
04 · The Four Audiences
Who this site is for — every page is written for one of them
01 · Retail · D2C
Everyday Aromatherapist
"I just want a good lavender I can actually trust."
Basket: 2–4 oils + carrier · Channel: Instagram → site → Takealot
02 · DIY Makers
The Maker
"I'm scaling my soap brand and need consistent supply."
Basket: 100 ml+ · Channel: Direct repeat orders
03 · Formulators
The Formulator
"I need traceability, a COA/SDS, and a supplier who won't change spec."
Basket: 500 ml – 25 L · Channel: Trade portal + email
04 · Practitioners
Spas & Therapists
"Same supplier, same method, batch to batch."
Basket: Trade tier · Channel: Trade portal
05 · Reference
Source documents
Brand Guide v1.0Personas, voice & tone, typography, label system, colour palette. The visual language of the site is the brand guide applied at screen scale.
Phase 1 Artwork PDFs12 approved 30 ml label artworks. Defines element numbers, symbols, names, binomials, and exact CMYK values per oil — these are the single source of truth.
This briefDefines website strategy, IA, page templates, WooCommerce setup, and phased build plan. Hand to the build team for scoping.
Veld Botanicals · The Landing Idea

The whole range,
arranged like elements.

Above the fold on the homepage sits an interactive periodic table — 12 element tiles laid out in a clean grid, filterable by aroma family. Hover and the tile lifts. Click and the row beneath it opens to reveal binomial, method, origin, sizes and a direct add-to-cart. It's the brand story and the catalogue, in one component. Below is the working prototype — try clicking a tile.

Live Prototype · Interactive Periodic Table
Choose an element.
12 single-origin essential oils from South Africa. Filter by aroma family, click any tile to inspect, add to cart from inside the table. The same component lives at the top of the homepage and as the catalogue index.
12 elements · Phase 1 launch range Kit: 0 elements selected
Behaviour spec
How the periodic table behaves
Idle12 tiles in a 6-column grid, exact label artwork rendering — number, EO flag, symbol, name, in approved CMYK colour. White triangle top-right. Dark tiles use white type; pale tiles (Lemon) use Veld Ink.
HoverTile lifts 3 px with a soft shadow. Cursor: pointer. No colour change. 220 ms ease.
ClickTile gets a 2 px white selection ring. The detail panel slides in below the grid showing tile + binomial + method/origin/refined/COA/SDS + size selector + Add to Cart + "View full product →".
FilterPills filter by aroma family. Non-matching tiles dim to 18% opacity and become non-clickable. Active pill is solid white.
Add to cartAdds the selected size to the cart and bumps the kit counter in the foot row. WooCommerce ajax_add_to_cart — no page reload. Mini-cart slides in from the right confirming.
MobileGrid collapses to 3 columns. Detail panel stacks vertically. Filter pills scroll horizontally. Tap targets remain ≥ 44 px.
PerformancePure CSS + vanilla JS. No images. First paint < 0.4 s. The component is the homepage hero — it must render immediately on cold cache.
Why it works
The strategic case for the periodic table hero

It IS the brand

The periodic table isn't decorative — it's the organising principle of the entire identity. The hero doesn't refer to the brand idea, it is the brand idea, working as a real catalogue.

It compresses the funnel

A first-time visitor can browse, inspect, and add to cart without leaving the homepage. The full PDP exists for deep research, but the casual buyer can convert in three clicks.

It scales

Phase 2 adds 24 more elements. The table just expands — no redesign. Carrier oils get their own section ("CO" flag) sitting beneath the EO grid, same component, same logic.

Build note

The interactive periodic table is the single most important component on the site. Budget should reflect that. Recommended: build it as a self-contained Web Component (<veld-periodic-table>) so it can be reused on the homepage, the range index, the trade portal, and any future microsites without code duplication.

Veld Botanicals · Live Homepage Mockup

This is what opens
at veldbotanicals.com.

A pixel-level rendering of how the homepage looks when a first-time visitor lands on the site. Every block below is built to launch-day spec — not a wireframe. Scroll through to see the full above-the-fold and the four sections that follow before the footer.

veldbotanicals.com
🔍Account🛒 0
Phase 1 · 12 essential oils, single-origin South Africa

Elements
of Wellness.

Pure single-origin essential and carrier oils from Windermere Farm, KwaZulu-Natal. Batch-coded. Traceable. Fairly priced. 10 ml retail to 200 L bulk — same brand, same label.

5EOEEucalyptus
6EOFFrankincense
3.12EOClCinnamon Lf
3.23EOCwCedarwood
12EOLLavender
12.5EOLeLemon
12.7EOLgLemongrass
16EOPPeppermint
18EORRosemary
19.15EOSoSweet Orange
20.20EOTtTea Tree
25.25EOYyYlang Ylang
36+
SKUs at full range
12 essential oils now. 24 EO + 12 carrier oils at full Phase 2. Each one an element.
COA/SDS
Batch traceability
Every bottle carries a batch code. Certificate of Analysis and Safety Data Sheet on request — or auto-attached for trade.
10 ml — 200 L
One range, any scale
Same brand, same label, same farm — from a 10 ml retail dropper to a 200 L bulk drum for trade.
Element 12 · L · Lavender · This Month

Steam-distilled at altitude.
One farm, one harvest window.

Our flagship Lavandula angustifolia comes from a single supplier in the Western Cape, harvested over a six-week window in late spring. The same farm, every batch — that's why the chemistry is the same in your January order as it was in last June's. Read the full harvest report, including this season's gas-chromatography numbers and a note from our distiller.

Read the harvest story →
Trade · Wholesale

Wholesale that respects
your formulation.

Three trade tiers from R5k/month upwards. Bulk RFQ on 5 L+ sizes. COA/SDS auto-attached to every dispatched order. Sample programme for first-time accounts. Apply once, get a decision in 24 hours.

Apply for trade →
As featured in
VISIMarie Claire SAHouse & LeisureGQSunday Times
Annotations
Why each block exists, top to bottom
BlockPurposeConversion goal
Top navFive things only — Range, Trade, COA/SDS, About + utility row. The COA/SDS link is a credibility flag for formulators.Direct path to whichever section the visitor came for
Hero (left)H1 + sub + dual CTA. The eyebrow signals "Phase 1 launch" — gives early visitors a reason to feel they're seeing the brand from day one.Clicks to /range or /trade
Hero (right) — periodic tableThe catalogue, reduced to 12 element tiles. Hover lifts a tile, click opens the detail panel from the brief's "Big Idea" demo.Direct add-to-cart from inside the table
Trust strip · 3 cardsSKU count · COA/SDS · scale. Answers the three questions every buyer has before scrolling deeper.Builds trust before the next ask
Featured Element storyReference photography (bottle on Stone) paired with one element story. Rotates monthly. Reinforces both the photography spec and the editorial voice.Click-through to the harvest journal article (Phase 2)
Trade CTA panelDark band breaks the rhythm. Self-identifies trade visitors and pulls them into /trade.Trade application submission
Press stripFive logos, grayscale. Earns its space if Veld actually has the press placements; otherwise replaced with farmer/supplier logos.Implicit credibility — no click goal
FooterReal address (legitimacy signal), full nav repeat, COA/SDS library link. No newsletter modal popup — newsletter join is in the Connect column.Catch-all for users who scrolled past everything
Production note

The bottle illustration in the Featured Element block is a placeholder — on launch, this is replaced with the actual product photograph shot to the spec in the Brand Guide → Photography section. The illustration is rendered as inline SVG so it renders identically in every browser and PDF export of this brief.

Veld Botanicals · Visual Direction

Clinical structure,
warm provenance.

The site applies the brand guide at screen scale. Stone backgrounds dominate. Element colour appears only in tiles, accents and category markers — never as a page-wide wash, except on single-product campaign assets. Every page reads like a chemistry textbook designed by someone who grew up in KwaZulu-Natal.

01 · Design Principles
Six rules every page must obey
80% Neutral · 20% Element
Stone (#F7F5F2) and Pure Paper dominate every composition. Element colour arrives only in tiles, category strips and small accents. Never wallpaper.
Empty space is information
Compose like a textbook. Air around a single tile communicates more than a busy lifestyle collage. Generous margins everywhere — never cram.
Typography is structure
Raleway 600 for headings, 400 for body, Italic only for binomials. Avenir Next for the periodic-table tile only. No serifs anywhere on the site.
Photography is documentary
Bottle on Stone background — single soft light, no reflections, no props. The plant in the veld — macro or wide, never on a wooden tray. Hands working, not posing.
Motion has purpose
220 ms ease for everything. No scroll-jacking, no parallax, no auto-rotating heroes. Tiles lift, panels slide, mini-cart appears. That's the whole motion language.
Words do the heavy lifting
INCI names, binomials, batch codes, COAs. The site reads like a supply catalogue — it doesn't sell with adjectives. The credibility IS the conversion driver.
02 · Type Scale
Web type system
UseFamily / WeightSize · Letter-spacing
Page H1Raleway Bold46 / 1.04 line · -0.025em
Section titleRaleway Bold24 / 1.2 · -0.015em
Card / block headingRaleway SemiBold16 / 1.35 · -0.005em
Eyebrow / tagRaleway SemiBold caps9 · letter-spacing 0.22em
BodyRaleway Regular14 / 1.55
Small / specRaleway Regular11.5 / 1.65 · graphite
Latin binomialRaleway ItalicInherits, italic only
Tile (number, symbol, name, EO/CO flag)Avenir Next Bold & Demi BoldPer tile spec — Demi Bold scaled 82% horizontally
03 · Colour Application
Where element colour is allowed
✓ Tile backgroundThe tile itself — periodic-table component, product page tile, social asset.
✓ Category strip3 px coloured edge on a row, card or filter pill — identifies the oil without dominating.
✓ Active stateSelected filter, focus ring on form input matching the page's element colour.
✓ Single-product campaignDedicated landing pages for one oil (e.g. "/lavender-launch") may use element colour as a wash. Never on the main site.
✗ Page backgroundsNever. Stone or Pure Paper only.
✗ Body text or linksNever. Type is always Veld Ink (#1A1A1A) or Veld Graphite (#4D4D4D).
✗ Buttons (primary CTA)Always Veld Ink. Element colour buttons feel like ads.
04 · Component Library
Reusable building blocks the developer must build once

<veld-tile>

The periodic-table tile component. Props: oil-id. Renders number, EO/CO flag, symbol, name, in approved colour. Three sizes: xs (thumbnail), md (table), xl (PDP hero).

<veld-periodic-table>

Filterable grid of all elements. Used as homepage hero, range index, and trade portal landing. Props: filter-default, allow-add-to-cart.

<veld-product-row>

Catalog row used in the search results, account reorder list, and trade pricing sheet. Number · Sym · Name · Binomial · 3 px colour stripe.

<veld-spec-row>

Method · Origin · Refined · COA/SDS — the four-block spec strip used on every PDP and trade detail card.

<veld-coa-button>

"Request COA/SDS" CTA. On click, prompts for batch code or pulls latest. Logged-in trade accounts get instant download. Lives on every PDP.

<veld-mini-cart>

Right-edge slide-in cart. Triggered by any add-to-cart anywhere on site. Shows tile, size, qty, line total. Persistent across navigation.

Veld Botanicals · Information Architecture

Five things in the nav.
Nothing else.

The navigation is a contract: a buyer can find what they need in one click from anywhere. Trade is treated as a first-class destination, not buried under "Wholesale Inquiries". Range, Trade, COA/SDS, About, Shop — that's the whole nav. Account and cart sit in the utility row.

01 · Sitemap
veldbotanicals.com
/ (Home)
Periodic-table hero · 3 facts row · Featured story · Trade CTA · Press strip
/range
Full periodic table · Filter by family · Filter by use case
/range/[oil]
×12 PDPsTile hero · spec strip · sizes · COA/SDS · INCI · related elements
/range/carriers
Phase 2 — carrier oil index. Reuses the same table component.
/trade
Trade landing · Tier explanation · Apply form · Sample programme
/trade/portal
Logged-in only. Trade pricing · Reorder · Bulk quote · COA/SDS library
/coa
COA/SDS library · Search by batch code · Request by oil
/about
Origin story · Windermere Farm · Method · Team · Press
/journal
Phase 2 — long-form. Element profiles, formulator interviews, harvest reports.
/cart
WooCommerce cart
/checkout
WooCommerce checkout — single-page, guest-friendly
/account
Orders · Reorder · Saved sizes · Subscriptions (Phase 3) · COA/SDS history
/contact
Trade vs retail split · Direct email · Farm visit info
02 · Primary Navigation
What sits in the top bar
PositionLabelWhy it's there
Top leftVELD BOTANICALS (logo)Returns to home. Wordmark only — no icon mark.
Top centre 1RangeThe catalogue. The most-used link by every audience.
Top centre 2TradeSelf-identification entry point for makers, formulators, practitioners. Removes friction from the wholesale funnel.
Top centre 3COA/SDSCredibility flag. A formulator clicks this in the first 30 seconds to qualify Veld as a real supplier.
Top centre 4AboutOrigin, farm, method. The provenance story.
Top right 1🔍 SearchSearches the periodic table. Returns matching tiles, not text snippets.
Top right 2Account / Sign inOrder history + reorder. Trade accounts go to portal.
Top right 3Cart (n)Clicks open the mini-cart slide-in. Count badge always visible.
03 · Persona Journeys
Five-step path from landing to conversion — per persona
Persona 1 · Everyday Aromatherapist
Land
Instagram → home. Sees periodic table — recognises Lavender.
Tap L
Detail panel opens. Reads "100% pure, steam-distilled, Western Cape".
Pick size
Selects 30 ml. Adds to cart from inside the panel.
Bundle prompt
Mini-cart suggests "+ a carrier oil for dilution". Adds.
Checkout
Guest checkout. PayFast. Done. R450 AOV.
Persona 2 · The Maker
Land
Direct return visit. Goes straight to /range.
Filter
Filters by "Soap-friendly". Sees Lemongrass, Cedarwood, Cinnamon Leaf.
100 ml × 3
Adds three 100 ml from inside the table. INCI shown inline.
COA/SDS prompt
Mini-cart asks "Want COAs with this order?" — yes. Auto-attached.
Reorder set
Saves bundle as "Soap Batch #4" for one-click reorder next month.
Persona 3 · The Formulator
Land
LinkedIn → /trade. Reads tier structure. Clicks "Apply".
Self-qualify
Form: company, INCI familiarity, monthly volume. 4 fields.
Approved
Manual review < 24 h. Gets portal login email.
Browse trade
Trade pricing visible. Bulk RFQ on 5 L+ sizes.
Order + COA/SDS
25 L Frankincense ordered. COA/SDS auto-emailed at dispatch.
Persona 4 · Spa & Practitioner
Land
Referral or Google. Sees /trade. Books a sample pack instead.
Sample kit
Curated 5 × 5 ml pack at cost. Ships with brochure.
Tries oils
Two-week trial. Email check-in via Klaviyo at day 10.
Trade account
Applies. Approved. Sets up monthly subscription on 250 ml core 4.
Loyal
12 m later: 8 oils on subscription, refers 2 spas.
04 · URL Structure
Clean, semantic, future-proof
PatternExampleNotes
/range/[slug]/range/lavenderOne PDP per oil. Slug is lowercase common name. Cinnamon Leaf → /range/cinnamon-leaf.
/range?family=[x]/range?family=floralFilter applied via query param — shareable URL.
/coa/[batch]/coa/VL-2026-04-128Direct link to a single batch's COA/SDS PDF. Used in dispatch emails.
/trade/portal/.../trade/portal/reorderAuthenticated routes. Redirects unauthenticated users to /trade.
/journal/[slug]/journal/why-eucalyptus-smithiiPhase 2 content. Stays under /journal — never blog or news.
Veld Botanicals · Page Templates

Seven templates.
That's the whole site.

Every page on the site is one of seven templates. The system is small on purpose — fewer templates means more consistency, faster build, and easier expansion as the range grows. Each template below shows purpose, the components it uses, and the conversion goal.

Template 01

Homepage

The brand introduction and the catalogue, in one screen. Above the fold is the interactive periodic table. Below: trust signals, a featured element story, the trade pathway, and a press strip. No carousels, no auto-playing video, no lifestyle hero shot.

veldbotanicals.com
VELD BOTANICALS · Range · Trade · COA/SDS · About · 🔍 · Account · 🛒(0)
H1 + tagline + CTA
▦ INTERACTIVE PERIODIC TABLE
36+ SKUs
COA/SDS on every batch
10 ml — 200 L
Featured Element story
Trade · Apply →
Press · As featured in: VISI · Marie Claire SA · GQ

Components used

  • <veld-periodic-table> · hero, with allow-add-to-cart enabled
  • 3-column trust strip (SKU count · COA/SDS · scale)
  • <featured-element> · rotating monthly story
  • Trade CTA card · element-coloured edge
  • Press strip · grayscale logos

Conversion goal

  • Primary: add-to-cart from inside periodic table
  • Secondary: trade application click-through
  • Tertiary: scroll-depth to featured story

SEO

  • H1 contains "essential oils South Africa"
  • Schema.org Organization + Product feed in JSON-LD
  • Open Graph image: full periodic table at 1200×630
Template 02

Range Index

A more browsing-oriented version of the periodic table — full screen width, filters on the left rail, table on the right, search at the top. Same component as the homepage hero, just configured for catalog discovery rather than headline impact.

veldbotanicals.com/range
↑ Nav
Search the range — type oil, INCI or common name
FAMILY · Floral · Herbal · Citrus · Wood · Spice
USE · Diffuse · Topical · Soap · Skincare · Bath
METHOD · Steam · Cold-press
SIZE · 10 · 30 · 100 · 250 ml · bulk
▦ PERIODIC TABLE — 12 tiles

Components used

  • <veld-periodic-table> · expanded width, filters externalised
  • <veld-filter-rail> · multi-select facets
  • <veld-search> · oil/INCI/common-name typeahead

Conversion goal

  • Add-to-cart directly from the table
  • Click-through to PDP for deep research

Edge cases

  • Zero results: "No element matches — try removing a filter" + reset link
  • Single result: don't redirect, showWb the one tile centred
Template 03

Product Detail Page (PDP)

The deep page. Tile is the hero — bottle photograph is image two. Spec strip answers the formulator's first four questions. INCI line, batch traceability, and a "Request COA/SDS" CTA appear above the fold. Sizes are visible, not hidden behind a dropdown.

veldbotanicals.com/range/lavender
↑ Nav · Range → Essential Oils → Lavender
L
Lavender · L · 12
lavandula angustifolia
Method
Origin
Refined
COA/SDS
10 ml
30 ml
100 ml
250 ml
ADD TO CART · R250
Request COA/SDS →
INCI · Lavandula angustifolia (Lavender) Flower Oil. No carriers, no synthetics, no fragrance oils.
▦ Bottle photo
▦ Field photo
▦ Process photo
Related elements: ▦ R · ▦ E · ▦ Lg

Components used

  • <veld-tile> size=xl as hero image
  • <veld-spec-row> · Method · Origin · Refined · COA/SDS
  • <veld-size-picker> · all sizes visible, never dropdown
  • <veld-coa-button>
  • Image gallery — 3 photos minimum, lazy-loaded
  • <veld-related> · 3 related element thumbnails

Conversion goal

  • Size selection + add-to-cart
  • Secondary: COA/SDS request (qualifies as warm trade lead)

SEO

  • H1: "[Common Name] Essential Oil · [Binomial]"
  • Schema.org Product with offers per size variant
  • Open Graph: tile + bottle composite at 1200×630
Template 04

Trade Landing & Portal

Two states: the public trade landing (explains tiers, sample programme, application form) and the authenticated portal (trade pricing, bulk RFQ, COA/SDS library, reorder). The landing converts; the portal retains.

veldbotanicals.com/trade
↑ Nav
H1: "Wholesale that respects your formulation."
Tier 1
R5k+/mo
Tier 2
R20k+/mo
Tier 3
R75k+/mo
Sample programme · 5×5ml at cost
Apply for trade →
FAQ · Lead times · MOQ · Payment terms · COA/SDS cadence

Components used

  • 3-tier pricing card row
  • Sample-pack callout · adds R150 sample kit to cart
  • Trade application form · 5 fields max
  • FAQ accordion
  • Logged-in: portal swap-in (reorder, RFQ, COA/SDS library)

Conversion goal

  • Trade application submission (lead capture)
  • Sample pack purchase (qualified intent)
Template 05

COA/SDS Library

Public-facing index of every Certificate of Analysis. Search by batch code, filter by oil. Public sees a "Request COA/SDS" button; trade accounts see direct download. This page exists to be linked to from elsewhere — it's a credibility artefact as much as a utility.

veldbotanicals.com/coa
↑ Nav
H1: Certificates of Analysis · Search batch code
Filter: Oil · Year · Method
▦ L · Lavender · VL-2026-04-128 · Apr 2026 · [Request / Download]
▦ Cw · Cedarwood · VL-2026-04-127 · Apr 2026 · [Request / Download]
▦ E · Eucalyptus · VL-2026-03-119 · Mar 2026 · [Request / Download]
+ 47 more · Pagination

Components used

  • <veld-search> configured for batch-code lookup
  • <veld-coa-row> · per-batch row with 3 px element stripe
  • <veld-coa-button> per row (request vs download)

Conversion goal

  • COA/SDS request = qualified trade lead → CRM
  • Trade portal sign-in for direct downloads

Important

  • Every COA/SDS PDF is publicly linkable by batch code — strengthens trust + SEO
  • Klaviyo flow: COA/SDS request → 3-email trade nurture sequence
Template 06

About / Story

The provenance template. Origin, farm, method, team. Long-form text in Raleway, with documentary photography. Written in first person where possible — it's the human counterpoint to the chemistry.

veldbotanicals.com/about
↑ Nav
H1: From Windermere Farm, KwaZulu-Natal.
▦ Hero photo — farm landscape
Origin section · 3 paragraphs · pull-quote
▦ Distillation
Method section — steam distillation, cold-press, single-origin protocol.
Team — 4 portraits, name + role + 1 line
Farm visit info → /contact

Components used

  • Long-form text blocks · max 70 ch line length
  • Documentary photo · full-bleed at section breaks
  • Pull-quote block · 18pt Raleway Italic
  • Team grid · 4 portraits

Conversion goal

  • Brand affinity — no direct conversion
  • Secondary: farm-visit inquiry
Template 07

Cart · Checkout · Account

WooCommerce's screens, restyled to match the brand. Single-page checkout, guest-friendly. Account dashboard is built around reorder — it's the primary task, not order history. Saved bundles ("Soap Batch #4") get one-click repeat purchase.

veldbotanicals.com/account
↑ Nav
Welcome back, Sarah · Trade · Tier 2
▦ Reorder Last
▦ Saved Bundles
▦ Subscriptions
Order history (collapsed) · COA/SDS history · Saved sizes · Address book
Trade · Bulk RFQ · Tier benefits · Renewal date

Components used

  • <veld-reorder-card> · last-order one-click repurchase
  • <veld-bundle-card> · saved sets with custom names
  • WooCommerce account base, restyled
  • WC Subscriptions panel (Phase 3)

Conversion goal

  • Reorder rate = primary KPI for this template
  • Subscription opt-in = retention KPI

Checkout rules

  • Single page, no multi-step
  • Guest checkout always available — never force account creation
  • Address auto-complete via Google Places
  • Mobile pay (Apple/Google Pay) buttons above the form
Veld Botanicals · Commerce Stack

WooCommerce,
opinionated.

WooCommerce is the engine, but the experience never feels like a generic Woo storefront. Custom theme on top of a minimal block theme. Variable products by size. Trade pricing via wholesale plugin. COAs as a custom post type linked to batch codes. Every plugin earns its place — bloat is the enemy of the chemistry-catalogue feel.

01 · Plugin Stack
What's installed and why
PluginRoleNotes
WooCommerce (core)Cart, checkout, products, orders, accountLatest stable. Hooks-only customisation — never edit core.
WooCommerce Payments + PayFastPayment gatewaysWC Payments for Apple/Google Pay; PayFast for SA card + EFT + Snapscan. Add Yoco as backup.
Wholesale Suite (Pro)Trade pricing tiers, role-based cataloguesThree trade roles: Tier 1, 2, 3. Each sees own pricing on PDPs. Hidden from logged-out users.
WooCommerce SubscriptionsRecurring orders (Phase 3)Targets practitioners and trade. Monthly + bi-monthly cadences.
WC Bookings (deferred)Farm visit bookingsPhase 2+. Lightweight booking for the Windermere Farm visit programme.
Advanced Custom Fields ProElement metadata, COA/SDS links, batch infoPowers <veld-tile> data model. INCI, binomial, family, use-tags, related elements.
Custom Post Type UICOA/SDS library, Journal, Press3 CPTs registered. COA/SDS links to batch + product.
Klaviyo for WooCommerceEmail + SMS lifecycleAlready in stack. Flows: welcome, abandoned cart, order-shipped, runs-out, COA/SDS-requested.
RankMath SEOSEO + schemaJSON-LD Product + Organization. XML sitemap. Internal link suggestions.
WP RocketCaching + critical CSSPage cache + lazy load + JS deferral. Target LCP < 1.8 s.
ShiplogicSA shipping integrationLive rates from Aramex, Pudo, The Courier Guy. Locker drop-off for retail.
Wordfence (Premium)Security + login hardening2FA on admin + trade portal. WAF rules tuned for WooCommerce.
02 · Product Structure
How an oil is modelled in WooCommerce

Each oil = one Variable Product. Sizes are variations. Trade tiers see different prices on the same variations via Wholesale Suite. Batch info lives on a separate COA/SDS post type, linked via ACF relationship.

FieldSourceExample
TitleNative WCLavender Essential Oil
SlugNative WClavender
Element numberACF12
SymbolACFL
Type flagACF selectEO / CO
Hex colourACF (colour picker)#7533FF
CMYKACF (4× number)54·80·0·0
BinomialACFLavandula angustifolia
INCI stringACFLavandula angustifolia (Lavender) Flower Oil
MethodACF selectSteam-distilled / Cold-pressed
OriginACFWestern Cape, SA
FamilyACF taxonomyFloral · Herbal · Citrus · Wood · Spice
Use tagsWC tagsdiffuse · topical · soap · skincare · bath
VariationsNative WC10 ml · 30 ml · 100 ml · 250 ml (+ trade: 1 L · 5 L · 25 L)
Latest COA/SDSACF relationship → COA/SDS CPTVL-2026-04-128
Related elementsACF relationship → Product3 product IDs
03 · Trade Tier Pricing
Three tiers, one product
TierQualificationDiscountSees
Retail (default)Anyone0%10–250 ml sizes
Trade · Tier 1R5k+/month, approved15%+ 1 L size · COA/SDS on every order
Trade · Tier 2R20k+/month, approved22%+ 5 L size · subscriptions · bulk RFQ
Trade · Tier 3R75k+/month, approved30%+ 25 L drum · contract pricing · dedicated AM
04 · COA/SDS System
Certificates of Analysis as first-class content

How it works

A COA/SDS is a Custom Post Type. Each post = one batch. Fields: batch code, oil (relationship), test date, lab, PDF attachment. The COA/SDS library page lists all posts; the PDP queries for the latest COA/SDS related to that product. Public users see "Request COA/SDS" (Klaviyo form); trade users see "Download". Every dispatched order email includes a deep link to the relevant COAs.

FieldType
Batch codeText · format VL-YYYY-MM-NNN
OilACF Relationship → WC Product
Test dateDate picker
Lab nameText
PDFFile upload
PublicBoolean — drives request vs download UX
05 · Email & Lifecycle (Klaviyo)
The flows that earn their keep
FlowTriggerGoal
Welcome seriesNewsletter signup or first purchase3 emails over 10 days. Brand story → method → range guide. No discount code.
Abandoned cartCart inactive 1 h2 emails (1 h, 24 h). Includes the tile of the abandoned product. No discount until email 2.
Order shippedWC status → shippedIncludes tracking + COA/SDS download links + reorder CTA at day 30.
Runs-out reminderDays since order = avg consumption period for that size"Your 30 ml Lavender is probably running low — reorder in one click." Driver of repeat rate.
COA/SDS requestedCOA/SDS form submission3-email trade nurture sequence. Soft CTA to /trade.
Trade appliedTrade form submittedInternal alert + applicant confirmation + 24-h decision SLA.
Win-backNo order in 90 daysSingle email — featured new element + R75 reorder credit.
06 · Performance Budget
Non-negotiable speed targets
<1.8s
Largest Contentful Paint
Mobile, 4G. The periodic table tile is the LCP element.
<2.5s
Time to Interactive
User can tap a tile within 2.5 s of clicking the link.
<100kb
Critical CSS
Inline critical CSS for above-the-fold. Rest deferred.
95+
Lighthouse score
Performance, accessibility, best practices, SEO — all mobile, all green.
07 · Accessibility
WCAG 2.2 AA — minimum
Colour contrastAll text ≥ 4.5:1. The light-tile exception (Lemon) uses Veld Ink for type — already documented in the brand guide.
Keyboard navigationPeriodic table tiles are buttons. Tab moves between them; Enter opens the detail panel.
Screen readerEach tile announces "Element 12, Lavender, essential oil — press Enter to view details".
Reduced motionprefers-reduced-motion: animations disabled, panel snaps open with no slide.
Alt textEvery product image: "[Common name] essential oil bottle, 30 ml, on stone background".
Veld Botanicals · Build & Phasing

Three phases.
Twelve months to full range.

Phase 1 launches the 12-element essential oil range with the full retail experience. Phase 2 doubles to 24 EO + 12 CO, adds the trade portal and journal. Phase 3 layers subscriptions, international shipping, and the farm-visit booking module. Each phase is independently shippable.

Phase 1 · Launch
Weeks 1 – 10
12 essential oils, retail commerce, periodic-table hero, COA/SDS request flow, Klaviyo welcome + abandoned-cart, basic trade application form. Trade approval handled manually. No portal yet.
Brand setupTheme buildPeriodic table component12 PDPsCart + CheckoutAccount + ReorderAboutCOA/SDS library v1Klaviyo setupRankMathPerformance passAccessibility audit
Phase 2 · Trade & Range
Weeks 11 – 20
+12 essential oils (24 EO total) + 12 carrier oils. Trade portal launches with tier pricing, bulk RFQ, COA/SDS library v2 with auto-attach. Journal CPT live with 6 launch articles. Farm visit booking page (no payments yet).
Wholesale Suite ProTrade portal templatesBulk RFQ formCOA/SDS auto-attach to orders+12 EO PDPs+12 CO PDPsCarrier oil categoryJournal launchPress pageSA shipping integration
Phase 3 · Retain & Expand
Weeks 21 – 32
WooCommerce Subscriptions for trade core 4. International shipping (Africa first, then UK pilot). Farm visit bookings with payment. SMS lifecycle via Klaviyo. Loyalty / kit-builder for retail.
WC SubscriptionsSubscription portalAfrica shipping zonesUK pilot · GBP currencyFarm visit bookings + paymentKlaviyo SMSKit builderLoyalty programme
Required Roles
Who builds this
RolePhase 1 daysPhase 2 daysPhase 3 days
Lead Developer (WP/WC)302015
Front-end / Component developer20105
Designer (UI / illustration)1053
Copywriter810 (Journal)2
Photographer (product + farm)421
QA / Accessibility422
Project Manager1064
Hand-off Checklist
What needs to be ready before kick-off
Brand Guide v1.0✓ Done — colours, type, voice, label system
12 approved label PDFs✓ Done — source of truth for tile data
Element metadata sheetTo do — single CSV: number, sym, name, family, INCI, binomial, hex, CMYK, method, origin, related
PhotographyTo do — 12 bottles on Stone + 12 plant/process shots
Copy for 12 PDPsTo do — 80 words each + INCI + use cases
About page copyTo do — origin story, method, team bios
Trade tier T&CsTo do — legal sign-off on Tier 1/2/3 commercial terms
Hosting decisionTo do — recommend Kinsta or WP Engine SA region; self-host as fallback
Domain + SSLConfirm registrar + DNS access
Klaviyo + PayFast accountsConfirm credentials + API access
Recommended next step

Lock the element metadata sheet first — every other workstream (development, photography, copy) depends on it. Three weeks from sheet sign-off to a clickable Phase 1 staging environment is a realistic target with the right team.