ONLINE STORE AND WEB APPLICATION
SmartFOOD
An online store and back office for a meal delivery service, where a pricing engine, automatic recurring payments, a customer area and reporting work as one system.
- Client
- SmartFOOD
- Sector
- Meal delivery
- Website
- smartfood.ee

More than an online store
SmartFOOD delivers calorie-controlled meals to homes and offices. Here the website is not just a shop, because every order feeds straight into the work of the kitchen, the courier and the payments. We replaced the old system without the business stopping for a single day.
The challenge
A meal package is not an ordinary product. Its price and delivery days depend on many interlocking rules, recurring orders had to renew and pay for themselves, and years of orders, packages and invoices had to come across to the new system without loss.
What made it technically demanding
- A server-side pricing engine. The server always calculates the price and the cart re-checks everything. The calorie calculator gives exactly the same result as the old one, verified by a test across 14,400 combinations.
- Our own recurring payments. The official payment plugin cannot charge a saved card later on its own, so we wrote merchant-initiated transactions (MIT) directly against the EveryPay API. They are protected against double charges, with an automatic check for payments left halfway.
- A customer area. Customers manage their own pauses, delivery changes, menu, invoices and recurring order.
- Automated reporting. 19 reports as XLSX, CSV and PDF. The most important ones are scheduled and go to the right people on their own.
- Import from Excel. Weekly menus are read straight from the kitchen's own files. The import recognises three different file layouts and shows a preview and any errors before saving.
- Bilingual, with SEO. Estonian and English through WPML, structured data, llms.txt for AI search, and a page cache.
- Tests and CI. GitHub Actions checks every change, and a money test compares a real cart with what the customer was shown.
- A move with no downtime. A script, rehearsed twice beforehand, brought every package, order, invoice and user across. The maintenance window lasted four minutes.
What changed
- Ordering and payments run on their own - recurring renewals included.
- The manual work is gone - reports and menus move through the system by themselves.
- Nothing was lost - the entire history came across.
Technical build
Technology used
- WordPress, custom theme
- ACF Gutenberg blocks
- WooCommerce
- WPML, Estonian and English
- EveryPay (LHV) recurring payments (MIT)
- Custom REST API
- PhpSpreadsheet, XLSX, CSV and PDF reports
- WP-CLI
- Vite and Tailwind CSS
- GitHub Actions CI
Services
Services used on this project
Let's begin
Got something similar in mind?
Tell us about your idea, or the site you already have. We'll help think through the right technical direction and the next steps.