// 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

Triquetra Cauldron Oil Burner

While the symbol is the same in various cultures, the meaning shifts. Since there is little written evidence surrounding pre-Celtic and Celtic life, scholars can only speculate regarding Pagan tradition. However, from corroborating various references, they know the concept of three was a linchpin of divine belief, signifying the Triple Moon Goddess which encompasses the maiden, the mother and the crone and connects to feminine fertility.

 

The Maiden: represents a young girl symbolizing youth, pleasure, innocence, and new beginnings

The Mother: represents love, fertility, and maturity symbolizing the middle of a woman's life as she cares for others

The Crone: represents the facets of the other stages but focuses on the wisdom learned from a long life

The origin of the triquetra symbol is unknown, but it dates back to pre-Celtic times. Norse runestones and everyday items have been found with the symbol engraved on it which proves Norse groups, such as the Vikings, did use it.

 

The oil burner measures 3.95 inch wide and 4.75 inches tall. The cut out in the from is a pentacle.

The bowl capacity for aroma oil holds about 2 fl oz

This essential oil burner uses tea light candle to heat up aroma oil. Simply put a few drops of essential oil into the bowl and light a small tealight candle. Please do not leave lit candle unattended

Made of glazed ceramic, this cauldron design with cut out stars for airflow is ideal for bedrooms, living rooms, home office or workplaces

A great gift idea for anyone with an interest in witchcraft or wizardry

*Caution: Candle and essential oil are Not included. And don't touch the surface when candle is lighted.**

 

 

Photos are subject to copy write and belong to Mystical Crow photography

Triquetra Cauldron Oil Burner

SKU: 726549148033
$16.00Price
Quantity
    bottom of page