Skip to content
All work

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.

BEFOREL1L2L3Three levels, three patterns. The user relearns filtering on every step down.AFTERL1L2L3
Filtering before and after. The fix is one pattern applied at every level, not three good patterns.

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.

01 · VALUESSearch by what matters to youSocial valuesEnvironmental valuesBusiness valuesIngredient values02 · PRODUCTType, category, keywordProduct foundSame destination, same pattern
Values-led and product-led search converge on the same result set

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

Delivery, with two warehouse collection points.
  • Economy delivery
  • Express delivery, selected areas
  • Pargo collection point
  • FtN warehouse, Johannesburg
  • FtN warehouse, Cape Town

Added

Collection where the customer already is, and delivery when they choose.
  • In-store collection across 17 locations and growing
  • Scheduled delivery with date and timeslot

What each option has to clear

  1. 01
    LogisticsWhat is executable given postcode, zone, and area parameters.
  2. 02
    DataWhat is available now against what arrives in a staggered rollout.
  3. 03
    OmnichannelDecisions have to account for the whole ecosystem, not the isolated feature.
  4. 04
    M1 dependenciesLegacy constraints define what is buildable on M2 today.

Findings

What the platform taught me

Five things that hold across the work

  1. 01

    Dev-first decisions created UX debt

    Patterns changed between category levels

  2. 02

    Design was constrained by data availability

    not by user need

  3. 03

    Legacy M1 dependencies limited what was buildable on M2

  4. 04

    Every decision had downstream consequences

    so nothing could be designed in isolation

  5. 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

Production site

The current live experience, including the filtering system.

Open the live site