The Art of Perfumery: Inside Our Laboratory

The Art of Perfumery: Inside Our Laboratory

Every Mon Mélange fragrance begins with a story. Our laboratory in the heart of England is where French tradition meets British innovation.

Sourcing the Finest Ingredients

We source our raw materials from the finest suppliers around the world — Bulgarian roses, Indian sandalwood, Italian bergamot, and many more precious ingredients.

The Blending Process

Each fragrance is carefully blended by hand, ensuring the perfect balance of top, heart, and base notes. This process can take weeks or even months to perfect.

Quality Testing

Before any fragrance reaches our shelves, it undergoes rigorous testing for longevity, sillage, and skin compatibility.

laboratory behind the scenes craftsmanship
Share:

B2B Partner Portal

Access our wholesale portal

Forgot Password?

Mon Mélange

Online
Hello! Welcome to Mon Mélange 🌹 I'm your personal fragrance consultant. How can I help you today?

I can help you with:
• Finding your perfect perfume
• Product recommendations
• B2B partnership inquiries
• Shipping & order info

Before we start

Please share your details so we can assist you better.

var btn = event.currentTarget; btn.disabled = true; btn.innerHTML = ''; fetch('/api/index.php?action=cart_add', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ slug: slug, quantity: 1 }) }) .then(function(r) { return r.json(); }) .then(function(data) { if (data.success) { btn.classList.add('added'); btn.innerHTML = ''; // Update cart count badge if exists var cartBadge = document.querySelector('.cart-count'); if (cartBadge && data.count !== undefined) { cartBadge.textContent = data.count; cartBadge.style.display = data.count > 0 ? 'flex' : 'none'; } setTimeout(function() { btn.classList.remove('added'); btn.innerHTML = ''; btn.disabled = false; }, 2000); } else { btn.innerHTML = ''; setTimeout(function() { btn.innerHTML = ''; btn.disabled = false; }, 1500); } }) .catch(function() { btn.innerHTML = ''; btn.disabled = false; }); } (function() { var widget = document.getElementById('mmChatWidget'); var toggle = document.getElementById('mmChatToggle'); var window_ = document.getElementById('mmChatWindow'); var minimize = document.getElementById('mmChatMinimize'); var form = document.getElementById('mmChatForm'); var input = document.getElementById('mmChatInput'); var messages = document.getElementById('mmChatMessages'); var iconOpen = document.getElementById('mmChatIconOpen'); var iconClose = document.getElementById('mmChatIconClose'); var sendBtn = document.getElementById('mmChatSend'); var isOpen = false; // Session key persistence var sessionKey = localStorage.getItem('mm_chat_session') || ''; function toggleChat() { isOpen = !isOpen; if (isOpen) { window_.classList.add('open'); iconOpen.style.display = 'none'; iconClose.style.display = 'block'; document.getElementById('mmChatBadge').style.display = 'none'; input.focus(); if (sessionKey) loadHistory(); } else { window_.classList.remove('open'); iconOpen.style.display = 'block'; iconClose.style.display = 'none'; } } toggle.addEventListener('click', toggleChat); minimize.addEventListener('click', toggleChat); function addMessage(text, isBot) { var div = document.createElement('div'); div.className = 'mm-msg ' + (isBot ? 'mm-msg-bot' : 'mm-msg-user'); var icon = isBot ? 'fa-spray-can-sparkles' : 'fa-user'; var formatted = text; if (isBot) { // Extract product cards var productCards = ''; formatted = formatted.replace(/\[PRODUCT:([^|]+)\|([^|]+)\|([^|]+)\|([^\]]+)\]/g, function(match, slug, name, price, desc) { productCards += '
' + '
' + '' + name + '' + '' + price + '' + '' + desc + '' + '
' + '
' + '' + '' + '
' + '
'; return ''; }); // Format remaining text formatted = formatted .replace(/\*\*(.*?)\*\*/g, '$1') .replace(/\n{2,}/g, '

') .replace(/\n/g, '
') .replace(/^(
)+/, '').replace(/(
)+$/, ''); if (productCards) { formatted += '
' + productCards + '
'; } } else { formatted = formatted .replace(/\*\*(.*?)\*\*/g, '$1') .replace(/\n/g, '
'); } div.innerHTML = '
' + '
' + formatted + '
'; messages.appendChild(div); messages.scrollTop = messages.scrollHeight; } function showTyping() { var div = document.createElement('div'); div.className = 'mm-msg mm-msg-bot mm-msg-typing'; div.id = 'mmTyping'; div.innerHTML = '
' + '
'; messages.appendChild(div); messages.scrollTop = messages.scrollHeight; } function hideTyping() { var el = document.getElementById('mmTyping'); if (el) el.remove(); } function sendMessage(text) { if (!text.trim()) return; addMessage(text, false); input.value = ''; sendBtn.disabled = true; showTyping(); fetch('/api/index.php?action=chat_send', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: text, session_key: sessionKey }) }) .then(function(r) { return r.json(); }) .then(function(data) { hideTyping(); sendBtn.disabled = false; if (data.success) { addMessage(data.message, true); if (data.session_key) { sessionKey = data.session_key; localStorage.setItem('mm_chat_session', sessionKey); } } else { addMessage(data.message || 'Sorry, something went wrong. Please try again.', true); } input.focus(); }) .catch(function() { hideTyping(); sendBtn.disabled = false; addMessage('Connection error. Please try again.', true); }); } form.addEventListener('submit', function(e) { e.preventDefault(); sendMessage(input.value); }); function loadHistory() { if (!sessionKey) return; fetch('/api/index.php?action=chat_history&session_key=' + encodeURIComponent(sessionKey)) .then(function(r) { return r.json(); }) .then(function(data) { if (data.success && data.messages && data.messages.length > 0) { // Clear default welcome message and show history messages.innerHTML = ''; data.messages.forEach(function(m) { addMessage(m.content, m.role === 'assistant'); }); } }) .catch(function() {}); } })();