A complete online business for Royal Tea & Coffee
We designed, engineered and run the online shop and back-office of a specialty tea and coffee house in Iași. One platform covers the storefront, card payments, ERP sync, Romanian e-invoicing, a private AI assistant and a theme the client restyles without a developer.


Real screenshots, English storefront. Hover the browser to pause the scroll.
- 7000+
- Automated tests
- From unit tests to a dedicated penetration-testing suite
- 51
- Content blocks
- The team composes every page from them, without a developer
- 16
- AI conversations
- Served at once from a single self-hosted GPU
- <50ms
- Filter feedback
- Perceived response while browsing the catalogue
Take a well-loved shop online without adding work
Royal Tea & Coffee sells close to 200 teas, coffees, sweets and pieces of teaware from its shop in Iași, with prices and stock kept in the company's Sedona ERP.
Selling online meant pricing every product by weight and pack, accepting Romanian card payments, issuing invoices that satisfy ANAF, and keeping the website in step with the ERP without retyping anything.
One platform for both sides of the counter
We built a bilingual storefront that works as well on a phone as on a desktop, and a back-office where staff edit every page, run promotions and newsletters, answer support tickets and export invoices.
DDNET owned the whole engagement: product design, engineering, integrations, hosting and day-to-day operations. The project ran within the company's EU-funded digital transformation programme under Regio Nord-Est 2021–2027.
Engineered for every step of the purchase
Scroll through the shopper's journey, or pick a step.
Filters that answer instantly
Category, collection, rating, review and price filters narrow almost 200 products at once. The interface responds in under 50 ms while the server confirms, and a smart sort puts the products the team wants to feature first.

Every variant priced and in stock
Each tea or coffee comes in several weights, grinds and packs, each with its own price. Shoppers see the VAT-inclusive price for the exact option they pick, whether it is in stock, and can ask to be told when it is back.

A cart that protects the margin
The cart shows the VAT breakdown, counts down to free shipping, takes vouchers and gift cards and offers gift wrapping. The server re-prices every line, so a tampered price is blocked and logged before it reaches checkout.

Checkout built for Romania
Guest or account checkout, for private customers or for companies with their fiscal code and trade register number. Payment by card online through ING WebPay or in cash on delivery, with every payment event written to a log nobody can edit.

A private assistant that only quotes real data
Signed-in customers ask for recommendations or the status of an order. The model runs on DDNET's own GPU and answers only through six read-only tools over the catalogue, the customer's orders, FAQ, blog and promotions. Product names become links generated by the server, and conversations are deleted after 30 days.

Recreated from the platform's assistant widget; illustrative conversation.
A back-office the team runs themselves
Everything lives in one admin, with roles that decide who can change what.
ERP import
Imports the Sedona ERP's exports by category. New products arrive unpublished for review, and copy the team wrote is never overwritten.
Price watch
Flags prices that stand out within their product group before they go live, so a typo can't sell a kilo of tea for the price of 50 g.
e-Invoicing
Produces invoices as UBL 2.1 XML in the CIUS-RO format of ANAF's e-Factura, numbered from a gapless yearly series.
Promotions
Percentage, fixed and free-shipping vouchers, timed campaigns, usage limits and gift cards.
Newsletter
Double opt-in subscriptions and scheduled campaigns, sent from a background queue so the shop never slows down.
AI product imagery
Generates images, retouches photos or places a pack into a new scene, with approval before anything is used.
Support and reviews
Support tickets, review moderation and a complete order history with an audit trail.
Pages and content
Pages assembled from 51 content blocks, with every interface label editable in both languages.
The client restyles the shop without a developer
An admin opens a panel on the live site and picks a seed colour. The platform generates a full light and dark palette in OKLCH and checks six text pairings against WCAG AA. Two font slots, menus and body text, choose from six families. Changes preview instantly and publish to every visitor in one click, with no rebuild.
- Starting palettes
- 6
- Colour tokens
- 12 per theme
- Font families
- 6, in 5 weights
- Saved presets
- Up to 10
The storefront in the screenshots above runs a custom indigo theme the client published this way. Try the options on the right: the colours are the generator's real output.
Colours & fonts
Custom palette published on the live site

Recreated from the platform's on-site widget.
Your systems in, finished orders out
The platform sits between the tools the business already uses and the people who buy from it.
- From the ERPProducts, prices and stock arrive from Sedona and are checked before they go live.
- To the shopCustomers browse and buy on the web or their phone, in Romanian or English.
- Through the bankCard payments go through ING WebPay, and cash on delivery is supported too.
- Into the booksEvery order gets its invoice in ANAF's e-Factura format and a private tracking page.
- From the ERP
Products, prices and stock arrive from Sedona and are checked before they go live.
- To the shop
Customers browse and buy on the web or their phone, in Romanian or English.
- Through the bank
Card payments go through ING WebPay, and cash on delivery is supported too.
- Into the books
Every order gets its invoice in ANAF's e-Factura format and a private tracking page.
Built to be trusted
Secure
- Customer names encrypted at rest
- Every request rate-limited, origin-checked and size-capped
- Payment and invoicing features switch off safely if misconfigured
AES-256-GCM · 67 security test files
Reliable
- Database replicated across three nodes
- Releases built next to the running site and swapped in instantly, with automatic rollback
- Scripted backup and restore
MongoDB replica set · atomic deploys
Proven
- More than 7,000 automated test cases
- A dedicated penetration-testing suite
- Every change passes dev, demo and staging before production
unit · security · Cypress · Playwright
Chosen for the long run
| Layer | Technology | What it means for the client |
|---|---|---|
| Storefront | Next.js 16 · React 19 · Tailwind CSS 4 | Fast pages that rank well and work on any screen |
| Content & data | Payload CMS 3 · MongoDB replica set · S3 storage | One admin for everything, with no single point of failure |
| Look & feel | Theme customizer · OKLCH palettes · 6 font families | The team restyles the shop and checks contrast without a developer |
| Commerce & fiscal | ING WebPay · UBL 2.1 / CIUS-RO · Sedona ERP | Payments, invoices and stock that match the books |
| AI | Qwen 3.5 self-hosted on vLLM · OmniGen imagery | Assistance and imagery without a third-party AI provider |
| Delivery | Bun · Gitea Actions · Cypress · Playwright | Every release tested and rolled out without downtime |
Ready to take your shop further?
We connect storefronts to ERPs, banks and ANAF, and keep them running long after launch.










