Faithful to Nature
Omnichannel
One platform, seventeen stores, two legacy systems
- Role
- Lead UX/UI Designer
- Client
- Faithful to Nature
- Since
- September 2024
- Status
- Ongoing
The challenge
How do you introduce consistent UX to a live platform mid-migration, as the only designer, in a team that has never had one?
What it turned out to be
Translate user needs into business and technical language, then ship the pattern that fixes the most levels at once.
One of South Africa's largest online wellness retailers, live and taking revenue, halfway through a platform migration that started in 2020.
Rapid store expansion moved the platform into a full omnichannel environment while the Magento 1 to Magento 2 migration was still running. Multiple designers passed through. I joined as the lone lead UX/UI designer in September 2024.
Nothing was broken enough to stop and fix. Years of dev-first decisions had accumulated into UX debt, and no designer had stayed long enough to work through it.
Conditions
What the work has to survive
The constraints every design decision here gets measured against.
Dev-first culture
Low UX maturity across the organisation. Design entered the conversation after the technical decision was already made.
Accumulated UX debt
Multiple designers came and went. Inconsistency was baked into the platform before I arrived.
Data availability, not user need
What could be designed was set by which data existed on which system, and when.
Legacy M1 dependencies
Magento 1 constraints define what is buildable on Magento 2 today, not in principle.
Most of the job is translating what users need into business outcomes and technical language at the same time.
Shipped
One filtering system
When I joined, filtering changed structure between category levels. L1 did not match L2, and L2 did not match L3. No shared logic, no shared pattern, so the user relearned navigation on every step down.
Two ways to search, one destination
Faithful to Nature sells on values as much as on product. The filtering system carries both entry points without splitting the catalogue in two.
In progress
Omnichannel collection
Stores are opening quickly. The platform had to move past delivery-only so a customer can choose how they receive an order.
Existing
- Economy delivery
- Express delivery, selected areas
- Pargo collection point
- FtN warehouse, Johannesburg
- FtN warehouse, Cape Town
Added
- In-store collection across 17 locations and growing
- Scheduled delivery with date and timeslot
What each option has to clear
- 01LogisticsWhat is executable given postcode, zone, and area parameters.
- 02DataWhat is available now against what arrives in a staggered rollout.
- 03OmnichannelDecisions have to account for the whole ecosystem, not the isolated feature.
- 04M1 dependenciesLegacy constraints define what is buildable on M2 today.
Findings
What the platform taught me
Five things that hold across the work
- 01
Dev-first decisions created UX debt
Patterns changed between category levels
- 02
Design was constrained by data availability
not by user need
- 03
Legacy M1 dependencies limited what was buildable on M2
- 04
Every decision had downstream consequences
so nothing could be designed in isolation
- 05
Advocating for UX meant translating user needs into business and technical language
Outcome
The filtering system shipped. Omnichannel collection and delivery are in active design. There is now a UX practice in a team that did not have one. Ongoing.
Reflection
What I took from it
- 01
Most of the work is weighing what should happen against what the data and the platform allow
- 02
Mapping dependencies first saved rework later
- 03
Arguments here need evidence behind them