wiki/knowledge/woocommerce/lamarie-unified-checkout.md · 784 words · 2025-11-11

La Marie Beauty — Unified WooCommerce Checkout

Overview

During the La Marie Beauty project, engineer Ishak implemented a unified WooCommerce checkout that handles both physical product purchases and service appointment bookings in a single cart flow. This approach required custom logic to handle the pricing display, payment capture, and downstream sync to Square.

This article documents the implementation approach, open technical challenges, and integration requirements discovered during the [1] engagement.


Architecture

The confirmed tech stack for this project is:

Layer Tool Role
Checkout WooCommerce Unified cart and payment capture
Scheduling Bookly Appointment booking UX and slot management
Calendar / CRM Square Staff availability source of truth

Zapier has been fully removed from the architecture. All data flow between Bookly/WooCommerce and Square is handled via direct API integration.

See also: [2]


Unified Checkout Implementation

How It Works

Ishak implemented a custom solution that allows a single WooCommerce checkout session to contain both:

The zero-subtotal approach allows the customer to complete a real payment transaction for the product while simultaneously reserving the service slot without charging for it at checkout. The service price is shown for transparency, and staff understand that upsells or service charges may occur at the appointment.

"He was able to make it so you can see the price, but the subtotal is zero. So when it does come through into Square, there is that price there."
— Melissa Cusumano, project call 2025-11-11

Bookly Cart Add-On Conflict

When WooCommerce is active, the Bookly Cart add-on must be disabled to avoid conflicts between the two cart systems. Bookly is retained solely for its scheduling and UX capabilities; WooCommerce owns the checkout.


Open Technical Challenges

1. Payment Tokenization

Status: Under investigation

The unified checkout cannot currently save a customer's credit card for future charges. This is a gap because La Marie Beauty requires the ability to charge a card on file post-appointment (e.g., for no-shows or add-on services).

Owner: Ishak
Next step: Investigate whether a native WooCommerce/Square plugin checkbox enables tokenization, or whether custom development is needed.

2. Bookly-to-Square API Sync Delay

Status: Under investigation

When a customer books an appointment through the WooCommerce/Bookly flow, that appointment must sync to Square (the staff calendar source of truth). There is a known default delay in this sync — potentially up to 15 minutes — which creates a double-booking risk if another customer books the same slot through the Square app directly during that window.

"I would be curious if it is on a default timer of 15 minutes or if we do have the ability to customize the webhook events... even something like a minute is perhaps better."
— Kimberly Gehrmann, project call 2025-11-11

Owner: Ishak
Next step: Determine whether the Bookly-to-Square API sync can be configured for near real-time updates (target: ~1 minute) via webhook or polling interval adjustment.


Square Integration Requirements

Because WooCommerce handles checkout, appointment and purchase data must be pushed back to Square to keep staff calendars and sales records accurate. This applies to both:

Square remains the source of truth for staff availability. Staff schedules are not being migrated to Bookly; Bookly reads availability from Square and writes confirmed bookings back to it.



Sources

  1. Index|La Marie Beauty
  2. Woocommerce Bookly Square Stack|Woocommerce + Bookly + Square Stack
  3. Index|La Marie Beauty Client Overview
  4. 2025 11 11 La Marie Beauty Project Call|La Marie Beauty Project Call — 2025 11 11
  5. Bookly Woocommerce Integration|Bookly + Woocommerce Integration Notes
  6. Service Page Variant Scope Conflict|Service Page Variant Scope Conflict — La Marie Beauty