Skip to content
Back to work
On this page
  1. The problem
  2. What I built
  3. Everything it does
  4. The result

Wholesale bakery · B2B ordering app · Buenos Aires · 2026

Orders that file themselves

I built Teia Bakery a wholesale ordering app. Each shop signs in with its tax ID, sees its own price list, and places the order; on confirmation, the PDF delivery note is generated and filed on its own.

The retail store of Teia Bakery runs on Tiendanube; I built their B2B wholesale channel.

“When I started Teia I thought it was just putting up an online store and that was that. I had no idea about the paperwork and the processes it would take, let alone that I would have to repeat them over and over.”

— Micaela · Teia Bakery

Forty shops ordering over WhatsApp

Teia sells wholesale to forty shops around Buenos Aires. Orders arrived over WhatsApp, in no particular order, got written down by hand, and ended in a delivery note that had to be typed one by one.

Every shop pays its own price: the outlets of one chain run on a different list from the rest. Holding that in your head, quoting prices all day, and not slipping on a delivery note was the invisible work that ate the hours.

The wholesale ordering app I built

I built an app that installs straight from the phone, with no App Store or developer account. There are two of them on the same site: the store for the shops and the panel for Teia.

A shop signs in with its tax ID and sees only its own catalog, at its own prices. It fills the cart live and confirms. On Teia's side a phone alert and an email come in, and the PDF delivery note is generated and saved, ready to share. No one types a delivery note again.

From the panel, Teia adds shops, uploads products with a photo, sets the two price lists, confirms or edits orders, and sees the history of each account.

Wholesale TEIA BAKERY

Our catalog

  • M 3-chocolate mousse x6 $27,000 Add
  • C Berry cheesecake x6 $22,800 Add
Your order 0 items
Total $0
Admin TEIA BAKERY
New order
TEIA-0042 new

Panadería del Sol · 30-71234567-4

  • 3-chocolate mousse x6$27,000
  • Berry cheesecake x6$22,800
Total$49,800
Delivery note ready · PDF
How an order lands in Teia: the shop fills the cart from its phone and confirms. On Teia's side the alert comes in and the delivery note files itself.

Everything the Teia app does

  • Private catalog: without an enabled account you see nothing, not even prices.
  • Sign-in by tax ID (CUIT), validated with Argentina's real check digit.
  • Two price lists; each shop sees only its own.
  • Live cart with the free-shipping minimum in view.
  • Automatic PDF delivery note on confirmation, filed and ready to share on WhatsApp.
  • New-order alert to the phone and by email, instantly.
  • Panel for orders, clients, products, categories, shipping, and the info shown to shops.
  • Loyalty discount applied by the server, never the browser.
  • Stock control: deducted on confirm, restored if an order is deleted.
  • Automatic mirror to Google Drive and a sheet with totals by month, client, and product.
app.teiabakery.com.ar/administradora
TEIA BAKERY Admin
📁 Delivery notes in Drive📊 Google Sheets🛟 Support🔒 Log out
  • TEIA-0041 · pending · Panadería del Sol · $49,800
  • 1× Mousse 3 chocolates (x6) $27,000 · 1× Cheesecake frutos rojos (x6) $22,800
  • Under $140,000: shipping $8,000 · prior balance $12,500 · total $70,300
  • TEIA-0040 · confirmed · Chungo · Centro branch · −10% loyalty · ✓ Delivery note
Confirm ✓✏️ EditLoyalty discount📤 ShareDelete

Confirming deducts stock and generates the delivery-note PDF in one shot. The order is claimed atomically as it moves from pending to confirmed, so a double click never deducts stock twice.

  • Panadería del Sol · CUIT 20-30111222-3 · General wholesale · Enabled · 8 orders
  • Chungo · Centro branch · CUIT 27-34222333-6 · Chungo (VIP) · 12 orders
  • Almacén Belén · CUIT 30-71098765-4 · Disabled · no password
  • History: TEIA-0041 · confirmed · −10% · $49,800 · 📄 delivery note
View account ▾💬 WhatsAppRequire passwordDelete

The second-factor switch has an anti-lockout guard: before turning it on it names, one by one, the enabled accounts with no password that would be locked out.

  • Mousse 3 chocolates · General · Desserts · x6 · $27,000 · Stock 24
  • Cheesecake frutos rojos · General · Cakes · x6 · $22,800 · Stock 0 · out of stock
  • Pavlova individual · General · Desserts · x12 · $30,000 · Stock 4 · low stock
  • Mousse 3 chocolates · Chungo (VIP) · Desserts · x12 · $52,800
✂️ Reframe photoEdit⧉ Copy to Chungo (VIP)Delete

It flags in red when a product is repeated in the same list, and deleting never loses history: it unlinks past orders first, then removes it.

  • Name: Tarta de verdura · Category Savory · Pack x6 · Price $19,200 · Stock 12
  • 👁 Live preview: this is the card the shop sees as you type
  • Photo: square crop, zoom with the slider, wheel or pinch
📷 Upload photoUse this cropSave productClear

The cropper is hand-written on canvas because the CSP blocks CDN libraries, and the photo is compressed in the browser before it uploads.

CakesDessertsSavoryGluten-free
Add categoryDelete

They fill the Products dropdown and are the sections the client sees. Deleting one never touches the products already assigned to it.

  • Payment methods? Cash or bank transfer. Prices already include tax.
  • Free shipping: orders from $140,000 in CABA and Zona Norte.
  • How long do they last? Frozen 6 months at -18°C. Fresh 3 days refrigerated.
AddSaveDelete

It is the only source the catalog and the order-confirm screen read: edit one line and every client sees it right away.

  • General wholesale: free shipping from $140,000
  • Chungo (VIP): free shipping from $250,000
  • Edit: bump general from $140,000 to $160,000 and hit Save
Save

It is the cart's informational threshold, it never blocks an order, and you change it yourself with no redeploy and no touching Vercel.

One panel where Teia runs the whole wholesale business: orders, clients, catalog, prices, and shipping, with no one in the loop.

Forty shops, ordering in ten seconds

The forty shops that buy from Teia now place their orders in the app. It used to mean sending a message and waiting; now an order takes about ten seconds, because each shop sees its own price on screen and nobody has to hold anything in their head.

I handed it over complete: code, database, and panel, with a usage guide and runbooks for rotating keys and handling an incident. Before handoff I ran my own OWASP-aligned security review.

Teia runs the day to day: changes a price or confirms an order without calling me.

“For a small-business owner like me, having 70% of the tasks automated and trusting they are done right is what lets me sleep at night, make the most of my time and build the brand.”

— Micaela · Teia Bakery

Tell me what's eating your day

If any of this sounds like yours, tell me how you're handling it today and I'll tell you what can come off your plate.

New message

To: Federico Medinilla

Subject: Orders that file themselves

Two or three lines is plenty. Screenshots or an example can come later.

It comes straight to me. No mailing list.