The clinic and owner notification numbers must be configured in your deployment settings (
CLINIC_NOTIFY_NUMBER and OWNER_NOTIFY_NUMBER) for SMS alerts to send on payment. Without these values, the notification step is logged but not sent.The automation chain
1
Customer confirms a reorder
The customer replies to the SMS bot confirming they want to reorder.
2
Pending order created + Clover invoice sent
A pending order is written to the database and a Clover invoice/payment link is dispatched. The order is marked pending_payment and does not yet appear in reports or financial totals.
3
Customer pays on the branded pay page
The link opens the Fit4Life secure checkout page. Card details are entered directly into Clover’s embedded card fields (they never touch Fit4Life servers) and the charge is processed by Clover. The charge result comes back synchronously, so payment confirmation is immediate.
4
Order committed
On confirmed payment, the order status flips to paid, it becomes visible in all reports and financials, and the clinic is notified. An Uber delivery is dispatched when delivery is enabled for the order.
5
Fulfillment notified
Fit4Life OS texts the configured notify number with the full order detail: customer, amount, and every line item (the payment link itself only ever shows a total). This message is what the fulfillment team works from.
Payment-gated commit
Pending orders are intentionally invisible in the Reports hub and all financial calculations until payment is confirmed. This prevents unearned revenue from appearing in your P&L and ensures your financials only reflect real transactions. Once payment lands and the order commits, it surfaces immediately in every relevant view.Clover integration
Fit4Life OS uses an adapter pattern for Clover payments.Live mode
When the Clover Ecommerce credentials are present, the payment link opens a branded Fit4Life checkout page with Clover’s embedded card fields, and the charge is processed through your Clover merchant account. Payment confirmation is synchronous: a succeeded charge commits the order on the spot.
Stub mode
Without Clover credentials, the system runs a stub adapter that simulates invoice creation and payment confirmation. Use this for demos and end-to-end testing without touching real payments.
Uber delivery integration
Delivery dispatch follows the same adapter pattern.Live mode
When the
UBER_* environment variables are set, Fit4Life OS submits a real delivery request to the Uber API.Stub mode
Without Uber credentials, the adapter logs the dispatch internally and simulates a successful pickup. No real delivery is requested.
Flipping from stub to live
Switching either integration from stub to live requires no code changes. Add the appropriate environment variables to your deployment settings and redeploy.
These are the exact variables the adapter selector (
adapters/index.ts) checks, there is no CLOVER_API_KEY or UBER_CLIENT_ID/UBER_CUSTOMER_ID. Once the variables are present and you redeploy (env changes do not apply to an existing deployment), the platform detects them and activates the live adapter automatically. See the Environment Variables reference for the full list.
Manual override
Any step in the chain can be triggered manually from the Orders screen if automation stalls or you need to reprocess a step.1
Open the Orders screen
Navigate to
/live and select the Orders tab.2
Locate the order
Find the pending or committed order you need to act on using the search or filter controls.
3
Trigger the step manually
Open the order and use its actions to resend an invoice, dispatch a delivery, or re-run the reorder chain.
