01
The answer is a combination, not a product
A routine has to make sense as a set. Recommending one apparently suitable product is not enough if the full combination creates conflicts or unnecessary overlap.
Owned venture / Ecommerce & custom systems
A Shopify personalization layer that turns customer inputs and compatibility rules into an editable routine connected to purchase.

Case-study scope
This case study covers the personalization and commerce flow that is live or demonstrably built. Routisca's newer operations backend is still evolving and will be added only as those systems ship.
01 / The problem
Skincare shoppers often know what they want to improve, but not which combination of products makes sense for their skin, concerns and existing routine. A normal ecommerce catalogue leaves the customer to solve that decision alone.
The opportunity was not another recommendation quiz that ends with a generic bundle. The system needed to collect meaningful inputs, enforce hard rules, assemble a compatible routine, keep it editable and then connect the answer back to real products in Shopify.
02 / The challenge
01
A routine has to make sense as a set. Recommending one apparently suitable product is not enough if the full combination creates conflicts or unnecessary overlap.
02
Skin concerns and preferences are useful inputs, but exclusions and compatibility rules have to take priority. The system needs to reject unsafe or conflicting replacements rather than simply maximize choice.
03
Recommendations have to work with real Shopify products rather than a fixed mock catalogue. Product attributes, availability and routine roles all affect eligibility.
04
A generated routine is only useful if the customer can adapt it. Product swaps therefore need to be re-checked against the rest of the routine before they become selectable.
03 / The approach
The storefront is the interface, but it is not the source of truth for the decision itself. Product attributes and routine roles are structured so the recommendation layer can reason about eligibility before the UI presents a choice.
Shopify metafields cover product-facing attributes such as concern, skin type, texture, usage time and routine step. Additional logic data supports exclusions, ingredient-specific hard rules and compatibility checks. The matching process is deterministic and rule-based; it is not presented as AI.
Product layer
Live Shopify catalogue + structured product metadata
Logic layer
Eligibility, exclusions, conflicts and matching rules
State layer
Customer inputs, saved routine and selected replacements
Interface layer
Questionnaire, result, editing and purchase actions

04 / How it works
Customer inputs
Hard-rule filtering
Compatibility checks
Product matching
Editable routine
Purchase flow
A customer moves through a seven-step intake. Their answers establish skin context, concerns and hard exclusions. Products are filtered and checked as a routine, then the result stays editable under the same rule system.
When a customer requests a replacement, the system does not simply show similar products. The candidate has to remain compatible with what is already selected before it becomes an eligible choice.
05 / The solution
Instead of ending at a product recommendation, the flow returns an ordered routine with usage context and commerce actions. Customers can revisit the result, replace eligible products and skip steps for items they already own.


06 / Key functionality
01
A multi-step flow captures skin type, concerns, routine context and ingredient-specific hard rules before any recommendation is produced.
02
Eligibility is evaluated across the routine rather than treating each product recommendation as an isolated decision.
03
When a customer changes a product, replacement options are checked against the existing routine and only compatible choices can be selected.
04
Customers can indicate that they already own a product or do not need a step, keeping the routine useful without forcing every recommended item into the purchase.
05
The result is persisted through the custom backend so a routine can be revisited through its unique link instead of disappearing at the end of the session.
06
The generated routine is connected back to the buying journey so customers can move from guidance into purchase without rebuilding the selection manually.
07 / UX / CRO decisions
The intake breaks a complex skincare decision into smaller steps instead of presenting a dense form or asking customers to interpret product chemistry on their own.
Customers get agency over the generated routine, but the system continues enforcing compatibility when a replacement is requested.
The experience allows steps to be skipped when the customer already has something suitable. That makes the system behave like guidance rather than a forced bundle.
The result includes usage direction and routine context so the output is more useful than a product list and remains understandable after the initial session.
08 / Technical implementation
The customer-facing experience lives inside Shopify, while a custom PHP/MySQL backend persists routine state and supports the logic that does not belong in theme presentation code. JavaScript connects the interactive storefront flow to that backend and to the products customers can actually purchase.
This keeps Shopify responsible for catalogue and commerce while the custom system owns personalization state and business rules. The newer operational backend is being expanded separately and will be added to this case study only as those parts ship.
09 / Result
The shipped system changes the shopping journey from browsing products independently to building a routine through guided decisions. It preserves customer choice while keeping replacements inside the same compatibility logic.
Success here is documented through shipped functionality and usable operational capability rather than unverified revenue or conversion uplift claims.
10 / Gallery



12 / Start a conversation
If the problem sits somewhere between ecommerce UX, business rules, integrations and custom development, tell me what needs to work better.