Skip to main content

Beer retail · Online shop and stock

Zoe's Beer

The shelf of a Pittsburgh beer store, online, priced and counted by the pack.

Zoe's Beer interface

Case study detail

Built with

  • Next.js
  • FastAPI
  • PostgreSQL
  • Stripe
  • Nginx

What we covered

  • Online catalog
  • Categories and search
  • Pack level stock
  • Tiered pack pricing
  • Age checks
  • Stripe checkout

Zoe's Beer sells craft, domestic, import, and non-alcoholic drinks from a shop on Clairton Boulevard in Pittsburgh. The site puts the same shelf online. Customers browse by category, search, fill a cart, and pay by card, with pickup in store or local delivery at the end of it.

The problem

A beer shop does not sell one of anything. The same beer comes as a six pack, a twelve, a case, and a keg, each at its own price and its own count on the shelf. A shop template treats a product as one price and one number in stock, which either flattens that range or splits one beer into four listings that then have to be kept in step by hand.

What we built

The catalog is built around the pack rather than the bottle. One beer holds its pack options, each with its own price and its own count, and a listing shows the cheapest of them instead of a figure that is wrong for most sizes. Stock is held per pack, so the shop can mark one size low or sold out without hiding the beer. Categories and search read the same records. Age is checked on the way into the site and again at the till, and payment goes through Stripe.

The result

A beer is set up once, with a price and a count for each pack it comes in, and the shop, the category pages, and the search all read from that. A customer sees what is actually on the shelf in the size they want to buy.

Next project

Café 8848