nolimeo/Realizácie/farmhouse.sk
E-commerce, práca predajne

farmhouse.sk: online predaj mäsa navrhnutý okolo práce predajne

Pri mäse predávanom na váhu sa objednávka nekončí odoslaním košíka. Zákazník si vyberá orientačnú hmotnosť, predajňa pripraví reálny kus a finálna cena vzniká až po navážení.

Next.js 16React 19Drizzle ORMPostgreSQL 16Better AuthTransakčné e-maily cez AWS SES
farmhouse.sk
Farmhouse.sk — full page preview
Kontext a výzva

Keď je e-shop závislý od procesov v kamennej predajni

Farmhouse je remeselné mäsiarstvo s kamennými predajňami, osobným odberom a lokálnym rozvozom. Pri takomto sortimente online nákup nestojí iba na katalógu. Do e-shopu vstupuje práca predajne: príprava mäsa, dostupné odberné miesta, rozvozové zóny, sviatky aj komunikácia so zákazníkom.

Pôvodný WooCommerce pomohol overiť online predaj, no časom sa v ňom začali miešať pluginy, vlastné úpravy a pravidlá, ktoré mali byť pod kontrolou jednej aplikácie. Výsledkom bol e-shop, ktorý síce predával, ale pri každodennej prevádzke vyžadoval príliš veľa kontroly a ručných zásahov.

Bez výpadku

Migrácia objednávok, zákazníkov a produktov

4 zóny

Lokálny rozvoz podľa PSČ a pravidiel dopravy

1 výpočet

Rovnaký výpočet v pokladni, administrácii aj faktúre
Kde pôvodné riešenie narážalo

Nešlo o vzhľad. Problém začínal pri samotnej objednávke.

Pred návrhom novej platformy bolo dôležité pomenovať, kde sa pôvodný e-shop dostával mimo reality predajne. Najväčšie napätie nevznikalo na úvodnej stránke, ale vo chvíli, keď sa z online objednávky stala konkrétna práca pre tím.

01
Tá istá objednávka vedela skončiť s inou sumou Výpočet bol rozdelený medzi WooCommerce, pluginy a vlastné úpravy, takže nie vždy skončil rovnako. Pri hmotnostných produktoch, zľavách, doprave, sadzbách DPH a hotovostnom zaokrúhlení sa rozdiel mohol ukázať v pokladni, administrácii aj na faktúre. Výsledkom boli manuálne zásahy a dodatočné úpravy objednávok.
02
Skutočná hmotnosť vzniká až pri príprave Zákazník môže objednať 500 g, no predajňa pripraví kus, ktorý má inú váhu. Objednávka preto nemôže mať uzavretú cenu už pri odoslaní.
03
Pokyny k príprave musia byť pri položke Krájať, pomlieť alebo pripraviť vcelku nie je poznámka na konci objednávky. Je to konkrétny pokyn k produktu, ktorý má byť viditeľný priamo pri príprave.
04
Doklady musia vychádzať zo skutočnej objednávky Pri každej objednávke muselo byť jasné, z akej sumy vznikol doklad. Faktúra aj dobropis preto vychádzajú z finálnej objednávky po navážení, nie z nového prepočtu podľa katalógu.
05
Prevádzkové pravidlá boli roztrúsené Doručovacie zóny, sviatky, odberné miesta, kupóny, oznamy a sadzby DPH potrebovali vlastnú správu. Nemali byť ukryté v šablóne alebo v kombinácii pluginov.
Pôvodný WooCommerce adminNový admin panel
PÔVODNÝ WOOCOMMERCE
NOVÝ SYSTÉM
Navrhnuté okolo prevádzky

Jedna platforma pre web, predajňu aj správu obchodu

Projekt nebol iba nový vzhľad e-shopu. Farmhouse dnes stojí na oddelenom e-shope, administrácii a API aplikačnej vrstve, kde sú sústredené obchodné pravidlá, správa obsahu, rozvoz, zákaznícke účty aj objednávky.

Zákazník

Nákup je zrozumiteľný od kategórie po košík

Kategória, detail produktu aj košík používajú rovnaký jazyk a rovnaké pravidlá. Zákazník vidí, čo objednáva, ako sa produkt pripraví a čo ešte ovplyvní výslednú sumu.

Predajňa

Administrácia pre reálnu prípravu objednávok

Tím vidí položky, spôsob prípravy, poznámky, prevzatie aj stav objednávky. Administrácia je navrhnutá pre ľudí, ktorí objednávku fyzicky pripravujú, nie iba evidujú.

Manažment

