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

Stichtite Wrapped in Copper with an 18 inch chain.

Stichtite is a stone of compassion, spiritual growth, and emotional healing. Its soft purple and green hues resonate with gentle, nurturing energy, making it an ally for those seeking inner peace and harmony in their lives.

    •    Element: Water and Earth

    •    Planet: Venus

    •    Chakra: Heart (Anahata) and Crown (Sahasrara)

    •    Energy: Feminine (Yin)

 

Magical Properties:

    •    Promotes emotional healing and self-compassion

    •    Encourages forgiveness and the release of past trauma

    •    Enhances spiritual awareness and connection to higher realms

    •    Protects against negativity and provides a calming energy

    •    Strengthens relationships through understanding and love

 

Uses in Witchcraft:

    •    Incorporate in rituals for self-love and emotional healing to promote inner harmony.

    •    Place in your sacred space to encourage peace and balance during meditation.

    •    Use in spellwork for reconciliation and fostering understanding in strained relationships.

    •    Carry as a talisman to protect your heart from emotional harm or negativity.

    •    Combine with amethyst to deepen spiritual practices and connect to divine energies.

 

Ritual Ideas:

    •    Create a heart-healing bath by placing stichtite, rose quartz, and lavender into warm water.

    •    Use in moon rituals to release emotional pain and align with divine love.

    •    Craft a forgiveness spell, holding stichtite while journaling or speaking words of release.

 

Stichtite is a soothing guide, encouraging self-awareness and reminding us that healing and love begin within.

Wrapped Stichtite Crystal in Copper

$49.00Price
Quantity
    bottom of page