
Six months inside a factory
Made-to-order product configurator
A platform for a glass and mirror manufacturer. Thousands of constraints, five roles, orders you can hand over by power of attorney, and orders made of parts.
- Product design
- UX architecture
- Domain research
What this is
A glass and mirror factory: tempering, laminated glass, bevels, staircases, made-to-order panels. The job was to get all of it online so people could price the work themselves instead of leaving a phone number and waiting for a sales rep to call.
By the owner’s own estimate, Zakhar reckons the company holds around 30% of the Moscow market. That’s his figure and I’m quoting it as his.
How this was made
Zakhar turned up with a job that wouldn’t fit inside a landing page: he wanted a marketplace. The first thing he did was take me to the factory. I went, shot the shop floor and the material, and after that the calls started.
Six months of them, two or three hours a day. Zakhar talked me through the constraints and the quirks of production, showed me what goes to the shop floor and how, and what he was about to change. We built the configurators and the mechanics together.
He wrote the knowledge base and the compatibility tables. The domain model isn’t mine. My part was to pull out what nobody had written down, learn it myself and turn the rules into an interface. What is shown here is about ten percent of the business logic.
Shooting the factory
I drove out to the factory and shot it myself, drone and all. The company had no material of its own, and there’s no point showing a configurator away from the shop floor, because the whole thing is about what happens there.

The warehouse from above. Glass is stored here in sheets and goes to the shop floor through an opening in the wall, lifted by an overhead crane.

The shop floor. Glass travels upright and lives on A-frames.
Glass is hard to photograph
A clear sheet photographs as empty space, and the difference between low-iron, tinted and frosted only shows through whatever is standing behind it. A catalogue where you can’t tell one material from another has nothing to sell.
We built a shooting set, cut samples and spent several weeks with a photographer: tuning the light and choosing what to place behind the sheet. The dried flowers and the brick wall work as a measuring instrument here: transparency, diffusion and colour rendering all read against them. Every sample was shot with its own tag: thickness and type.

Low-iron. The sheet is almost invisible, the petals behind it neither darken nor turn green. That is how colour rendering gets checked.

Tinted. The same bouquet goes graphite behind the sheet. You can see how much light the material takes.

Mirror. The set was arranged so that part of it lands in the reflection. Without that a mirror reads as a grey rectangle.
What the machine accepts
I went out to the cutting machine and photographed the operator’s screen to find out where an order actually ends up. Turns out the machine won’t take arbitrary geometry at all: it has a catalogue of templates with codes, and each one comes with its own set of letters.
On the screen: template S407, an irregular quadrilateral with acute and obtuse angles, and five numbers: L, H, H1, L1, L2. The machine needs nothing else from the product. That set the language of the configurator: you pick a shape and type the sizes into fields, and what comes out is a template code and those same five values.

The shape catalogue on the left. Circles, ellipses, rectangles with cut-outs, curves, steps. Anything missing from that list can’t be produced, and the configurator had to know that before the customer did.
Shape drawings
I photographed every core shape off the machine’s screen and redrew all of them for the site. This is where the trigonometry came in. To work out the area of a product, and the price from that, those letters have to become a formula, one per shape.
The fields on a drawing are exactly the values the machine takes. The caption under each one is the name of that shape inside the machine, the same code the operator picks off his own list.
Competitors don’t calculate
Made-to-order glass is still sold through sales reps. The calculators on industry sites are guesses: you type in parameters, get a range and leave your phone number anyway. From there the order goes by hand, through spreadsheets and approvals.
At Steklo24 the calculator did the real arithmetic even in the old version of the site. That version is nearly ten years old and by industry standards it is still one of the most capable ones out there. The business outgrew it, the requirements grew with it, and the rebuild started from that point rather than from nothing.

The old version. Nine parameter cards, price and weight bottom right. This is where we started.

The new version. Pricing moved inside the product card. The next block takes it apart.
The new version
Pricing stopped being a page of its own and moved into the product card. You pick a material and see straight away what can be done with it, what it costs and when you’ll get it.

Every material has its own set of permitted operations. Red means physically impossible, and it shows before you start building the order.
Four ways into an order: your own sizes, a whole sheet, half a sheet, or booking a surveyor. All four used to lead to a sales rep.
Price, weight and lead time are calculated on the spot. So is the discount, on its own line.
The shapes come from the machine catalogue. Everything sitting here is something it can actually cut.
Dimensions are labelled with the same letters the machine accepts: L, H, L1, L2.
Additional processing
Anyone can order a rectangle a metre by a metre and a half. The trouble starts once bevels, drill holes and cut-outs come into it. They don’t always get along, and what goes with what depends on the material and how thick it is.
A bevel can’t be wider than the glass is thick. A drill hole can’t land on a bevel, or the sheet cracks right there on the machine. All of that gets worked out in the browser while you’re putting the order together, and only a valid, paid order reaches production.

