Skip to content
Shopify Plus

Shopify Custom App Development Case Study: RVL Skincare

The contract lives in Stripe outside the store, the doctor assembles a care routine, and the practice can charge the saved card for it on its own initiative.

Start your project
Binary Future Editorial
Shopify Plus case study for RVL Skincare
Prelude

This case study covers a custom platform built alongside a Shopify store for a concierge dermatology practice. The store holds a medical-grade skincare line. Everything else the practice runs on sits in a separate application: long-term care contracts, membership plans, signed consents, appointment scheduling, doctor-assembled routines and charges against saved cards. Roughly seven months from working MVP to the full platform.

Key outcome
600+

patients under contract, with auto-renewal, a club membership tier and doctor-curated routines sold as bundles

Services used
Custom Platform Development
Shopify Integration
Off-Session Payment Architecture
Admin Tooling
Multi-Country Stripe Setup
QA & Launch Support
Project overview

RVL Skincare turns a dermatology practice into a continuing relationship rather than a series of appointments.

The patient signs a long-term care contract, attaches a card and gains the ability to book appointments. That booking right is the main value of the account; product purchases follow from it. The doctor assembles a care routine for the patient, which can be bought whole in one action or broken into individual items. Separately, the practice can charge the card already on file at its own initiative, without waiting for the patient to act.
 

Before this project that logic was assembled from Shopify apps that conflicted with each other and still did not cover what was needed. Above them sat two limits no app works around. Shopify’s Acceptable Use Policy lists uploading Protected Health Information subject to HIPAA among unsupported activity, and contracts, consents and medical instructions are exactly that. And saving cards for later charges is available on Shopify only to B2B customers on Shopify Payments, with manually entered card details impossible to vault at all. This practice runs on standard Shopify and serves retail patients rather than companies, so that path does not exist for it.

About the client
Brand

RVL Skincare, SKIN NY Dermatology PLLC

Industry

Dermatology, concierge patient care and medical-grade skincare

Location

New York, USA and Ontario, Canada

Platform

Shopify

Dr. Rita V. Linkner runs a concierge dermatology practice with an in-house product line. Patients pay for continuing access rather than for single visits, which makes the contract, not the cart, the object the business turns around.

Target Audience
Patients on long-term care.

They hold an active contract, book appointments against it, and see documents, charges and assigned routines.

Club membership patients.

A lighter, cheaper tier for those who want access without the full scope of care.

The practice itself.

The doctor and her administrators manage contracts, scheduling, routines and payments arriving by card, in person, or initiated by the practice.

The challenge
01
Challenge 01

The seller is the doctor, not the buyer

The practice needed to charge a stored card on its own initiative while the patient is off-session. Retail commerce assumes the opposite direction.

02
Challenge 02

Saved cards outside the store's reach

Shopify vaults cards only for B2B customers on Shopify Payments, and details entered manually in the admin cannot be vaulted. This practice runs standard Shopify and serves retail patients.

03
Challenge 03

A contract a subscription model cannot express

Shopify subscription contracts are created only through a completed checkout. Here the order runs the other way: policies, consents, card on file, and a payment the admin may take manually, including in person.

04
Challenge 04

Contracts that must outlive any app

48 hours after a subscription app is uninstalled, every contract it owns is cancelled. An agreement between a doctor and a patient cannot sit on that footing.

05
Challenge 05

Data that cannot enter the store

Patient records, consents and medical instructions fall under a category the platform’s own policy excludes.

06
Challenge 06

Two countries in one payment layer

The practice operates in the United States and Canada. A Stripe account is bound to a country, and one account does not serve both.

Binary Future’s involvement

Consent and mandate before anything else

The patient reads the policies, signs the consents and attaches a card before the contract is signed. An off-session charge requires an agreement covering the practice’s right to initiate payments, their expected frequency and how the amount is determined. The consent flow is what makes every later charge legitimate.

A portal gated by contract, with booking at its centre

Upcoming and past appointments, booking with a chosen practitioner, assigned routines, documents and cards in one place. Until the contract is signed and paid, the patient cannot select a contract or book. Patients hold two linked accounts: one in the store, one on the platform.

Routines bought in one action

