wiki/clients/current/lamarie/2026-04-05-woocommerce-booking-migration.md · 384 words · 2026-04-05
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
- [1]
- [2] (15% markup applies if agency pays vendor invoices)