Kremi · Shopify theme engineering
A storefront built to the brand, not to the theme
Custom Liquid sections and interactive components for Kremi's Shopify store, in Turkish and English.

Problem
A premium theme gets a brand most of the way. The last stretch, the sections that actually sell the product, either don't exist or fight the theme's assumptions.
Constraint
Everything had to live inside the merchant's existing paid theme and survive its updates. No app bloat, no external scripts slowing the storefront down.
Approach
I wrote the missing sections from scratch as native Liquid: product FAQs driven by metafields, shoppable looks, a shade-preview component built as a web component reacting to variant changes. Each one configurable from the theme editor, so the team edits content without a developer.
Result
The store runs on bespoke sections across a Turkish and English storefront. The team ships campaigns by rearranging sections in the editor, and the theme still takes vendor updates.
Inside the storefront
Screens from the public Kremi storefront, captured without signing in. It is a paid theme with custom sections added; steps marked Custom section are ones I wrote. Scroll, and each one zooms in on the part the text describes.
- kremibeauty.com01 / 07

The Kremi storefront home page: announcement ticker, header with navigation and language switcher, and a full-width hero image of a shipping pouch.
01 / 07
A storefront built to the brand
Custom Liquid sections sit on the merchant's paid theme, so the brand shows through and vendor updates still apply.
- kremibeauty.com02 / 07

A shoppable look: a close portrait with two numbered hotspots for Kiss'n Blush and Lip Vitamin Balm, and the two product cards with prices to its right.
02 / 07Custom section
Shoppable looks
Numbered hotspots on a look photo name the products and shades used, with their cards beside it.
- kremibeauty.com03 / 07

A Lip Vitamin Balm product page with the Coffee shade selected: a brown tube image, six shade swatches, two set options and Add to cart.
03 / 07
Pick a shade, the page follows
Choosing a shade swaps the product image and its name in place. Set bundles stay one click away.
- kremibeauty.com04 / 07

A shade preview strip: swatches on top, four model photos labelled Peach, Coffee, Strawberry Velvet and Cherry Coke, and a sticky bar with Add to cart.
04 / 07Custom section
Shade preview that tracks variants
A web component shows each shade on a model with its name and a short description, and a sticky bar keeps the chosen shade and Add to cart in view.
- kremibeauty.com05 / 07

A Lip Vitamin Balm FAQ section: six collapsed questions on the left and a product photo of the tubes on the right.
05 / 07Custom section
Product FAQs from metafields
Each product's questions and answers are metafields, so the team edits them per product in the admin without a developer.
- kremibeauty.com06 / 07

A product page dimmed behind a cart drawer listing one item, a free-shipping progress line, a promotion reminder, a discount code field and a Checkout button.
06 / 07
Cart opens as a drawer
The cart slides over the product page with free-shipping progress and the promotion reminder, then a discount field and checkout.
- kremibeauty.com07 / 07

The Turkish version of the Lip Vitamin Balm page with the Cherry Coke shade selected, showing Sepete ekle and Hemen satın al buttons.
07 / 07
Turkish and English, one storefront
The header switcher flips the store between Turkish and English: navigation, buttons and product copy come from the same sections.
One commerce backbone
Kremi's website, app and order systems work as one. Shopify sits in the middle: products, prices, stock and campaigns are set there once and reach both the website and the app, and every order, whichever channel it comes from, flows into the same order pipeline.
One store behind the website and the app
The website and the app run on one Shopify store, so products, prices, stock, translations and product details come from the same records. Homepage edits made in Shopify's theme editor reach the app's home screen without a new app release, and the app's menu, FAQ and legal pages come from Shopify too.
App orders are Shopify orders
Checkout in the app opens Shopify's own checkout, so an app order lands in the Shopify admin next to website orders and follows the same payment, notification and fulfillment rules. Every order keeps its sales channel, so app and website sales can still be reported separately.
Campaigns set once, in Shopify
Shopify works out the cart total and discounts, so the app shows the same total as the website. Discount codes, automatic discounts and gift-with-purchase campaigns set up in Shopify apply in the app with no extra development and no new app release. Product launches can open early for app users, with the date kept on the product in Shopify.
More on how it fits together (4)
One customer account
The website and the app share one Shopify customer account, with passwordless sign-in by email code. Saved addresses and favorites are the same on both, and the app's order history comes from that same account.
One order pipeline for every channel
Website, app and marketplace orders flow into one order pipeline, so an app order needs no process of its own. One physical stock is shared out across the sales channels, the website and the app sell from the same Shopify stock, and Shopify test orders never get a real shipping label.
Email
Order and shipping emails stay with Shopify: the shipping email goes out when tracking from the warehouse label flow is written back to the order in Shopify. Kremi's own review-request email goes only to customers with email-marketing consent in Shopify, checked at the moment of sending, and unsubscribing turns that consent off in Shopify too. Newsletter sign-ups from the app count only after the confirmation link in the email is clicked.
Push notifications, and no separate SMS
No separate SMS channel was built: shipping updates reach customers by Shopify email and, in the app, by push notification. Packed and shipped updates arrive once per order, and a notification opens the exact product, collection, order, cart or community post it is about.
Need something like this?
Send two or three lines: what you have, what is broken or missing, and when you need it. I reply within 12 hours, Monday to Saturday.