Správa pravidiel bez zásahu do e-shopu

Produkty, kategórie, predajne, sviatky, oznamy, sadzby DPH a nastavenia obchodu sú samostatné dáta. Dajú sa meniť bez zásahu do vzhľadu alebo nákupného procesu.

Rozvoz

Rozvoz podľa PSČ a dostupných dní

Lokálny rozvoz pracuje so zónami, cenou dopravy, hranicou pre dopravu zdarma a sviatkami. Zákazník tak už pri nákupe vidí, či a ako sa dá objednávka doručiť.

Cenová istota

Jedna cenová logika od košíka po faktúru

Výpočet ceny je súčasťou API aplikačnej vrstvy. Web, administrácia aj doklady preto nevychádzajú z troch odlišných interpretácií tej istej objednávky.

Kupóny

Zľavy s jasnými pravidlami

Kupóny vedia pracovať s platnosťou, minimálnou hodnotou objednávky, limitmi použitia, produktmi, kategóriami aj tým, či sa môžu kombinovať so zľavou za osobný odber.

Stavy

Zmeny objednávky zostávajú dohľadateľné

Každá zmena objednávky má uložený stav, poznámku a autora úpravy. Tím tak vie spätne overiť, čo sa s objednávkou stalo.

Účet

Objednávky a doklady v zákazníckom účte

Prihlásený zákazník má profil, adresu, históriu objednávok a prístup k faktúram. Farmhouse tak nie je iba jednorazový nákup, ale kanál pre opakovaných zákazníkov.

Predaj podľa hmotnosti

Gramáž, príprava a výsledná cena v jednom nákupe

Hmotnostné produkty potrebovali iný nákupný krok než bežný e-shop. Zákazník si vyberá orientačnú gramáž, vidí cenu za 100 g a rozumie tomu, že presná suma vznikne až po príprave objednávky.

Pôvodný WooCommerce
Farmhouse — WooCommerce product detail

Predtým: Hmotnosť, cena a príprava boli riešené ako úpravy všeobecného e-shopu, ktorý prirodzene nepoznal predaj podľa reálnej váhy.

Nové riešenie
Farmhouse — new product detail

Potom: Zákazník si na detaile produktu vyberie gramáž, spôsob prípravy a zároveň vidí orientačnú cenu aj pomoc s odhadom množstva.

01

Výber gramáže bez neistoty

Zákazník si vyberá z pripravených hmotností a hneď vidí cenu za zvolenú gramáž aj prepočet na 100 g. Zároveň je jasné, že výsledná suma sa upraví podľa reálne pripraveného kusu.

  • pripravené hmotnosti
  • cena za zvolenú gramáž
  • prepočet na 100 g
02

Pomoc s odhadom množstva

Pri mäse zákazník často nerieši len cenu, ale aj to, koľko kúpiť. Pomocník v detaile produktu prepočíta odporúčanú gramáž podľa počtu porcií.

  • odhad podľa počtu porcií
  • menej neistoty pri výbere
  • praktickejší detail produktu
03

Pokyny priamo pri produkte

Krájanie, mletie alebo prípravu vcelku si zákazník vyberá pri konkrétnom produkte. Predajňa tak pri príprave vidí presne ten pokyn, ktorý patrí k danej položke.

  • výber prípravy pri produkte
  • pokyny viditeľné v administrácii
  • menej dodatočného upresňovania
UX a vizuálny redizajn

Redizajn celého nákupu, nielen úvodnej stránky

Pri Farmhouse nestačilo zmeniť vzhľad webu. Dôležité boli najmä miesta, kde si zákazník vyberá produkt, kontroluje košík alebo dokončuje objednávku. Špecifiká predajne mali byť zapracované priamo do rozhrania, nie ukryté v dodatočnom vysvetlení.

Kategórie a zoznam produktov
01

Kategórie a zoznam produktov

Produktové karty museli rýchlo ukázať sortiment, základnú cenu, dostupnosť a rozdiel medzi bežným produktom a produktom predávaným podľa váhy.

Predtým

Kategórie pôsobili ako všeobecný zoznam produktov a špecifiká hmotnostných produktov neboli dosť výrazné.

Potom

Kategória lepšie oddeľuje typy produktov a pomáha zákazníkovi rozhodnúť sa ešte pred otvorením detailu.

PredtýmProduktový detail — predtým
PotomProduktový detail — potom
02

Produktový detail

Detail produktu musel spojiť nákupné rozhodnutie s tým, čo bude predajňa reálne pripravovať.

Predtým

Výber hmotnosti a prípravy bol skôr technická úprava WooCommerce produktu než prirodzený nákupný krok.