Sandblasting is unavailable for this material and it says so immediately. The set of operations is rebuilt around the glass you picked.
The drawing assembles as you go: axes, dimensions, numbered corners. Every offset is measured from them.
A 2 mm bevel, minimum 4 mm clearance between it and a drill hole. The rule sits next to the drawing instead of hiding in a footnote to the price list.
A hole landed on the bevel. The sheet would crack on the machine, so the order goes no further until it is moved.
A custom hole is defined by diameter and X and Y offsets from the bottom left corner. Exactly the values the machine accepts.
Nine standard cut-outs: cabinet hinge, fitting, shower connector, socket. Each with its own geometry.
A cut-out has its own set of fields: hinge size, position, offsets from the same corner.
Cart
Then checkout, four steps. In the cart every line carries its own lead time, and you pick it yourself instead of a sales rep picking for you. Urgency moves the price both ways: pay extra for speed, take a discount for waiting.

Weight, total, discount and promo code update live. The weight is there because delivery depends on it.
The price drops with quantity, and the thresholds are written right on the line. You can see that five is better value before asking anyone.
The urgency switch sits on every line separately. An order is rarely needed whole and at once, and the price follows what is actually urgent.
On a large total the site offers to make the order cheaper. That is a way into a conversation about a personal discount.
How to receive it
The lines of one order aren’t ready at the same time. So the order splits into shipments. Take it all at once and wait on the slowest line, or take things as they come off the floor.
The glass is wanted by 8 November, the mirror by the 20th. Two shipments, each with its own collection method, date and delivery cost.

One order, two shipments or three. You decide what matters more, speed or a single visit from the truck.
Each line has its own lead time and its own shipment. A colour mark shows whether production is rushed, standard or deferred, and the date is visible at once.
Three ways to receive it, with prices: delivery to site, pickup from the factory, pickup from the showroom. Chosen per shipment.
Shipment date and delivery cost. The calendar only offers days by which the line will physically be ready.
A representative on site. Glass is often received by a foreman or a designer rather than the buyer, and that is a field here, not a call from the driver.
Payment
Payment, and handing the quote on. A finished order can be saved or passed along as a link. An interior designer puts it together, sends it to the client, and the client pays.
Nothing reaches production until it’s paid in full. Card, cash, or an invoice if you’re a company.

A quote is saved under its own name and handed over as a link. The partner account grows out of this: the designer prices it, the client pays.
The whole order in one list: what goes where, by which method and on what day. The last check before paying.
Card, cash or a company invoice. Paying by card puts the order into production immediately, without waiting on a bank transfer.
Order created
The last screen. Order number, a QR code for instant bank payment, and the addresses you can collect from. The fact that an unpaid order never reaches production is said right here, not in an email later.

A QR code for instant bank payment. You pay from your phone without entering a card or waiting for an invoice.
The order exists but is waiting for payment, and it says so in red in the most visible place there is. Next to it, a button to get a manager on the line.
Two pickup points with opening hours and directions to each.
A map right on the page. People drive to collect glass, and an address as text helps less than a pin.
Customer account
After checkout you land in your account. There are several dozen pages in there. I’m showing three that make the rest make sense.
The account holds a lot more than orders: companies, representatives, delivery addresses, refunds, surveys, samples, the price list. Everything that in an ordinary shop gets settled by messaging a sales rep.

Account number and personal discount on the first line. The discount is already applied in the pricing.
A referral link with a counter of people invited: in this trade customers come by word of mouth.
The whole account menu on the left. The counter on orders awaiting payment points to where something needs doing.
Four cards for what people come back for most. The rest lives in the menu.

Reasons are picked from a list. Glass breaks and arrives incomplete, and those cases are named outright instead of hiding under other.
Ticket history with status: answered, awaiting reply, closed. A person can see who owes whom a response.
Photos attach right here. Arguing about broken glass in words is useless, you need a picture.
The reply channel is the person's own choice: email, phone or both.

Search by delivery address, product code or order number, plus a filter by legal entity. A regular customer has dozens of orders.
Status reads at a glance: handed over, paid, when and by whom received, under which entity.
The answer to a ticket sits on the exact line it belongs to rather than in a separate section.
The courier and the power of attorney he handed the order under. Glass is often received by someone else, and a trace of that stays.
The order is split into deliveries exactly as it was assembled at checkout, and every line shows its own lead time.
Powers of attorney
The person who ordered the glass is rarely the one who receives it. A foreman or a builder is on site, somebody else takes the survey, and a fourth person pays. So an order carries powers of attorney: the buyer hands over the right to a survey and to collecting one specific order, by name and phone number.

