Skip to Content
Operations consulting and Odoo implementation for SMBs
Case study · Services business

A booking flow with no orphaned transactions

A services business sold its services online, but every abandoned booking left an incomplete payment to reconcile. We redesigned the journey and the payment in Odoo.

ClientServices business, online bookings
EngagementQuote-to-booking flow and payment
TechnologyOdoo · Stripe · custom module
ServicesDiagnostic · Development · Integration
The challenge

Payments started before the booking was certain.

Customers could get a price and book online. But payment happened too early in the journey: when a customer dropped out, or a booking couldn’t be honoured, an incomplete transaction was left with no matching booking.

  • Orphaned transactions to track down and clean up by hand.
  • No simple way to adjust the amount when the final service differed from the quote.
  • A team spending time matching payments to bookings instead of serving customers.
Our approach

From customer journey to payment module.

  1. 1

    Map the journey

    We followed every step, from quote to confirmation, to find where and why transactions were left hanging.

  2. 2

    Rethink the sequence

    A five-step journey where money is only collected once the booking is confirmed.

  3. 3

    Build the payment module

    A custom Odoo module, built within Odoo’s framework, using Stripe’s deferred capture: the amount is authorized at booking, then captured on confirmation.

  4. 4

    Test the edge cases

    Drop-off mid-journey, expired authorization, final amount different from the quote: every scenario was tested before launch.

  5. 5

    Launch and support

    Go-live, then adjustments with the team during the first weeks.

The solution

Authorize first, capture later.

The amount is held on the customer’s card during the journey, but only collected on confirmation, in full or in part.

01Serviceselection02Instantquote03Contact details04Paymentauthorization05Confirmationand captureAmount held, not collectedDrop-off or expiry:authorization releasedNothing to reconcileFull capturePartial captureOnly the actual amount is collected

A card authorization is only valid for a limited time (usually seven days with Stripe): the journey accounts for it.

Results

Payments that follow bookings, not the other way around.

The change has less to do with the payment processor than with when payment happens.

01

No more orphaned transactions

An abandoned booking no longer leaves an incomplete payment to clean up.

02

Partial captures now possible

When the final service differs from the quote, only the actual amount is collected.

03

Tracking in one place

Every payment stays linked to its booking in Odoo.

The problem wasn’t the payment processor, but when payment happened in the journey.

Other case studies

More engagements delivered end to end.

Our clients are not named. Detailed case studies are available on request, during a discovery call.

Artisanal producer · retailer

Four sales channels, one source of truth

Challenge

Sales scattered across e-commerce, in-store, B2B and distribution.

Solution

An Odoo-based operations platform connecting every channel.

Impact

Multi-channel sales data unified in a single system.

Read the case study
Internal operations

A clear migration path

Challenge

Choosing the right Odoo version and edition without putting data at risk.

Solution

Version migration planning and an Enterprise-to-Community transition analysis.

Impact

A secure, structured migration with a clear path to an Odoo version suited to the company’s needs.

Read the case study
Next step

Let’s talk about your operations.

Tell us what’s slowing you down: scattered tools, an Odoo implementation that never quite stuck, or a system you’ve outgrown.A short discovery call, no sales pitch.

  1. 1
    Discovery callA short call to understand your current setup. No sales pitch.
  2. 2
    Tailored recommendationA full diagnostic or a scoped Odoo project: we tell you which, and why.
  3. 3
    A clear next stepProposal, timeline, and what success looks like. No vague “let’s circle back.”