One Shop, Two Businesses: How an Amsterdam Florist Invoices Retail and Wholesale Without Losing Her Mind

By the InvoiceFlow team — published 16 June 2026 — 9 minute read

Sanne Visser's shop sits on a corner in De Pijp, three tram stops south of the Amsterdam canal ring, with buckets of ranunculus and eucalyptus spilling onto the pavement. To a passer-by buying a €12 bunch of tulips on the way home, Bloemwerk Visser looks like a small neighbourhood florist. It is. It is also a wholesale supplier with eleven standing weekly accounts — restaurants, two boutique hotels, and an events venue near the Rijksmuseum — that, in a normal month, bill more than the entire retail counter.

Sanne did not plan to run two businesses. She planned to run a flower shop. The wholesale side grew the way these things grow: a restaurant owner liked her window display, asked if she could "do something every Monday for the front of house," and within two years that one Monday order had become a calendar of recurring deliveries that quietly became the backbone of her revenue. The trouble is that retail and wholesale behave nothing alike, and for a long time she was running both out of the same shoebox of habits.

Two businesses that hate each other

Retail is cash, card, immediate. Someone walks in, picks up flowers, taps a card, leaves. There is rarely an invoice; if there is, it is a receipt printed in fifteen seconds. The customer's name does not matter. You will probably never see them again, and that is fine.

Wholesale is the opposite in every dimension. Restaurant De Kade does not pay at the counter — they pay on Net-30 terms, against an invoice, with a purchase-order reference their bookkeeper insists on, in their registered company name, sometimes querying a line item three weeks later. The Monday delivery has to go out whether or not Sanne has had her coffee. And the relationship is the whole point: a wholesale client lost is not €12, it is several thousand euros a year and the reputation that comes with supplying a well-known kitchen.

The mistake Sanne made for her first two years was treating these as one undifferentiated pile of "customers." Her client list was an alphabetical sprawl where a one-time wedding guest who'd ordered a single bouquet sat next to the hotel that ordered twice a week. When she needed to see "who owes me money," she had to mentally filter out the retail noise every single time. During quiet weeks this was annoying. During the spikes, it was dangerous.

The spikes are the whole game

Florists do not have a smooth year. They have a flat baseline punctuated by violent demand spikes, and the spikes are where the money — and the chaos — live.

Valentine's Day is the obvious one. In the four days around 14 February, Bloemwerk Visser does roughly what it would otherwise do in five normal weeks. Mother's Day is nearly as large. Then there is wedding season, May through September, when the events venue and private couples both want elaborate arrangements on tight timelines. Around these peaks, Sanne hires two seasonal staff, orders three times her usual stock, and works eighteen-hour days. The last thing she has time for during a spike is to puzzle over invoicing.

The brutal arithmetic of a spike is that the admin doesn't scale down when you're busy — it scales up. More orders means more invoices, more stock movement, more wholesale clients wanting a few extra arrangements "just for the holiday," more chances to send the wrong total to the wrong company. If your system only works when you're calm, you don't have a system. You have a fair-weather habit.

Step one: stop pretending it's one client list

The first thing Sanne did when she finally sat down to fix this — on a wet January evening, deliberately before the Valentine's wave — was split her clients by who they actually were. In InvoiceFlow she set up client groups for the two halves of her business: Retail and Wholesale. Then, because "Wholesale" was still too coarse, she used sub-categories under it: Restaurants, Hotels, and Events.

This sounds trivial. It changed how she sees her business. Now when she opens her client list she can filter to a group and immediately see only what matters. "Show me Wholesale → Restaurants" gives her the eleven accounts that pay her rent, with the retail noise gone. The app's advanced filters let her narrow further — by attributes and by relationships — so during the Valentine's run she can pull up exactly the wholesale clients with an outstanding balance and chase them, without scrolling past two hundred walk-in names she'll never invoice.

There is a dedicated client-groups management screen where she maintains all of this in one place, renaming and reorganising as the business shifts. When she landed a third hotel last spring, adding it to Wholesale → Hotels took ten seconds, and it inherited the way she thinks about that whole segment.

Per-client settings do the remembering for you

The groups are the map. The per-client settings are where the time savings actually accrue. Each wholesale account carries its own defaults — its currency (everything is in euros for Sanne, but the principle holds), and its own terms. Restaurant De Kade is Net-30; the events venue, which has burned her once, is Net-14 with a stricter late-fee policy. Because those preferences live on the client record, she is not re-deciding them every week. She is not re-typing the company's registered name and VAT number every Monday. The first time she set up each account properly was the last time she had to think about its boilerplate.

Step two: the Monday orders should invoice themselves

The single biggest lever for a business like Sanne's is the standing order. Eleven wholesale accounts want roughly the same thing on roughly the same cadence: the restaurant wants front-of-house arrangements every Monday, one hotel wants lobby flowers twice a week, the events venue wants a baseline weekly delivery plus whatever a given event needs on top.

