{"product_id":"test-products-2","title":"test products 2","description":"{%- comment -%}\nGLOWDARA PDP “Pricing Psychology” Block (Shopify)\n✅ Paste into: Online Store → Themes → Customize → Product template → “Custom liquid” (or in product-main section)\n✅ Works best placed near the price + variant selector \/ above Add to cart\n\nNotes:\n- Uses your warm cream + gold vibe (you can tweak colors at the top).\n- Doesn’t replace your existing ATC; it adds a “smart” bundle selector + messaging.\n{%- endcomment -%}\n\n\u003cstyle\u003e\n  :root{\n    --gd-bg: #FBF3E6;        \/* warm cream *\/\n    --gd-card: #FFF9F0;      \/* slightly brighter cream *\/\n    --gd-text: #2A1E16;      \/* dark brown *\/\n    --gd-muted:#6F5A4B;      \/* muted brown *\/\n    --gd-border:#E9DCCB;     \/* soft border *\/\n    --gd-gold:#C89A3B;       \/* gold *\/\n    --gd-gold-2:#B7862C;     \/* darker gold *\/\n    --gd-green:#2F6B3E;      \/* subtle green *\/\n  }\n\n  .gd-wrap{\n    background: var(--gd-card);\n    border: 1px solid var(--gd-border);\n    border-radius: 16px;\n    padding: 16px;\n    color: var(--gd-text);\n  }\n\n  .gd-topline{\n    display:flex;\n    gap:10px;\n    align-items:center;\n    flex-wrap:wrap;\n    margin-bottom: 10px;\n  }\n  .gd-pill{\n    font-size: 12px;\n    line-height: 1;\n    padding: 8px 10px;\n    border-radius: 999px;\n    border: 1px solid var(--gd-border);\n    background: rgba(200,154,59,0.10);\n    color: var(--gd-text);\n    font-weight: 600;\n  }\n  .gd-pill.green{\n    background: rgba(47,107,62,0.10);\n  }\n\n  .gd-h{\n    font-size: 16px;\n    font-weight: 700;\n    margin: 0 0 10px 0;\n  }\n  .gd-sub{\n    font-size: 13px;\n    color: var(--gd-muted);\n    margin: 0 0 14px 0;\n  }\n\n  .gd-grid{\n    display:grid;\n    grid-template-columns: 1fr;\n    gap:10px;\n  }\n\n  .gd-option{\n    border: 1px solid var(--gd-border);\n    border-radius: 14px;\n    padding: 12px;\n    background: #fff;\n    display:flex;\n    gap:12px;\n    align-items:flex-start;\n    cursor:pointer;\n    transition: transform .08s ease, border-color .12s ease, box-shadow .12s ease;\n  }\n  .gd-option:hover{\n    transform: translateY(-1px);\n    border-color: rgba(200,154,59,0.55);\n    box-shadow: 0 8px 22px rgba(42,30,22,0.08);\n  }\n  .gd-option input{\n    margin-top: 3px;\n    transform: scale(1.08);\n    accent-color: var(--gd-gold);\n  }\n  .gd-ol{\n    flex:1;\n  }\n  .gd-row{\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:10px;\n  }\n  .gd-name{\n    font-weight: 750;\n    font-size: 14px;\n  }\n  .gd-badge{\n    font-size: 11px;\n    font-weight: 800;\n    padding: 6px 8px;\n    border-radius: 999px;\n    background: rgba(200,154,59,0.16);\n    border: 1px solid rgba(200,154,59,0.35);\n  }\n  .gd-badge.value{\n    background: rgba(47,107,62,0.12);\n    border-color: rgba(47,107,62,0.30);\n  }\n  .gd-price{\n    font-weight: 800;\n    font-size: 14px;\n  }\n  .gd-mini{\n    font-size: 12px;\n    color: var(--gd-muted);\n    margin-top: 6px;\n  }\n\n  .gd-cta{\n    margin-top: 14px;\n    display:flex;\n    flex-direction:column;\n    gap:10px;\n  }\n  .gd-button{\n    width:100%;\n    border: 0;\n    border-radius: 14px;\n    padding: 14px 14px;\n    background: linear-gradient(180deg, var(--gd-gold), var(--gd-gold-2));\n    color:#fff;\n    font-weight: 850;\n    cursor:pointer;\n    transition: filter .12s ease, transform .08s ease;\n  }\n  .gd-button:hover{ filter: brightness(1.03); }\n  .gd-button:active{ transform: translateY(1px); }\n\n  .gd-note{\n    font-size: 12px;\n    color: var(--gd-muted);\n    text-align:center;\n  }\n\n  .gd-divider{\n    height:1px;\n    background: var(--gd-border);\n    margin: 14px 0;\n  }\n\n  .gd-subscribe{\n    border: 1px dashed rgba(200,154,59,0.55);\n    background: rgba(200,154,59,0.08);\n    border-radius: 14px;\n    padding: 12px;\n  }\n  .gd-subscribe .gd-name{\n    font-size: 14px;\n  }\n  .gd-subscribe ul{\n    margin: 8px 0 0 18px;\n    padding: 0;\n    color: var(--gd-muted);\n    font-size: 12px;\n  }\n\n  .gd-free-ship{\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:10px;\n    padding: 10px 12px;\n    border-radius: 12px;\n    background: rgba(47,107,62,0.08);\n    border: 1px solid rgba(47,107,62,0.22);\n    font-size: 12px;\n    color: var(--gd-text);\n  }\n  .gd-free-ship b{ color: var(--gd-green); }\n\u003c\/style\u003e\n\n{%- assign v = product.selected_or_first_available_variant -%}\n\n\u003cdiv class=\"gd-wrap\" data-gd-block\u003e\n  \u003cdiv class=\"gd-topline\"\u003e\n    \u003cspan class=\"gd-pill\"\u003eOne jar lasts 2–3 months (pea-size method)\u003c\/span\u003e\n    \u003cspan class=\"gd-pill green\"\u003e30-day risk-free\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cp class=\"gd-h\"\u003eChoose your set\u003c\/p\u003e\n  \u003cp class=\"gd-sub\"\u003eMost customers choose \u003cb\u003e2 jars\u003c\/b\u003e for better value and free shipping.\u003c\/p\u003e\n\n  {%- comment -%}\n  Bundle pricing below is DISPLAY ONLY.\n  Update these amounts to match your real pricing rules.\n  {%- endcomment -%}\n\n  \u003cdiv class=\"gd-grid\" role=\"radiogroup\" aria-label=\"Bundle options\"\u003e\n    \u003clabel class=\"gd-option\"\u003e\n      \u003cinput type=\"radio\" name=\"gd_qty\" value=\"1\" checked\u003e\n      \u003cdiv class=\"gd-ol\"\u003e\n        \u003cdiv class=\"gd-row\"\u003e\n          \u003cdiv class=\"gd-name\"\u003e1 Jar — Starter \/ First Try\u003c\/div\u003e\n          \u003cdiv class=\"gd-price\"\u003e$39 \u003cspan style=\"font-weight:700;color:var(--gd-muted);font-size:12px;\"\u003e\/ jar\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"gd-mini\"\u003eGreat for your first week. Shipping calculated at checkout.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/label\u003e\n\n    \u003clabel class=\"gd-option\"\u003e\n      \u003cinput type=\"radio\" name=\"gd_qty\" value=\"2\"\u003e\n      \u003cdiv class=\"gd-ol\"\u003e\n        \u003cdiv class=\"gd-row\"\u003e\n          \u003cdiv class=\"gd-name\"\u003e2 Jars — Home + Travel\u003c\/div\u003e\n          \u003cspan class=\"gd-badge\"\u003e⭐ MOST POPULAR\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"gd-row\" style=\"margin-top:6px;\"\u003e\n          \u003cdiv class=\"gd-mini\"\u003eFree shipping • Better value per jar\u003c\/div\u003e\n          \u003cdiv class=\"gd-price\"\u003e$74 \u003cspan style=\"font-weight:700;color:var(--gd-muted);font-size:12px;\"\u003e($37\/jar)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/label\u003e\n\n    \u003clabel class=\"gd-option\"\u003e\n      \u003cinput type=\"radio\" name=\"gd_qty\" value=\"3\"\u003e\n      \u003cdiv class=\"gd-ol\"\u003e\n        \u003cdiv class=\"gd-row\"\u003e\n          \u003cdiv class=\"gd-name\"\u003e3 Jars — Stock Up\u003c\/div\u003e\n          \u003cspan class=\"gd-badge value\"\u003e💰 BEST VALUE\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"gd-row\" style=\"margin-top:6px;\"\u003e\n          \u003cdiv class=\"gd-mini\"\u003eFree shipping • Lowest cost per jar\u003c\/div\u003e\n          \u003cdiv class=\"gd-price\"\u003e$108 \u003cspan style=\"font-weight:700;color:var(--gd-muted);font-size:12px;\"\u003e($36\/jar)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/label\u003e\n\n    \u003clabel class=\"gd-option\"\u003e\n      \u003cinput type=\"radio\" name=\"gd_qty\" value=\"4\"\u003e\n      \u003cdiv class=\"gd-ol\"\u003e\n        \u003cdiv class=\"gd-row\"\u003e\n          \u003cdiv class=\"gd-name\"\u003e4 Jars — Family Supply\u003c\/div\u003e\n          \u003cspan class=\"gd-badge\"\u003e🏠 FAMILY\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"gd-row\" style=\"margin-top:6px;\"\u003e\n          \u003cdiv class=\"gd-mini\"\u003eFree shipping • Best for shared use\u003c\/div\u003e\n          \u003cdiv class=\"gd-price\"\u003e$140 \u003cspan style=\"font-weight:700;color:var(--gd-muted);font-size:12px;\"\u003e($35\/jar)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/label\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gd-cta\"\u003e\n    \u003cbutton class=\"gd-button\" type=\"button\" id=\"gdAddSet\"\u003e\n      Add selected set\n    \u003c\/button\u003e\n    \u003cdiv class=\"gd-note\"\u003eFast U.S. shipping • Packed \u0026amp; shipped within 24–48 hours\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gd-divider\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"gd-free-ship\" id=\"gdFreeShipNote\"\u003e\n    \u003cspan\u003eTip: add one more item to unlock \u003cb\u003efree shipping\u003c\/b\u003e.\u003c\/span\u003e\n    \u003cspan style=\"opacity:.8;\"\u003e$60+ threshold\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gd-divider\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"gd-subscribe\"\u003e\n    \u003cdiv class=\"gd-row\"\u003e\n      \u003cdiv class=\"gd-name\"\u003eNever Run Out (Optional)\u003c\/div\u003e\n      \u003cdiv class=\"gd-price\"\u003eSave 15%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cul\u003e\n      \u003cli\u003eDelivered monthly\u003c\/li\u003e\n      \u003cli\u003ePause or cancel anytime\u003c\/li\u003e\n      \u003cli\u003eFree shipping on subscription deliveries\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  \/\/ Finds the existing Shopify product form + quantity input (works on most themes).\n  function findProductForm(){\n    return document.querySelector('form[action*=\"\/cart\/add\"]') ||\n           document.querySelector('form[id*=\"product-form\"]');\n  }\n\n  function getQty(){\n    const checked = document.querySelector('input[name=\"gd_qty\"]:checked');\n    return checked ? parseInt(checked.value, 10) : 1;\n  }\n\n  function setThemeQty(qty){\n    const form = findProductForm();\n    if(!form) return false;\n\n    \/\/ Common selectors for qty input in themes\n    const qtyInput =\n      form.querySelector('input[name=\"quantity\"]') ||\n      document.querySelector('input[name=\"quantity\"]');\n\n    if(qtyInput){\n      qtyInput.value = qty;\n      qtyInput.dispatchEvent(new Event('change', { bubbles:true }));\n      return true;\n    }\n    return false;\n  }\n\n  function clickThemeAddToCart(){\n    const form = findProductForm();\n    if(!form) return false;\n\n    \/\/ Common selectors for ATC button\n    const btn =\n      form.querySelector('button[type=\"submit\"][name=\"add\"]') ||\n      form.querySelector('button[type=\"submit\"]') ||\n      document.querySelector('button[name=\"add\"]');\n\n    if(btn){\n      btn.click();\n      return true;\n    }\n    return false;\n  }\n\n  function updateFreeShipNote(){\n    const note = document.getElementById('gdFreeShipNote');\n    if(!note) return;\n    const qty = getQty();\n\n    \/\/ Simple logic: if qty \u003e= 2, you likely hit free shipping.\n    \/\/ Adjust this logic if your threshold differs.\n    if(qty \u003e= 2){\n      note.innerHTML = '\u003cspan\u003e✅ Free shipping unlocked with this set.\u003c\/span\u003e\u003cspan style=\"opacity:.8;\"\u003eapplied at checkout\u003c\/span\u003e';\n    } else {\n      note.innerHTML = '\u003cspan\u003eTip: add one more item to unlock \u003cb\u003efree shipping\u003c\/b\u003e.\u003c\/span\u003e\u003cspan style=\"opacity:.8;\"\u003e$60+ threshold\u003c\/span\u003e';\n    }\n  }\n\n  document.addEventListener('change', function(e){\n    if(e.target \u0026\u0026 e.target.name === 'gd_qty') updateFreeShipNote();\n  });\n\n  document.getElementById('gdAddSet')?.addEventListener('click', function(){\n    const qty = getQty();\n\n    \/\/ Set theme qty + trigger existing ATC\n    const okQty = setThemeQty(qty);\n    const okAtc = clickThemeAddToCart();\n\n    if(!okQty || !okAtc){\n      alert('Could not find your theme Add to Cart form. Place this block closer to the product form or tell me your theme name and I’ll adjust selectors.');\n    }\n  });\n\n  \/\/ init\n  updateFreeShipNote();\n})();\n\u003c\/script\u003e","brand":"GlowDara","offers":[{"title":"Default Title","offer_id":42761006579755,"sku":null,"price":0.0,"currency_code":"USD","in_stock":false}],"url":"https:\/\/glowdara.com\/products\/test-products-2","provider":"GlowDara","version":"1.0","type":"link"}