wiki/clients/current/lamarie/2026-04-05-technical-implementation-review.md Layer 2 article Client: LaMarie Beauty 982 words Updated: 2026-04-05
↓ MD ↓ PDF
meeting la-marie-beauty wordpress woocommerce bookly square payments php javascript booking-system

Technical Implementation Review — 2026-04-05

Overview

Technical call with Asymmetric team (Kimberly, Melissa) and developer Isahaque to clarify implementation details on the La Marie Beauty website. Four areas were covered: custom payment logic for mixed carts, Square-Bookly booking sync, Bookly widget customization scope, and the architecture of dynamic product pages.

Attendees:
- Kimberly Gehrmann (LMB-side technical lead / PM)
- Melissa Cusumano (Asymmetric)
- Isahaque Mahmud (Asymmetric — developer)
- Roxana Lopez (La Marie Beauty)
- Katie Schueller, Lisa Frommelt (La Marie Beauty — partial)
- Mark Hope, Chris Ostergaard (Asymmetric)


Key Decisions

1. Custom PHP Required for Payment Logic

WooCommerce and Bookly cannot natively handle the mixed-cart payment requirement. A custom PHP solution is required because WordPress and WooCommerce expose backend integration points via PHP hooks — there is no equivalent JavaScript path for this layer.

The requirement:
- Products → charged in full at checkout
- Services → card held on file (not charged); charged post-service or for no-show/cancellation penalties

The approach:
- Custom PHP code using Square APIs for tokenization and card-on-file storage
- Square APIs are preferred over fully custom handling to preserve existing customer profiles and reduce PCI risk
- Isahaque will create the Square API key; no client-side action needed from LMB

"For all those type payment, we need to write some custom PHP code." — Isahaque

"I want to reduce the risk of leaked credit card details. And also, Square has a profile of a customer." — Kimberly

2. Square-Bookly Sync Is Instantaneous

Concern was raised about double-bookings when appointments are made simultaneously through the Square app and the LMB website (via Bookly). Isahaque confirmed the sync is instantaneous via API — no polling delay.

True simultaneous conflicts (two users booking the exact same slot at the exact same millisecond) are considered negligible in practice.

3. Bookly Widget Customization: Restyling Yes, New Functionality No

The Bookly widget's default UI (block buttons, generic icons, sidebar layout) clashes with the site's minimalist aesthetic. Customization is possible within limits:

Allowed Not Allowed
Replace or remove icons Add new buttons or UI elements
Remove duplicate data fields (e.g., staff name shown twice) Add new functionality
Restyle buttons, layout, colors to match site
Reposition sidebar elements

Kimberly noted the widget currently feels "plug and play from Bookly" and does not match the bespoke button styles used elsewhere on the site.

Blocker: Lisa has not yet reviewed the Bookly flow. No CSS customization should proceed until Lisa gives design approval.

4. Dynamic Product Pages Use Custom JavaScript — Developer-Only Updates

Product pages (e.g., Vampire Facial) use a single URL with custom JavaScript that conditionally renders different images, text, and "Book Now" link targets depending on which variation button is selected.

if (button A selected) → render image A, text A, book-now link A
else if (button B selected) → render image B, text B, book-now link B
else → render image C, text C, book-now link C

This means Roxana cannot self-serve updates to these pages via standard WordPress editing. Any content change (new image, updated text, new variation) requires a developer modifying the JavaScript directly.

Kimberly flagged this as a significant maintenance concern and will review the code herself before determining the long-term strategy.


Action Items

Owner Action Status
Isahaque Create Square API key for Bookly/WooCommerce/Square integration 🔲 Open
Isahaque Begin custom PHP development for service hold/charge payment logic; use Square APIs; notify Kimberly and Melissa if blocked 🔲 Open
Kimberly Schedule Bookly design review with Lisa; record Loom walkthrough of Bookly flow for reference 🔲 Open
Kimberly Review custom JavaScript on variation/product pages via Elementor to assess maintenance complexity 🔲 Open
Kimberly Email Melissa to reschedule next week's meeting (pending travel to Salt Lake City) 🔲 Open
Melissa Hold off on product page content updates until Kimberly completes code review 🔲 Open
Roxana No action items — reconnecting after Denver travel

Technical Notes

Why PHP for Backend Payment Logic?

WordPress and WooCommerce expose customization points through a hook system that is PHP-native. Backend integrations with WooCommerce checkout flows must use these hooks. JavaScript is appropriate for frontend/UI behavior (as used on product variation pages) but cannot reach the WooCommerce/Bookly backend layer.

Accessing the Custom JavaScript

The variation page JavaScript is embedded via Elementor templates, not standard WordPress pages. To locate it:
1. Navigate to the product page (e.g., Vampire Facial) from the staging site
2. Use "Edit with Elementor" (not "Customize")
3. Locate the custom JS block within the single product template

Kimberly has been granted WordPress admin access to the staging site to review the code. She has committed not to modify any code during this review phase.


Open Questions / Risks


Sources

  1. Index