Skip to content
CarrotsCarrots home
← All customer stories
CoffeeIn build

A specialty coffee roaster and distributor

The second distributor on the platform, and the one that turned it from a project into a product. Their trading rules are more complex than the first customer's, which is what forced the pricing engine to become general rather than bespoke.

The situation

What they were dealing with

01

Pricing with more than one layer

Their rates resolve through several levels rather than a single account price: a specific line for a specific customer, then a group, then a base. Any system that could only hold one price per account per product was going to be wrong most of the time.

02

An ERP that is the system of record

Finance runs on an established ERP and is not moving. Anything the trade portal does has to sit alongside it without asking the business to change how it closes a month.

03

A brand that could not look borrowed

A white-labelled portal that looked like somebody else's product with a logo swapped in was not going to be acceptable to put in front of their cafés.

What was built

What they actually got

Described in terms of the work, because that is the part we can evidence.

The pricing engine became general

Supporting them meant building a real waterfall: specific item, then item group, then base, with the resolution order defined rather than implied. That work now sits under every distributor on the platform, which is the direct result of a second customer existing.

Their own tenant, end to end

Their own database, their own hostnames for the buyer portal and the back office, and their own branding throughout. Nothing is shared with another distributor except the code.

Catalogue and accounts imported

The product range and account structure were brought across from their existing systems so the team could see their own data in the portal before committing to anything further.

The ERP connector is scoped, not built

The data map is drafted from the documents the business already has, with every line marked as established fact, assumption or open question, so nothing gets built against a guess. It is waiting on sandbox access before any code is written. This is the honest state of it, and it is why they are listed as in build rather than live.

Running today

What they run on

  • Storefront
  • Back office
  • Pricing & promotions
  • Own tenant and branding

Your business will not look like theirs

Which is the point of talking rather than reading. Tell us what you distribute and what you run on, and we will show you the parts that apply.