Product Customiser
Shopify, Metaobjects, Functions

Crafting a Jewellery Experience Worth Cherishing
At Bohomoon, I had the opportunity to create something special: an interactive charm customiser that allows customers to design their own jewellery. A chain becomes the foundation, and up to ten charms can be added to tell a story — initials, zodiacs, birthstones, numbers, seasonal symbols.
On the surface, it sounds simple. In reality, it was a challenge filled with nuance: inventory management, pricing logic, custom interfaces, and performance considerations. But that’s where the fun begins.
The Vision
The customiser needed to feel like play. Customers should be able to:
- Pick their chain with ease.
- Add and arrange charms intuitively.
- See dynamic pricing update in real time.
- Trust that every choice respects stock levels.
It had to strike a balance between creativity and clarity. A canvas for personal expression — but one that functioned flawlessly as a commerce tool.
Designing the Experience
Although I’m not formally a designer, I created every screen of the customiser myself in Figma. This meant sketching, testing, and iterating through multiple variations until we found the right mix of usability and brand fit. Over the years, I’ve picked up strong UI/UX instincts from working closely with designers, and this project gave me the chance to put them into practice.
The end result was a design that feels polished, intuitive, and unmistakably Bohomoon — and one I’m particularly proud of because of that hands-on journey from concept to interface.
The Tech Behind the Magic
I leaned heavily on Shopify’s capabilities to avoid the pitfalls of a bloated third-party app:
- Metaobjects: Defined charms, swatches, and categories directly in Shopify’s backend.
- Custom Components: A
CharmBuilder
interface, withComboBox
selectors and live line-item logic. - Shopify Functions: Cart Transform & Discount APIs, ensuring that chains + charms behave as a single product bundle.
- Performance Optimisation: Lighthouse tuning, error monitoring via Sentry, and a lightweight design that stays snappy even under complex configurations.
Building the Experience
1. Intuitive Charm Selection Swatch-based selectors with clear categories (letters, zodiacs, stones, etc.) guide customers without overwhelming them.
2. Dynamic Pricing & Inventory Each charm updates the total in real time, while out-of-stock items gracefully fade into the background.
3. Smart Cart Handling Behind the scenes, a Shopify Function ensures the bundle is treated as a single coherent product, keeping checkout seamless.
4. A Design That Fits the Brand From Figma mockups to production, every interaction was designed to feel as polished as the jewellery itself.
The Result
The Bohomoon Charm Customiser transformed the shopping experience from a static catalogue into an interactive workshop. Customers aren’t just buying jewellery — they’re co-creating it.
- Chains and charms link together smoothly.
- Dynamic pricing removes guesswork.
- Stock handling is transparent and reliable.
- The interface feels joyful, not complicated.
Reflections
I’ve built many product pages, but this project stood out because it blurred the line between commerce and creativity. It was never about just “adding to cart.” It was about giving every customer the thrill of seeing their ideas take shape — and then wearing them in the real world.
The result is something I’m proud of: a system that feels light, intuitive, and empowering, while solving a host of complex challenges under the hood.
View project