PóloForma
A print-on-demand webshop with its own designer: printed products derive their availability from base-product stock, so nobody can buy what is not there.
About the project
In a print-on-demand shop the product you buy is not in stock. If somebody orders a t-shirt with their own photo on it, at that moment the t-shirt does not exist yet. What exists is a blank white t-shirt in size L, and there is a finite number of those too.
The whole PóloForma shop is built on that sentence, and it's exactly what an off-the-shelf system can't do. When I first looked at the job I assumed the designer would be the hard part. It was not.
What the customer sees
You pick the product, upload your image or write your text, place it, and see what it will become. The designer is not a module of the webshop but one of 2 separate applications, because it has a different job: the shop has to sell, the designer has to show quickly and accurately what the print will look like. Split apart, both got better.
The range has long been more than t-shirts: mugs, engraving, puzzles, mousepads, embroidered plush, so 6 different product families. The same logic applies to all of them, only the base product differs.
The stock that is not where you look for it
The hard part is the arithmetic behind it. A printed product's stock is not its own, it belongs to the base product. If the white t-shirt runs out in size L, then in that second every printed variant built on a size L white t-shirt runs out too, no matter how many hundreds of designs sit on top of it.
So we wrote our own stock handling for it, which keeps the inventory of the base products and derives the availability of the printed ones from that. On an order the base stock drops, on a cancellation it comes back. As a customer you see none of this. Only that you cannot order something that is not there, and that you do not get a phone call afterwards saying it is off.
Why this does not fit in a box
The stock logic of off-the-shelf shop engines starts from the assumption that what you sell is what you store. Here, though, the number of products and the number of raw materials are 2 different orders of magnitude: every base product generates a multiple of purchasable variants by size, by colour and by design. You keep stock on the raw materials and show availability on the many printed products.
This is the same kind of problem as the pricing tiers in the Pólónagyker case study: what decides is not how many features a system has, but whether your business logic fits inside what it can do.
Stock first, everything else second
If your product is personalised, solve the stock question before the order, not after it. The "sorry, it ran out" e-mail after a purchase is the most expensive message a webshop can send: you lose the sale and the trust in one go.
And if you sell a great many variants from few raw materials, do not try to track the variants. Track what you actually have a finite amount of, and calculate the rest from it. If you are thinking along these lines, our services page shows how we usually start.