// Page Code for /checkout-link import { cart } from 'wix-stores'; import wixLocation from 'wix-location'; /** * Accepts `products` query parameter in Meta format: * - Encoded: products=112233%3A1%2C445566%3A2 * - Unencoded: products=112233:1,445566:2 (still works) * * Each entry is ID:QTY. Colons/commas may be RFC 3986-escaped. * Example final URL for Meta: * https://mysticalcrow.com/checkout-link?products=112233%3A1%2C445566%3A2 */ function parseProductsParam(rawParam) { if (!rawParam || typeof rawParam !== 'string') return []; // Try to decode once; if it throws or changes nothing, we still continue safely let decoded = rawParam; try { // decodeURIComponent will convert %3A -> ":", %2C -> "," decoded = decodeURIComponent(rawParam); } catch (_e) { // If decoding fails, we’ll proceed with the original string } // Split by commas (now that we normalized to ":" and ",") // Trim spaces just in case. return decoded .split(',') .map(s => s.trim()) .filter(Boolean) .map(pair => { const [id, qty] = pair.split(':').map(x => (x || '').trim()); const quantity = Number(qty); return (id && !Number.isNaN(quantity) && quantity > 0) ? { productId: id, quantity } : null; }) .filter(Boolean); } async function addAllToCart(items) { // Wix Stores cart.addProducts accepts an array of product objects. // We’ll add one by one to ensure each promise resolves, but you can batch if desired. for (const item of items) { // If a product has variants/options, you’ll need to pass the relevant // selection data here (e.g., options: [{ optionName, selection }]). // For simple products, productId + quantity is sufficient. await cart.addProducts([{ productId: item.productId, quantity: item.quantity }]); } } $w.onReady(async function () { const { products } = wixLocation.query; if (!products) { // No parameter present; go to cart so the user isn't stuck. wixLocation.to('/cart'); return; } const items = parseProductsParam(products); if (!items.length) { // Parameter present but invalid/empty after parsing wixLocation.to('/cart'); return; } try { await addAllToCart(items); // Success: go straight to checkout wixLocation.to('/checkout'); } catch (_err) { // If anything fails (bad ID, etc.), fall back to cart wixLocation.to('/cart'); } });
top of page

Indulge in a luxurious witch's milk bath with our specially crafted blend of organic coconut milk, Epson salt, dead sea salt, rose salt, and fragrant rose petals. This enchanting combination not only leaves your skin feeling soft and supple, but also provides a range of benefits for your mind and body.

 

Roses have long been revered for their soothing and calming properties. The gentle scent of roses can help to reduce stress and anxiety, promoting relaxation and a sense of well-being. When added to a warm bath, rose petals can also help to hydrate and nourish the skin, leaving it feeling smooth and rejuvenated.

 

Milk baths have been a popular beauty ritual for centuries, known for their moisturizing and exfoliating properties. Coconut milk, in particular, is rich in vitamins and minerals that help to hydrate and soften the skin. The fatty acids in coconut milk also help to soothe and protect the skin, making it an ideal ingredient for a nourishing bath experience.

 

Together, the combination of roses and coconut milk in our witch's milk bath creates a luxurious and indulgent experience that will leave you feeling pampered and refreshed. Treat yourself to a soothing soak in our magical blend and experience the benefits for yourself.

Witch's Rose & Milk Bath

$8.00Price
Quantity
    bottom of page