These are textbook recurring schedules. Sanne set each standing order up once — the line items, the quantities, the price, the right client, the right terms — and told the app the cadence. Now the invoices auto-generate on schedule with correct sequential numbering, so her invoice numbers stay clean and gap-free even though half her billing happens without her touching it. The Monday restaurant invoice exists before she's unlocked the front door.

What this buys her is not just saved minutes, though there are plenty of those. It is reliability under load. During the Valentine's spike, the recurring wholesale invoices keep firing on their normal cadence in the background while she's hand-wrapping two hundred retail bouquets. The baseline business doesn't fall apart just because the foreground is on fire. She can deal with the extras — the holiday top-ups, the one-off event orders — as exceptions, because the routine is handled.

Recurring plus exceptions

Recurring schedules cover the predictable spine of wholesale. The variable part — a restaurant wanting double for a private party, the venue's wedding arrangements — Sanne invoices ad hoc, but still against the same well-organised client record. Because the client already exists with its terms and details, raising an extra invoice is fast: pick the client, add the line items, send. The recurring engine handles the heartbeat; she handles the spikes.

Step three: know what's in the bucket

Flowers are perishable and seasonal, and during a spike Sanne is moving stock she ordered weeks earlier at a price she committed to before she knew how the market would move. She uses InvoiceFlow's Inventory to keep a product catalogue with stock levels and low-stock awareness. It is not a substitute for the gut feel of someone who has bought flowers at the Aalsmeer auction for a decade, but it stops the small, expensive mistakes: promising the events venue forty stems of a peony variety she's actually nearly out of, or quoting a price on something she no longer carries.

Tying products to her invoices also means the wholesale lines are consistent. When Restaurant De Kade's bookkeeper queries "what was the €68 line on the third invoice in March," the answer is a named product, not a vague "flowers." Consistency in the line items is what makes a wholesale relationship feel like dealing with a supplier rather than a market stall — and it's what makes those Net-30 invoices get paid without a fight.

Step four: invoice fast when there's no time to invoice

The acid test of any system is the rush itself. On 13 February, with the shop three customers deep and the phone ringing, a wholesale client calls wanting an emergency hundred-rose arrangement for a corporate event the next morning. Two years ago this would have meant a scribbled note, a promise to "send the invoice later," and a fifty-fifty chance she'd forget the exact total by the time later arrived.

Now it's a thirty-second job on the phone behind the counter. The client already exists in Wholesale → Events with its terms. She adds the line item — the roses are a known product with a known price — and the invoice is raised, numbered, and ready, with the company's correct billing details already filled in. She can send it by email or hand the customer a clean PDF then and there. The order doesn't live in her head until midnight; it lives in the system the moment it's agreed.

That speed is the difference between a spike being profitable and a spike being a blur you reconstruct afterwards from memory and regret. Money agreed in the rush is money invoiced in the rush.

What the dashboard tells her in March

When the Valentine's dust settles, Sanne does the thing she could never do cleanly before: she looks at the numbers by segment. Because retail and wholesale are separated into groups, and because every recurring invoice is properly attributed, the Analytics view shows her revenue, paid versus outstanding, and her collection rate — and she can finally reason about her two businesses as two businesses.

The lesson she draws every year is the same and it still surprises her: the loud, exhausting retail spike around Valentine's produces a thrilling few days of takings, but the quiet, automated wholesale spine produces more profit across the year with a fraction of the stress. The walk-in customer is lovely and pays today; the restaurant on Net-30 is the business. Seeing that split clearly is what lets her decide where to put her energy — and increasingly, that's into nurturing wholesale accounts rather than chasing one more holiday rush.

The setup, generalised

If you run a business that is secretly two businesses — retail plus wholesale, walk-in plus contract, public plus B2B — the shape of Sanne's fix transfers directly:

  1. Split your clients into groups that match how they actually behave, with sub-categories where one bucket is too coarse. Retail and wholesale are different species; stop storing them in one pile.
  2. Push per-client terms onto the client record so you're not re-deciding currency, payment terms and late-fee policy every time.
  3. Automate the predictable spine with recurring schedules. Anything that happens on a cadence should invoice itself, with clean sequential numbering.
  4. Know your stock so you don't oversell during a spike, and so your line items read like a real supplier's.
  5. Make ad-hoc invoicing a thirty-second job by keeping clients fully set up in advance, so the rush never outruns your records.
  6. Read the numbers by segment after the spike, so you can tell which of your two businesses is actually carrying you.

Sanne still loves the retail counter — the €12 tulips, the regulars, the chaos of Valentine's morning. But the reason Bloemwerk Visser is steady rather than seasonal-fragile is that the boring half, the Monday invoices and the Net-30 accounts, now runs itself. "The flowers were never the hard part," she says. "Remembering who I'd promised what, and getting paid for it — that was the hard part. The shop got calmer the day I admitted I was running two businesses and let the app keep them apart."