01Problem
Melers Oy and Turun Suurpesula (TSP) sales reps need to produce accurate, branded proposals fast. TSP serves distinct industries — hotels, care homes, damage restoration, workwear, textile rental — each with its own pricing, VAT treatment, and selling points. A generic one-size proposal doesn't fit, and the current tool can't represent that.
As a Melers Oy / Turun Suurpesula sales rep, I want to pick the industry I'm proposing to so the pricing and selling points on the PDF are accurate for that customer — without the proposal taking hours to put together.
Constraints from the sales floor: reps sometimes need one-off items not in the standard catalog, sometimes need to tweak a section on the fly, and the whole thing has to stay fast — not a 2-hour job.
02Goals & non-goals
Goals
- Industry-aware: picking an industry sets pricing, VAT defaults, and selling points automatically
- Accurate, on-brand A4 PDF output, Finnish or English
- Pricing and copy editable by an admin, no code deploy
- Every proposal saved and redownloadable exactly as sent
Out of scope (this rebuild)
- Login / access gate — deferred to Phase 2
- Live sync against the B2B Hinnastot Google Sheet — pricing lives in an admin-editable catalog instead
- Server-side PDF generation — reuse browser print → save as PDF
- Languages beyond Finnish / English
03Slide-by-slide requirements
Seven slides in the proposal deck, in this order:
04Selling points by industry
Verified against turunsuurpesula.fi on 2026-09-09 — no invented claims.
| Industry | Selling points to use |
|---|---|
| Palvelutalot | ALV 0% as a viranomaisen myöntämä tukipalvelu-oikeus — direct cost saving. Frees care staff from laundry so they focus on care. Meets sosiaali- ja terveydenhuollon tekstiilihuollon vaatimukset. Hygiene bags for contamination risk; individual textile ID marking. |
| Hotellit | Scales up/down with seasonal demand, no fixed minimums. Optional linen rental — no inventory/storage burden. Named account manager, ~2h response. Transparent pricing, no hidden fees. ~2 business days to go live. |
| Hätäpesut | Pickup arranged in 1–2 business days. Quote within 12 hours. Most damage batches ready in 1–2 weeks. Industrial capacity for water/fire/smoke damage. Works directly with insurers and restoration firms. ⚠ Do not claim 24/7 or round-the-clock availability — TSP does not offer this. |
| Työasut / Vuokratekstiilit / Muu | Cross-cutting points: named service manager, flexible pickup/delivery scheduling, volume-based pricing, 16 years operational history. |
05Data model
Cloudflare Pages Functions + D1 — same stack as melers-erp / melers-crm-live.
06Redownload & admin
History: a proposal list view, filterable by rep / customer / date. Opening a past proposal re-renders it from its stored proposals + proposal_line_items rows — byte-for-byte the same as when created — and the rep hits print/save-as-PDF again. No separate PDF file storage needed.
Admin: a self-serve view, same pattern as buukkaus, for editing pricing_catalog rows and industry_content copy per industry and language. No redeploy required for either.
07Phase 2 — not forgotten
Login / access gate — Cloudflare Zero Trust OTP, same pattern as the playbook site, scoped to Melers/TSP + Askel emails. The tool ships in v1 without it (same posture as the current tool), but now holds real customer data, so this should not slip indefinitely.