An administrator assembles a product set for the patient in advance. The patient buys the whole routine or individual items from it, and the products land in the store’s regular cart.

Contracts with tiers and auto-renewal

Several levels where the amount is not tied to a fixed plan, adjustable by the administrator at any moment. Automatic charging on contract completion was added, so renewal no longer takes manual work.

A club tier as a lighter entry point

A cheaper form of membership for patients who want access without the full scope of care.

Three ways money arrives

The patient pays directly, the administrator processes an in-person payment from the panel and closes the contract as paid, or the practice charges the saved card off-session. Every path produces an invoice available in the portal.

Scheduling across practitioners and locations

The admin sets where and when appointments are available, along with the price range. Panel data exports to PDF.

An integration layer the team maintains itself

The Shopify connection is built on a package whose upstream is no longer developed, so support and extension are handled in-house.

Automation triumph

Three money paths that never cross

Membership money does not pass through the store at all. The contract lives in Stripe, and Shopify never touches it. Products sell the ordinary way, through the cart and the store checkout. Above both sits a third path: the practice charges the saved card itself when the doctor decides the patient needs the next routine.
 

Everything that makes the third path possible was built up front: the signed consent is the mandate authorizing off-session charges, the card is stored as a payment method rather than a one-time transaction, and the charge originates from the practice’s own panel.
 

Geography adds its own line. The practice operates in New York and in Ontario, and a Stripe account is bound to its country of registration. Stripe names separate accounts per country as the standard pattern for businesses operating across regions, and provides an organization layer for consolidated reporting across them. Splitting the payment paths here is a requirement of the payment system, not a workaround.

Results

The practice sells at the moment of the decision

The doctor assembles a routine, and it is either bought in one action or paid for by a practice-initiated charge.

Contract renewal stopped being manual work

Charging happens automatically on contract completion.

A second entry tier appeared

Club membership opens access to patients for whom a full contract is more than they need.

One system instead of a stack of apps

The patient, their contract, appointments, routines and charges are visible in one place.

Payments separated by country

Distinct pipelines for the US and Canada, with reporting per account.

Scale

More than 600 patients under contract, per platform data.

Frequently asked

FAQ

Only with an agreement in place. A charge made while the customer is not present is an off-session, merchant-initiated transaction, requiring terms the customer opted into covering the right to initiate payments, their frequency and how the amount is set. That is why the consent flow sits before the contract.

Only for B2B customers on Shopify Payments. Card details entered manually in the admin cannot be vaulted, and even a vaulted B2B card is not charged automatically when payment terms expire. For a retail patient on standard Shopify there is no such path.

Shopify’s Acceptable Use Policy lists uploading Protected Health Information subject to HIPAA among unsupported activity. For a medical practice that means storefront and catalog on Shopify, with patient records, contracts and prescriptions in a separate system.

A Shopify subscription contract is created only through a completed checkout. If payment can happen outside the store and terms change by hand, the model does not fit. Second reason: 48 hours after the app is uninstalled its contracts are cancelled.

The practice operates in the United States and Canada, and a Stripe account is bound to a country. Stripe names separate accounts per country as the standard pattern for multi-region operation, with an organization layer for consolidated reporting.

On this project, working MVP to full platform ran about seven months. The timeline depends on how many payment paths and roles you support, and on how strict the data handling requirements are.

Reach out to us

Ready to build something like this for your brand?

Tell us about your Shopify project. Whether you’re starting from scratch, migrating from another platform, or looking to improve a store that’s already live — we’ll come back to you with a clear next step within one business day.

  • Shopify Plus builds and migrations
  • CRO and UX design sprints
  • Performance engineering and technical audits
  • Ongoing development and support retainers
4.9★
Client rating
40+
Active clients
NDA
Ready on request
Project intake

Tell us about your project

We reply within one business day — no agency pitch, just a clear next step.

01
Preferred contact method
02
03
04
What do you need help with? 05
06
07
NDA-ready · No spam · Reply within 1 business day
Ready to build and grow?

Unlock your store's growth potential

If you're ready to build a high-performing Shopify Plus experience that scales with your brand — from UX and development through to CRO and global commerce — Binary Future is ready to start.