Skip to content
Farhat Ullah.
Web

Custom WooCommerce rental checkout for a dress-rental business

Built a booking-aware WooCommerce checkout for a dress-rental business, covering rental dates, deposit math, a care-policy consent step and an express-payment UI, to a Figma redesign.

Client
Desi Switch
Sector
Web
Stack
WooCommerce · PHP · JS · Stripe Payment Element
Year
2025
By Farhat UllahSenior Full Stack + AI EngineerUpdated

The problem

Desi Switch, a dress-rental business, was running a standard WooCommerce checkout — the same flow a store selling one-off retail items would use. It had no concept of booking dates, no deposit logic, and no way to distinguish a rental price from a retail price in the order summary. None of the plugin ecosystem's off-the-shelf rental add-ons matched the pricing and policy model the business actually needed.

What I built

I built a custom rental checkout flow to a Figma redesign, covering the parts of the transaction that standard WooCommerce doesn't model: a booking timeline showing delivery, event and return dates together; a retail-versus-rental price split visible directly in the order summary instead of a single blended line item; refundable deposit math that clearly separates "pay today" from "refunded after return"; and a Dress Care Policy consent step wired to a linked fee structure, so the customer sees exactly what damage or late-return fees apply before they commit.

On the payment side, I implemented a modern express-checkout UI using Stripe's Payment Element, supporting Google Pay, Apple Pay, and Link, laid out in the two-column layout the Figma design specified rather than WooCommerce's default single-column checkout.

Outcome

The store now runs a checkout flow that matches how a rental transaction actually works — dates, deposits, and policy consent handled as first-class parts of the order, not bolted-on notes — built without adopting a bloated rental plugin that would have brought its own pricing model to fight against.

Why it mattered

Rental commerce has logic that retail checkout code doesn't anticipate: money that's collected but not yet earned, dates that constrain each other, and a consent step tied to a fee schedule. Building that directly, against a specific design, avoided the usual trade-off of a rental plugin that gets 80% of the model right and fights you on the rest.

Have a system that needs to work in production?

Tell me what's breaking — or what you're building.

Chat on WhatsApp