neva-beauty-bot
Bot · Shop and booking
Task
The salon needed its own place inside Telegram: shop, services and booking together, on its own server, with payments taken directly and no payment gateways or banking APIs. The hard part is not the buttons: an item may be out of stock or made to order, so charging for a cart is not allowed.
What I did
I made an order a request rather than a receipt: a total appears only after the admin has marked every line — in stock, to order, unavailable, replacement — and the client has accepted the result. Unconfirmed lines never enter the total. Service prices are not copied but assembled by a script from the site's `prices.json`: a second copy of the price list does not exist in this project.
Result
Ready today are the catalogue, cart, confirmation flow, a PromptPay QR with the amount filled in, one-tap slip acceptance, procedure booking that reveals the address only after confirmation, holds with automatic release, and a waiting list. The project is covered by 25 tests, and the QR generator is verified against the reference Thai library on five data sets.