A survey at an address and collecting an order are delegated separately.
Until a representative confirms themselves, the power of attorney opens nothing.
As many representatives as needed: a site usually has several.
Revoked ones go to the archive with a date and time. A trace of who had access.
How it is issued
One mechanic in four states. The buyer types in a name, a surname and a phone number, picks a channel (Telegram, WhatsApp or SMS) and ticks what they’re handing over: a survey at an address, collecting an order by number, or both at once.
The representative gets a link, confirms their number with a code from the message, and only then does the power of attorney go live. You can rewrite or revoke the permissions afterwards, which is what the third form is for.
What the representative sees
What the person being trusted sees. They can look at the order, but the collection QR code stays shut until they accept the power of attorney and confirm they’ve read the delivery terms.

They see the order but don’t become its owner: contents and dates stay out of reach.
The QR stays closed until they accept both the delegation and the terms for fragile freight.
The logistics contact with a direct line: glass moves by arrangement.
Shipping method and the production start date, so they arrive on time.
Ten working days of free storage. Stated on screen rather than in the contract.
Problems and solutions
The client wanted the site to grow up: to turn a landing page with a calculator into a proper platform. Orders stopped ending at the cart, and in came dozens of processing types, a production back office, a partner account and a drafting space for surveyors.
Everyone involved brings constraints of their own, and all of them have to hold at the same time. An order passes through every one of these people in turn, and it breaks wherever somebody wasn’t thought about.
Customer
Problems- Simple calculators can’t handle a complex product.
- The price turns out to be provisional.
- A sales rep is needed to place the order anyway.
- Real lead times and costs are hard to work out.
SolutionSelf-service pricing, checkout and payment online.
Designer or foreman
Problems- The project has to be approved by the client.
- Their own commission has to be added.
- An invoice has to be passed to the client.
- Survey, delivery and installation need coordinating.
SolutionA separate partner account that issues finished quotes to the client.
Sales manager
Problems- Complex composite orders.
- Control over discounts, mark-ups and margin.
- Joining production and logistics.
- Checking whether a thing can be made at all.
SolutionOne system for managing orders and production.
Surveyor
Problems- Non-standard geometry.
- Wall curvature and installation gaps.
- Cut-outs and abutments to the millimetre.
- Talking to the buyer, the designer and the builders at once.
SolutionA drafting space and survey tools right on site.
Delivery and installation
Problems- Lift and doorway dimensions.
- Working through authorised people on site.
- The risk of damaging something fragile.
SolutionDelivery constraints are accounted for while the order is still being designed.
Mirror panels
Then come the calculators for particular products. Each of them prices differently, and one shared calculator won’t cover it. Panels have their own cutting pattern, a backlit mirror has wiring, laminated glass has layers, a splashback has walls.
These are the short versions, the ones for an ordinary customer. Panels have a professional one as well, a good deal heavier, which I’m not showing here.

Six series, each with its own cutting pattern. A series changes how the sheet is divided, not how it is finished.
Inside a series, the model: Orion, Kristal, Kub, small and large Romb, Feniks. Shown as photographs, because words can’t carry a pattern like that.
The size is set for the whole sheet, from 300 to 3100 mm on each side.
Processing sits on top of the pattern: cut-outs, holes, sandblasting, backlighting, MDF backing, frame.
The sheet is cut into rhombuses and assembled back. Element size changes both the pattern and the number of pieces heading to the machine.
The site asks for a photo of the installation spot. A mirror shows whatever faces it, and without a picture the client can’t know what they will see.
Interior mirror
A backlit mirror has more in common with a light fitting than with a mirror. Past the glass there’s wiring: light colour, brightness, diffuser, and whatever switches it on.
Six steps, numbered in order, from the type of mirror to the way it hangs on the wall.

Nine types: bronze, graphite, silver, and a matte version of each. Picked by sample rather than by name.
Stock sizes or your own. Stock comes first because it covers most orders.
Edge profile: none, standard or Integro. Each has its own hint, because the names mean nothing to a customer.
The lighting in full: colour, intensity, diffuser and switch type, down to a motion sensor.
Hanging orientation. It decides how the cable is run, and it is asked before the order rather than during installation.
Laminated glass
Laminated glass is several sheets bonded with interlayer film. So the calculator shows you a cross-section instead of a product: which layer follows which, and what sits between them.
A mirror can go inside the stack too, and then which way it faces starts to matter. You can’t explain that on a flat picture, you have to build it.

