Beverage industry / Wholesale distribution
Three bottling plants, one wholesaler, one platform
B2B ordering account · Production orders · Purchase requisitions · Piece-rate pay
Three mineral water bottling plants and the wholesaler distributing their output ran on paper. The workflows of all three plants were recorded and brought onto one shared model first — only then was the platform built: the outlet orders for itself, documents are raised in the same transaction, stock triggers production and purchasing, and piece-rate pay keeps up.
Starting point
Three plants bottled mineral water; a beverage wholesaler distributed their output to retail outlets. Field staff drove to the outlets or phoned them to take orders. The order went to dispatch, where someone checked by hand what was in stock and built the next day's delivery route.
When stock ran low a production order was raised; when material was short, a purchase requisition went to purchasing. Both on paper, with the documents handled manually. The consequences were the usual ones: no shared picture of stock, delay between order and production, transcription errors between departments, and a process that depended on particular individuals.
The first step was not code. The workflows of all three plants were recorded and brought onto one shared model: order → reservation → picking → delivery → stock replenishment → production → material issue → purchasing. Turning three separately grown operations into one model was the heaviest part of the project — and the precondition for a single platform being able to serve all three sites.
Project scope
- Internal systems per plant and for the wholesaler, with departments as first-class areas
- Plant: material store, finished-goods store, production, prepared bookkeeping
- Wholesaler: field sales, dispatch, fleet
- Public catalogue with a B2B account per retail outlet
- An unbroken chain from order to purchase requisition with the supplier
- Piece-rate pay from actual output, synchronised with the accounting software
System architecture
The platform follows the real path of an order. Each step produces the next one instead of leaving it to a person.
- B2B ordering account — An account per outlet: catalogue, ordering, order status, order history, and invoices and delivery notes inside the same account.
- Reservation and picking — The system checks stock, reserves goods against the specific order and builds the picking order, distributing deliveries across driver routes.
- Production order — When stock falls below its threshold, a production order is raised: quantity, material required, and the issue order for the material store.
- Purchase requisition — If material is short, the purchase requisition to purchasing follows from it.
- Piece-rate pay — On closing the production order, output, the workers involved and the piece rate are settled; current earnings are visible in the system.
- Fleet — Vehicles, fixed routes with assigned outlets, repair history with documents, and maintenance due dates.
Core functions
Documents are born in the system, not in an inbox
The invoice and the delivery note are raised in the same transaction that creates the order, and appear immediately in the outlet's account. Prepared bookkeeping receives the same data and is synchronised with the accounting software. This was built in 2015 — years before structured electronic invoice receipt became mandatory for German B2B companies.
The outlet orders for itself
The outlet's purchasing staff order through their own account instead of waiting for a call or a visit. That did not make field sales redundant; it freed them — away from routine ordering, towards winning new outlets.
The order becomes the route
On arrival the system checks stock, reserves goods against the order and distributes deliveries across drivers. Dispatch no longer decides what is possible — it confirms it.
Stock triggers production and purchasing
When stock drops below its threshold, the production order is raised automatically, including the quantity to be issued from the material store. If material is short, the purchase requisition follows. Selling turns into procurement without anyone shouting across the corridor.
Piece-rate pay that keeps up
For piece work, output, the workers involved and the applicable rate are settled when the production order closes. The worker sees current earnings close to real time; bookkeeping receives the same figures.
Degressive commission instead of a protected patch
The moment an outlet started ordering for itself, a classic revenue commission cost the field salesperson money — this is exactly where B2B self-service usually fails. Commission was therefore made degressive: high for a newly won outlet, decreasing as it moves into routine. Sales no longer stood against the platform.
Technical implementation
Backend
- Laravel (PHP)
- REST API between plants, wholesaler and the B2B account
- MySQL data model for stock, reservations and orders
- Role and department model per site
Frontend
- Vue.js for the internal interfaces
- Retail outlet B2B account
- Lists and statuses instead of spreadsheets
Documents and bookkeeping
- Invoice and delivery note out of the ordering transaction
- Prepared bookkeeping inside the system
- Payroll and document data synchronised with the accounting software
Result
The path from order to purchase requisition runs with no paper step in the middle. The warehouse is operated technically — receiving material and issuing goods — instead of being re-negotiated every day.
The client is not named. What is described is the mechanics of the delivered platform; statements about effect come from the client and are not independently measured.
- One shared process model for three plants that previously worked differently
- Order, reservation, picking, production order and purchase requisition as a single chain
- Invoice and delivery note from the same transaction, straight into the outlet's account
- Running piece-rate earnings in the system, the same figures in prepared bookkeeping
- Reported by the client: more incoming orders; the warehouse run by one person whose work was limited to receiving and issuing
- Reported by the client: an end-to-end digital chain of this kind was unusual for companies of this size in the mid-2010s