Pickup days follow lead time
Each product has a lead time. The earliest day follows the product in the cart that takes longest.
Patisserie website and preorder system
A German-language patisserie website with a product catalogue and a preorder system that computes valid pickup days and times from each product's lead time, plus a custom admin for the shop team.
The first viewport: the patisserie's promise, a purple glazed tart, and one clear action to preorder.
Three steps, no phone call: choose, pick a day the shop can actually deliver, collect at the café.
Nine tarts, each with its price and lead time, and a flag on those that can be ordered directly.
Price, lead time, ingredients and allergens on one page, with a quantity limit per order.
The summary states how the earliest pickup day is derived from the lead times in the cart.
The earliest valid day is flagged, later days follow, and half-hour times appear for the chosen day.
Custom cakes start as a non-binding request: choose a type, add details and contact data, review, send.
The same journey on a phone: homepage, two-column catalogue and product page.
Each product has a lead time. The earliest day follows the product in the cart that takes longest.
Days and half-hour times are computed from the opening days.
The Wochenend-Früchte are collected on Friday, Saturday or Sunday and reservable from Wednesday.
Choose, describe, add contact data, review. The request is non-binding.
Staff decide on each order and the customer is informed by e-mail automatically.
The admin produces invoice PDFs for orders.
Decisions we made
Every product carries its own lead time, and the server computes which pickup days and half-hour times are possible from the longest lead time in the cart and the opening days.
The customer only sees slots the shop can honour, so an impossible request cannot be submitted. The cost is that the rules live in one server-side engine that must stay correct, which was accepted because the alternative was the manual back-and-forth the project set out to remove.
Payload CMS 3 provides the data model, the API and the admin foundation, but the admin the shop team uses is custom-designed for orders, products, opening hours and invoices.
The stock screens are generic, so the admin was designed around the tasks the shop team actually performs: handling orders, maintaining products, setting opening hours and issuing invoices. The tradeoff is more interface code to maintain than a stock admin, in exchange for a tool that fits the work and runs on a phone, tablet or laptop.
All amounts are handled as integer cents, which removes floating-point rounding from prices and totals.
When an order is submitted it is stored as a frozen snapshot of what was ordered, so later changes to the catalogue do not rewrite an order that already exists. The tradeoff is that an order carries a copy of the data instead of references to live products, which is the point: the order stays what the customer saw.
Contact
For professional opportunities, collaborations, or selected freelance work.