The stack in cross-section: glass, film, mirror, film, glass. Every layer is edited separately.
A layer can be flipped, copied and moved up or down the stack. The order of layers is the product.
A mirror inside the stack has a face, and the line about the mirrored side facing up changes how the finished glass looks.
The edge is finished on the whole stack at once rather than on each sheet separately.
Films: clear 0.76 and 0.38, white opaque, coloured. Film thickness counts towards the total thickness.
Kitchen splashback
This is where the professional side starts. A splashback gets priced as a wall, not as a sheet, or more precisely as up to five walls at once: a kitchen is rarely straight, the sheets overlap in the corner, and glass has thickness of its own.
Walls in flats are crooked, so a section is often a trapezium or something worse rather than a rectangle. The frieze is a concept of its own: an extension above the hob so the glass sits a little higher.

One calculator serves seven materials and eight product categories.
Up to five walls in one order. A splashback on a single wall is rarer than one on three.
Sheet overlap in the corner: A over B or B over A. Glass has thickness, and which one covers which changes the size of both.
The shape of a section. Walls are crooked, so a splashback is often a trapezium rather than a rectangle.
Processing is set per section, with a button to apply it to all of them.
A frieze is an extension above the hob so the glass sits higher. It has its own dimensions and offset from the corner.
The surveyor page
Now the tools for people who work with glass every day. The survey page gets filled in on site, and half the fields on it aren’t about glass at all, they’re about how the product will ever get there.
The rest of the page isn’t here. There are two ways through it: type the dimensions into a form, or draw the survey by hand the way it’s always been done. We kept the second one on purpose, because experienced surveyors draw faster than they type.

A survey attaches to an order three ways: by phone, account number or request number. The surveyor may be holding any of them.
Up to five photos of the site. There are several sites a day, and a week later memory won’t tell them apart.
Who was present at the survey. A field for later: when the dimensions don’t add up, the conversation starts here.
Lift measurements across seven letters. Surveys like these build a database, and it says in advance whether a two and a half metre sheet will fit or get carried up by hand.
Preliminary survey and final one. A month of construction can add a couple of millimetres of plaster to a wall, and that is enough to ruin a sheet.
The survey sheet photographed on a phone. The buyer confirms it afterwards, and there is nobody left to argue with about dimensions.
Staircases and railings
The second professional calculator prices staircases. It builds up out of ready-made choices: flight type, fixing, geometry, with the dimensions typed in step by step.
My favourite thing about this project: a complicated staircase gets built out of cardboard first, fitted on site, and only then made in glass. One mistake in glass costs more than all the cardboard put together.

A flight is either a straight run or a balustrade section, and everything downstream follows from that.
Staircase types are shown as diagrams. The main ones are drawn, in life there are noticeably more.
Glazing positions are marked on the isometric view by number. That way there is no confusing which section is being priced.
Measuring is done either by the nosing or by the riser. Different values, and they must not be mixed up.
Every step has its own height and width, with fixing and joint checkboxes beside it. Glass isn’t made longer than three metres, so a long flight always has a joint.
A hand-drawn survey sheet. A staircase can’t be described in words.
The drafting space
The most professional part of the lot. The drafting space is there so a non-standard shape can be drawn on site, from a tablet or a laptop, down to the millimetre, and sent straight to production.
Every operation gets set by numbers instead of drawn by eye: an arc has a radius and a chord, a cut-out has offsets from the corner, a sandblasted line has a thickness. The machine won’t take it any other way.

Cut-outs. The catalogue on the right, the parameters of the selected one beside the shape. A red warning up top says the cut-out fails the placement rules.

Sandblasted lines. Frosted stripes are set by offset and line thickness rather than drawn by eye.

Arcs. An edge becomes an arc by radius and chord. Back to straight in one click.

Paint. A RAL colour with its number, the area set by dimensions and offsets from every edge.

Sandblasting. A frosted area as a whole, with offsets from four edges and an invert button.

Custom holes. Diameter and X and Y offsets. Alignment tools up top so the holes line up.
The manager control panel
The last screen is no longer a calculator. It is the panel a manager runs production from, and managers had a back office of their own long before me, for about ten years. The people working in it know it by heart, so this was a refinement job. Every change it needed, it had already been through before I arrived.
In here an order isn’t about picking a material. A row is a position on the shop floor, with its processing, tempering, coating, packaging, weight and lead time. This is where an order leaves for the factory.

A quote is named after the site and tied to the buyer. A manager runs dozens at once.
The order is split by room. Each group has its own total, weight and lead time, and ships separately.
A row carries everything production needs: processing, cut-outs, tempering, coating, packaging, weight, date.
Row icons: discount, attachment, a payment link for this position, rush it, duplicate.
Hardware catalogue with a finish filter: chrome, bronze, gold, black.
The total is counted in three units at once: money, square metres with kilograms, and days.