Potom

Nový detail dáva zákazníkovi výber množstva, spôsob prípravy a praktické informácie na jednom mieste.

Košík
03

Košík

Košík musel zrozumiteľne spojiť položky, kupón, spôsob prevzatia a platbu pri prevzatí bez toho, aby pôsobil ako technická výnimka.

Predtým

Košík ukazoval sumu ako pri bežnom e-shope, čo pri čerstvom mäse vytváralo očakávanie fixnej ceny.

Potom

Nový košík jasnejšie vysvetľuje položky, spôsob úhrady a ďalší krok objednávky.

PredtýmPokladňa — predtým
PotomPokladňa — potom
04

Pokladňa

Pokladňa spája lokálny rozvoz, osobný odber, kontaktné údaje, doručovacie pravidlá a zhrnutie objednávky bez toho, aby zákazník musel poznať interné pravidlá predajne.

Predtým

Pokladňa bola závislá od pravidiel WooCommerce a pluginov, ktoré nevedeli dostatočne prirodzene vysvetliť lokálny rozvoz, osobný odber a hmotnostnú cenu.

Potom

Nová pokladňa vedie zákazníka cez výber doručenia alebo odberu, kontaktné údaje a potvrdenie objednávky bez zbytočného vysvetľovania.

PredtýmAdministrácia — predtým
PotomAdministrácia — potom
05

Administrácia

Administrácia nie je len tabuľka objednávok. Je navrhnutá pre prípravu, kontrolu stavov, doklady a komunikáciu so zákazníkom.

Predtým

Tím pracoval v prostredí, ktoré bolo postavené pre všeobecný e-shop, nie pre prípravu mäsa podľa reálnej váhy.

Potom

Administrácia zobrazuje objednávku tak, ako s ňou tím pracuje počas prípravy a vybavenia.

Migrácia bez chaosu

Prechod z WooCommerce bez zastavenia predaja

Pri projekte nešlo iba o nový dizajn. Bolo potrebné preniesť produkty, obrázky, zákazníkov, históriu objednávok, hmotnostné nastavenia, kategórie a doručovacie pravidlá bez toho, aby sa musel zastaviť predaj.

01
Pôvodný WordPressZáloha a extrakcia starých produktov, kategórií a cien z WooCommerce tabuliek.
02
Kontrolovaná migráciaDáta sa najprv vyčistili, skontrolovali a až potom preniesli do novej štruktúry. Dôležité bolo zachovať obchodné pravidlá, nie iba skopírovať produkty a texty.
03
Moderný PostgreSQLImport čistých dát s novými atribútmi pre logiku hmotnostného predaja.
WooCommerce
Pôvodný WordPress
Roztrúsené pravidlá
WordPress meta dáta
post_idmeta_keymeta_value
452_price"12.90"
452_weight_pricing"yes"
452_manage_stock"no"

Produkty, nastavenia a vlastné polia boli uložené spôsobom, ktorý bol praktický pre WordPress, ale horší pre vlastnú cenovú logiku, filtráciu a kontrolu dát.

TRANSFORMÁCIA
PostgreSQL
Moderný PostgreSQL
Kontrolované dáta
Čistá štruktúra dát
column_namedata_typevalue
iduuid"prod_82a3..."
price_per_kgnumeric12.90
can_slicebooleantrue

Produkty, kategórie, objednávky, zákazníci, faktúry, predajne a doručovacie zóny majú vlastné miesto. Systém vie nad nimi robiť presné kontroly a výpočty.

Technický základ

E-shop, administrácia a API aplikačná vrstva namiesto skladačky pluginov

Farmhouse nestojí na krehkej kombinácii pluginov na zdieľanom hostingu. Verejný e-shop, administrácia a API aplikačná vrstva sú oddelené služby, ktoré sa dajú nasadzovať kontrolovane, testovať a v prípade problému rýchlo vrátiť späť.

Oddelené služby pre jednotlivé časti systému

API aplikačná vrstva, administrácia a verejný e-shop bežia samostatne. Úprava jednej časti tak nemusí automaticky zasiahnuť celý nákup.

Nasadenie bez výpadku

Nová verzia sa pripraví mimo živej aplikácie a až po kontrole sa prepne do produkcie. Ak sa niečo nepodarí, systém sa vie rýchlo vrátiť na predchádzajúcu stabilnú verziu.

Bezpečnostný audit v CI

Nasadenie obsahuje kontrolu závislostí, build aplikácií a typovú kontrolu. Problém sa má zachytiť skôr, než sa dostane k zákazníkom alebo tímu v administrácii.

