The problemWhere it started
Urban Design supplies premium HoReCa brands (Villeroy & Boch, RAK, Schönwald, Bormioli) to restaurants, hotels and bars across Croatia. The business ran on a paper catalog, a phone, and Sanja's inbox. Every order required two or three calls to confirm specs, prices, and stock. There was no way for a chef in Dubrovnik to see what was on the shelf at 11pm before a Monday opening, and no way for the owner to update prices without calling a developer.
ApproachWhat we did
- 1
Bilingual (HR / EN) webshop with category-led browsing and a single shared cart, so a buyer can flip between languages mid-purchase.
- 2
Stripe Checkout with server-side amount re-verification. No order is written until the cart total matches what Stripe charged.
- 3
Custom admin panel: products, orders, messages, subscribers, catalogs, activity feed. Owned outright, no CMS rental.
- 4
Editorial card design with brass-on-warm palette and clay-pill UI, so the catalog reads like a lookbook, not a Shopify theme.
- 5
Croatian fiskalizacija (Swing-Q) wired into the order pipeline so legal-grade receipts go out automatically.
The resultThe numbers after launch
From the buildWhat we shipped
Editorial product grid
Swatch-only cards with always-on badges. The information panel slides in on hover. No clutter at rest, full detail on demand.
Owner admin panel
Single screen for orders, low stock, unread messages and revenue. The owner runs the shop without ever opening Supabase.
Verified Stripe checkout
Cart total is recomputed on the server before the order row is written. Stripe webhook → amount check → fiskalizacija → email confirmation.
We used to confirm every order by phone. Now they land in the inbox already paid, already fiskalizirano, already labeled by venue.