---
title: WooCommerce Booking System Migration — Hybrid Checkout Logic
type: article
created: '2026-04-05'
updated: '2026-04-05'
source_docs:
- raw/2025-11-05-mid-week-call-w-melissa-99506659.md
tags:
- lamarie
- woocommerce
- square
- booking
- ecommerce
- payments
layer: 2
client_source: LaMarie Beauty
industry_context: ecommerce
transferable: false
---

# WooCommerce Booking System Migration — Hybrid Checkout Logic

## Overview

LaMarie is migrating their booking system from Square to WooCommerce to unify services and products under a single checkout flow. The migration introduces a technically complex payment requirement: the checkout must behave differently depending on whether the cart contains a service or a physical product.

This work was flagged as blocked pending identification of a WooCommerce specialist capable of implementing the hybrid payment logic.

## The Hybrid Checkout Requirement

LaMarie's checkout must support two distinct payment behaviors in the same flow:

| Cart Item Type | Payment Behavior |
|---|---|
| **Service** (e.g., appointment) | Capture credit card on file — **do not charge** |
| **Product** (e.g., retail item) | Charge credit card immediately |

The card-capture-without-charge behavior for services is intended to support **no-show fees** — the card is held on file and can be charged after the fact if a client fails to appear.

## Why This Is Complex

Standard WooCommerce checkout either charges or doesn't charge — it doesn't natively support conditional payment behavior based on product type within a single cart. Implementing this requires:

- Distinguishing between service and product line items at checkout
- Routing services through a card-authorization (capture-only) flow
- Routing products through a standard charge flow
- Potentially managing two separate payment intents or Square/Stripe API calls within one transaction

This is analogous to how restaurants handle reservations (capture only) vs. final bills (charge), but applied dynamically within a single WooCommerce cart.

## Current State (as of 2025-11-05)

- Services are currently processed through **Square** directly — this works, but is separate from the website checkout
- Products are being processed through **WooCommerce**
- The goal is to consolidate everything through WooCommerce, with Square (or Stripe) as the payment processor underneath
- A WooCommerce expert was being sourced via Fiverr to configure this logic

## Action Items

- [ ] **Mark:** Find and engage a WooCommerce specialist (sourced via Fiverr) to configure hybrid checkout logic
- [ ] Confirm final payment processor (Square vs. Stripe) to be used under WooCommerce before implementation begins
- [ ] Avoid building interim Square-only solutions that will be discarded once WooCommerce migration is complete

## Related

- [[wiki/clients/current/lamarie/_index]]
- [[wiki/ops/vendor-billing-markup-policy]] *(15% markup applies if agency pays vendor invoices)*