Jasné rozdelenie zodpovedností

E-shop rieši nákup, administrácia prácu tímu a API aplikačná vrstva drží pravidlá objednávok, cien, faktúr a komunikácie. Každá časť má svoju úlohu a nemusí suplovať zvyšok systému.

Dáta pripravené na ďalší rozvoj

Produkty, zákazníci, objednávky, doručovanie, predajne a faktúry sú uložené v čistej databázovej štruktúre. Nové funkcie sa tak pridávajú nad dátami, ktoré majú jasný význam.

Kontrola nad prevádzkou

Systém nie je viazaný na uzavretý prenájom ani na náhodnú kombináciu pluginov. Farmhouse má vlastný kód, vlastné dáta a základ, ktorý sa dá ďalej rozvíjať.

Príprava na aplikáciu

Platforma pripravená aj pre mobilnú aplikáciu

Súčasťou návrhu bolo myslieť na to, aby Farmhouse neostal viazaný iba na web. Mobilná aplikácia môže používať rovnaké produkty, košík, zákaznícky účet, doručovacie pravidlá a serverový výpočet ceny bez toho, aby sa obchodná logika písala druhýkrát.

Rovnaký košík a hmotnostné produkty

Mobilný košík počíta s gramážou, krájaním, mletím a položkami podľa vybraných možností. Aplikácia tak vie rešpektovať rovnaký spôsob predaja ako web.

Doručenie podľa PSČ

Aplikácia má pripravenú kontrolu doručenia podľa PSČ a doručovacích zón. Zákazník si vie ešte pred objednávkou overiť, či je rozvoz dostupný v jeho oblasti.

Osobný odber a predajne

Nákupný tok počíta aj s osobným odberom, výberom predajne a kontaktnými údajmi pre prevzatie. Mobilný kanál tak používa rovnaké prevádzkové pravidlá ako web.

Zákaznícky účet a bezpečné prihlásenie

Aplikácia je pripravená na zákaznícke účty, profil a históriu objednávok. Tokeny sa ukladajú cez bezpečné úložisko zariadenia, nie do bežného lokálneho stavu.

Server počíta cenu

Mobilná aplikácia nemá rozhodovať o cene sama. Hmotnosť, položky, zľavy a výsledná suma sa potvrdzujú cez API aplikačnú vrstvu, aby web aj aplikácia používali jednu cenovú logiku.

Priestor pre ďalšie kanály

Oddelený e-shop, administrácia a API aplikačná vrstva umožňujú pridať mobilnú aplikáciu bez prepisovania jadra systému. Web, aplikácia aj administrácia môžu stáť nad rovnakými dátami.

Otázky a odpovede

Čo bolo pri projekte dôležité

Máte ďalšie otázky?

Ak ste nenašli odpoveď na to, čo vás zaujíma, neváhajte nám napísať na [email protected].

[email protected]

Farmhouse potreboval mať pravidlá obchodu pod kontrolou: produkty predávané na váhu, prípravu položiek, rozvozové zóny, odberné miesta, zákaznícky účet aj doklady. V pôvodnom WooCommerce sa tieto časti skladali z pluginov a vlastných úprav.

Administrácia zobrazuje položky, spôsob prípravy, poznámky, stav objednávky, prevzatie a doklady na jednom mieste. Tím tak nemusí skladať informácie z viacerých častí systému.

Produkty, kategórie, predajne, sviatky, doručovacie zóny, oznamy, kupóny a sadzby DPH sú oddelené od vizuálnej časti e-shopu. Bežné prevádzkové zmeny tak nemusia znamenať úpravu kódu.

Kupóny sa nekombinujú bez kontroly so všetkým ostatným. Systém overuje platnosť kupónu, limity použitia, minimálnu hodnotu objednávky, produktové a kategóriové pravidlá aj kompatibilitu so zľavou za osobný odber.

Farmhouse používa transakčné e-maily pre potvrdenie objednávky, zmeny stavov, zrušenie, dobropis aj zákaznícky účet. Faktúry a dobropisy sa generujú z finálnych dát objednávky, nie z aktuálneho katalógu.

Pri Farmhouse sme potrebovali riešenie, ktoré nebude len pekne vyzerať, ale bude rozumieť tomu, ako reálne pracujeme s objednávkami, hmotnosťou a prípravou mäsa. Nolimeo pochopilo naše procesy a pretavilo ich do funkčného e-shopu.

Farmhouse Logo

Marián Petrík

Konateľ, sieť predajní Farm House

Máte záujem posunúť váš projekt vpred?