{"title":"Weekly Special","description":"\u003cp\u003eFresh deals weekly on frozen dumplings \u0026amp; buns, hot-pot essentials, pantry staples and snacks—items change every Wednesday and end Friday night. Half Price runs separately SAT-TUE.\u003c\/p\u003e\n\u003cstyle\u003e\n    #um-weekly-nav .um-chip{display:inline-block;margin:4px;padding:7px 11px;border:1px solid #e5e7eb;border-radius:999px;background:#f8fafc;color:#111;text-decoration:none;font-size:13px}\n    #um-weekly-nav .um-acc{display:inline-block;margin:8px 6px;text-align:center}\n    #um-weekly-nav .um-acc summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;color:#111;background:#eef2ff;border:1px solid #dbeafe;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600}\n    #um-weekly-nav .um-acc summary .ico{display:inline-block;transition:transform .2s ease}\n    #um-weekly-nav .um-acc summary::-webkit-details-marker{display:none}\n    #um-weekly-nav .um-acc[open] summary .ico{transform:rotate(180deg)}\n  \u003c\/style\u003e\n\u003cdiv id=\"um-weekly-nav\" style=\"max-width: 1040px; margin: 12px auto 18px; text-align: center; line-height: 1.5;\"\u003e\n\u003cp style=\"margin: 0 12px 8px; color: #555;\"\u003eBrowse this week’s Weekly Special—or jump to Half Price for SAT-TUE deals.\u003c\/p\u003e\n\u003ca href=\"\/collections\/half-price\" class=\"um-chip\" style=\"font-weight:600;\"\u003eHalf Price (SAT-TUE)\u003c\/a\u003e\n\u003cdetails class=\"um-acc\"\u003e\n\u003csummary role=\"button\" aria-expanded=\"false\"\u003e\u003cspan class=\"ico\"\u003e▾\u003c\/span\u003e Jump to\u003c\/summary\u003e\n\u003cdiv style=\"margin-top: 8px;\"\u003e\n\u003ca href=\"\/collections\/trending-24\" class=\"um-chip\"\u003eTrending 24\u003c\/a\u003e \u003ca href=\"\/collections\/new-arrivals\" class=\"um-chip\"\u003eNew Arrivals\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e","products":[{"product_id":"fresh-rockmelon-multiple-sizes-available","title":"Rockmelon 1 Piece","description":"\u003cp\u003eJuicy and sweet, this fresh rockmelon comes in multiple sizes to suit any preference or recipe need.\u003c\/p\u003e","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48151455334687,"sku":"A0735745752968","price":3.09,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/dce7394083e48b20857121419e1029d8EuyZbvyfQ34xpbSmO6axt1mQeFsDZdQ3.jpg?v=1745982972"},{"product_id":"fresh-navel-oranges-approximately-3kg","title":"Navel Oranges 3kg","description":"\u003cp\u003eJuicy and seedless, these fresh navel oranges are perfect for snacking or juicing, weighing approximately 3kg.\u003c\/p\u003e","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48151463067935,"sku":"A0735745752821","price":4.19,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/c750af558530227a0ddf2b92734bc3e0u9ErRltoYTFEFwbrRK0a2qvEV8ybJKvV.jpg?v=1712383283"},{"product_id":"fresh-yellow-onions-1kg","title":"Yellow Onions 1kg","description":"\u003cdiv id=\"umall-desc\" style=\"max-width:860px;margin:0 auto;--brand:#DB3A35;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#0f172a;line-height:1.6;\"\u003e\n\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\n\n\n\n\n\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\n\n\n\n\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:22px;margin-top:12px;\"\u003e\n  \u003ch1 style=\"margin:0 0 6px;font-size:26px;line-height:1.25;\"\u003eYellow Onions 1kg\u003c\/h1\u003e\n  \u003cp style=\"margin:8px 0 0;color:#475569;\"\u003eCrisp when raw, sweet and deeply savory when cooked — the all‑purpose kitchen essential.\u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n  \u003cul style=\"margin:0 0 0 18px;color:#334155;\"\u003e\n    \u003cli\u003eBalanced bite when raw; turns mellow and sweet as it cooks.\u003c\/li\u003e\n    \u003cli\u003eWorks in everything: stir‑fries, soups, curries, grills, and roasts.\u003c\/li\u003e\n    \u003cli\u003eExcellent base for sauces and braises to build deep umami.\u003c\/li\u003e\n    \u003cli\u003eHolds texture in quick high‑heat cooking yet caramelizes beautifully low \u0026amp; slow.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 12px;font-size:18px;font-weight:700;\"\u003eHow to enjoy\u003c\/h3\u003e\n  \u003cdiv style=\"display:grid;grid-template-columns:1fr;gap:14px;\"\u003e\n    \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#fff;\"\u003e\n      \u003cdiv style=\"font-weight:700;\"\u003eCaramelized onions for steak \u0026amp; burgers\u003c\/div\u003e\n      \u003cp style=\"margin:6px 0 0;color:#334155;\"\u003eSlice and cook on low with a touch of oil, stirring until deep golden (25–40 minutes). Pile onto seared \u003ca href=\"\/products\/angus-prime-sirloin-steak-1kg\"\u003eAngus Prime Sirloin Steak\u003c\/a\u003e or your favorite patties. A splash of water or stock helps deglaze for glossy onions.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#fff;\"\u003e\n      \u003cdiv style=\"font-weight:700;\"\u003eFajita‑style peppers \u0026amp; onions\u003c\/div\u003e\n      \u003cp style=\"margin:6px 0 0;color:#334155;\"\u003eSear strips of onion with \u003ca href=\"\/products\/fresh-green-lantern-peppers-pack-of-3\"\u003eGreen Bell Peppers\u003c\/a\u003e over high heat until lightly charred (4–6 minutes). Season with salt, pepper, and a squeeze of lime. Serve with tortillas, rice bowls, or grilled chicken.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#fff;\"\u003e\n      \u003cdiv style=\"font-weight:700;\"\u003eQuick pickled onions \u003cspan style=\"display:inline-flex;align-items:center;border:1px solid rgba(219,58,53,.2);color:var(--brand);background:rgba(219,58,53,.08);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;margin-left:8px\"\u003eLow‑calorie\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cp style=\"margin:6px 0 0;color:#334155;\"\u003eToss thinly sliced onions with a pinch of salt, a touch of sugar, and \u003ca href=\"\/products\/hengshun-white-rice-vinegar-500ml\"\u003eHengshun White Rice Vinegar\u003c\/a\u003e. Rest 15–30 minutes until bright and crisp. Great on salads, grilled fish, and rice bowls.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#fff;\"\u003e\n      \u003cdiv style=\"font-weight:700;\"\u003eGai lan \u0026amp; onion stir‑fry with noodles\u003c\/div\u003e\n      \u003cp style=\"margin:6px 0 0;color:#334155;\"\u003eWok‑toss onions until fragrant (1–2 minutes), add \u003ca href=\"\/products\/fresh-bunch-of-chinese-broccoli-kai-lan-hearts\"\u003eChinese Broccoli (Gai Lan)\u003c\/a\u003e, then cooked \u003ca href=\"\/products\/chung-yuen-hokkien-noodles-1kg\"\u003eHokkien Noodles\u003c\/a\u003e. Finish with light soy sauce and a drizzle of sesame oil.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003ePrep Tips\u003c\/h3\u003e\n  \u003cul style=\"margin:0 0 0 18px;color:#334155;\"\u003e\n    \u003cli\u003eFor milder raw bite, soak sliced onions in cold water for 5–10 minutes, then drain well.\u003c\/li\u003e\n    \u003cli\u003eCaramelizing works best low \u0026amp; slow with occasional deglazing; resist rushing for the sweetest flavor.\u003c\/li\u003e\n    \u003cli\u003eFor stir‑fries, slice pole‑to‑pole (root to tip) so pieces stay crisp and don’t break down.\u003c\/li\u003e\n    \u003cli\u003eStart onions first to build fond; add aromatics (garlic\/ginger) later to avoid scorching.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003ePairs well\u003c\/h3\u003e\n  \u003cul style=\"margin:0 0 0 18px;color:#334155;\"\u003e\n    \u003cli\u003e\n\u003ca href=\"\/products\/fresh-green-lantern-peppers-pack-of-3\"\u003eGreen Bell Peppers\u003c\/a\u003e for classic sautéed mix.\u003c\/li\u003e\n    \u003cli\u003e\n\u003ca href=\"\/products\/angus-prime-sirloin-steak-1kg\"\u003eAngus Prime Sirloin Steak\u003c\/a\u003e and grills.\u003c\/li\u003e\n    \u003cli\u003e\n\u003ca href=\"\/products\/fresh-bunch-of-chinese-broccoli-kai-lan-hearts\"\u003eChinese Broccoli (Gai Lan)\u003c\/a\u003e in quick wok dishes.\u003c\/li\u003e\n    \u003cli\u003e\n\u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\"\u003eHaitian Premium Light Soy Sauce\u003c\/a\u003e for seasoning.\u003c\/li\u003e\n    \u003cli\u003e\n\u003ca href=\"\/products\/canobolas-free-range-eggs-18-pieces-1kg\"\u003eFree‑Range Eggs\u003c\/a\u003e for scrambles and omelettes.\u003c\/li\u003e\n    \u003cli\u003e\n\u003ca href=\"\/products\/chois-shiitake-mushrooms-100g\"\u003eShiitake Mushrooms\u003c\/a\u003e to deepen umami.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;text-align:center;\"\u003e\n  \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eMore in this category\u003c\/h3\u003e\n  \u003cp style=\"margin:6px 0 0;\"\u003e\u003ca href=\"\/collections\/scallion-ginger-garlic\" style=\"color:var(--brand);\"\u003eBrowse more scallion, ginger \u0026amp; garlic essentials\u003c\/a\u003e\u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 10px;color:#334155;font-size:14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding:10px;border-right:1px solid #e5e7eb;background:#f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align:left;padding:10px;background:#f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\u003cul style=\"margin:6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color:#a9a9a9;font-size:12px;margin:10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca href=\"\/pages\/return-refund-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin:8px 0 0;color:#334155;font-size:14px;\"\u003eDetails: \u003ca href=\"\/pages\/delivery-information\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size:13px;color:#666;margin:0 0 8px\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$4.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$7.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\n\/* DESC ENHANCER JS v1 *\/\n(function(){\n  const root = document.getElementById('umall-desc');\n  if(!root) return;\n\n  const handleFromHref = (href)=\u003e{\n    try{ const u = new URL(href, location.origin); const parts=u.pathname.split('\/').filter(Boolean); const i=parts.findIndex(p=\u003ep==='products'); if(i\u003e=0\u0026\u0026parts[i+1]) return parts[i+1]; }catch(e){}\n    return null;\n  };\n  const money = (cents)=\u003e{ if(window.Shopify \u0026\u0026 Shopify.formatMoney) return Shopify.formatMoney(cents, \"A${{amount}}\"); return typeof cents==='number' ? 'A$'+(cents\/100).toFixed(2) : ''; };\n  const buildProdCard = (handle)=\u003e{ const a=document.createElement('a'); a.className='um-card'; a.href='\/products\/'+handle; a.setAttribute('data-handle',handle); a.innerHTML='\u003cdiv class=\"um-imgbox\"\u003e\u003cimg alt=\"'+handle+'\" loading=\"lazy\"\/\u003e\u003cspan class=\"um-badge\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"um-meta\"\u003e\u003cdiv class=\"um-title\"\u003e'+handle.replace(\/-\/g,' ')+'\u003c\/div\u003e\u003cdiv class=\"um-price\"\u003e\u003c\/div\u003e\u003c\/div\u003e'; return a; };\n  const hydrate = async (a)=\u003e{ const h=a.getAttribute('data-handle'); try{ const r=await fetch('\/products\/'+h+'.js',{credentials:'same-origin'}); if(!r.ok) return; const p=await r.json(); const img=a.querySelector('img'); if(p.images\u0026\u0026p.images[0]) img.src=p.images[0]; const t=a.querySelector('.um-title'); t.textContent=p.title||t.textContent; const vs=(p.variants||[]); const avail=vs.filter(v=\u003ev.available); const arr=avail.length?avail:vs; if(arr.length){ const min=Math.min(...arr.map(v=\u003ev.price)); const maxCompare=Math.max(...arr.map(v=\u003ev.compare_at_price||0)); const price=a.querySelector('.um-price'); price.textContent=''; const cur=document.createElement('span'); cur.textContent=money(min); price.appendChild(cur); if(maxCompare \u0026\u0026 maxCompare\u003emin){ const s=document.createElement('s'); s.textContent=money(maxCompare); price.appendChild(document.createTextNode(' ')); price.appendChild(s); const badge=a.querySelector('.um-badge'); const off=Math.round((1-min\/maxCompare)*100); badge.textContent='-'+off+'%'; badge.style.display='inline-block'; } } }catch(e){} };\n\n  const ensureAfter = (refNode, node)=\u003e{ if(!refNode || !node) return; if(node.parentElement) return; refNode.parentElement.insertBefore(node, refNode.nextSibling); };\n\n  \/\/ How to enjoy → 卡片（保留原内容；隐藏原块；标题统一“Recipes with this product”）\n  try{\n    \/\/ 1) 更鲁棒地找到标题（h2\/h3\/h4）\n    const enjoyH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(how to enjoy|ways to enjoy|serving ideas|recipes with this product|食用建议|食用灵感|食法)\/i.test(h.textContent));\n    if(enjoyH){\n      const container = enjoyH.parentElement;\n      \/\/ 2) 就近查找列表或段落（同容器或下一个兄弟）\n      let listEl = container.querySelector('ol, ul');\n      if(!listEl){ const sib = enjoyH.nextElementSibling; if(sib){ listEl = sib.querySelector \u0026\u0026 sib.querySelector('ol, ul'); } }\n\n      \/\/ 3) 容器若不存在则创建\n      let cardsHost = container.querySelector('#um-recipes-cards');\n      if(!cardsHost){ cardsHost=document.createElement('div'); cardsHost.id='um-recipes-cards'; cardsHost.className='um-recipes'; ensureAfter(listEl||enjoyH, cardsHost); }\n      let prodHost = container.querySelector('#um-recipes-products');\n      if(!prodHost){ prodHost=document.createElement('div'); prodHost.id='um-recipes-products'; prodHost.className='um-slider'; ensureAfter(cardsHost, prodHost); }\n\n      const links = new Set();\n      let items = [];\n      if(listEl){ items = Array.from(listEl.children).filter(n=\u003en.tagName==='LI'); }\n      \/\/ 4) 若没有列表，尝试用同容器的段落或“网格DIV\/ARTICLE”作为卡片项\n      if(items.length === 0){\n        let ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n        if(ps.length \u003c 2){ const sib = enjoyH.nextElementSibling; if(sib){ ps = Array.from(sib.querySelectorAll(':scope \u003e p')); } }\n        items = ps;\n      }\n      \/\/ 5) 同容器下寻找“网格容器”（含多个子块，且子块内有 h4\/strong）\n      let gridToHide = null;\n      if(items.length === 0){\n        const ch = Array.from(container.children || []);\n        for(const el of ch){\n          if(el === enjoyH) continue;\n          if(el.children \u0026\u0026 el.children.length \u003e= 2){\n            const first = el.children[0];\n            if((first.querySelector \u0026\u0026 first.querySelector('h3, h4, h5, strong, b, div[style*=\"font-weight:700\"]'))){\n              items = Array.from(el.children);\n              gridToHide = el;\n              break;\n            }\n          }\n        }\n      }\n      \/\/ 6) 仍然没有，则看紧跟标题的下一个块（如显示为卡片的 div\/article 列表）\n      if(items.length === 0){\n        const sib = enjoyH.nextElementSibling;\n        if(sib){\n          const children = Array.from(sib.children || []);\n          if(children.length \u003e= 2){ items = children; gridToHide = sib; }\n        }\n      }\n\n      if(items.length){\n        items.forEach((node, idx)=\u003e{\n          const card=document.createElement('article'); card.className='um-rcard';\n          const titleNode = node.querySelector \u0026\u0026 node.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b, a');\n          const h4=document.createElement('h4'); h4.textContent = titleNode ? (titleNode.textContent.trim()||('Recipe '+(idx+1))) : ('Recipe '+(idx+1));\n          const clone = node.cloneNode(true);\n          const rm = clone.querySelector \u0026\u0026 clone.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b'); if(rm) rm.remove();\n          const body=document.createElement('div'); while(clone.firstChild){ body.appendChild(clone.firstChild); }\n          card.appendChild(h4); card.appendChild(body); cardsHost.appendChild(card);\n          (node.querySelectorAll ? node.querySelectorAll('a[href]') : []).forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h) links.add(h); });\n        });\n        \/\/ 统一标题并隐藏原内容块\n        enjoyH.textContent = 'Recipes with this product';\n        if(listEl){ listEl.style.display='none'; }\n        else if(gridToHide){ gridToHide.style.display='none'; }\n        else {\n          \/\/ 隐藏直接段落（避免把其它段落隐藏过多，仅隐藏紧邻的）\n          const ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n          ps.forEach(p=\u003e{ p.style.display='none'; });\n        }\n      }\n      if(prodHost \u0026\u0026 links.size){ Array.from(links).forEach(h=\u003e{ const a=buildProdCard(h); prodHost.appendChild(a); hydrate(a); }); }\n    }\n  }catch(e){}\n\n  \/\/ Pairs well → 滑动卡片（并将标题统一为 “Pairs well with these products”）\n  try{\n    const pairsH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(pairs\\s*well|pairswell|配搭建议|搭配推荐|搭配)\/i.test(h.textContent));\n    if(pairsH){\n      const section=pairsH.parentElement; const ul=section.querySelector('ul');\n      \/\/ 统一标题文案\n      pairsH.textContent = 'Pairs well with these products';\n      let host=section.querySelector('#um-pairs-slider');\n      if(!host){ host=document.createElement('div'); host.id='um-pairs-slider'; host.className='um-slider'; ensureAfter(ul||pairsH, host); }\n      const unique=new Set();\n      \/\/ 允许 p 段落或任意容器中的产品链接\n      section.querySelectorAll('a[href]').forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)) unique.add(h); });\n      unique.forEach(h=\u003e{ const card=buildProdCard(h); host.appendChild(card); hydrate(card); });\n    }\n  }catch(e){}\n\n  \/\/ More in this category → 条件滑动，成功后隐藏原标题与列表，把 Explore CTA 放到滑动条上方\n  try{\n    const moreH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(more in this category|同类推荐|更多此分类)\/i.test(h.textContent));\n    if(moreH){ const section=moreH.parentElement; const ul=section.querySelector('ul'); let host=section.querySelector('#um-more-slider'); if(!host){ host=document.createElement('div'); host.id='um-more-slider'; host.className='um-slider'; ensureAfter(ul||moreH, host); } if(ul){ const links=ul.querySelectorAll('a[href]'); if(links.length\u003e=2){ const unique=new Set(); links.forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)){ unique.add(h); const card=buildProdCard(h); host.appendChild(card); hydrate(card); } }); if(host.children.length){ ul.style.display='none'; moreH.style.display='none'; const ctaWrap = Array.from(section.querySelectorAll('div')).find(d=\u003ed.querySelector('a[href^=\"\/collections\/\"]')); if(ctaWrap){ section.insertBefore(ctaWrap, host); } } } } }\n  }catch(e){}\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48151488233759,"sku":"A0735745752623","price":3.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/7986eb8cc9a7d89f85beecb65961fa9eor6wFi5Jzm4LYUhWDPdBA4HYvjhIpE7E.jpg?v=1736929209"},{"product_id":"fresh-bundle-of-garlic-scapes","title":"Bundle of Garlic Scapes","description":"\u003cdiv id=\"umall-desc\" style=\"--brand:#DB3A35;max-width:860px;margin:0 auto;padding:8px 0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#0f172a;line-height:1.6\"\u003e\n\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\n\n\n\n\n\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\n\n\n\n\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:24px;margin-top:12px;\"\u003e\n  \u003ch2 style=\"margin:0 0 6px;font-size:24px;font-weight:800;\"\u003eBundle of Garlic Scapes\u003c\/h2\u003e\n  \u003cp style=\"margin:6px 0 0;color:#334155;\"\u003eTender, curly flower stalks from hardneck garlic—mildly garlicky with a sweet, green snap that shines in stir‑fries, eggs, noodles, and quick salads.\u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;color:#334155;\"\u003e\n    \u003cli\u003eCrisp‑tender texture with a gentle garlic aroma—less pungent than cloves.\u003c\/li\u003e\n    \u003cli\u003eVersatile: great sautéed, grilled, blitzed into sauces, or tossed into soups.\u003c\/li\u003e\n    \u003cli\u003eCooks fast; keeps a vibrant green bite in minutes.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eHow to enjoy\u003c\/h3\u003e\n  \u003col style=\"margin:8px 0 0 18px;color:#334155;\"\u003e\n    \u003cli style=\"margin-bottom:10px;\"\u003e\n\u003cstrong\u003eWok‑tossed Beef \u0026amp; Scapes with Oyster Glaze\u003c\/strong\u003e — Stir‑fry sliced scapes with \u003ca href=\"\/products\/angus-prime-shredded-beef-500g\" style=\"color:#DB3A35;\"\u003eAngus Prime Beef Strip\u003c\/a\u003e, a splash of \u003ca href=\"\/products\/haitian-premium-oyster-sauce-700g\" style=\"color:#DB3A35;\"\u003eoyster sauce\u003c\/a\u003e and a drizzle of \u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\" style=\"color:#DB3A35;\"\u003esesame oil\u003c\/a\u003e until glossy (2–4 minutes).\u003c\/li\u003e\n    \u003cli style=\"margin-bottom:10px;\"\u003e\n\u003cstrong\u003eGarlic Scapes \u0026amp; Soft Scrambled Eggs\u003c\/strong\u003e — Sauté chopped scapes briefly, then fold into softly set eggs; season with a touch of \u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\" style=\"color:#DB3A35;\"\u003elight soy\u003c\/a\u003e. Try with \u003ca href=\"\/products\/pace-farm-free-range-eggs-12-extra-large-700g\" style=\"color:#DB3A35;\"\u003efree‑range eggs\u003c\/a\u003e.\u003c\/li\u003e\n    \u003cli style=\"margin-bottom:10px;\"\u003e\n\u003cstrong\u003eShiitake, Tofu \u0026amp; Scapes Rice Vermicelli Soup\u003c\/strong\u003e\u003cspan style=\"display:inline-flex;align-items:center;border:1px solid rgba(219,58,53,.2);color:var(--brand);background:rgba(219,58,53,.08);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;margin-left:8px\"\u003eBroth‑based\u003c\/span\u003e — Simmer \u003ca href=\"\/products\/bull-head-clear-chicken-broth-411ml-canned-chicken-stock\" style=\"color:#DB3A35;\"\u003eclear chicken broth\u003c\/a\u003e, add \u003ca href=\"\/products\/chunsi-jiangxi-rice-noodles-300g\" style=\"color:#DB3A35;\"\u003erice vermicelli\u003c\/a\u003e, sliced \u003ca href=\"\/products\/chois-shiitake-mushrooms-100g\" style=\"color:#DB3A35;\"\u003eshiitake\u003c\/a\u003e, scapes, and cubes of \u003ca href=\"\/products\/fresh-ever-green-smooth-tofu-approximately-300g\" style=\"color:#DB3A35;\"\u003esilken tofu\u003c\/a\u003e; finish with light soy.\u003c\/li\u003e\n    \u003cli style=\"margin-bottom:0;\"\u003e\n\u003cstrong\u003eLight Smashed Scape Salad\u003c\/strong\u003e — Blanch scapes briefly, smash into bite‑size lengths, then toss with \u003ca href=\"\/products\/hengshun-zhenjiang-aromatic-vinegar-550ml\" style=\"color:#DB3A35;\"\u003eblack vinegar\u003c\/a\u003e, a dab of \u003ca href=\"\/products\/chuanwazi-crispy-chili-oil-with-peanuts-200g-sichuan-chili-crisp\" style=\"color:#DB3A35;\"\u003echili crisp\u003c\/a\u003e, and a touch of sesame oil.\u003c\/li\u003e\n  \u003c\/ol\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePrep Tips\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;color:#334155;\"\u003e\n    \u003cli\u003eTrim the very tip if tough; cut into 3–5 cm batons or thin slices on the bias.\u003c\/li\u003e\n    \u003cli\u003eStir‑fry on high heat just until crisp‑tender (2–3 minutes) to keep them vibrant.\u003c\/li\u003e\n    \u003cli\u003eFor salads, blanch 30–45 seconds in salted water, then chill to set the green.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePairs well\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;color:#334155;\"\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/haitian-premium-oyster-sauce-700g\" style=\"color:#DB3A35;\"\u003eHaitian Premium Oyster Sauce 700g\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/kikkoman-all-purpose-soy-sauce-1-6l\" style=\"color:#DB3A35;\"\u003eKikkoman All‑Purpose Soy Sauce 1.6L\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\" style=\"color:#DB3A35;\"\u003eLee Kum Kee Pure Sesame Oil 207ml\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/chuanwazi-crispy-chili-oil-with-peanuts-200g-sichuan-chili-crisp\" style=\"color:#DB3A35;\"\u003eChuanwazi Crispy Chili Oil with Peanuts 200g\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/chunsi-jiangxi-rice-vermicelli-300g\" style=\"color:#DB3A35;\"\u003eChunsi Jiangxi Rice Vermicelli 300g\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/australian-raw-king-prawns-peeled-tail-on-flash-frozen-700g\" style=\"color:#DB3A35;\"\u003eAustralian Raw King Prawns – Peeled \u0026amp; Tail‑On\u003c\/a\u003e\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;\"\u003e\n  \u003cdiv\u003e\n    \u003ch3 style=\"margin:0 0 6px;font-size:18px;font-weight:700;\"\u003eMore in this category\u003c\/h3\u003e\n    \u003cp style=\"margin:6px 0 0;color:#334155;font-size:14px;\"\u003eDiscover more aromatic alliums and kitchen essentials.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003ca href=\"\/collections\/scallion-ginger-garlic\" style=\"color:#DB3A35;white-space:nowrap;font-weight:700;\"\u003eBrowse Scallion • Ginger • Garlic\u003c\/a\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 10px;color:#334155;font-size:14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding:10px;border-right:1px solid #e5e7eb;background:#f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align:left;padding:10px;background:#f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\u003cul style=\"margin:6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color:#a9a9a9;font-size:12px;margin:10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca href=\"\/pages\/return-refund-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin:8px 0 0;color:#334155;font-size:14px;\"\u003eDetails: \u003ca href=\"\/pages\/delivery-information\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size:13px;color:#666;margin:0 0 8px\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$4.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$7.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\n\/* DESC ENHANCER JS v1 *\/\n(function(){\n  const root = document.getElementById('umall-desc');\n  if(!root) return;\n\n  const handleFromHref = (href)=\u003e{\n    try{ const u = new URL(href, location.origin); const parts=u.pathname.split('\/').filter(Boolean); const i=parts.findIndex(p=\u003ep==='products'); if(i\u003e=0\u0026\u0026parts[i+1]) return parts[i+1]; }catch(e){}\n    return null;\n  };\n  const money = (cents)=\u003e{ if(window.Shopify \u0026\u0026 Shopify.formatMoney) return Shopify.formatMoney(cents, \"A${{amount}}\"); return typeof cents==='number' ? 'A$'+(cents\/100).toFixed(2) : ''; };\n  const buildProdCard = (handle)=\u003e{ const a=document.createElement('a'); a.className='um-card'; a.href='\/products\/'+handle; a.setAttribute('data-handle',handle); a.innerHTML='\u003cdiv class=\"um-imgbox\"\u003e\u003cimg alt=\"'+handle+'\" loading=\"lazy\"\/\u003e\u003cspan class=\"um-badge\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"um-meta\"\u003e\u003cdiv class=\"um-title\"\u003e'+handle.replace(\/-\/g,' ')+'\u003c\/div\u003e\u003cdiv class=\"um-price\"\u003e\u003c\/div\u003e\u003c\/div\u003e'; return a; };\n  const hydrate = async (a)=\u003e{ const h=a.getAttribute('data-handle'); try{ const r=await fetch('\/products\/'+h+'.js',{credentials:'same-origin'}); if(!r.ok) return; const p=await r.json(); const img=a.querySelector('img'); if(p.images\u0026\u0026p.images[0]) img.src=p.images[0]; const t=a.querySelector('.um-title'); t.textContent=p.title||t.textContent; const vs=(p.variants||[]); const avail=vs.filter(v=\u003ev.available); const arr=avail.length?avail:vs; if(arr.length){ const min=Math.min(...arr.map(v=\u003ev.price)); const maxCompare=Math.max(...arr.map(v=\u003ev.compare_at_price||0)); const price=a.querySelector('.um-price'); price.textContent=''; const cur=document.createElement('span'); cur.textContent=money(min); price.appendChild(cur); if(maxCompare \u0026\u0026 maxCompare\u003emin){ const s=document.createElement('s'); s.textContent=money(maxCompare); price.appendChild(document.createTextNode(' ')); price.appendChild(s); const badge=a.querySelector('.um-badge'); const off=Math.round((1-min\/maxCompare)*100); badge.textContent='-'+off+'%'; badge.style.display='inline-block'; } } }catch(e){} };\n\n  const ensureAfter = (refNode, node)=\u003e{ if(!refNode || !node) return; if(node.parentElement) return; refNode.parentElement.insertBefore(node, refNode.nextSibling); };\n\n  \/\/ How to enjoy → 卡片（保留原内容；隐藏原块；标题统一“Recipes with this product”）\n  try{\n    \/\/ 1) 更鲁棒地找到标题（h2\/h3\/h4）\n    const enjoyH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(how to enjoy|ways to enjoy|serving ideas|recipes with this product|食用建议|食用灵感|食法)\/i.test(h.textContent));\n    if(enjoyH){\n      const container = enjoyH.parentElement;\n      \/\/ 2) 就近查找列表或段落（同容器或下一个兄弟）\n      let listEl = container.querySelector('ol, ul');\n      if(!listEl){ const sib = enjoyH.nextElementSibling; if(sib){ listEl = sib.querySelector \u0026\u0026 sib.querySelector('ol, ul'); } }\n\n      \/\/ 3) 容器若不存在则创建\n      let cardsHost = container.querySelector('#um-recipes-cards');\n      if(!cardsHost){ cardsHost=document.createElement('div'); cardsHost.id='um-recipes-cards'; cardsHost.className='um-recipes'; ensureAfter(listEl||enjoyH, cardsHost); }\n      let prodHost = container.querySelector('#um-recipes-products');\n      if(!prodHost){ prodHost=document.createElement('div'); prodHost.id='um-recipes-products'; prodHost.className='um-slider'; ensureAfter(cardsHost, prodHost); }\n\n      const links = new Set();\n      let items = [];\n      if(listEl){ items = Array.from(listEl.children).filter(n=\u003en.tagName==='LI'); }\n      \/\/ 4) 若没有列表，尝试用同容器的段落或“网格DIV\/ARTICLE”作为卡片项\n      if(items.length === 0){\n        let ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n        if(ps.length \u003c 2){ const sib = enjoyH.nextElementSibling; if(sib){ ps = Array.from(sib.querySelectorAll(':scope \u003e p')); } }\n        items = ps;\n      }\n      \/\/ 5) 同容器下寻找“网格容器”（含多个子块，且子块内有 h4\/strong）\n      let gridToHide = null;\n      if(items.length === 0){\n        const ch = Array.from(container.children || []);\n        for(const el of ch){\n          if(el === enjoyH) continue;\n          if(el.children \u0026\u0026 el.children.length \u003e= 2){\n            const first = el.children[0];\n            if((first.querySelector \u0026\u0026 first.querySelector('h3, h4, h5, strong, b, div[style*=\"font-weight:700\"]'))){\n              items = Array.from(el.children);\n              gridToHide = el;\n              break;\n            }\n          }\n        }\n      }\n      \/\/ 6) 仍然没有，则看紧跟标题的下一个块（如显示为卡片的 div\/article 列表）\n      if(items.length === 0){\n        const sib = enjoyH.nextElementSibling;\n        if(sib){\n          const children = Array.from(sib.children || []);\n          if(children.length \u003e= 2){ items = children; gridToHide = sib; }\n        }\n      }\n\n      if(items.length){\n        items.forEach((node, idx)=\u003e{\n          const card=document.createElement('article'); card.className='um-rcard';\n          const titleNode = node.querySelector \u0026\u0026 node.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b, a');\n          const h4=document.createElement('h4'); h4.textContent = titleNode ? (titleNode.textContent.trim()||('Recipe '+(idx+1))) : ('Recipe '+(idx+1));\n          const clone = node.cloneNode(true);\n          const rm = clone.querySelector \u0026\u0026 clone.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b'); if(rm) rm.remove();\n          const body=document.createElement('div'); while(clone.firstChild){ body.appendChild(clone.firstChild); }\n          card.appendChild(h4); card.appendChild(body); cardsHost.appendChild(card);\n          (node.querySelectorAll ? node.querySelectorAll('a[href]') : []).forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h) links.add(h); });\n        });\n        \/\/ 统一标题并隐藏原内容块\n        enjoyH.textContent = 'Recipes with this product';\n        if(listEl){ listEl.style.display='none'; }\n        else if(gridToHide){ gridToHide.style.display='none'; }\n        else {\n          \/\/ 隐藏直接段落（避免把其它段落隐藏过多，仅隐藏紧邻的）\n          const ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n          ps.forEach(p=\u003e{ p.style.display='none'; });\n        }\n      }\n      if(prodHost \u0026\u0026 links.size){ Array.from(links).forEach(h=\u003e{ const a=buildProdCard(h); prodHost.appendChild(a); hydrate(a); }); }\n    }\n  }catch(e){}\n\n  \/\/ Pairs well → 滑动卡片（并将标题统一为 “Pairs well with these products”）\n  try{\n    const pairsH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(pairs\\s*well|pairswell|配搭建议|搭配推荐|搭配)\/i.test(h.textContent));\n    if(pairsH){\n      const section=pairsH.parentElement; const ul=section.querySelector('ul');\n      \/\/ 统一标题文案\n      pairsH.textContent = 'Pairs well with these products';\n      let host=section.querySelector('#um-pairs-slider');\n      if(!host){ host=document.createElement('div'); host.id='um-pairs-slider'; host.className='um-slider'; ensureAfter(ul||pairsH, host); }\n      const unique=new Set();\n      \/\/ 允许 p 段落或任意容器中的产品链接\n      section.querySelectorAll('a[href]').forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)) unique.add(h); });\n      unique.forEach(h=\u003e{ const card=buildProdCard(h); host.appendChild(card); hydrate(card); });\n    }\n  }catch(e){}\n\n  \/\/ More in this category → 条件滑动，成功后隐藏原标题与列表，把 Explore CTA 放到滑动条上方\n  try{\n    const moreH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(more in this category|同类推荐|更多此分类)\/i.test(h.textContent));\n    if(moreH){ const section=moreH.parentElement; const ul=section.querySelector('ul'); let host=section.querySelector('#um-more-slider'); if(!host){ host=document.createElement('div'); host.id='um-more-slider'; host.className='um-slider'; ensureAfter(ul||moreH, host); } if(ul){ const links=ul.querySelectorAll('a[href]'); if(links.length\u003e=2){ const unique=new Set(); links.forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)){ unique.add(h); const card=buildProdCard(h); host.appendChild(card); hydrate(card); } }); if(host.children.length){ ul.style.display='none'; moreH.style.display='none'; const ctaWrap = Array.from(section.querySelectorAll('div')).find(d=\u003ed.querySelector('a[href^=\"\/collections\/\"]')); if(ctaWrap){ section.insertBefore(ctaWrap, host); } } } } }\n  }catch(e){}\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48151489347871,"sku":"9202402011407","price":1.89,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/902ff191c310aebba95b67689109ac51PZZL0LoKrNieUsG5JsChWPorqiSAoUMD.jpg?v=1712384267"},{"product_id":"fresh-carrots-approximately-1kg","title":"Carrots 1kg","description":"\u003cdiv id=\"umall-desc\" style=\"--brand:#DB3A35;max-width:860px;margin:0 auto;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif;color:#0f172a;line-height:1.6;padding:8px 0;\"\u003e\n\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\n\n\n\n\n\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\n\n\n\n\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:22px;\"\u003e\n    \u003ch1 style=\"margin:0 0 6px;font-size:26px;font-weight:800;\"\u003eCarrots 1kg\u003c\/h1\u003e\n    \u003cp style=\"margin:6px 0 0;color:#475569;font-size:14px;\"\u003eCrisp, naturally sweet, and endlessly versatile — perfect for quick weeknight cooking or hearty weekend roasts.\u003c\/p\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n    \u003cul style=\"margin:0 0 0 18px;color:#334155;font-size:14px;\"\u003e\n      \u003cli\u003eSweet crunch that holds up in stir‑fries, roasts, soups, and slaws.\u003c\/li\u003e\n      \u003cli\u003eCooks fast when julienned; caramelises beautifully when roasted.\u003c\/li\u003e\n      \u003cli\u003ePlays well with soy, sesame, garlic, ginger, and warm spices.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eHow to enjoy\u003c\/h3\u003e\n    \u003cdiv style=\"display:grid;grid-template-columns:1fr;gap:14px;\"\u003e\n      \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:12px;padding:14px;\"\u003e\n        \u003cdiv style=\"font-weight:700;margin-bottom:6px;\"\u003eGinger–garlic carrot stir‑fry with light soy\u003c\/div\u003e\n        \u003cp style=\"margin:0;color:#334155;font-size:14px;\"\u003eFlash‑fry carrot matchsticks with ginger and garlic, then finish with a splash of \u003ca href=\"\/products\/haday-golden-label-light-soy-sauce-1-28l\" title=\"Haday Golden Label Light Soy Sauce\"\u003elight soy\u003c\/a\u003e and a drizzle of \u003ca href=\"\/products\/haitian-premium-oyster-sauce-700g\" title=\"Haitian Premium Oyster Sauce\"\u003eoyster sauce\u003c\/a\u003e. Stir‑fry 2‑4 minutes until crisp‑tender.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:12px;padding:14px;\"\u003e\n        \u003cdiv style=\"font-weight:700;margin-bottom:6px;\"\u003eBrothy carrot, shiitake \u0026amp; rice vermicelli soup\u003c\/div\u003e\n        \u003cp style=\"margin:0;color:#334155;font-size:14px;\"\u003eSimmer sliced carrots and \u003ca href=\"\/products\/chois-shiitake-mushrooms-100g\" title=\"Chois Shiitake Mushrooms\"\u003eshiitake\u003c\/a\u003e in \u003ca href=\"\/products\/bull-head-clear-chicken-broth-411ml-canned-chicken-stock\" title=\"Bull Head Clear Chicken Broth\"\u003eclear chicken broth\u003c\/a\u003e, then add \u003ca href=\"\/products\/chunsi-jiangxi-rice-noodles-300g\" title=\"Chunsi Jiangxi Rice Vermicelli 300g\"\u003erice vermicelli\u003c\/a\u003e. Season to taste for a comforting, broth‑based bowl.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:12px;padding:14px;\"\u003e\n        \u003cdiv style=\"font-weight:700;margin-bottom:6px;\"\u003eSesame \u0026amp; rice‑vinegar shredded carrot salad \u003cspan style=\"display:inline-flex;align-items:center;border:1px solid rgba(219,58,53,.2);color:var(--brand);background:rgba(219,58,53,.08);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;margin-left:8px\"\u003eLow‑calorie\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cp style=\"margin:0;color:#334155;font-size:14px;\"\u003eToss finely shredded carrots with \u003ca href=\"\/products\/hengshun-white-rice-vinegar-500ml\" title=\"Hengshun White Rice Vinegar\"\u003erice vinegar\u003c\/a\u003e, a few drops of \u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\" title=\"Lee Kum Kee Pure Sesame Oil\"\u003esesame oil\u003c\/a\u003e, and sliced \u003ca href=\"\/products\/fresh-bundle-of-spring-onions\" title=\"Shallot Bunch\"\u003eshallots\u003c\/a\u003e. Chill briefly for peak crunch.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:12px;padding:14px;\"\u003e\n        \u003cdiv style=\"font-weight:700;margin-bottom:6px;\"\u003eCumin‑roasted carrots (sheet‑pan)\u003c\/div\u003e\n        \u003cp style=\"margin:0;color:#334155;font-size:14px;\"\u003eCoat wedges with a little \u003ca href=\"\/products\/88-canola-oil-1l\" title=\"88 Canola Oil\"\u003ecanola oil\u003c\/a\u003e, toss with \u003ca href=\"\/products\/bakerdream-cumin-barbecue-seasoning-130g\" title=\"Bakerdream Cumin Seasoning\"\u003ecumin seasoning\u003c\/a\u003e, and roast 18‑25 minutes until caramelised.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003ePrep Tips\u003c\/h3\u003e\n    \u003cul style=\"margin:0 0 0 18px;color:#334155;font-size:14px;\"\u003e\n      \u003cli\u003ePeel if you like an ultra‑smooth finish; otherwise scrub well to keep more color and texture.\u003c\/li\u003e\n      \u003cli\u003eFor fast cooking, cut into thin matchsticks or bias slices; for roasting, go chunkier so edges caramelise while centers stay tender.\u003c\/li\u003e\n      \u003cli\u003eBlanch coins or sticks 1‑2 minutes before quick stir‑fries to lock in color and cut cook time.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003ePairs well\u003c\/h3\u003e\n    \u003cul style=\"margin:0 0 0 18px;color:#334155;font-size:14px;\"\u003e\n      \u003cli\u003e\n\u003ca href=\"\/products\/australian-raw-king-prawns-peeled-tail-on-flash-frozen-700g\" title=\"Australian Raw King Prawns\"\u003eKing prawns\u003c\/a\u003e for quick stir‑fries.\u003c\/li\u003e\n      \u003cli\u003e\n\u003ca href=\"\/products\/chois-oyster-mushrooms-400g\" title=\"Chois Oyster Mushrooms\"\u003eOyster mushrooms\u003c\/a\u003e for earthy depth.\u003c\/li\u003e\n      \u003cli\u003e\n\u003ca href=\"\/products\/fresh-bunch-of-coriander\" title=\"Bunch of Coriander\"\u003eCoriander\u003c\/a\u003e to finish salads and noodle bowls.\u003c\/li\u003e\n      \u003cli\u003e\n\u003ca href=\"\/products\/kikkoman-all-purpose-soy-sauce-1-6l\" title=\"Kikkoman Soy Sauce\"\u003eSoy sauce\u003c\/a\u003e for umami seasoning.\u003c\/li\u003e\n      \u003cli\u003e\n\u003ca href=\"\/products\/fresh-ever-green-chinese-style-tofu-approximately-500g\" title=\"Ever Green Classic Tofu 500g\"\u003eFirm tofu\u003c\/a\u003e for veg‑forward protein.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eMore in this category\u003c\/h3\u003e\n    \u003cp style=\"margin:0;color:#334155;font-size:14px;\"\u003eLove cooking with roots? Explore more picks in our curated range.\u003c\/p\u003e\n    \u003cp style=\"margin:10px 0 0;\"\u003e\u003ca href=\"\/collections\/potatoes-root-vegetables\" style=\"color:var(--brand);font-weight:700;\"\u003eBrowse root vegetables →\u003c\/a\u003e\u003c\/p\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 10px;color:#334155;font-size:14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding:10px;border-right:1px solid #e5e7eb;background:#f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align:left;padding:10px;background:#f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\u003cul style=\"margin:6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color:#a9a9a9;font-size:12px;margin:10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca href=\"\/pages\/return-refund-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin:8px 0 0;color:#334155;font-size:14px;\"\u003eDetails: \u003ca href=\"\/pages\/delivery-information\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size:13px;color:#666;margin:0 0 8px\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$4.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$7.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\n\/* DESC ENHANCER JS v1 *\/\n(function(){\n  const root = document.getElementById('umall-desc');\n  if(!root) return;\n\n  const handleFromHref = (href)=\u003e{\n    try{ const u = new URL(href, location.origin); const parts=u.pathname.split('\/').filter(Boolean); const i=parts.findIndex(p=\u003ep==='products'); if(i\u003e=0\u0026\u0026parts[i+1]) return parts[i+1]; }catch(e){}\n    return null;\n  };\n  const money = (cents)=\u003e{ if(window.Shopify \u0026\u0026 Shopify.formatMoney) return Shopify.formatMoney(cents, \"A${{amount}}\"); return typeof cents==='number' ? 'A$'+(cents\/100).toFixed(2) : ''; };\n  const buildProdCard = (handle)=\u003e{ const a=document.createElement('a'); a.className='um-card'; a.href='\/products\/'+handle; a.setAttribute('data-handle',handle); a.innerHTML='\u003cdiv class=\"um-imgbox\"\u003e\u003cimg alt=\"'+handle+'\" loading=\"lazy\"\/\u003e\u003cspan class=\"um-badge\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"um-meta\"\u003e\u003cdiv class=\"um-title\"\u003e'+handle.replace(\/-\/g,' ')+'\u003c\/div\u003e\u003cdiv class=\"um-price\"\u003e\u003c\/div\u003e\u003c\/div\u003e'; return a; };\n  const hydrate = async (a)=\u003e{ const h=a.getAttribute('data-handle'); try{ const r=await fetch('\/products\/'+h+'.js',{credentials:'same-origin'}); if(!r.ok) return; const p=await r.json(); const img=a.querySelector('img'); if(p.images\u0026\u0026p.images[0]) img.src=p.images[0]; const t=a.querySelector('.um-title'); t.textContent=p.title||t.textContent; const vs=(p.variants||[]); const avail=vs.filter(v=\u003ev.available); const arr=avail.length?avail:vs; if(arr.length){ const min=Math.min(...arr.map(v=\u003ev.price)); const maxCompare=Math.max(...arr.map(v=\u003ev.compare_at_price||0)); const price=a.querySelector('.um-price'); price.textContent=''; const cur=document.createElement('span'); cur.textContent=money(min); price.appendChild(cur); if(maxCompare \u0026\u0026 maxCompare\u003emin){ const s=document.createElement('s'); s.textContent=money(maxCompare); price.appendChild(document.createTextNode(' ')); price.appendChild(s); const badge=a.querySelector('.um-badge'); const off=Math.round((1-min\/maxCompare)*100); badge.textContent='-'+off+'%'; badge.style.display='inline-block'; } } }catch(e){} };\n\n  const ensureAfter = (refNode, node)=\u003e{ if(!refNode || !node) return; if(node.parentElement) return; refNode.parentElement.insertBefore(node, refNode.nextSibling); };\n\n  \/\/ How to enjoy → 卡片（保留原内容；隐藏原块；标题统一“Recipes with this product”）\n  try{\n    \/\/ 1) 更鲁棒地找到标题（h2\/h3\/h4）\n    const enjoyH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(how to enjoy|ways to enjoy|serving ideas|recipes with this product|食用建议|食用灵感|食法)\/i.test(h.textContent));\n    if(enjoyH){\n      const container = enjoyH.parentElement;\n      \/\/ 2) 就近查找列表或段落（同容器或下一个兄弟）\n      let listEl = container.querySelector('ol, ul');\n      if(!listEl){ const sib = enjoyH.nextElementSibling; if(sib){ listEl = sib.querySelector \u0026\u0026 sib.querySelector('ol, ul'); } }\n\n      \/\/ 3) 容器若不存在则创建\n      let cardsHost = container.querySelector('#um-recipes-cards');\n      if(!cardsHost){ cardsHost=document.createElement('div'); cardsHost.id='um-recipes-cards'; cardsHost.className='um-recipes'; ensureAfter(listEl||enjoyH, cardsHost); }\n      let prodHost = container.querySelector('#um-recipes-products');\n      if(!prodHost){ prodHost=document.createElement('div'); prodHost.id='um-recipes-products'; prodHost.className='um-slider'; ensureAfter(cardsHost, prodHost); }\n\n      const links = new Set();\n      let items = [];\n      if(listEl){ items = Array.from(listEl.children).filter(n=\u003en.tagName==='LI'); }\n      \/\/ 4) 若没有列表，尝试用同容器的段落或“网格DIV\/ARTICLE”作为卡片项\n      if(items.length === 0){\n        let ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n        if(ps.length \u003c 2){ const sib = enjoyH.nextElementSibling; if(sib){ ps = Array.from(sib.querySelectorAll(':scope \u003e p')); } }\n        items = ps;\n      }\n      \/\/ 5) 同容器下寻找“网格容器”（含多个子块，且子块内有 h4\/strong）\n      let gridToHide = null;\n      if(items.length === 0){\n        const ch = Array.from(container.children || []);\n        for(const el of ch){\n          if(el === enjoyH) continue;\n          if(el.children \u0026\u0026 el.children.length \u003e= 2){\n            const first = el.children[0];\n            if((first.querySelector \u0026\u0026 first.querySelector('h3, h4, h5, strong, b, div[style*=\"font-weight:700\"]'))){\n              items = Array.from(el.children);\n              gridToHide = el;\n              break;\n            }\n          }\n        }\n      }\n      \/\/ 6) 仍然没有，则看紧跟标题的下一个块（如显示为卡片的 div\/article 列表）\n      if(items.length === 0){\n        const sib = enjoyH.nextElementSibling;\n        if(sib){\n          const children = Array.from(sib.children || []);\n          if(children.length \u003e= 2){ items = children; gridToHide = sib; }\n        }\n      }\n\n      if(items.length){\n        items.forEach((node, idx)=\u003e{\n          const card=document.createElement('article'); card.className='um-rcard';\n          const titleNode = node.querySelector \u0026\u0026 node.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b, a');\n          const h4=document.createElement('h4'); h4.textContent = titleNode ? (titleNode.textContent.trim()||('Recipe '+(idx+1))) : ('Recipe '+(idx+1));\n          const clone = node.cloneNode(true);\n          const rm = clone.querySelector \u0026\u0026 clone.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b'); if(rm) rm.remove();\n          const body=document.createElement('div'); while(clone.firstChild){ body.appendChild(clone.firstChild); }\n          card.appendChild(h4); card.appendChild(body); cardsHost.appendChild(card);\n          (node.querySelectorAll ? node.querySelectorAll('a[href]') : []).forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h) links.add(h); });\n        });\n        \/\/ 统一标题并隐藏原内容块\n        enjoyH.textContent = 'Recipes with this product';\n        if(listEl){ listEl.style.display='none'; }\n        else if(gridToHide){ gridToHide.style.display='none'; }\n        else {\n          \/\/ 隐藏直接段落（避免把其它段落隐藏过多，仅隐藏紧邻的）\n          const ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n          ps.forEach(p=\u003e{ p.style.display='none'; });\n        }\n      }\n      if(prodHost \u0026\u0026 links.size){ Array.from(links).forEach(h=\u003e{ const a=buildProdCard(h); prodHost.appendChild(a); hydrate(a); }); }\n    }\n  }catch(e){}\n\n  \/\/ Pairs well → 滑动卡片（并将标题统一为 “Pairs well with these products”）\n  try{\n    const pairsH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(pairs\\s*well|pairswell|配搭建议|搭配推荐|搭配)\/i.test(h.textContent));\n    if(pairsH){\n      const section=pairsH.parentElement; const ul=section.querySelector('ul');\n      \/\/ 统一标题文案\n      pairsH.textContent = 'Pairs well with these products';\n      let host=section.querySelector('#um-pairs-slider');\n      if(!host){ host=document.createElement('div'); host.id='um-pairs-slider'; host.className='um-slider'; ensureAfter(ul||pairsH, host); }\n      const unique=new Set();\n      \/\/ 允许 p 段落或任意容器中的产品链接\n      section.querySelectorAll('a[href]').forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)) unique.add(h); });\n      unique.forEach(h=\u003e{ const card=buildProdCard(h); host.appendChild(card); hydrate(card); });\n    }\n  }catch(e){}\n\n  \/\/ More in this category → 条件滑动，成功后隐藏原标题与列表，把 Explore CTA 放到滑动条上方\n  try{\n    const moreH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(more in this category|同类推荐|更多此分类)\/i.test(h.textContent));\n    if(moreH){ const section=moreH.parentElement; const ul=section.querySelector('ul'); let host=section.querySelector('#um-more-slider'); if(!host){ host=document.createElement('div'); host.id='um-more-slider'; host.className='um-slider'; ensureAfter(ul||moreH, host); } if(ul){ const links=ul.querySelectorAll('a[href]'); if(links.length\u003e=2){ const unique=new Set(); links.forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)){ unique.add(h); const card=buildProdCard(h); host.appendChild(card); hydrate(card); } }); if(host.children.length){ ul.style.display='none'; moreH.style.display='none'; const ctaWrap = Array.from(section.querySelectorAll('div')).find(d=\u003ed.querySelector('a[href^=\"\/collections\/\"]')); if(ctaWrap){ section.insertBefore(ctaWrap, host); } } } } }\n  }catch(e){}\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48151489741087,"sku":"A0735745752159","price":1.59,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/4049e40aea454854f53aca1094bb64931QnDqeyFQxBHXNeqc3h4WIdsI68uJvxz.jpg?v=1735370758"},{"product_id":"fresh-bundle-of-celery","title":"Bundle of Celery","description":"\u003cdiv id=\"umall-desc\" style=\"--brand:#DB3A35;max-width:860px;margin:0 auto;padding:12px;color:#334155;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55\"\u003e\n\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\n\n\n\n\n\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\n\n\n\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:8px;\"\u003e\u003ch1 style=\"margin:0 0 6px;font-size:22px;font-weight:800;\"\u003eBundle of Celery\u003c\/h1\u003e\n\u003cp style=\"margin:6px 0 0;color:#475569;\"\u003eCrisp, aromatic stalks with tender leaves that bring clean crunch and a fresh, herby lift to stir‑fries, soups, and salads.\u003c\/p\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n\u003cul style=\"margin:0 0 0 18px;color:#334155;\"\u003e\n\u003cli\u003eBright, savory aroma and satisfying snap—great raw or cooked.\u003c\/li\u003e\n\u003cli\u003eLeaves are flavorful: use as a garnish or stir into soups at the end.\u003c\/li\u003e\n\u003cli\u003eStands up to high heat: quick sautés keep it juicy and crisp.\u003c\/li\u003e\n\u003cli\u003ePlays well with soy, garlic, ginger, sesame, mushrooms, tofu, beef, and noodles.\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 12px;font-size:18px;font-weight:700;\"\u003eHow to enjoy\u003c\/h3\u003e\n\u003col style=\"margin:0 0 0 18px;color:#334155;\"\u003e\n\u003cli style=\"margin-bottom:10px;\"\u003e\n\u003cstrong\u003eWok‑tossed beef \u0026amp; celery with oyster sauce\u003c\/strong\u003e — Sear thin \u003ca href=\"\/products\/angus-prime-shredded-beef-500g\"\u003ebeef strips\u003c\/a\u003e, add sliced celery, garlic, and finish with a spoon of \u003ca href=\"\/products\/haitian-premium-oyster-sauce-700g\"\u003eoyster sauce\u003c\/a\u003e. Stir‑fry hot and fast for 2–3 minutes. Optional: use \u003ca href=\"\/products\/peeled-garlic-cloves-250g\"\u003epeeled garlic cloves\u003c\/a\u003e for speed.\u003c\/li\u003e\n\u003cli style=\"margin-bottom:10px;\"\u003e\n\u003cstrong\u003eLight \u0026amp; crunchy celery salad with sesame and vinegar\u003c\/strong\u003e \u003cspan style=\"display:inline-flex;align-items:center;border:1px solid rgba(219,58,53,.2);color:var(--brand);background:rgba(219,58,53,.08);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;margin-left:8px\"\u003eLight \u0026amp; fresh\u003c\/span\u003e — Thinly slice celery on the bias, toss with a splash of \u003ca href=\"\/products\/hengshun-zhenjiang-aromatic-vinegar-550ml\"\u003eZhenjiang vinegar\u003c\/a\u003e, a few drops of \u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\"\u003esesame oil\u003c\/a\u003e, pinch of salt, and celery leaves.\u003c\/li\u003e\n\u003cli style=\"margin-bottom:10px;\"\u003e\n\u003cstrong\u003eClear celery, enoki \u0026amp; tofu soup\u003c\/strong\u003e — Simmer \u003ca href=\"\/products\/bull-head-clear-chicken-broth-411ml-canned-chicken-stock\"\u003eclear chicken broth\u003c\/a\u003e, add sliced celery, a bundle of \u003ca href=\"\/products\/chois-enoki-mushrooms-300g\"\u003eenoki\u003c\/a\u003e, and cubes of \u003ca href=\"\/products\/fresh-ever-green-chinese-style-tofu-approximately-500g\"\u003eclassic tofu\u003c\/a\u003e. Cook just until tender-crisp.\u003c\/li\u003e\n\u003cli style=\"margin-bottom:0;\"\u003e\n\u003cstrong\u003eCelery stir‑fry with rice noodles\u003c\/strong\u003e — Soak \u003ca href=\"\/products\/chunsi-nanchang-stir-fried-rice-noodles-1kg\"\u003estir‑fry rice noodles\u003c\/a\u003e, then toss with celery, scallions, and a drizzle of \u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\"\u003elight soy sauce\u003c\/a\u003e. Keep it hot and quick to preserve crunch.\u003c\/li\u003e\n\u003c\/ol\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003ePrep Tips\u003c\/h3\u003e\n\u003cul style=\"margin:0 0 0 18px;color:#334155;\"\u003e\n\u003cli\u003eTrim the base and leafy tops; reserve leaves for finishing.\u003c\/li\u003e\n\u003cli\u003ePeel tough outer strings with a paring knife for extra tenderness.\u003c\/li\u003e\n\u003cli\u003eBias‑slice thin for quick sautés; chunk larger for braises or soups.\u003c\/li\u003e\n\u003cli\u003eFor salads, briefly blanch slices 10–20 seconds, then chill for a mellower bite.\u003c\/li\u003e\n\u003cli\u003eAdd leaves at the very end of cooking to keep their fragrance.\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003ePairs well\u003c\/h3\u003e\n\u003cdiv style=\"display:flex;flex-wrap:wrap;gap:10px;\"\u003e\n\u003ca href=\"\/products\/angus-prime-shredded-beef-500g\" style=\"display:inline-block;padding:8px 12px;border:1px solid #e2e8f0;border-radius:999px;color:#1f2937;background:#fff;\"\u003eAngus Prime Beef Strip 500g\u003c\/a\u003e\n\u003ca href=\"\/products\/chois-shimeji-mushrooms-150g\" style=\"display:inline-block;padding:8px 12px;border:1px solid #e2e8f0;border-radius:999px;color:#1f2937;background:#fff;\"\u003eShimeji Mushrooms 150g\u003c\/a\u003e\n\u003ca href=\"\/products\/fresh-ever-green-chinese-style-tofu-approximately-500g\" style=\"display:inline-block;padding:8px 12px;border:1px solid #e2e8f0;border-radius:999px;color:#1f2937;background:#fff;\"\u003eEver Green Classic Tofu 500g\u003c\/a\u003e\n\u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\" style=\"display:inline-block;padding:8px 12px;border:1px solid #e2e8f0;border-radius:999px;color:#1f2937;background:#fff;\"\u003eLight Soy Sauce 500ml\u003c\/a\u003e\n\u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\" style=\"display:inline-block;padding:8px 12px;border:1px solid #e2e8f0;border-radius:999px;color:#1f2937;background:#fff;\"\u003eSesame Oil 207ml\u003c\/a\u003e\n\u003ca href=\"\/products\/double-phoenix-jiangmen-rice-noodles-454g\" style=\"display:inline-block;padding:8px 12px;border:1px solid #e2e8f0;border-radius:999px;color:#1f2937;background:#fff;\"\u003eKong Moon Rice Vermicelli 454g\u003c\/a\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eMore in this category\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 0;color:#334155;\"\u003eLove fresh produce? \u003ca href=\"\/collections\/vegetables\" style=\"color:var(--brand);\"\u003eBrowse all Vegetables\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 10px;color:#334155;font-size:14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding:10px;border-right:1px solid #e5e7eb;background:#f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align:left;padding:10px;background:#f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\u003cul style=\"margin:6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color:#a9a9a9;font-size:12px;margin:10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca href=\"\/pages\/return-refund-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin:8px 0 0;color:#334155;font-size:14px;\"\u003eDetails: \u003ca href=\"\/pages\/delivery-information\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size:13px;color:#666;margin:0 0 8px\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$4.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$7.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\n\/* DESC ENHANCER JS v1 *\/\n(function(){\n  const root = document.getElementById('umall-desc');\n  if(!root) return;\n\n  const handleFromHref = (href)=\u003e{\n    try{ const u = new URL(href, location.origin); const parts=u.pathname.split('\/').filter(Boolean); const i=parts.findIndex(p=\u003ep==='products'); if(i\u003e=0\u0026\u0026parts[i+1]) return parts[i+1]; }catch(e){}\n    return null;\n  };\n  const money = (cents)=\u003e{ if(window.Shopify \u0026\u0026 Shopify.formatMoney) return Shopify.formatMoney(cents, \"A${{amount}}\"); return typeof cents==='number' ? 'A$'+(cents\/100).toFixed(2) : ''; };\n  const buildProdCard = (handle)=\u003e{ const a=document.createElement('a'); a.className='um-card'; a.href='\/products\/'+handle; a.setAttribute('data-handle',handle); a.innerHTML='\u003cdiv class=\"um-imgbox\"\u003e\u003cimg alt=\"'+handle+'\" loading=\"lazy\"\/\u003e\u003cspan class=\"um-badge\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"um-meta\"\u003e\u003cdiv class=\"um-title\"\u003e'+handle.replace(\/-\/g,' ')+'\u003c\/div\u003e\u003cdiv class=\"um-price\"\u003e\u003c\/div\u003e\u003c\/div\u003e'; return a; };\n  const hydrate = async (a)=\u003e{ const h=a.getAttribute('data-handle'); try{ const r=await fetch('\/products\/'+h+'.js',{credentials:'same-origin'}); if(!r.ok) return; const p=await r.json(); const img=a.querySelector('img'); if(p.images\u0026\u0026p.images[0]) img.src=p.images[0]; const t=a.querySelector('.um-title'); t.textContent=p.title||t.textContent; const vs=(p.variants||[]); const avail=vs.filter(v=\u003ev.available); const arr=avail.length?avail:vs; if(arr.length){ const min=Math.min(...arr.map(v=\u003ev.price)); const maxCompare=Math.max(...arr.map(v=\u003ev.compare_at_price||0)); const price=a.querySelector('.um-price'); price.textContent=''; const cur=document.createElement('span'); cur.textContent=money(min); price.appendChild(cur); if(maxCompare \u0026\u0026 maxCompare\u003emin){ const s=document.createElement('s'); s.textContent=money(maxCompare); price.appendChild(document.createTextNode(' ')); price.appendChild(s); const badge=a.querySelector('.um-badge'); const off=Math.round((1-min\/maxCompare)*100); badge.textContent='-'+off+'%'; badge.style.display='inline-block'; } } }catch(e){} };\n\n  const ensureAfter = (refNode, node)=\u003e{ if(!refNode || !node) return; if(node.parentElement) return; refNode.parentElement.insertBefore(node, refNode.nextSibling); };\n\n  \/\/ How to enjoy → 卡片（保留原内容；隐藏原块；标题统一“Recipes with this product”）\n  try{\n    \/\/ 1) 更鲁棒地找到标题（h2\/h3\/h4）\n    const enjoyH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(how to enjoy|ways to enjoy|serving ideas|recipes with this product|食用建议|食用灵感|食法)\/i.test(h.textContent));\n    if(enjoyH){\n      const container = enjoyH.parentElement;\n      \/\/ 2) 就近查找列表或段落（同容器或下一个兄弟）\n      let listEl = container.querySelector('ol, ul');\n      if(!listEl){ const sib = enjoyH.nextElementSibling; if(sib){ listEl = sib.querySelector \u0026\u0026 sib.querySelector('ol, ul'); } }\n\n      \/\/ 3) 容器若不存在则创建\n      let cardsHost = container.querySelector('#um-recipes-cards');\n      if(!cardsHost){ cardsHost=document.createElement('div'); cardsHost.id='um-recipes-cards'; cardsHost.className='um-recipes'; ensureAfter(listEl||enjoyH, cardsHost); }\n      let prodHost = container.querySelector('#um-recipes-products');\n      if(!prodHost){ prodHost=document.createElement('div'); prodHost.id='um-recipes-products'; prodHost.className='um-slider'; ensureAfter(cardsHost, prodHost); }\n\n      const links = new Set();\n      let items = [];\n      if(listEl){ items = Array.from(listEl.children).filter(n=\u003en.tagName==='LI'); }\n      \/\/ 4) 若没有列表，尝试用同容器的段落或“网格DIV\/ARTICLE”作为卡片项\n      if(items.length === 0){\n        let ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n        if(ps.length \u003c 2){ const sib = enjoyH.nextElementSibling; if(sib){ ps = Array.from(sib.querySelectorAll(':scope \u003e p')); } }\n        items = ps;\n      }\n      \/\/ 5) 同容器下寻找“网格容器”（含多个子块，且子块内有 h4\/strong）\n      let gridToHide = null;\n      if(items.length === 0){\n        const ch = Array.from(container.children || []);\n        for(const el of ch){\n          if(el === enjoyH) continue;\n          if(el.children \u0026\u0026 el.children.length \u003e= 2){\n            const first = el.children[0];\n            if((first.querySelector \u0026\u0026 first.querySelector('h3, h4, h5, strong, b, div[style*=\"font-weight:700\"]'))){\n              items = Array.from(el.children);\n              gridToHide = el;\n              break;\n            }\n          }\n        }\n      }\n      \/\/ 6) 仍然没有，则看紧跟标题的下一个块（如显示为卡片的 div\/article 列表）\n      if(items.length === 0){\n        const sib = enjoyH.nextElementSibling;\n        if(sib){\n          const children = Array.from(sib.children || []);\n          if(children.length \u003e= 2){ items = children; gridToHide = sib; }\n        }\n      }\n\n      if(items.length){\n        items.forEach((node, idx)=\u003e{\n          const card=document.createElement('article'); card.className='um-rcard';\n          const titleNode = node.querySelector \u0026\u0026 node.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b, a');\n          const h4=document.createElement('h4'); h4.textContent = titleNode ? (titleNode.textContent.trim()||('Recipe '+(idx+1))) : ('Recipe '+(idx+1));\n          const clone = node.cloneNode(true);\n          const rm = clone.querySelector \u0026\u0026 clone.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b'); if(rm) rm.remove();\n          const body=document.createElement('div'); while(clone.firstChild){ body.appendChild(clone.firstChild); }\n          card.appendChild(h4); card.appendChild(body); cardsHost.appendChild(card);\n          (node.querySelectorAll ? node.querySelectorAll('a[href]') : []).forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h) links.add(h); });\n        });\n        \/\/ 统一标题并隐藏原内容块\n        enjoyH.textContent = 'Recipes with this product';\n        if(listEl){ listEl.style.display='none'; }\n        else if(gridToHide){ gridToHide.style.display='none'; }\n        else {\n          \/\/ 隐藏直接段落（避免把其它段落隐藏过多，仅隐藏紧邻的）\n          const ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n          ps.forEach(p=\u003e{ p.style.display='none'; });\n        }\n      }\n      if(prodHost \u0026\u0026 links.size){ Array.from(links).forEach(h=\u003e{ const a=buildProdCard(h); prodHost.appendChild(a); hydrate(a); }); }\n    }\n  }catch(e){}\n\n  \/\/ Pairs well → 滑动卡片（并将标题统一为 “Pairs well with these products”）\n  try{\n    const pairsH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(pairs\\s*well|pairswell|配搭建议|搭配推荐|搭配)\/i.test(h.textContent));\n    if(pairsH){\n      const section=pairsH.parentElement; const ul=section.querySelector('ul');\n      \/\/ 统一标题文案\n      pairsH.textContent = 'Pairs well with these products';\n      let host=section.querySelector('#um-pairs-slider');\n      if(!host){ host=document.createElement('div'); host.id='um-pairs-slider'; host.className='um-slider'; ensureAfter(ul||pairsH, host); }\n      const unique=new Set();\n      \/\/ 允许 p 段落或任意容器中的产品链接\n      section.querySelectorAll('a[href]').forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)) unique.add(h); });\n      unique.forEach(h=\u003e{ const card=buildProdCard(h); host.appendChild(card); hydrate(card); });\n    }\n  }catch(e){}\n\n  \/\/ More in this category → 条件滑动，成功后隐藏原标题与列表，把 Explore CTA 放到滑动条上方\n  try{\n    const moreH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(more in this category|同类推荐|更多此分类)\/i.test(h.textContent));\n    if(moreH){ const section=moreH.parentElement; const ul=section.querySelector('ul'); let host=section.querySelector('#um-more-slider'); if(!host){ host=document.createElement('div'); host.id='um-more-slider'; host.className='um-slider'; ensureAfter(ul||moreH, host); } if(ul){ const links=ul.querySelectorAll('a[href]'); if(links.length\u003e=2){ const unique=new Set(); links.forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)){ unique.add(h); const card=buildProdCard(h); host.appendChild(card); hydrate(card); } }); if(host.children.length){ ul.style.display='none'; moreH.style.display='none'; const ctaWrap = Array.from(section.querySelectorAll('div')).find(d=\u003ed.querySelector('a[href^=\"\/collections\/\"]')); if(ctaWrap){ section.insertBefore(ctaWrap, host); } } } } }\n  }catch(e){}\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48151490298143,"sku":"A0735745752630","price":2.29,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/c2bb8ed7a264be40c167fff4f818c2fb91XI9Ckf7gDmVZSHo0th11ojoXDGLmrG.jpg?v=1712384333"},{"product_id":"fresh-green-lantern-peppers-pack-of-3","title":"Green Bell Peppers- Pack of 3","description":"\u003cdiv id=\"umall-desc\" style=\"max-width:860px;margin:0 auto;--brand:#DB3A35;color:#334155;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55;\"\u003e\n\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\n\n\n\n\n\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\n\n\n\n\n\n  \u003csection style=\"display:flex;gap:16px;align-items:center;border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;\"\u003e\n    \u003cdiv style=\"flex:0 0 140px;height:140px;border-radius:12px;overflow:hidden;border:1px solid #e2e8f0;background:#f8fafc;display:flex;align-items:center;justify-content:center;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/118e6d912785716b9b3fa3631e0386d6ADguo2kerjsn0shivHNwAC1XCymlDupE.jpg?v=1712384495\" alt=\"Green Bell Peppers - Pack of 3\" style=\"width:100%;height:100%;object-fit:cover;\"\u003e\u003c\/div\u003e\n    \u003cdiv style=\"flex:1;min-width:0;\"\u003e\n      \u003ch1 style=\"margin:0 0 4px;font-size:24px;font-weight:800;color:#0f172a;\"\u003eGreen Bell Peppers — Pack of 3\u003c\/h1\u003e\n      \u003cp style=\"margin:0 0 10px;color:#64748b;font-size:14px;\"\u003eAlso known as green capsicum\u003c\/p\u003e\n      \u003cp style=\"margin:0;font-size:14px;color:#334155;\"\u003eCrisp, juicy, and refreshingly grassy-sweet. Thick-walled peppers that hold their bite in stir-fries, shine in salads, and are perfect for stuffing.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n    \u003cul style=\"margin:8px 0 0 18px;padding:0;font-size:14px;color:#334155;\"\u003e\n      \u003cli\u003eClean, mild sweetness with a gentle pepper aroma — no heat.\u003c\/li\u003e\n      \u003cli\u003eThick, crunchy walls that stay snappy after a quick sauté.\u003c\/li\u003e\n      \u003cli\u003eUniform size for even cooking and great for stuffing or skewers.\u003c\/li\u003e\n      \u003cli\u003eVersatile across cuisines: stir-fries, noodles, salads, and roasts.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 12px;font-size:18px;font-weight:700;\"\u003eHow to enjoy\u003c\/h3\u003e\n    \u003cdiv style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;\"\u003e\n      \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;\"\u003e\n        \u003ch4 style=\"margin:0 0 6px;font-size:15px;font-weight:700;color:#0f172a;\"\u003eWok-seared beef \u0026amp; capsicum with oyster sauce\u003c\/h4\u003e\n        \u003cp style=\"margin:0;font-size:14px;color:#334155;\"\u003eFlash-fry pepper strips with \u003ca href=\"\/products\/angus-prime-shredded-beef-500g\" style=\"color:var(--brand);\"\u003eAngus beef strips\u003c\/a\u003e and finish with a splash of \u003ca href=\"\/products\/haitian-premium-oyster-sauce-700g\" style=\"color:var(--brand);\"\u003eoyster sauce\u003c\/a\u003e. Stir-fry 2-4 minutes for crisp-tender peppers.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;\"\u003e\n        \u003ch4 style=\"margin:0 0 6px;font-size:15px;font-weight:700;color:#0f172a;\"\u003eJuicy stuffed peppers (pork \u0026amp; rice)\u003c\/h4\u003e\n        \u003cp style=\"margin:0;font-size:14px;color:#334155;\"\u003eHalve and deseed; stuff with seasoned \u003ca href=\"\/products\/borrowdale-free-range-pork-mince-500g-frozen\" style=\"color:var(--brand);\"\u003elean pork mince\u003c\/a\u003e and cooked \u003ca href=\"\/products\/beidahuang-wuchang-rice-vacuum-pack-5kg\" style=\"color:var(--brand);\"\u003eWuchang rice\u003c\/a\u003e. Bake or steam until tender and succulent.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;\"\u003e\n        \u003ch4 style=\"margin:0 0 6px;font-size:15px;font-weight:700;color:#0f172a;\"\u003eCrunchy sesame-vinegar pepper salad \u003cspan style=\"display:inline-flex;align-items:center;border:1px solid rgba(219,58,53,.2);color:var(--brand);background:rgba(219,58,53,.08);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;margin-left:8px\"\u003eLow-calorie\u003c\/span\u003e\n\u003c\/h4\u003e\n        \u003cp style=\"margin:0;font-size:14px;color:#334155;\"\u003eThinly slice peppers and toss with \u003ca href=\"\/products\/hengshun-white-rice-vinegar-500ml\" style=\"color:var(--brand);\"\u003ewhite rice vinegar\u003c\/a\u003e, a drizzle of sesame oil, and a handful of \u003ca href=\"\/products\/fresh-mixed-salad-greens-mesclun-mix-300g\" style=\"color:var(--brand);\"\u003emixed salad greens\u003c\/a\u003e. Bright, crunchy, and refreshing.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;\"\u003e\n        \u003ch4 style=\"margin:0 0 6px;font-size:15px;font-weight:700;color:#0f172a;\"\u003eShiitake \u0026amp; pepper rice vermicelli stir-fry\u003c\/h4\u003e\n        \u003cp style=\"margin:0;font-size:14px;color:#334155;\"\u003eStir-fry pepper strips with \u003ca href=\"\/products\/chois-shiitake-mushrooms-100g\" style=\"color:var(--brand);\"\u003eshiitake\u003c\/a\u003e; toss with soaked \u003ca href=\"\/products\/chunsi-jiangxi-rice-noodles-300g\" style=\"color:var(--brand);\"\u003erice vermicelli\u003c\/a\u003e, a splash of soy, and sesame oil. Quick, savory weeknight noodles.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePrep Tips\u003c\/h3\u003e\n    \u003cul style=\"margin:8px 0 0 18px;padding:0;font-size:14px;\"\u003e\n      \u003cli\u003eSlice off the top, run a knife around the core, and tap out seeds; trim white ribs for a milder taste.\u003c\/li\u003e\n      \u003cli\u003eFor crisp-tender bites, cook over high heat and keep to 2-4 minutes in the wok.\u003c\/li\u003e\n      \u003cli\u003eRoast or char to bring out sweetness; peel blistered skin if you prefer a softer texture.\u003c\/li\u003e\n      \u003cli\u003eCut into even strips or cubes so they cook uniformly.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePairs well\u003c\/h3\u003e\n    \u003cdiv style=\"display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;\"\u003e\n      \u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\" style=\"color:var(--brand);padding:8px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;\"\u003eLight Soy Sauce (Haitian)\u003c\/a\u003e\n      \u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\" style=\"color:var(--brand);padding:8px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;\"\u003ePure Sesame Oil\u003c\/a\u003e\n      \u003ca href=\"\/products\/premium-selected-frozen-chicken-breast-1kg\" style=\"color:var(--brand);padding:8px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;\"\u003eChicken Breast Fillet\u003c\/a\u003e\n      \u003ca href=\"\/products\/fresh-ever-green-chinese-style-tofu-approximately-500g\" style=\"color:var(--brand);padding:8px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;\"\u003eClassic Tofu (Ever Green)\u003c\/a\u003e\n      \u003ca href=\"\/products\/chois-oyster-mushrooms-400g\" style=\"color:var(--brand);padding:8px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;\"\u003eOyster Mushrooms\u003c\/a\u003e\n      \u003ca href=\"\/products\/chuanwazi-crispy-chili-oil-with-peanuts-200g-sichuan-chili-crisp\" style=\"color:var(--brand);padding:8px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;\"\u003eCrispy Chili Oil\u003c\/a\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n    \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eMore in this category\u003c\/h3\u003e\n    \u003cdiv style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;\"\u003e\n      \u003ca href=\"\/products\/fresh-red-lantern-peppers-pack-of-3\" style=\"display:block;border:1px solid #e2e8f0;border-radius:12px;padding:12px;color:var(--brand);\"\u003e\u003cdiv style=\"font-weight:700;color:#0f172a;margin-bottom:4px;\"\u003eRed Bell Peppers\u003c\/div\u003e\n\u003cdiv style=\"font-size:13px;color:#64748b;\"\u003ePack of 3\u003c\/div\u003e\u003c\/a\u003e\n      \u003ca href=\"\/products\/green-bullhorn-peppers-450-500g\" style=\"display:block;border:1px solid #e2e8f0;border-radius:12px;padding:12px;color:var(--brand);\"\u003e\u003cdiv style=\"font-weight:700;color:#0f172a;margin-bottom:4px;\"\u003eGreen Bullhorn Peppers\u003c\/div\u003e\n\u003cdiv style=\"font-size:13px;color:#64748b;\"\u003e450-500g\u003c\/div\u003e\u003c\/a\u003e\n      \u003ca href=\"\/products\/fresh-bullet-chillies-millet-peppers-approximately-200g\" style=\"display:block;border:1px solid #e2e8f0;border-radius:12px;padding:12px;color:var(--brand);\"\u003e\u003cdiv style=\"font-weight:700;color:#0f172a;margin-bottom:4px;\"\u003eBird's Eye Chilies\u003c\/div\u003e\n\u003cdiv style=\"font-size:13px;color:#64748b;\"\u003e200g\u003c\/div\u003e\u003c\/a\u003e\n      \u003ca href=\"\/products\/fresh-thai-green-chilli-approximately-150g\" style=\"display:block;border:1px solid #e2e8f0;border-radius:12px;padding:12px;color:var(--brand);\"\u003e\u003cdiv style=\"font-weight:700;color:#0f172a;margin-bottom:4px;\"\u003eThai Green Chilli\u003c\/div\u003e\n\u003cdiv style=\"font-size:13px;color:#64748b;\"\u003e150g\u003c\/div\u003e\u003c\/a\u003e\n    \u003c\/div\u003e\n    \u003cdiv style=\"margin-top:12px;\"\u003e\u003ca href=\"\/collections\/shop-peppers-chilli-online-next-day-delivery-in-sydney\" style=\"color:var(--brand);text-decoration:underline;\"\u003eBrowse all peppers \u0026amp; chilies\u003c\/a\u003e\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 10px;color:#334155;font-size:14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding:10px;border-right:1px solid #e5e7eb;background:#f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align:left;padding:10px;background:#f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\u003cul style=\"margin:6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color:#a9a9a9;font-size:12px;margin:10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca href=\"\/pages\/return-refund-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin:8px 0 0;color:#334155;font-size:14px;\"\u003eDetails: \u003ca href=\"\/pages\/delivery-information\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\n  \u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size:13px;color:#666;margin:0 0 8px\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$4.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e2e8f0;border-top:1px solid #e5e7eb;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$7.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\n\/* DESC ENHANCER JS v1 *\/\n(function(){\n  const root = document.getElementById('umall-desc');\n  if(!root) return;\n\n  const handleFromHref = (href)=\u003e{\n    try{ const u = new URL(href, location.origin); const parts=u.pathname.split('\/').filter(Boolean); const i=parts.findIndex(p=\u003ep==='products'); if(i\u003e=0\u0026\u0026parts[i+1]) return parts[i+1]; }catch(e){}\n    return null;\n  };\n  const money = (cents)=\u003e{ if(window.Shopify \u0026\u0026 Shopify.formatMoney) return Shopify.formatMoney(cents, \"A${{amount}}\"); return typeof cents==='number' ? 'A$'+(cents\/100).toFixed(2) : ''; };\n  const buildProdCard = (handle)=\u003e{ const a=document.createElement('a'); a.className='um-card'; a.href='\/products\/'+handle; a.setAttribute('data-handle',handle); a.innerHTML='\u003cdiv class=\"um-imgbox\"\u003e\u003cimg alt=\"'+handle+'\" loading=\"lazy\"\/\u003e\u003cspan class=\"um-badge\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"um-meta\"\u003e\u003cdiv class=\"um-title\"\u003e'+handle.replace(\/-\/g,' ')+'\u003c\/div\u003e\u003cdiv class=\"um-price\"\u003e\u003c\/div\u003e\u003c\/div\u003e'; return a; };\n  const hydrate = async (a)=\u003e{ const h=a.getAttribute('data-handle'); try{ const r=await fetch('\/products\/'+h+'.js',{credentials:'same-origin'}); if(!r.ok) return; const p=await r.json(); const img=a.querySelector('img'); if(p.images\u0026\u0026p.images[0]) img.src=p.images[0]; const t=a.querySelector('.um-title'); t.textContent=p.title||t.textContent; const vs=(p.variants||[]); const avail=vs.filter(v=\u003ev.available); const arr=avail.length?avail:vs; if(arr.length){ const min=Math.min(...arr.map(v=\u003ev.price)); const maxCompare=Math.max(...arr.map(v=\u003ev.compare_at_price||0)); const price=a.querySelector('.um-price'); price.textContent=''; const cur=document.createElement('span'); cur.textContent=money(min); price.appendChild(cur); if(maxCompare \u0026\u0026 maxCompare\u003emin){ const s=document.createElement('s'); s.textContent=money(maxCompare); price.appendChild(document.createTextNode(' ')); price.appendChild(s); const badge=a.querySelector('.um-badge'); const off=Math.round((1-min\/maxCompare)*100); badge.textContent='-'+off+'%'; badge.style.display='inline-block'; } } }catch(e){} };\n\n  const ensureAfter = (refNode, node)=\u003e{ if(!refNode || !node) return; if(node.parentElement) return; refNode.parentElement.insertBefore(node, refNode.nextSibling); };\n\n  \/\/ How to enjoy → 卡片（保留原内容；隐藏原块；标题统一“Recipes with this product”）\n  try{\n    \/\/ 1) 更鲁棒地找到标题（h2\/h3\/h4）\n    const enjoyH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(how to enjoy|ways to enjoy|serving ideas|recipes with this product|食用建议|食用灵感|食法)\/i.test(h.textContent));\n    if(enjoyH){\n      const container = enjoyH.parentElement;\n      \/\/ 2) 就近查找列表或段落（同容器或下一个兄弟）\n      let listEl = container.querySelector('ol, ul');\n      if(!listEl){ const sib = enjoyH.nextElementSibling; if(sib){ listEl = sib.querySelector \u0026\u0026 sib.querySelector('ol, ul'); } }\n\n      \/\/ 3) 容器若不存在则创建\n      let cardsHost = container.querySelector('#um-recipes-cards');\n      if(!cardsHost){ cardsHost=document.createElement('div'); cardsHost.id='um-recipes-cards'; cardsHost.className='um-recipes'; ensureAfter(listEl||enjoyH, cardsHost); }\n      let prodHost = container.querySelector('#um-recipes-products');\n      if(!prodHost){ prodHost=document.createElement('div'); prodHost.id='um-recipes-products'; prodHost.className='um-slider'; ensureAfter(cardsHost, prodHost); }\n\n      const links = new Set();\n      let items = [];\n      if(listEl){ items = Array.from(listEl.children).filter(n=\u003en.tagName==='LI'); }\n      \/\/ 4) 若没有列表，尝试用同容器的段落或“网格DIV\/ARTICLE”作为卡片项\n      if(items.length === 0){\n        let ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n        if(ps.length \u003c 2){ const sib = enjoyH.nextElementSibling; if(sib){ ps = Array.from(sib.querySelectorAll(':scope \u003e p')); } }\n        items = ps;\n      }\n      \/\/ 5) 同容器下寻找“网格容器”（含多个子块，且子块内有 h4\/strong）\n      let gridToHide = null;\n      if(items.length === 0){\n        const ch = Array.from(container.children || []);\n        for(const el of ch){\n          if(el === enjoyH) continue;\n          if(el.children \u0026\u0026 el.children.length \u003e= 2){\n            const first = el.children[0];\n            if((first.querySelector \u0026\u0026 first.querySelector('h3, h4, h5, strong, b, div[style*=\"font-weight:700\"]'))){\n              items = Array.from(el.children);\n              gridToHide = el;\n              break;\n            }\n          }\n        }\n      }\n      \/\/ 6) 仍然没有，则看紧跟标题的下一个块（如显示为卡片的 div\/article 列表）\n      if(items.length === 0){\n        const sib = enjoyH.nextElementSibling;\n        if(sib){\n          const children = Array.from(sib.children || []);\n          if(children.length \u003e= 2){ items = children; gridToHide = sib; }\n        }\n      }\n\n      if(items.length){\n        items.forEach((node, idx)=\u003e{\n          const card=document.createElement('article'); card.className='um-rcard';\n          const titleNode = node.querySelector \u0026\u0026 node.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b, a');\n          const h4=document.createElement('h4'); h4.textContent = titleNode ? (titleNode.textContent.trim()||('Recipe '+(idx+1))) : ('Recipe '+(idx+1));\n          const clone = node.cloneNode(true);\n          const rm = clone.querySelector \u0026\u0026 clone.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b'); if(rm) rm.remove();\n          const body=document.createElement('div'); while(clone.firstChild){ body.appendChild(clone.firstChild); }\n          card.appendChild(h4); card.appendChild(body); cardsHost.appendChild(card);\n          (node.querySelectorAll ? node.querySelectorAll('a[href]') : []).forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h) links.add(h); });\n        });\n        \/\/ 统一标题并隐藏原内容块\n        enjoyH.textContent = 'Recipes with this product';\n        if(listEl){ listEl.style.display='none'; }\n        else if(gridToHide){ gridToHide.style.display='none'; }\n        else {\n          \/\/ 隐藏直接段落（避免把其它段落隐藏过多，仅隐藏紧邻的）\n          const ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n          ps.forEach(p=\u003e{ p.style.display='none'; });\n        }\n      }\n      if(prodHost \u0026\u0026 links.size){ Array.from(links).forEach(h=\u003e{ const a=buildProdCard(h); prodHost.appendChild(a); hydrate(a); }); }\n    }\n  }catch(e){}\n\n  \/\/ Pairs well → 滑动卡片（并将标题统一为 “Pairs well with these products”）\n  try{\n    const pairsH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(pairs\\s*well|pairswell|配搭建议|搭配推荐|搭配)\/i.test(h.textContent));\n    if(pairsH){\n      const section=pairsH.parentElement; const ul=section.querySelector('ul');\n      \/\/ 统一标题文案\n      pairsH.textContent = 'Pairs well with these products';\n      let host=section.querySelector('#um-pairs-slider');\n      if(!host){ host=document.createElement('div'); host.id='um-pairs-slider'; host.className='um-slider'; ensureAfter(ul||pairsH, host); }\n      const unique=new Set();\n      \/\/ 允许 p 段落或任意容器中的产品链接\n      section.querySelectorAll('a[href]').forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)) unique.add(h); });\n      unique.forEach(h=\u003e{ const card=buildProdCard(h); host.appendChild(card); hydrate(card); });\n    }\n  }catch(e){}\n\n  \/\/ More in this category → 条件滑动，成功后隐藏原标题与列表，把 Explore CTA 放到滑动条上方\n  try{\n    const moreH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(more in this category|同类推荐|更多此分类)\/i.test(h.textContent));\n    if(moreH){ const section=moreH.parentElement; const ul=section.querySelector('ul'); let host=section.querySelector('#um-more-slider'); if(!host){ host=document.createElement('div'); host.id='um-more-slider'; host.className='um-slider'; ensureAfter(ul||moreH, host); } if(ul){ const links=ul.querySelectorAll('a[href]'); if(links.length\u003e=2){ const unique=new Set(); links.forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)){ unique.add(h); const card=buildProdCard(h); host.appendChild(card); hydrate(card); } }); if(host.children.length){ ul.style.display='none'; moreH.style.display='none'; const ctaWrap = Array.from(section.querySelectorAll('div')).find(d=\u003ed.querySelector('a[href^=\"\/collections\/\"]')); if(ctaWrap){ section.insertBefore(ctaWrap, host); } } } } }\n  }catch(e){}\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48151493050655,"sku":"A0735745752395","price":3.49,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/118e6d912785716b9b3fa3631e0386d6ADguo2kerjsn0shivHNwAC1XCymlDupE.jpg?v=1712384495"},{"product_id":"osawa-frozen-wagyu-beef-slices-250g","title":"Osawa Frozen Wagyu Beef Slices 250g","description":"\u003cp\u003eIndulge in the luxurious taste of Osawa Frozen Wagyu Beef Slices, expertly cut to a 250g weight for your convenience.\u003cbr\u003e Each slice is rich in marbling, ensuring a melt-in-your-mouth texture and intense flavor.\u003cbr\u003e Perfect for gourmet home cooking, these Wagyu beef slices elevate any dish, from stir-fries to traditional Japanese hot pots.\u003cbr\u003e Quick to prepare and packed for freshness, they offer a premium dining experience right in your kitchen.\u003c\/p\u003e\n\n\u003cp\u003eSee all beef in our main collection: \u003ca href=\"\/collections\/angus-wagyu-beef\"\u003eBeef\u003c\/a\u003e.\u003c\/p\u003e","brand":"Osawa","offers":[{"title":"Default Title","offer_id":48151537254687,"sku":"A702785166604","price":10.29,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_71d62d90-d24e-45fa-b39f-d217e5cadf36.jpg?v=1736929190"},{"product_id":"little-boss-crispy-seaweed-with-spicy-squid-flavour-24g","title":"Taokaenoi Crispy Seaweed with Spicy Squid Flavour 24g","description":"\u003cp\u003eTaokaenoi Crispy Seaweed with Spicy Squid Flavour is a 24g snack packed with the bold, savory taste of squid and a spicy kick. It's a perfect on-the-go snack for those who love the unique combination of seaweed and seafood flavors.\u003c\/p\u003e","brand":"Taokaenoi","offers":[{"title":"Default Title","offer_id":48154173964575,"sku":"8858702403634","price":3.69,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_3d79f7c7-c254-4912-aa47-a485db55878e.jpg?v=1747018793"},{"product_id":"si-hong-hand-peeled-roasted-walnuts-with-milky-flavor-210g","title":"Si Hong Hand-Peeled Roasted Walnuts with Milky Flavor 210g","description":"\u003cp\u003eSi Hong Hand-Peeled Roasted Walnuts are a delicious snack, carefully peeled and roasted to perfection. With a unique milky flavor, this 210g pack offers a rich, creamy taste in every bite.\u003c\/p\u003e","brand":"SiHong","offers":[{"title":"Default Title","offer_id":48155068530975,"sku":"A6937638102773","price":3.39,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_0cfb7460-3c67-4fdb-8ef0-3e88263bdf80.jpg?v=1712406487"},{"product_id":"want-want-spicy-snow-crackers-150g","title":"Want Want Spicy Snow Crackers 150g","description":"\u003cp\u003eWant Want Spicy Snow Crackers are a 150g pack of crispy, spicy snacks perfect for a flavorful bite. These crackers offer a unique snowflake shape and a satisfying crunch with every mouthful.\u003c\/p\u003e","brand":"Want Want","offers":[{"title":"Default Title","offer_id":48155245707551,"sku":"4710144802373","price":4.19,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/c69fd8e6181bcc01e4cc41bc291a2c135TIh9yXWUVUu5eyU4FT8kGuqZLHufgfQ.jpg?v=1712407474"},{"product_id":"xufuji-crispy-heart-candy-306g","title":"Hsu Fu Chi Crispy Candy - 306g","description":"\u003cp\u003eHsu Fu Chi Crispy Heart Candy 306g is a delightful sweet treat, perfect for candy lovers. Its heart-shaped design and crispy texture make it a fun and enjoyable snack.\u003c\/p\u003e","brand":"Hsu Fu Chi","offers":[{"title":"Default Title","offer_id":48156414378271,"sku":"A6914782131378","price":7.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_20d548b1-56cf-46f9-b8f2-039c48377bbb.jpg?v=1712411186"},{"product_id":"vitasoy-original-soy-milk-250ml-6-pack","title":"Vitasoy Original Soy Milk 250ml - 6 Pack","description":"\u003cp\u003eA six-pack of 250ml Vitasoy Original Soy Milk, a dairy-free, plant-based beverage rich in protein and low in saturated fat.\u003c\/p\u003e","brand":"Vita","offers":[{"title":"Default Title","offer_id":48157806362911,"sku":"4891028664994","price":5.79,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_333667fe-72a8-4523-80e7-ebc74a924b5c.jpg?v=1712418625"},{"product_id":"yang-xiecheng-sugarcane-water-6pk-250ml","title":"Yeo's Sugarcane Water 6pk*250ml","description":"\u003cp\u003eA 6-pack of 250ml bottles of Yeo's Sugarcane Water, a refreshing and natural beverage made from pure sugarcane.\u003c\/p\u003e","brand":"Yeo's","offers":[{"title":"Default Title","offer_id":48157822026015,"sku":"9556156040106","price":4.19,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_6ef25d85-6fc7-4cdd-b5ca-5c02d379b84a.jpg?v=1712418887"},{"product_id":"nissin-demae-ramen-black-garlic-oil-tonkotsu-pork-flavour-72g","title":"Nissin Demae Iccho Black Garlic Oil Tonkotsu Flavor Instant Noodles - 72g","description":"\u003cp\u003eInstant ramen noodles with a rich and savory tonkotsu pork flavor enhanced with black garlic oil.\u003c\/p\u003e","brand":"Nissin","offers":[{"title":"Default Title","offer_id":48157879992607,"sku":"A4897878150083","price":1.89,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_ba54a697-ca57-4cb6-a48b-3117d54575dc.jpg?v=1712419790"},{"product_id":"white-elephant-brand-old-hen-soup-flavoured-noodles-111g-pack-of-5-bags","title":"White Elephant Brand Old Hen Soup Flavoured Noodles 111g, Pack of 5 Bags","description":"\u003cp\u003eInstant noodles with a rich and savory old hen soup flavor, conveniently packaged in 5 individual bags.\u003c\/p\u003e","brand":"White Elephant","offers":[{"title":"Default Title","offer_id":48158052483359,"sku":"A6935270641988","price":4.49,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_2ddc00f7-af12-467a-9130-a86baa118be5.jpg?v=1712421999"},{"product_id":"shiseido-anessa-perfect-uv-sunscreen-milk-for-sensitive-skin-60ml","title":"Shiseido Anessa Perfect UV Sunscreen Milk for Sensitive Skin 60ml","description":"\u003cp\u003eA gentle and lightweight sunscreen milk specifically formulated for sensitive skin, providing high protection against harmful UV rays.\u003c\/p\u003e","brand":"Shiseido","offers":[{"title":"Default Title","offer_id":48158466375967,"sku":"A4909978998943","price":40.89,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_340bfa93-1310-4ccf-a7fd-99772c85966b.jpg?v=1712425986"},{"product_id":"chois-shiitake-mushrooms-100g","title":"Chois Shiitake Mushrooms - 100g","description":"\u003cdiv id=\"umall-desc\" style=\"--brand:#DB3A35;max-width:860px;margin:0 auto;padding:6px 0;color:#334155;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6;\"\u003e\n\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\n\n\n\n\n\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\n\n\n\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:22px;margin-top:8px;\"\u003e\u003ch1 style=\"margin:0;font-size:24px;font-weight:800;color:#0f172a;\"\u003eChois Shiitake Mushrooms - 100g\u003c\/h1\u003e\n\u003cp style=\"margin:10px 0 0;font-size:14px;color:#64748b;\"\u003ePlump caps with deep, savory umami — perfect for everyday stir-fries, soups, and noodles.\u003c\/p\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:22px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n\u003cul style=\"margin:8px 0 0 18px;padding:0;font-size:14px;color:#334155;\"\u003e\n\u003cli\u003eRich, meaty texture that browns beautifully.\u003c\/li\u003e\n\u003cli\u003eConcentrated umami lifts simple soy, ginger and garlic dishes.\u003c\/li\u003e\n\u003cli\u003eVersatile across stir-fries, hotpot, noodles, rice bowls, and steamed dishes.\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:22px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 14px;font-size:18px;font-weight:700;\"\u003eHow to enjoy\u003c\/h3\u003e\n\u003cdiv style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;\"\u003e \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;\"\u003e \u003ch4 style=\"margin:0 0 6px;font-size:16px;font-weight:700;\"\u003eGingery Shiitake \u0026amp; Bok Choy Stir-Fry\u003c\/h4\u003e\n\u003cp style=\"margin:6px 0 0;font-size:14px;\"\u003eSear sliced shiitake in a hot wok, add ginger and \u003ca href=\"\/products\/fresh-baby-bok-choy-pack-of-2\"\u003eBaby Bok Choy\u003c\/a\u003e, then finish with a splash of \u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\"\u003eLight Soy Sauce\u003c\/a\u003e. Toss 1-2 minutes to keep veg crisp.\u003c\/p\u003e\n\u003c\/div\u003e \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;\"\u003e \u003ch4 style=\"margin:0 0 6px;font-size:16px;font-weight:700;\"\u003eBroth-Based Mushroom Soup with Tofu \u0026amp; Enoki \u003cspan style=\"display:inline-flex;align-items:center;border:1px solid rgba(219,58,53,.2);color:var(--brand);background:rgba(219,58,53,.08);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;margin-left:8px\"\u003eBroth‑based\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003cp style=\"margin:6px 0 0;font-size:14px;\"\u003eSimmer shiitake with \u003ca href=\"\/products\/fresh-ever-green-chinese-style-tofu-approximately-500g\"\u003eClassic Tofu\u003c\/a\u003e, a handful of \u003ca href=\"\/products\/chois-enoki-mushrooms-300g\"\u003eEnoki\u003c\/a\u003e and a mild \u003ca href=\"\/products\/haidilao-mushroom-flavor-hot-pot-seasoning-150g\"\u003eMushroom Hot Pot Base\u003c\/a\u003e for 6-8 minutes.\u003c\/p\u003e\n\u003c\/div\u003e \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;\"\u003e \u003ch4 style=\"margin:0 0 6px;font-size:16px;font-weight:700;\"\u003eSoy‑Sesame Noodles with Pan‑Seared Shiitake\u003c\/h4\u003e\n\u003cp style=\"margin:6px 0 0;font-size:14px;\"\u003ePan‑sear shiitake until browned, then toss with \u003ca href=\"\/products\/fresh-evergreen-yangchun-noodles-500g\"\u003eYangchun Noodles\u003c\/a\u003e, a drizzle of \u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\"\u003eSesame Oil\u003c\/a\u003e and a splash of \u003ca href=\"\/products\/kikkoman-all-purpose-soy-sauce-1-6l\"\u003eKikkoman Soy\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e \u003cdiv style=\"border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;\"\u003e \u003ch4 style=\"margin:0 0 6px;font-size:16px;font-weight:700;\"\u003eSilky Steamed Egg with Shiitake \u0026amp; Shallots\u003c\/h4\u003e\n\u003cp style=\"margin:6px 0 0;font-size:14px;\"\u003eScatter sliced shiitake over beaten \u003ca href=\"\/products\/pace-farm-free-range-eggs-12-extra-large-700g\"\u003eFree‑Range Eggs\u003c\/a\u003e, top with finely sliced \u003ca href=\"\/products\/shallots-500g\"\u003eShallots\u003c\/a\u003e, and steam 8-10 minutes until just set.\u003c\/p\u003e\n\u003c\/div\u003e \u003c\/div\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:22px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePrep Tips\u003c\/h3\u003e\n\u003cul style=\"margin:8px 0 0 18px;padding:0;font-size:14px;\"\u003e\n\u003cli\u003eWipe caps with a damp towel; avoid soaking to keep them meaty. Trim dry stem ends.\u003c\/li\u003e\n\u003cli\u003eSlice caps or score a shallow criss‑cross to help sauce cling and encourage browning.\u003c\/li\u003e\n\u003cli\u003eFor best sear, cook in a single layer over medium‑high heat 2-4 minutes before adding sauces.\u003c\/li\u003e\n\u003cli\u003eStems are flavorful — save for stock or thinly slice for stir‑fries.\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:22px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePairs well\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 0;font-size:14px;\"\u003eTry with \u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\"\u003eLight Soy Sauce\u003c\/a\u003e, a drizzle of \u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\"\u003eSesame Oil\u003c\/a\u003e, soft \u003ca href=\"\/products\/fresh-ever-green-chinese-style-tofu-approximately-500g\"\u003eClassic Tofu\u003c\/a\u003e, quick‑cook \u003ca href=\"\/products\/fresh-evergreen-yangchun-noodles-500g\"\u003eYangchun Noodles\u003c\/a\u003e, or crisp \u003ca href=\"\/products\/fresh-baby-bok-choy-pack-of-2\"\u003eBaby Bok Choy\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:22px;margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;\"\u003e\u003cdiv\u003e\n\u003ch3 style=\"margin:0 0 6px;font-size:18px;font-weight:700;\"\u003eMore in this category\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 0;font-size:14px;\"\u003eExplore more fresh mushrooms \u0026amp; beans in our curated selection.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ca href=\"\/collections\/order-mushrooms-beans-online-next-day-delivery-in-sydney\" style=\"color:#fff;border-bottom:none !important;background:var(--brand);padding:10px 14px;border-radius:12px;font-weight:700;font-size:14px;display:inline-block;\"\u003eBrowse the collection\u003c\/a\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 10px;color:#334155;font-size:14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding:10px;border-right:1px solid #e5e7eb;background:#f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align:left;padding:10px;background:#f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\u003cul style=\"margin:6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color:#a9a9a9;font-size:12px;margin:10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca href=\"\/pages\/return-refund-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin:8px 0 0;color:#334155;font-size:14px;\"\u003eDetails: \u003ca href=\"\/pages\/delivery-information\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size:13px;color:#666;margin:0 0 8px\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$4.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$7.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\n\/* DESC ENHANCER JS v1 *\/\n(function(){\n  const root = document.getElementById('umall-desc');\n  if(!root) return;\n\n  const handleFromHref = (href)=\u003e{\n    try{ const u = new URL(href, location.origin); const parts=u.pathname.split('\/').filter(Boolean); const i=parts.findIndex(p=\u003ep==='products'); if(i\u003e=0\u0026\u0026parts[i+1]) return parts[i+1]; }catch(e){}\n    return null;\n  };\n  const money = (cents)=\u003e{ if(window.Shopify \u0026\u0026 Shopify.formatMoney) return Shopify.formatMoney(cents, \"A${{amount}}\"); return typeof cents==='number' ? 'A$'+(cents\/100).toFixed(2) : ''; };\n  const buildProdCard = (handle)=\u003e{ const a=document.createElement('a'); a.className='um-card'; a.href='\/products\/'+handle; a.setAttribute('data-handle',handle); a.innerHTML='\u003cdiv class=\"um-imgbox\"\u003e\u003cimg alt=\"'+handle+'\" loading=\"lazy\"\/\u003e\u003cspan class=\"um-badge\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"um-meta\"\u003e\u003cdiv class=\"um-title\"\u003e'+handle.replace(\/-\/g,' ')+'\u003c\/div\u003e\u003cdiv class=\"um-price\"\u003e\u003c\/div\u003e\u003c\/div\u003e'; return a; };\n  const hydrate = async (a)=\u003e{ const h=a.getAttribute('data-handle'); try{ const r=await fetch('\/products\/'+h+'.js',{credentials:'same-origin'}); if(!r.ok) return; const p=await r.json(); const img=a.querySelector('img'); if(p.images\u0026\u0026p.images[0]) img.src=p.images[0]; const t=a.querySelector('.um-title'); t.textContent=p.title||t.textContent; const vs=(p.variants||[]); const avail=vs.filter(v=\u003ev.available); const arr=avail.length?avail:vs; if(arr.length){ const min=Math.min(...arr.map(v=\u003ev.price)); const maxCompare=Math.max(...arr.map(v=\u003ev.compare_at_price||0)); const price=a.querySelector('.um-price'); price.textContent=''; const cur=document.createElement('span'); cur.textContent=money(min); price.appendChild(cur); if(maxCompare \u0026\u0026 maxCompare\u003emin){ const s=document.createElement('s'); s.textContent=money(maxCompare); price.appendChild(document.createTextNode(' ')); price.appendChild(s); const badge=a.querySelector('.um-badge'); const off=Math.round((1-min\/maxCompare)*100); badge.textContent='-'+off+'%'; badge.style.display='inline-block'; } } }catch(e){} };\n\n  const ensureAfter = (refNode, node)=\u003e{ if(!refNode || !node) return; if(node.parentElement) return; refNode.parentElement.insertBefore(node, refNode.nextSibling); };\n\n  \/\/ How to enjoy → 卡片（保留原内容；隐藏原块；标题统一“Recipes with this product”）\n  try{\n    \/\/ 1) 更鲁棒地找到标题（h2\/h3\/h4）\n    const enjoyH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(how to enjoy|ways to enjoy|serving ideas|recipes with this product|食用建议|食用灵感|食法)\/i.test(h.textContent));\n    if(enjoyH){\n      const container = enjoyH.parentElement;\n      \/\/ 2) 就近查找列表或段落（同容器或下一个兄弟）\n      let listEl = container.querySelector('ol, ul');\n      if(!listEl){ const sib = enjoyH.nextElementSibling; if(sib){ listEl = sib.querySelector \u0026\u0026 sib.querySelector('ol, ul'); } }\n\n      \/\/ 3) 容器若不存在则创建\n      let cardsHost = container.querySelector('#um-recipes-cards');\n      if(!cardsHost){ cardsHost=document.createElement('div'); cardsHost.id='um-recipes-cards'; cardsHost.className='um-recipes'; ensureAfter(listEl||enjoyH, cardsHost); }\n      let prodHost = container.querySelector('#um-recipes-products');\n      if(!prodHost){ prodHost=document.createElement('div'); prodHost.id='um-recipes-products'; prodHost.className='um-slider'; ensureAfter(cardsHost, prodHost); }\n\n      const links = new Set();\n      let items = [];\n      if(listEl){ items = Array.from(listEl.children).filter(n=\u003en.tagName==='LI'); }\n      \/\/ 4) 若没有列表，尝试用同容器的段落或“网格DIV\/ARTICLE”作为卡片项\n      if(items.length === 0){\n        let ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n        if(ps.length \u003c 2){ const sib = enjoyH.nextElementSibling; if(sib){ ps = Array.from(sib.querySelectorAll(':scope \u003e p')); } }\n        items = ps;\n      }\n      \/\/ 5) 同容器下寻找“网格容器”（含多个子块，且子块内有 h4\/strong）\n      let gridToHide = null;\n      if(items.length === 0){\n        const ch = Array.from(container.children || []);\n        for(const el of ch){\n          if(el === enjoyH) continue;\n          if(el.children \u0026\u0026 el.children.length \u003e= 2){\n            const first = el.children[0];\n            if((first.querySelector \u0026\u0026 first.querySelector('h3, h4, h5, strong, b, div[style*=\"font-weight:700\"]'))){\n              items = Array.from(el.children);\n              gridToHide = el;\n              break;\n            }\n          }\n        }\n      }\n      \/\/ 6) 仍然没有，则看紧跟标题的下一个块（如显示为卡片的 div\/article 列表）\n      if(items.length === 0){\n        const sib = enjoyH.nextElementSibling;\n        if(sib){\n          const children = Array.from(sib.children || []);\n          if(children.length \u003e= 2){ items = children; gridToHide = sib; }\n        }\n      }\n\n      if(items.length){\n        items.forEach((node, idx)=\u003e{\n          const card=document.createElement('article'); card.className='um-rcard';\n          const titleNode = node.querySelector \u0026\u0026 node.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b, a');\n          const h4=document.createElement('h4'); h4.textContent = titleNode ? (titleNode.textContent.trim()||('Recipe '+(idx+1))) : ('Recipe '+(idx+1));\n          const clone = node.cloneNode(true);\n          const rm = clone.querySelector \u0026\u0026 clone.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b'); if(rm) rm.remove();\n          const body=document.createElement('div'); while(clone.firstChild){ body.appendChild(clone.firstChild); }\n          card.appendChild(h4); card.appendChild(body); cardsHost.appendChild(card);\n          (node.querySelectorAll ? node.querySelectorAll('a[href]') : []).forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h) links.add(h); });\n        });\n        \/\/ 统一标题并隐藏原内容块\n        enjoyH.textContent = 'Recipes with this product';\n        if(listEl){ listEl.style.display='none'; }\n        else if(gridToHide){ gridToHide.style.display='none'; }\n        else {\n          \/\/ 隐藏直接段落（避免把其它段落隐藏过多，仅隐藏紧邻的）\n          const ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n          ps.forEach(p=\u003e{ p.style.display='none'; });\n        }\n      }\n      if(prodHost \u0026\u0026 links.size){ Array.from(links).forEach(h=\u003e{ const a=buildProdCard(h); prodHost.appendChild(a); hydrate(a); }); }\n    }\n  }catch(e){}\n\n  \/\/ Pairs well → 滑动卡片（并将标题统一为 “Pairs well with these products”）\n  try{\n    const pairsH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(pairs\\s*well|pairswell|配搭建议|搭配推荐|搭配)\/i.test(h.textContent));\n    if(pairsH){\n      const section=pairsH.parentElement; const ul=section.querySelector('ul');\n      \/\/ 统一标题文案\n      pairsH.textContent = 'Pairs well with these products';\n      let host=section.querySelector('#um-pairs-slider');\n      if(!host){ host=document.createElement('div'); host.id='um-pairs-slider'; host.className='um-slider'; ensureAfter(ul||pairsH, host); }\n      const unique=new Set();\n      \/\/ 允许 p 段落或任意容器中的产品链接\n      section.querySelectorAll('a[href]').forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)) unique.add(h); });\n      unique.forEach(h=\u003e{ const card=buildProdCard(h); host.appendChild(card); hydrate(card); });\n    }\n  }catch(e){}\n\n  \/\/ More in this category → 条件滑动，成功后隐藏原标题与列表，把 Explore CTA 放到滑动条上方\n  try{\n    const moreH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(more in this category|同类推荐|更多此分类)\/i.test(h.textContent));\n    if(moreH){ const section=moreH.parentElement; const ul=section.querySelector('ul'); let host=section.querySelector('#um-more-slider'); if(!host){ host=document.createElement('div'); host.id='um-more-slider'; host.className='um-slider'; ensureAfter(ul||moreH, host); } if(ul){ const links=ul.querySelectorAll('a[href]'); if(links.length\u003e=2){ const unique=new Set(); links.forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)){ unique.add(h); const card=buildProdCard(h); host.appendChild(card); hydrate(card); } }); if(host.children.length){ ul.style.display='none'; moreH.style.display='none'; const ctaWrap = Array.from(section.querySelectorAll('div')).find(d=\u003ed.querySelector('a[href^=\"\/collections\/\"]')); if(ctaWrap){ section.insertBefore(ctaWrap, host); } } } } }\n  }catch(e){}\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n","brand":"Chois","offers":[{"title":"Default Title","offer_id":48632365023519,"sku":"A0735745754184","price":3.49,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/100g.jpg?v=1724142624"},{"product_id":"chois-enoki-mushrooms-300g","title":"Enoki Mushrooms - 300g","description":"\u003cdiv id=\"umall-desc\" style=\"max-width:860px;margin:0 auto;padding:16px;--brand:#DB3A35\"\u003e\n\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\n\n\n\n\n\n\n\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\n\n\n\n\n\n\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:24px;margin-top:0;\"\u003e\n  \u003ch1 style=\"margin:0 0 6px;font-size:26px;line-height:1.2;\"\u003eEnoki Mushrooms — 300g\u003c\/h1\u003e\n  \u003cp style=\"margin:0;color:#64748b;font-size:14px;\"\u003eAlso known as Enokitake\u003c\/p\u003e\n  \u003cp style=\"margin:12px 0 0;color:#334155;font-size:15px;\"\u003eDelicate, crunchy strands with a mild, slightly sweet flavor. Enoki slip effortlessly into soups, stir‑fries, noodles and salads, cooking in just 1–2 minutes for a clean, satisfying bite.\u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;color:#334155;font-size:15px;\"\u003e\n    \u003cli\u003eUltra‑fresh crunch and gentle sweetness that pairs with almost anything.\u003c\/li\u003e\n    \u003cli\u003eCooks fast — perfect for busy weeknights and last‑minute add‑ins.\u003c\/li\u003e\n    \u003cli\u003eGreat texture contrast for soups, hot pot, stir‑fries, noodles and cold salads.\u003c\/li\u003e\n    \u003cli\u003eStays slender and photogenic in the bowl — lovely for plating.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eHow to enjoy\u003c\/h3\u003e\n  \u003col style=\"margin:8px 0 0 18px;color:#334155;font-size:15px;\"\u003e\n    \u003cli style=\"margin:0 0 10px;\"\u003e\n      \u003cstrong\u003eBroth‑based enoki \u0026amp; tofu soup\u003c\/strong\u003e\n      \u003cspan style=\"display:inline-flex;align-items:center;border:1px solid rgba(219,58,53,.2);color:var(--brand);background:rgba(219,58,53,.08);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;margin-left:8px\"\u003eBroth‑based\u003c\/span\u003e\n      — Simmer a light base with \u003ca href=\"\/products\/bull-head-clear-chicken-broth-411ml-canned-chicken-stock\" style=\"color:var(--brand)\"\u003eclear chicken stock\u003c\/a\u003e (or mushroom hot pot broth like \u003ca href=\"\/products\/haidilao-mushroom-flavor-hot-pot-seasoning-150g\" style=\"color:var(--brand)\"\u003eHaidilao Mushroom\u003c\/a\u003e), then slide in enoki and cubes of \u003ca href=\"\/products\/fresh-ever-green-smooth-tofu-approximately-300g\" style=\"color:var(--brand)\"\u003esilken tofu\u003c\/a\u003e. Cook 1–2 minutes and finish with a drizzle of sesame oil.\n    \u003c\/li\u003e\n    \u003cli style=\"margin:0 0 10px;\"\u003e\n      \u003cstrong\u003eGarlic‑ginger enoki stir‑fry with soy \u0026amp; sesame\u003c\/strong\u003e — Flash‑sauté aromatics, add enoki, then season with a splash of \u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\" style=\"color:var(--brand)\"\u003elight soy sauce\u003c\/a\u003e and a few drops of \u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\" style=\"color:var(--brand)\"\u003esesame oil\u003c\/a\u003e. Toss for 1–2 minutes and finish with sliced \u003ca href=\"\/products\/fresh-bundle-of-spring-onions\" style=\"color:var(--brand)\"\u003espring onion\u003c\/a\u003e.\n    \u003c\/li\u003e\n    \u003cli style=\"margin:0 0 10px;\"\u003e\n      \u003cstrong\u003eChilled sesame‑vinegar enoki salad\u003c\/strong\u003e — Blanch enoki 30–40 seconds, chill, then dress with \u003ca href=\"\/products\/hengshun-white-rice-vinegar-500ml\" style=\"color:var(--brand)\"\u003erice vinegar\u003c\/a\u003e, a touch of soy, a spoon of \u003ca href=\"\/products\/chuan-nan-spicy-chili-oil-326g\" style=\"color:var(--brand)\"\u003echili oil\u003c\/a\u003e, and minced \u003ca href=\"\/products\/fresh-dried-garlic-heads-approximately-500g\" style=\"color:var(--brand)\"\u003egarlic\u003c\/a\u003e. Sprinkle toasted sesame seeds.\n    \u003c\/li\u003e\n    \u003cli style=\"margin:0 0 0;\"\u003e\n      \u003cstrong\u003eHot pot favorite: enoki bundles\u003c\/strong\u003e — Dip small clusters into a simmering base like \u003ca href=\"\/products\/haidilao-spicy-hot-pot-soup-base-500g\" style=\"color:var(--brand)\"\u003eHaidilao Spicy\u003c\/a\u003e for 30–60 seconds. Pair with \u003ca href=\"\/products\/beifang-sliced-beef-rolls-225g\" style=\"color:var(--brand)\"\u003ebeef rolls\u003c\/a\u003e and soak up broth with \u003ca href=\"\/products\/ever-green-fried-tofu-puffs-200g\" style=\"color:var(--brand)\"\u003etofu puffs\u003c\/a\u003e.\n    \u003c\/li\u003e\n  \u003c\/ol\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePrep Tips\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;color:#334155;font-size:15px;\"\u003e\n    \u003cli\u003eTrim 1–2 cm from the root base; separate into small clusters.\u003c\/li\u003e\n    \u003cli\u003eRinse briefly and pat dry to avoid waterlogging.\u003c\/li\u003e\n    \u003cli\u003eCook quickly — 1–2 minutes is enough to keep a tender crunch.\u003c\/li\u003e\n    \u003cli\u003eFor stir‑fries or noodles, add enoki at the end to prevent overcooking.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePairs well\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;color:#334155;font-size:15px;\"\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/kikkoman-all-purpose-soy-sauce-1-6l\" style=\"color:var(--brand)\"\u003eKikkoman All‑Purpose Soy Sauce\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/hengshun-white-rice-vinegar-500ml\" style=\"color:var(--brand)\"\u003eHengshun White Rice Vinegar 500ml\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\" style=\"color:var(--brand)\"\u003eLee Kum Kee Pure Sesame Oil 207ml\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/fresh-ever-green-smooth-tofu-approximately-300g\" style=\"color:var(--brand)\"\u003eEver Green Silken Tofu, 300g\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"\/products\/chunsi-jiangxi-rice-noodles-300g\" style=\"color:var(--brand)\"\u003eChunsi Jiangxi Rice Vermicelli 300g\u003c\/a\u003e\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;display:flex;justify-content:space-between;align-items:center;\"\u003e\n  \u003ch3 style=\"margin:0;font-size:18px;font-weight:700;\"\u003eMore in this category\u003c\/h3\u003e\n  \u003ca href=\"\/collections\/order-mushrooms-beans-online-next-day-delivery-in-sydney\" style=\"color:var(--brand);font-weight:700;\"\u003eBrowse all mushrooms \u0026amp; beans →\u003c\/a\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 10px;color:#334155;font-size:14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding:10px;border-right:1px solid #e5e7eb;background:#f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align:left;padding:10px;background:#f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\u003cul style=\"margin:6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color:#a9a9a9;font-size:12px;margin:10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca href=\"\/pages\/return-refund-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin:8px 0 0;color:#334155;font-size:14px;\"\u003eDetails: \u003ca href=\"\/pages\/delivery-information\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size:13px;color:#666;margin:0 0 8px\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e2e8f0;border-top:1px solid #e5e7eb;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$4.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$7.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\n\/* DESC ENHANCER JS v1 *\/\n(function(){\n  const root = document.getElementById('umall-desc');\n  if(!root) return;\n\n  const handleFromHref = (href)=\u003e{\n    try{ const u = new URL(href, location.origin); const parts=u.pathname.split('\/').filter(Boolean); const i=parts.findIndex(p=\u003ep==='products'); if(i\u003e=0\u0026\u0026parts[i+1]) return parts[i+1]; }catch(e){}\n    return null;\n  };\n  const money = (cents)=\u003e{ if(window.Shopify \u0026\u0026 Shopify.formatMoney) return Shopify.formatMoney(cents, \"A${{amount}}\"); return typeof cents==='number' ? 'A$'+(cents\/100).toFixed(2) : ''; };\n  const buildProdCard = (handle)=\u003e{ const a=document.createElement('a'); a.className='um-card'; a.href='\/products\/'+handle; a.setAttribute('data-handle',handle); a.innerHTML='\u003cdiv class=\"um-imgbox\"\u003e\u003cimg alt=\"'+handle+'\" loading=\"lazy\"\/\u003e\u003cspan class=\"um-badge\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"um-meta\"\u003e\u003cdiv class=\"um-title\"\u003e'+handle.replace(\/-\/g,' ')+'\u003c\/div\u003e\u003cdiv class=\"um-price\"\u003e\u003c\/div\u003e\u003c\/div\u003e'; return a; };\n  const hydrate = async (a)=\u003e{ const h=a.getAttribute('data-handle'); try{ const r=await fetch('\/products\/'+h+'.js',{credentials:'same-origin'}); if(!r.ok) return; const p=await r.json(); const img=a.querySelector('img'); if(p.images\u0026\u0026p.images[0]) img.src=p.images[0]; const t=a.querySelector('.um-title'); t.textContent=p.title||t.textContent; const vs=(p.variants||[]); const avail=vs.filter(v=\u003ev.available); const arr=avail.length?avail:vs; if(arr.length){ const min=Math.min(...arr.map(v=\u003ev.price)); const maxCompare=Math.max(...arr.map(v=\u003ev.compare_at_price||0)); const price=a.querySelector('.um-price'); price.textContent=''; const cur=document.createElement('span'); cur.textContent=money(min); price.appendChild(cur); if(maxCompare \u0026\u0026 maxCompare\u003emin){ const s=document.createElement('s'); s.textContent=money(maxCompare); price.appendChild(document.createTextNode(' ')); price.appendChild(s); const badge=a.querySelector('.um-badge'); const off=Math.round((1-min\/maxCompare)*100); badge.textContent='-'+off+'%'; badge.style.display='inline-block'; } } }catch(e){} };\n\n  const ensureAfter = (refNode, node)=\u003e{ if(!refNode || !node) return; if(node.parentElement) return; refNode.parentElement.insertBefore(node, refNode.nextSibling); };\n\n  \/\/ How to enjoy → 卡片（保留原内容；隐藏原块；标题统一“Recipes with this product”）\n  try{\n    \/\/ 1) 更鲁棒地找到标题（h2\/h3\/h4）\n    const enjoyH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(how to enjoy|ways to enjoy|serving ideas|recipes with this product|食用建议|食用灵感|食法)\/i.test(h.textContent));\n    if(enjoyH){\n      const container = enjoyH.parentElement;\n      \/\/ 2) 就近查找列表或段落（同容器或下一个兄弟）\n      let listEl = container.querySelector('ol, ul');\n      if(!listEl){ const sib = enjoyH.nextElementSibling; if(sib){ listEl = sib.querySelector \u0026\u0026 sib.querySelector('ol, ul'); } }\n\n      \/\/ 3) 容器若不存在则创建\n      let cardsHost = container.querySelector('#um-recipes-cards');\n      if(!cardsHost){ cardsHost=document.createElement('div'); cardsHost.id='um-recipes-cards'; cardsHost.className='um-recipes'; ensureAfter(listEl||enjoyH, cardsHost); }\n      let prodHost = container.querySelector('#um-recipes-products');\n      if(!prodHost){ prodHost=document.createElement('div'); prodHost.id='um-recipes-products'; prodHost.className='um-slider'; ensureAfter(cardsHost, prodHost); }\n\n      const links = new Set();\n      let items = [];\n      if(listEl){ items = Array.from(listEl.children).filter(n=\u003en.tagName==='LI'); }\n      \/\/ 4) 若没有列表，尝试用同容器的段落或“网格DIV\/ARTICLE”作为卡片项\n      if(items.length === 0){\n        let ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n        if(ps.length \u003c 2){ const sib = enjoyH.nextElementSibling; if(sib){ ps = Array.from(sib.querySelectorAll(':scope \u003e p')); } }\n        items = ps;\n      }\n      \/\/ 5) 同容器下寻找“网格容器”（含多个子块，且子块内有 h4\/strong）\n      let gridToHide = null;\n      if(items.length === 0){\n        const ch = Array.from(container.children || []);\n        for(const el of ch){\n          if(el === enjoyH) continue;\n          if(el.children \u0026\u0026 el.children.length \u003e= 2){\n            const first = el.children[0];\n            if((first.querySelector \u0026\u0026 first.querySelector('h3, h4, h5, strong, b, div[style*=\"font-weight:700\"]'))){\n              items = Array.from(el.children);\n              gridToHide = el;\n              break;\n            }\n          }\n        }\n      }\n      \/\/ 6) 仍然没有，则看紧跟标题的下一个块（如显示为卡片的 div\/article 列表）\n      if(items.length === 0){\n        const sib = enjoyH.nextElementSibling;\n        if(sib){\n          const children = Array.from(sib.children || []);\n          if(children.length \u003e= 2){ items = children; gridToHide = sib; }\n        }\n      }\n\n      if(items.length){\n        items.forEach((node, idx)=\u003e{\n          const card=document.createElement('article'); card.className='um-rcard';\n          const titleNode = node.querySelector \u0026\u0026 node.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b, a');\n          const h4=document.createElement('h4'); h4.textContent = titleNode ? (titleNode.textContent.trim()||('Recipe '+(idx+1))) : ('Recipe '+(idx+1));\n          const clone = node.cloneNode(true);\n          const rm = clone.querySelector \u0026\u0026 clone.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b'); if(rm) rm.remove();\n          const body=document.createElement('div'); while(clone.firstChild){ body.appendChild(clone.firstChild); }\n          card.appendChild(h4); card.appendChild(body); cardsHost.appendChild(card);\n          (node.querySelectorAll ? node.querySelectorAll('a[href]') : []).forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h) links.add(h); });\n        });\n        \/\/ 统一标题并隐藏原内容块\n        enjoyH.textContent = 'Recipes with this product';\n        if(listEl){ listEl.style.display='none'; }\n        else if(gridToHide){ gridToHide.style.display='none'; }\n        else {\n          \/\/ 隐藏直接段落（避免把其它段落隐藏过多，仅隐藏紧邻的）\n          const ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n          ps.forEach(p=\u003e{ p.style.display='none'; });\n        }\n      }\n      if(prodHost \u0026\u0026 links.size){ Array.from(links).forEach(h=\u003e{ const a=buildProdCard(h); prodHost.appendChild(a); hydrate(a); }); }\n    }\n  }catch(e){}\n\n  \/\/ Pairs well → 滑动卡片（并将标题统一为 “Pairs well with these products”）\n  try{\n    const pairsH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(pairs\\s*well|pairswell|配搭建议|搭配推荐|搭配)\/i.test(h.textContent));\n    if(pairsH){\n      const section=pairsH.parentElement; const ul=section.querySelector('ul');\n      \/\/ 统一标题文案\n      pairsH.textContent = 'Pairs well with these products';\n      let host=section.querySelector('#um-pairs-slider');\n      if(!host){ host=document.createElement('div'); host.id='um-pairs-slider'; host.className='um-slider'; ensureAfter(ul||pairsH, host); }\n      const unique=new Set();\n      \/\/ 允许 p 段落或任意容器中的产品链接\n      section.querySelectorAll('a[href]').forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)) unique.add(h); });\n      unique.forEach(h=\u003e{ const card=buildProdCard(h); host.appendChild(card); hydrate(card); });\n    }\n  }catch(e){}\n\n  \/\/ More in this category → 条件滑动，成功后隐藏原标题与列表，把 Explore CTA 放到滑动条上方\n  try{\n    const moreH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(more in this category|同类推荐|更多此分类)\/i.test(h.textContent));\n    if(moreH){ const section=moreH.parentElement; const ul=section.querySelector('ul'); let host=section.querySelector('#um-more-slider'); if(!host){ host=document.createElement('div'); host.id='um-more-slider'; host.className='um-slider'; ensureAfter(ul||moreH, host); } if(ul){ const links=ul.querySelectorAll('a[href]'); if(links.length\u003e=2){ const unique=new Set(); links.forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)){ unique.add(h); const card=buildProdCard(h); host.appendChild(card); hydrate(card); } }); if(host.children.length){ ul.style.display='none'; moreH.style.display='none'; const ctaWrap = Array.from(section.querySelectorAll('div')).find(d=\u003ed.querySelector('a[href^=\"\/collections\/\"]')); if(ctaWrap){ section.insertBefore(ctaWrap, host); } } } } }\n  }catch(e){}\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n","brand":"Chois","offers":[{"title":"Default Title","offer_id":48632367022367,"sku":"A0735745754153","price":2.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/2_fd416b11-4a20-4144-9d7e-55880ff09cbf.jpg?v=1745982862"},{"product_id":"chois-snow-white-mushrooms-1-pack","title":"Chois Snow White Mushrooms - 1 Pack","description":"\u003cdiv id=\"umall-desc\" style=\"--brand:#DB3A35;max-width:860px;margin:0 auto;padding:8px 8px 20px;color:#334155;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\"\u003e\n\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\n\n\n\n\n\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\n\n\n\n\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;\"\u003e\n  \u003ch1 style=\"margin:0 0 6px;font-size:24px;line-height:1.25;\"\u003eChois Snow White Mushrooms - 1 Pack\u003c\/h1\u003e\n  \u003cp style=\"margin:6px 0 0;font-size:14px;color:#64748b;\"\u003ePristine, tender caps with a mild, nutty sweetness—ready for quick sautés, soups, and stir‑fries.\u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;line-height:1.6;\"\u003e\n    \u003cli\u003eClean, delicate flavor that takes on sauces beautifully without overpowering your dish.\u003c\/li\u003e\n    \u003cli\u003eFirm, springy bite that stays tender in stir‑fries, broths, and noodle bowls.\u003c\/li\u003e\n    \u003cli\u003eCooks fast—perfect for busy weeknights and last‑minute sides.\u003c\/li\u003e\n    \u003cli\u003eConsistent Chois quality for reliable texture and freshness every time.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 10px;font-size:18px;font-weight:700;\"\u003eHow to enjoy\u003c\/h3\u003e\n  \u003col style=\"margin:0 0 0 18px;line-height:1.7;\"\u003e\n    \u003cli style=\"margin:0 0 10px;\"\u003e\n      \u003cstrong\u003eGarlic‑ginger stir‑fry with oyster sauce\u003c\/strong\u003e — Sear mushrooms in a hot pan, add minced garlic and ginger, then glaze with a spoon of \u003ca style=\"color:var(--brand);\" href=\"\/products\/haitian-premium-oyster-sauce-700g\"\u003eHaitian Premium Oyster Sauce\u003c\/a\u003e. Try with \u003ca style=\"color:var(--brand);\" href=\"\/products\/peeled-garlic-cloves-250g\"\u003ePeeled Garlic Cloves\u003c\/a\u003e and fresh \u003ca style=\"color:var(--brand);\" href=\"\/products\/fresh-green-leaf-farm-tender-ginger-approximately-500g\"\u003eGinger 500g\u003c\/a\u003e. Ready in about 2–4 minutes once sizzling.\n    \u003c\/li\u003e\n    \u003cli style=\"margin:0 0 10px;\"\u003e\n      \u003cstrong\u003eBroth-based tofu \u0026amp; rice vermicelli soup\u003c\/strong\u003e\n      \u003cspan style=\"display:inline-flex;align-items:center;border:1px solid rgba(219,58,53,.2);color:var(--brand);background:rgba(219,58,53,.08);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;margin-left:8px\"\u003eBroth-based\u003c\/span\u003e\n      — Simmer mushrooms in light chicken stock like \u003ca style=\"color:var(--brand);\" href=\"\/products\/bull-head-clear-chicken-broth-411ml-canned-chicken-stock\"\u003eBull Head Clear Chicken Broth\u003c\/a\u003e, add cubes of \u003ca style=\"color:var(--brand);\" href=\"\/products\/ever-green-fresh-regular-tofu-900g\"\u003eEver Green Fresh Regular Tofu\u003c\/a\u003e and a nest of \u003ca style=\"color:var(--brand);\" href=\"\/products\/chunsi-jiangxi-rice-noodles-300g\"\u003eChunsi Jiangxi Rice Vermicelli 300g\u003c\/a\u003e. Finish with sliced \u003ca style=\"color:var(--brand);\" href=\"\/products\/fresh-bundle-of-spring-onions\"\u003eShallot Bunch\u003c\/a\u003e.\n    \u003c\/li\u003e\n    \u003cli style=\"margin:0 0 10px;\"\u003e\n      \u003cstrong\u003eMushroom hot pot add‑in\u003c\/strong\u003e — Drop into a bubbling pot of \u003ca style=\"color:var(--brand);\" href=\"\/products\/haidilao-mushroom-flavor-hot-pot-seasoning-150g\"\u003eHaidilao Mushroom Hot Pot Seasoning\u003c\/a\u003e and swish 1–2 minutes. Pair with thin \u003ca style=\"color:var(--brand);\" href=\"\/products\/beifang-sliced-beef-rolls-225g\"\u003eBeifang Sliced Beef Rolls\u003c\/a\u003e and dip in \u003ca style=\"color:var(--brand);\" href=\"\/products\/dong-lai-shun-hot-pot-dipping-sauce-savory-flavor-125g\"\u003eDong Lai Shun Savory Dipping Sauce\u003c\/a\u003e.\n    \u003c\/li\u003e\n    \u003cli style=\"margin:0 0 10px;\"\u003e\n      \u003cstrong\u003eSesame–black vinegar roasted mushrooms\u003c\/strong\u003e — Toss with a little oil, roast hot until edges brown (8–12 minutes), then dress with \u003ca style=\"color:var(--brand);\" href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\"\u003eLee Kum Kee Pure Sesame Oil\u003c\/a\u003e and a splash of \u003ca style=\"color:var(--brand);\" href=\"\/products\/hengshun-zhenjiang-aromatic-vinegar-550ml\"\u003eHengshun Zhenjiang Aromatic Vinegar\u003c\/a\u003e. Optional heat: \u003ca style=\"color:var(--brand);\" href=\"\/products\/chuanwazi-crispy-chili-oil-with-peanuts-200g-sichuan-chili-crisp\"\u003eChuanwazi Crispy Chili Oil\u003c\/a\u003e.\n    \u003c\/li\u003e\n  \u003c\/ol\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePrep Tips\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;line-height:1.6;\"\u003e\n    \u003cli\u003eBrush or quickly rinse and pat dry—avoid soaking so they brown better.\u003c\/li\u003e\n    \u003cli\u003eTrim any dry stem ends; keep caps whole or slice thick for best texture.\u003c\/li\u003e\n    \u003cli\u003eUse a hot pan with space between pieces; cook until they release moisture and edges turn golden.\u003c\/li\u003e\n    \u003cli\u003eSeason near the end to help prevent excess moisture early on.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003ePairs well\u003c\/h3\u003e\n  \u003cp style=\"margin:8px 0 0;line-height:1.8;\"\u003e\n    Savory staples: \u003ca style=\"color:var(--brand);\" href=\"\/products\/kikkoman-all-purpose-soy-sauce-1-6l\"\u003eKikkoman Soy Sauce\u003c\/a\u003e, \u003ca style=\"color:var(--brand);\" href=\"\/products\/haitian-premium-oyster-sauce-700g\"\u003eHaitian Oyster Sauce\u003c\/a\u003e, \u003ca style=\"color:var(--brand);\" href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\"\u003eSesame Oil\u003c\/a\u003e, \u003ca style=\"color:var(--brand);\" href=\"\/products\/hengshun-zhenjiang-aromatic-vinegar-550ml\"\u003eZhenjiang Vinegar\u003c\/a\u003e.\u003cbr\u003e\n    Aromatics: \u003ca style=\"color:var(--brand);\" href=\"\/products\/peeled-garlic-cloves-250g\"\u003eGarlic\u003c\/a\u003e, \u003ca style=\"color:var(--brand);\" href=\"\/products\/fresh-green-leaf-farm-tender-ginger-approximately-500g\"\u003eGinger\u003c\/a\u003e, \u003ca style=\"color:var(--brand);\" href=\"\/products\/fresh-bundle-of-spring-onions\"\u003eShallots\u003c\/a\u003e.\u003cbr\u003e\n    Add‑ins: \u003ca style=\"color:var(--brand);\" href=\"\/products\/ever-green-fresh-regular-tofu-900g\"\u003eFresh Tofu\u003c\/a\u003e, \u003ca style=\"color:var(--brand);\" href=\"\/products\/daisho-hakata-ramen-2-servings-188g\"\u003eDaisho Hakata Ramen\u003c\/a\u003e, \u003ca style=\"color:var(--brand);\" href=\"\/products\/angus-prime-shredded-beef-500g\"\u003eAngus Prime Beef Strip 500g\u003c\/a\u003e, \u003ca style=\"color:var(--brand);\" href=\"\/products\/australian-raw-king-prawns-peeled-tail-on-flash-frozen-700g\"\u003eRaw King Prawns\u003c\/a\u003e.\n  \u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\n  \u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eMore in this category\u003c\/h3\u003e\n  \u003cul style=\"margin:8px 0 0 18px;line-height:1.7;\"\u003e\n    \u003cli\u003e\u003ca style=\"color:var(--brand);\" href=\"\/products\/chois-shiitake-mushrooms-300g\"\u003eChois Shiitake Mushrooms - 300g\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca style=\"color:var(--brand);\" href=\"\/products\/chois-oyster-mushrooms-400g\"\u003eChois Oyster Mushrooms - 400g\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca style=\"color:var(--brand);\" href=\"\/products\/chois-enoki-mushrooms-300g\"\u003eEnoki Enoki Mushrooms - 300g\u003c\/a\u003e\u003c\/li\u003e\n  \u003c\/ul\u003e\n  \u003cdiv style=\"margin-top:10px;\"\u003e\u003ca style=\"color:var(--brand);font-weight:700;\" href=\"\/collections\/order-mushrooms-beans-online-next-day-delivery-in-sydney\"\u003eBrowse all Mushrooms \u0026amp; Beans →\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin:6px 0 10px;color:#334155;font-size:14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding:10px;border-right:1px solid #e5e7eb;background:#f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align:left;padding:10px;background:#f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding:12px;border-top:1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\u003cul style=\"margin:6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color:#a9a9a9;font-size:12px;margin:10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca href=\"\/pages\/return-refund-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin:8px 0 0;color:#334155;font-size:14px;\"\u003eDetails: \u003ca href=\"\/pages\/delivery-information\" style=\"color:#DB3A35;text-decoration:underline;\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\u003c\/section\u003e\n\u003csection style=\"border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:20px;margin-top:16px;\"\u003e\u003ch3 style=\"margin:0 0 8px;font-size:18px;font-weight:700;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size:13px;color:#666;margin:0 0 8px\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\" style=\"color:#DB3A35;text-decoration:underline;\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;border:1px solid #e5e7eb;\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$4.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:10px;border-right:1px solid #e5e7eb;border-top:1px solid #e5e7eb;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding:10px;border-top:1px solid #e5e7eb;\"\u003e$7.99 \u003cspan style=\"color:#999;font-size:12px\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\n\/* DESC ENHANCER JS v1 *\/\n(function(){\n  const root = document.getElementById('umall-desc');\n  if(!root) return;\n\n  const handleFromHref = (href)=\u003e{\n    try{ const u = new URL(href, location.origin); const parts=u.pathname.split('\/').filter(Boolean); const i=parts.findIndex(p=\u003ep==='products'); if(i\u003e=0\u0026\u0026parts[i+1]) return parts[i+1]; }catch(e){}\n    return null;\n  };\n  const money = (cents)=\u003e{ if(window.Shopify \u0026\u0026 Shopify.formatMoney) return Shopify.formatMoney(cents, \"A${{amount}}\"); return typeof cents==='number' ? 'A$'+(cents\/100).toFixed(2) : ''; };\n  const buildProdCard = (handle)=\u003e{ const a=document.createElement('a'); a.className='um-card'; a.href='\/products\/'+handle; a.setAttribute('data-handle',handle); a.innerHTML='\u003cdiv class=\"um-imgbox\"\u003e\u003cimg alt=\"'+handle+'\" loading=\"lazy\"\/\u003e\u003cspan class=\"um-badge\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"um-meta\"\u003e\u003cdiv class=\"um-title\"\u003e'+handle.replace(\/-\/g,' ')+'\u003c\/div\u003e\u003cdiv class=\"um-price\"\u003e\u003c\/div\u003e\u003c\/div\u003e'; return a; };\n  const hydrate = async (a)=\u003e{ const h=a.getAttribute('data-handle'); try{ const r=await fetch('\/products\/'+h+'.js',{credentials:'same-origin'}); if(!r.ok) return; const p=await r.json(); const img=a.querySelector('img'); if(p.images\u0026\u0026p.images[0]) img.src=p.images[0]; const t=a.querySelector('.um-title'); t.textContent=p.title||t.textContent; const vs=(p.variants||[]); const avail=vs.filter(v=\u003ev.available); const arr=avail.length?avail:vs; if(arr.length){ const min=Math.min(...arr.map(v=\u003ev.price)); const maxCompare=Math.max(...arr.map(v=\u003ev.compare_at_price||0)); const price=a.querySelector('.um-price'); price.textContent=''; const cur=document.createElement('span'); cur.textContent=money(min); price.appendChild(cur); if(maxCompare \u0026\u0026 maxCompare\u003emin){ const s=document.createElement('s'); s.textContent=money(maxCompare); price.appendChild(document.createTextNode(' ')); price.appendChild(s); const badge=a.querySelector('.um-badge'); const off=Math.round((1-min\/maxCompare)*100); badge.textContent='-'+off+'%'; badge.style.display='inline-block'; } } }catch(e){} };\n\n  const ensureAfter = (refNode, node)=\u003e{ if(!refNode || !node) return; if(node.parentElement) return; refNode.parentElement.insertBefore(node, refNode.nextSibling); };\n\n  \/\/ How to enjoy → 卡片（保留原内容；隐藏原块；标题统一“Recipes with this product”）\n  try{\n    \/\/ 1) 更鲁棒地找到标题（h2\/h3\/h4）\n    const enjoyH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(how to enjoy|ways to enjoy|serving ideas|recipes with this product|食用建议|食用灵感|食法)\/i.test(h.textContent));\n    if(enjoyH){\n      const container = enjoyH.parentElement;\n      \/\/ 2) 就近查找列表或段落（同容器或下一个兄弟）\n      let listEl = container.querySelector('ol, ul');\n      if(!listEl){ const sib = enjoyH.nextElementSibling; if(sib){ listEl = sib.querySelector \u0026\u0026 sib.querySelector('ol, ul'); } }\n\n      \/\/ 3) 容器若不存在则创建\n      let cardsHost = container.querySelector('#um-recipes-cards');\n      if(!cardsHost){ cardsHost=document.createElement('div'); cardsHost.id='um-recipes-cards'; cardsHost.className='um-recipes'; ensureAfter(listEl||enjoyH, cardsHost); }\n      let prodHost = container.querySelector('#um-recipes-products');\n      if(!prodHost){ prodHost=document.createElement('div'); prodHost.id='um-recipes-products'; prodHost.className='um-slider'; ensureAfter(cardsHost, prodHost); }\n\n      const links = new Set();\n      let items = [];\n      if(listEl){ items = Array.from(listEl.children).filter(n=\u003en.tagName==='LI'); }\n      \/\/ 4) 若没有列表，尝试用同容器的段落或“网格DIV\/ARTICLE”作为卡片项\n      if(items.length === 0){\n        let ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n        if(ps.length \u003c 2){ const sib = enjoyH.nextElementSibling; if(sib){ ps = Array.from(sib.querySelectorAll(':scope \u003e p')); } }\n        items = ps;\n      }\n      \/\/ 5) 同容器下寻找“网格容器”（含多个子块，且子块内有 h4\/strong）\n      let gridToHide = null;\n      if(items.length === 0){\n        const ch = Array.from(container.children || []);\n        for(const el of ch){\n          if(el === enjoyH) continue;\n          if(el.children \u0026\u0026 el.children.length \u003e= 2){\n            const first = el.children[0];\n            if((first.querySelector \u0026\u0026 first.querySelector('h3, h4, h5, strong, b, div[style*=\"font-weight:700\"]'))){\n              items = Array.from(el.children);\n              gridToHide = el;\n              break;\n            }\n          }\n        }\n      }\n      \/\/ 6) 仍然没有，则看紧跟标题的下一个块（如显示为卡片的 div\/article 列表）\n      if(items.length === 0){\n        const sib = enjoyH.nextElementSibling;\n        if(sib){\n          const children = Array.from(sib.children || []);\n          if(children.length \u003e= 2){ items = children; gridToHide = sib; }\n        }\n      }\n\n      if(items.length){\n        items.forEach((node, idx)=\u003e{\n          const card=document.createElement('article'); card.className='um-rcard';\n          const titleNode = node.querySelector \u0026\u0026 node.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b, a');\n          const h4=document.createElement('h4'); h4.textContent = titleNode ? (titleNode.textContent.trim()||('Recipe '+(idx+1))) : ('Recipe '+(idx+1));\n          const clone = node.cloneNode(true);\n          const rm = clone.querySelector \u0026\u0026 clone.querySelector('h3, h4, h5, div[style*=\"font-weight:700\"], strong, b'); if(rm) rm.remove();\n          const body=document.createElement('div'); while(clone.firstChild){ body.appendChild(clone.firstChild); }\n          card.appendChild(h4); card.appendChild(body); cardsHost.appendChild(card);\n          (node.querySelectorAll ? node.querySelectorAll('a[href]') : []).forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h) links.add(h); });\n        });\n        \/\/ 统一标题并隐藏原内容块\n        enjoyH.textContent = 'Recipes with this product';\n        if(listEl){ listEl.style.display='none'; }\n        else if(gridToHide){ gridToHide.style.display='none'; }\n        else {\n          \/\/ 隐藏直接段落（避免把其它段落隐藏过多，仅隐藏紧邻的）\n          const ps = Array.from(container.querySelectorAll(':scope \u003e p'));\n          ps.forEach(p=\u003e{ p.style.display='none'; });\n        }\n      }\n      if(prodHost \u0026\u0026 links.size){ Array.from(links).forEach(h=\u003e{ const a=buildProdCard(h); prodHost.appendChild(a); hydrate(a); }); }\n    }\n  }catch(e){}\n\n  \/\/ Pairs well → 滑动卡片（并将标题统一为 “Pairs well with these products”）\n  try{\n    const pairsH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(pairs\\s*well|pairswell|配搭建议|搭配推荐|搭配)\/i.test(h.textContent));\n    if(pairsH){\n      const section=pairsH.parentElement; const ul=section.querySelector('ul');\n      \/\/ 统一标题文案\n      pairsH.textContent = 'Pairs well with these products';\n      let host=section.querySelector('#um-pairs-slider');\n      if(!host){ host=document.createElement('div'); host.id='um-pairs-slider'; host.className='um-slider'; ensureAfter(ul||pairsH, host); }\n      const unique=new Set();\n      \/\/ 允许 p 段落或任意容器中的产品链接\n      section.querySelectorAll('a[href]').forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)) unique.add(h); });\n      unique.forEach(h=\u003e{ const card=buildProdCard(h); host.appendChild(card); hydrate(card); });\n    }\n  }catch(e){}\n\n  \/\/ More in this category → 条件滑动，成功后隐藏原标题与列表，把 Explore CTA 放到滑动条上方\n  try{\n    const moreH = Array.from(root.querySelectorAll('h2,h3,h4')).find(h=\u003e\/(more in this category|同类推荐|更多此分类)\/i.test(h.textContent));\n    if(moreH){ const section=moreH.parentElement; const ul=section.querySelector('ul'); let host=section.querySelector('#um-more-slider'); if(!host){ host=document.createElement('div'); host.id='um-more-slider'; host.className='um-slider'; ensureAfter(ul||moreH, host); } if(ul){ const links=ul.querySelectorAll('a[href]'); if(links.length\u003e=2){ const unique=new Set(); links.forEach(a=\u003e{ const h=handleFromHref(a.getAttribute('href')); if(h \u0026\u0026 !unique.has(h)){ unique.add(h); const card=buildProdCard(h); host.appendChild(card); hydrate(card); } }); if(host.children.length){ ul.style.display='none'; moreH.style.display='none'; const ctaWrap = Array.from(section.querySelectorAll('div')).find(d=\u003ed.querySelector('a[href^=\"\/collections\/\"]')); if(ctaWrap){ section.insertBefore(ctaWrap, host); } } } } }\n  }catch(e){}\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48632375836959,"sku":"A0735745754023","price":2.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/7a70159117af95766b01ad2a7d7f6496.jpg?v=1724142856"},{"product_id":"fresh-local-napa-cabbage-1-piece","title":"Wombok (Napa Cabbage) — 1 Piece","description":"\u003cstyle\u003e#umall-desc a{ text-decoration:none !important; border-bottom:1px solid var(--brand) !important; } #umall-desc a:hover{ opacity:.85; }\u003c\/style\u003e\n\u003cstyle\u003e\n\/* DESC ENHANCER v1 *\/\n#umall-desc .um-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; margin-top:12px; }\n#umall-desc .um-slider::-webkit-scrollbar{ height:8px; }\n#umall-desc .um-slider::-webkit-scrollbar-thumb{ background:#e5e7eb; border-radius:999px; }\n#umall-desc .um-card{ scroll-snap-align:start; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; }\n#umall-desc a.um-card{ border-bottom:1px solid #e5e7eb !important; text-decoration:none !important; }\n#umall-desc a[style*=\"border-radius:999\"]{ border-bottom:1px solid #e2e8f0 !important; text-decoration:none !important; }\n#umall-desc .um-imgbox{ background:#fff; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1\/1; height:auto; position:relative; }\n#umall-desc .um-imgbox img{ max-width:100%; max-height:100%; object-fit:contain; }\n#umall-desc .um-badge{ position:absolute; top:8px; left:8px; background:rgba(219,58,53,.92); color:#fff; font-weight:700; font-size:12px; padding:2px 6px; border-radius:6px; display:none; }\n#umall-desc .um-meta{ padding:10px 10px 12px; display:flex; flex-direction:column; gap:6px; }\n#umall-desc .um-title{ font-size:14px; font-weight:600; color:#0f172a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }\n#umall-desc .um-price{ font-size:14px; font-weight:700; color:var(--brand); display:flex; align-items:center; gap:8px; }\n#umall-desc .um-price s{ color:#94a3b8; font-weight:500; }\n#umall-desc .um-recipes{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:12px; margin-top:12px; }\n@media (min-width:640px){ #umall-desc .um-recipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }\n@media (min-width:1024px){ #umall-desc .um-recipes{ grid-template-columns:repeat(3,minmax(0,1fr)); } }\n#umall-desc .um-rcard{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:16px; }\n#umall-desc .um-rcard h4{ margin:0 0 6px; font-size:16px; font-weight:700; color:#0f172a; }\n#umall-desc .um-rcard p, #umall-desc .um-rcard div{ margin:0; font-size:14px; color:#334155; }\n#umall-desc .um-section-title{ margin:16px 0 10px; font-size:16px; font-weight:800; }\n\u003c\/style\u003e\n\u003cdiv style=\"--brand: #DB3A35; max-width: 860px; margin: 0 auto; font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; color: #334155; line-height: 1.6;\" id=\"umall-desc\"\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px; margin-top: 16px;\"\u003e\n\u003cdiv style=\"display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap;\"\u003e\n\u003cimg style=\"width: 140px; height: auto; border-radius: 12px; border: 1px solid #e2e8f0;\" alt=\"Fresh Local Napa Cabbage\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/6.webp?v=1725844913\"\u003e\n\u003cdiv\u003e\n\u003ch1 style=\"margin: 0 0 6px; font-size: 26px; line-height: 1.2;\"\u003eWombok (Napa Cabbage) — 1 Piece\u003c\/h1\u003e\n\u003cp style=\"margin: 4px 0 10px; color: #64748b; font-size: 14px;\"\u003eAlso known as Napa Cabbage\/Chinese cabbage\u003c\/p\u003e\n\u003cp style=\"margin: 0; color: #475569; font-size: 15px;\"\u003eSweet, tender leaves with crisp, juicy ribs — a versatile staple for wombok salad (sesame dressing), dumpling filling, stir-fries, soups and hot pot. Quick to cook with next-day Sydney delivery.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px; margin-top: 16px;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px; font-size: 18px; font-weight: bold;\"\u003eWhy you’ll love it\u003c\/h3\u003e\n\u003cul style=\"margin: 8px 0 0 18px;\"\u003e\n\u003cli\u003eMildly sweet flavor that takes on sauces and aromatics beautifully.\u003c\/li\u003e\n\u003cli\u003eTwo textures in one: crisp stems and silky leaves for balanced bites.\u003c\/li\u003e\n\u003cli\u003eQuick‑cooking — perfect for wombok salad, weeknight stir‑fries, hotpot, noodles or slaw.\u003c\/li\u003e\n\u003cli\u003eFamily‑friendly and versatile across Chinese, Korean and Japanese dishes.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/section\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px; margin-top: 16px;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px; font-size: 18px; font-weight: bold;\"\u003eHow to enjoy\u003c\/h3\u003e\n\u003col style=\"margin: 8px 0 0 18px;\"\u003e\n\u003cli style=\"margin-bottom: 10px;\"\u003e\n\u003cstrong\u003eGarlic‑ginger wok‑tossed wombok with oyster sauce\u003c\/strong\u003e — Sear stems first, then add leaves with \u003ca href=\"\/products\/peeled-garlic-cloves-250g\"\u003ePeeled Garlic Cloves\u003c\/a\u003e, \u003ca href=\"\/products\/fresh-green-leaf-farm-tender-ginger-approximately-500g\"\u003eGinger\u003c\/a\u003e and a splash of \u003ca href=\"\/products\/haitian-premium-oyster-sauce-700g\"\u003eHaitian Premium Oyster Sauce 700g\u003c\/a\u003e. Toss on high heat for 2–4 minutes until just tender.\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 10px;\"\u003e\n\u003cstrong\u003eTomato hot pot with wombok, enoki and tofu puffs\u003c\/strong\u003e — Simmer \u003ca href=\"\/products\/haidilao-tomato-hot-pot-base-200g\"\u003eHaidilao Tomato Hot Pot Base\u003c\/a\u003e, then add cabbage chunks, \u003ca href=\"\/products\/chois-enoki-mushrooms-300g\"\u003eEnoki Mushrooms\u003c\/a\u003e and \u003ca href=\"\/products\/fresh-ever-green-tofu-puffs-approximately-150g\"\u003eEver Green Fried Tofu Puffs 150g\u003c\/a\u003e. Cook until stems turn translucent and leaves are silky.\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 10px;\"\u003e\n\u003cstrong\u003eCrisp sesame wombok slaw\u003c\/strong\u003e\u003cspan style=\"display: inline-flex; align-items: center; border: 1px solid rgba(219,58,53,.2); color: var(--brand); background: rgba(219,58,53,.08); border-radius: 999px; padding: 2px 8px; font-size: 12px; font-weight: 600; margin-left: 8px;\"\u003eLow‑calorie\u003c\/span\u003e — Thinly shred cabbage and toss with \u003ca href=\"\/products\/hengshun-white-rice-vinegar-500ml\"\u003eHengshun White Rice Vinegar\u003c\/a\u003e, a drizzle of \u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\"\u003eSesame Oil\u003c\/a\u003e and julienned \u003ca href=\"\/products\/fresh-carrots-approximately-1kg\"\u003eCarrots\u003c\/a\u003e. Chill 5–10 minutes for extra crunch.\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 10px;\"\u003e\n\u003cstrong\u003eRice vermicelli stir‑fry with wombok and tofu\u003c\/strong\u003e — Soften \u003ca href=\"\/products\/chunsi-jiangxi-rice-vermicelli-300g\"\u003eChunsi Jiangxi Rice Vermicelli\u003c\/a\u003e, then toss with sliced cabbage, cubes of \u003ca href=\"\/products\/fresh-ever-green-chinese-style-tofu-approximately-500g\"\u003eEver Green Classic Tofu\u003c\/a\u003e and a splash of \u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\"\u003eLight Soy Sauce\u003c\/a\u003e. Keep it smoky and quick, 3–5 minutes.\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/section\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px; margin-top: 16px;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px; font-size: 18px; font-weight: bold;\"\u003ePrep Tips\u003c\/h3\u003e\n\u003cul style=\"margin: 8px 0 0 18px;\"\u003e\n\u003cli\u003eRinse thoroughly between leaves to remove any grit; shake dry.\u003c\/li\u003e\n\u003cli\u003eSeparate stems and leaves; slice stems thicker and leaves thinner for even cooking.\u003c\/li\u003e\n\u003cli\u003eStir‑fry stems first for 1–2 minutes, then add leaves and finish quickly.\u003c\/li\u003e\n\u003cli\u003eFor slaws, lightly salt and rest 5–10 minutes, then dress just before serving.\u003c\/li\u003e\n\u003cli\u003eSeason toward the end to keep the cabbage crisp and vibrant.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/section\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px; margin-top: 16px;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px; font-size: 18px; font-weight: bold;\"\u003ePairs well\u003c\/h3\u003e\n\u003cul style=\"margin: 8px 0 0 18px;\"\u003e\n\u003cli\u003e\n\u003ca href=\"\/products\/peeled-garlic-cloves-250g\"\u003ePeeled Garlic Cloves\u003c\/a\u003e and \u003ca href=\"\/products\/fresh-green-leaf-farm-tender-ginger-approximately-500g\"\u003eFresh Ginger\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\"\u003eSesame Oil\u003c\/a\u003e or \u003ca href=\"\/products\/haitian-premium-light-soy-sauce-500ml\"\u003eLight Soy Sauce\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/haitian-premium-oyster-sauce-700g\"\u003ePremium Oyster Sauce\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/chois-oyster-mushrooms-400g\"\u003eOyster Mushrooms\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/fresh-ever-green-aged-tofu-approximately-900g\"\u003eFirm Tofu\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"\/products\/chunsi-strong-ramen-noodles-1000g\"\u003ePull Noodles\u003c\/a\u003e for quick stir‑fries\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/haidilao-tomato-hot-pot-base-200g\"\u003eTomato Hot Pot Base\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/section\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px; margin-top: 16px;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px; font-size: 18px; font-weight: bold;\"\u003eMore in this category\u003c\/h3\u003e\n\u003cul style=\"margin: 8px 0 12px 18px;\"\u003e\n\u003cli\u003e\u003ca href=\"\/products\/fresh-cabbage-half-piece\"\u003eFresh Cabbage - Half Piece\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/fresh-pointed-cabbage-1-pack\"\u003ePointed Cabbage - 1 Pack\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/purple-cabbage-half-piece\"\u003ePurple Cabbage - Half Piece\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/fresh-bundle-of-jiangmen-white-radishes\"\u003eJiangmen White (Chinese Cabbage), 1 Bundle\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"margin: 0;\"\u003e\u003ca href=\"\/collections\/cabbage\"\u003eBrowse all cabbages\u003c\/a\u003e\u003c\/p\u003e\n\u003c\/section\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px; margin-top: 16px;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px; font-size: 18px; font-weight: bold;\"\u003eDelivery \u0026amp; Timing\u003c\/h3\u003e\n\u003cp style=\"margin: 6px 0 10px; color: #334155; font-size: 14px;\"\u003eYou can \u003cstrong\u003eTrack\u003c\/strong\u003e the courier's location in \u003cstrong\u003eReal‑Time\u003c\/strong\u003e online! Get your order as soon as the \u003cstrong\u003eNext Day\u003c\/strong\u003e (for most areas in Sydney).\u003c\/p\u003e\n\u003ctable style=\"width: 100%; border-collapse: collapse; border: 1px solid #e5e7eb;\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"text-align: left; padding: 10px; border-right: 1px solid #e5e7eb; background: #f8fafc;\"\u003eOrder Time\u003c\/th\u003e\n\u003cth style=\"text-align: left; padding: 10px; background: #f8fafc;\"\u003eArrival Time\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 12px; border-top: 1px solid #e5e7eb; border-right: 1px solid #e5e7eb;\"\u003eToday\u003c\/td\u003e\n\u003ctd style=\"padding: 12px; border-top: 1px solid #e5e7eb;\"\u003e\n\u003cstrong\u003eNext Day (2 options):\u003c\/strong\u003e\n\u003cul style=\"margin: 6px 0 0 18px;\"\u003e\n\u003cli\u003e11:30AM – 06:30PM\u003c\/li\u003e\n\u003cli\u003e05:00PM – 11:00PM\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"color: #a9a9a9; font-size: 12px; margin: 10px 0 0;\"\u003e* Canceling after the cutoff may incur fees. \u003ca style=\"color: #db3a35; text-decoration: underline;\" href=\"\/pages\/return-refund-policy\"\u003eClick here\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp style=\"margin: 8px 0 0; color: #334155; font-size: 14px;\"\u003eDetails: \u003ca style=\"color: #db3a35; text-decoration: underline;\" href=\"\/pages\/delivery-information\"\u003eDelivery Information\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px; margin-top: 16px;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px; font-size: 18px; font-weight: bold;\"\u003eDelivery Fees\u003c\/h3\u003e\n\u003cp style=\"font-size: 13px; color: #666; margin: 0 0 8px;\"\u003e* A flat \u003cstrong\u003e$2 service \u0026amp; packaging fee\u003c\/strong\u003e will be added at checkout — \u003ca style=\"color: #db3a35; text-decoration: underline;\" href=\"https:\/\/www.umall.com.au\/policies\/shipping-policy\"\u003esee details\u003c\/a\u003e.\u003c\/p\u003e\n\u003ctable style=\"width: 100%; border-collapse: collapse; border: 1px solid #e2e8f0;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 10px; border-right: 1px solid #e2e8f0; border-top: 1px solid #e2e8f0;\"\u003e$69.00 and up\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border-top: 1px solid #e2e8f0;\"\u003e\u003cstrong\u003eFree\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 10px; border-right: 1px solid #e2e8f0; border-top: 1px solid #e2e8f0;\"\u003e$20 – $68.99\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border-top: 1px solid #e2e8f0;\"\u003e$4.99 \u003cspan style=\"color: #999; font-size: 12px;\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 10px; border-right: 1px solid #e2e8f0; border-top: 1px solid #e2e8f0;\"\u003e$0.01 – $19.99\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border-top: 1px solid #e2e8f0;\"\u003e$7.99 \u003cspan style=\"color: #999; font-size: 12px;\"\u003e(was $10)\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48632387928351,"sku":"9202403081450","price":3.69,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/6.webp?v=1725844913"},{"product_id":"rnw-blackhead-clear-nose-pack-5-sets","title":"RNW Blackhead Clear Nose Pack - 5 Sets","description":"Experience the deep cleansing power of RNW Blackhead Clear Nose Pack, available in a convenient 5-set package.\u003cbr\u003eThis comprehensive nose pack effectively removes blackheads and impurities, leaving your skin feeling refreshed and smooth.\u003cbr\u003eEach set includes a botanical essence extraction strip and a pore-tightening strip, ensuring a thorough and gentle cleansing process.\u003cbr\u003eFormulated with premium ingredients, this nose pack helps to open pores, extract blackheads, and tighten skin for a refined appearance.\u003cbr\u003ePerfect for regular use, RNW Blackhead Clear Nose Pack is your go-to solution for maintaining clear and healthy skin.","brand":"Rnw","offers":[{"title":"Default Title","offer_id":48648121876767,"sku":"A6974162140826","price":14.39,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/img_01_15dc0c70-fae7-4cc9-8ced-40098adcec3c.jpg?v=1770199010"},{"product_id":"gik-collagen-repair-moist-mask-2-0-21-sheets","title":"Gik Collagen Repair Moist Mask 2.0 - 21 Sheets","description":"Experience the rejuvenating power of Gik Collagen Repair Moist Mask 2.0, packed with 21 sheets for daily use.\u003cbr\u003eInfused with PRP collagen and hyaluronic acid, this mask provides deep hydration and promotes skin repair.\u003cbr\u003eEach sheet is designed to fit comfortably on your face, delivering essential nutrients to improve skin elasticity and reduce signs of aging.\u003cbr\u003eIdeal for all skin types, this mask helps to maintain a youthful and radiant complexion.\u003cbr\u003eUse it daily to achieve optimal results and enjoy the benefits of smoother, more supple skin.","brand":"Gik","offers":[{"title":"Default Title","offer_id":48648238235935,"sku":"A8809656780005","price":12.29,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/6e7441655e4e0ce877edb530dff92ea1HI8yWKziByT5GGL7s5GCsQrljaDQjWmn.jpg?v=1736928978"},{"product_id":"unny-club-essential-oil-cleansing-balm-50ml","title":"Unny Club Essential Oil Cleansing Balm - 50ml","description":"Experience the gentle yet effective cleansing power of Unny Club Essential Oil Cleansing Balm.\u003cbr\u003eThis 50ml balm quickly emulsifies upon contact with water, effortlessly removing makeup and impurities.\u003cbr\u003eFormulated with nourishing essential oils, it leaves your skin feeling soft and hydrated.\u003cbr\u003eThe unique 'mashed potato' texture melts into the skin, providing a luxurious cleansing experience.\u003cbr\u003ePerfect for all skin types, this cleansing balm ensures a thorough and gentle cleanse, making it an essential part of your skincare routine.","brand":"Unny Club","offers":[{"title":"Default Title","offer_id":48648419836191,"sku":"A6974108366655","price":13.29,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/img_01_2eeff189-26c7-40d7-9519-a5432023fe55.jpg?v=1770198840"},{"product_id":"haidilao-self-heating-spicy-chicken-rice-160g","title":"Haidilao Self-Heating Spicy Chicken Rice - 160g","description":"Experience the convenience and rich flavors of Haidilao Self-Heating Spicy Chicken Rice, packed in a 160g package.\u003cbr\u003eThis self-heating meal is perfect for a quick and delicious meal, ready in just 15 minutes.\u003cbr\u003eFeaturing tender chicken pieces and spicy seasonings, this dish offers a satisfying and flavorful experience.\u003cbr\u003eIdeal for busy days or when you crave a hot meal without the hassle of cooking.\u003cbr\u003eEnjoy the authentic taste of Haidilao with every bite of this self-heating spicy chicken rice.","brand":"Haidilao","offers":[{"title":"Default Title","offer_id":48648738898207,"sku":"A6971284204696","price":5.69,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_abea5c97-ec3d-452c-8fba-49b3ec9b4ed8.jpg?v=1716293453"},{"product_id":"weilih-spicy-beef-flavour-instant-noodles-85g-x-5-packs","title":"Weilih Spicy Beef Flavour Instant Noodles - 85g x 5 Packs","description":"Experience the bold and savory taste of Weilih Spicy Beef Flavour Instant Noodles. Each pack contains 5 individual servings, each weighing 85g, for a total of 425g.\u003cbr\u003eThese noodles are infused with a rich beef flavor and a spicy kick, perfect for a quick and satisfying meal.\u003cbr\u003eSimply cook the noodles, add the included seasoning packets, and enjoy a delicious bowl of spicy beef noodles in minutes.\u003cbr\u003eIdeal for a convenient lunch, dinner, or snack, Weilih Spicy Beef Flavour Instant Noodles bring the taste of authentic Asian cuisine to your table.","brand":"Weilih","offers":[{"title":"Default Title","offer_id":48649143976223,"sku":"A4710199110195","price":4.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_b3840096-661d-4f9b-861a-b3881522d905.jpg?v=1716297390"},{"product_id":"fasola-invisible-anti-friction-heel-pads-20-pieces","title":"FaSoLa Invisible Anti-Friction Heel Pads - 20 Pieces","description":"Experience comfort and protection with FaSoLa Invisible Anti-Friction Heel Pads, designed to prevent blisters and irritation.\u003cbr\u003eThese transparent heel pads are perfect for high heels and other footwear, providing a discreet and effective solution.\u003cbr\u003eEach pack contains 20 pieces, ensuring you have ample supply for daily use.\u003cbr\u003eEasy to apply and remove, these pads adhere securely to your skin, offering long-lasting comfort.\u003cbr\u003eIdeal for anyone looking to enhance their shoe-wearing experience without compromising on style.","brand":"FaSoLa","offers":[{"title":"Default Title","offer_id":48665835929887,"sku":"A6931481223944","price":2.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_35f616de-8478-46bc-bc52-f19c6fb812ec.jpg?v=1716459042"},{"product_id":"kiss-me-waterproof-ultra-fine-liquid-eyeliner-01-black","title":"Kiss Me Waterproof Ultra-Fine Liquid Eyeliner - 01 Black","description":"Achieve precise and long-lasting eye definition with Kiss Me Waterproof Ultra-Fine Liquid Eyeliner in 01 Black.\u003cbr\u003eThis eyeliner features an ultra-fine tip for creating sharp and detailed lines effortlessly.\u003cbr\u003eIts waterproof formula ensures that your eyeliner stays intact all day, even through tears and sweat.\u003cbr\u003eThe rich black color provides intense pigmentation for a bold and dramatic look.\u003cbr\u003ePerfect for both everyday wear and special occasions, this eyeliner is a must-have in your makeup collection.","brand":"Kiss Me","offers":[{"title":"Default Title","offer_id":48805487575327,"sku":"4901433036504","price":15.39,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_7be7105e-2f66-470d-b899-b8ec89241ed4.jpg?v=1718331321"},{"product_id":"orihiro-konjac-jelly-apple-and-grape-flavor-240g","title":"Orihiro Konjac Jelly - Apple and Grape Flavor, 240g","description":"Enjoy the delightful taste of Orihiro Konjac Jelly in apple and grape flavors. This 240g pack contains a delicious blend of fruity goodness, with 21% apple juice and 18% grape juice.\u003cbr\u003ePerfect for a refreshing snack, these jellies are made with konjac, known for its unique texture and health benefits.\u003cbr\u003eConveniently packaged, they are great for on-the-go snacking or as a sweet treat at home.\u003cbr\u003eExperience the fruity and refreshing taste of Orihiro Konjac Jelly, a perfect combination of apple and grape flavors.","brand":"Orihiro","offers":[{"title":"Default Title","offer_id":48806582190367,"sku":"A4571157255408","price":4.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_49c94081-eac2-4eca-83ad-22cdc1f3cfe5.jpg?v=1747018990"},{"product_id":"hakubaku-organic-ramen-270g","title":"Hakubaku Organic Ramen - 270g","description":"Experience the authentic taste of Japanese cuisine with Hakubaku Organic Ramen. This 270g package contains three servings of 90g each, perfect for soups or stir-fry dishes.\u003cbr\u003eMade from organic ingredients, these ramen noodles are 98% fat-free and ready in just 4 minutes.\u003cbr\u003eEnjoy the convenience and quality of Hakubaku Organic Ramen, ideal for a quick and delicious meal.\u003cbr\u003eWhether you're making a traditional ramen soup or a creative stir-fry, these noodles provide a versatile and healthy option for your culinary needs.","brand":"Hakubaku","offers":[{"title":"Default Title","offer_id":48806676300063,"sku":"837328000050","price":3.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_da3f920e-fb5a-4ded-ba86-838c1e027620.jpg?v=1718332459"},{"product_id":"nokchawon-honey-citron-tea-480g","title":"Nokchawon Honey Citron Tea - 480g","description":"Experience the delightful blend of sweet honey and tangy citron with Nokchawon Honey Citron Tea, packed in a convenient 480g jar.\u003cbr\u003eThis traditional Korean tea offers a refreshing and soothing taste, perfect for enjoying hot or cold.\u003cbr\u003eMade with high-quality ingredients, it provides a natural source of vitamin C and antioxidants.\u003cbr\u003eSimply mix with hot water for a comforting drink or add to cold water for a refreshing beverage.\u003cbr\u003eIndulge in the unique flavor and health benefits of Nokchawon Honey Citron Tea, a must-have for tea enthusiasts.","brand":"Nokchawon","offers":[{"title":"Default Title","offer_id":48896415105311,"sku":"A8801767106996","price":7.09,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_edf19d9b-446b-4e7d-ab2e-896212c7c7eb.jpg?v=1747018692"},{"product_id":"canmake-marshmallow-finish-powder-matte-light-shade-mo-10g","title":"Canmake Marshmallow Finish Powder - Matte Light Shade MO, 10g","description":"Achieve a flawless, matte finish with Canmake Marshmallow Finish Powder in the Matte Light Shade MO.\u003cbr\u003eThis lightweight face powder provides a soft, natural look while controlling shine and minimizing pores.\u003cbr\u003ePerfect for setting makeup or touch-ups throughout the day, it leaves your skin looking smooth and radiant.\u003cbr\u003eEnriched with moisturizing ingredients, it ensures your skin stays hydrated and comfortable.\u003cbr\u003eExperience the silky texture and long-lasting effect of Canmake Marshmallow Finish Powder, a must-have in your makeup collection.","brand":"Canmake","offers":[{"title":"Default Title","offer_id":48896477561119,"sku":"A4901008304533","price":17.39,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_2bf31c70-5957-4ff5-b964-c99c585b9565.jpg?v=1720005326"},{"product_id":"s-b-golden-curry-japanese-curry-mix-in-block-medium-hot-220g","title":"S\u0026B Golden Curry Japanese Curry Mix in Block - Medium Hot, 220g","description":"Experience the rich and savory taste of S\u0026amp;B Golden Curry Japanese Curry Mix in Block, Medium Hot flavor.\u003cbr\u003eThis 220g package contains a blend of spices and seasonings that create a delicious and authentic Japanese curry.\u003cbr\u003ePerfect for adding a medium level of heat to your dishes, this curry mix is easy to use and ideal for a quick and satisfying meal.\u003cbr\u003eSimply dissolve the curry block in water and add your favorite ingredients like meat, vegetables, or tofu.\u003cbr\u003eEnjoy the convenience and flavor of S\u0026amp;B Golden Curry, a staple in Japanese cuisine.","brand":"S\u0026B","offers":[{"title":"Default Title","offer_id":48896544276767,"sku":"A074880030716","price":4.59,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_669a804d-66c4-405a-bd52-f1e6ca94b5e2.jpg?v=1720006930"},{"product_id":"frozen-premium-selected-chicken-mini-drumsticks-1kg","title":"Frozen Premium Selected Chicken Mini Drumsticks - 1kg","description":"Enjoy the high-quality taste of  Frozen Premium Selected Chicken Mini Drumsticks, conveniently packed in a 1kg package.\u003cbr\u003eThese mini drumsticks are carefully selected for their premium quality and are perfect for a variety of dishes.\u003cbr\u003eFrozen to maintain freshness, they are ideal for grilling, frying, or baking.\u003cbr\u003eExperience the tender and juicy flavor of these chicken drumsticks, a great addition to any meal.\u003cbr\u003e ensures the highest standards of selection and freezing to provide you with the best quality chicken.","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48952346214687,"sku":"A0735745756867","price":6.19,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_7ba3e1f7-79d5-4d46-9006-793c38097ea9.jpg?v=1736928827"},{"product_id":"cara-cara-blood-oranges-0-9-1kg","title":"Cara Cara Blood Oranges - 0.9kg","description":"Enjoy the vibrant and sweet flavor of Cara Cara Blood Oranges, available in a convenient 0.9kg package.\u003cbr\u003eThese oranges are known for their deep red flesh and unique taste, offering a delightful blend of sweetness and tanginess.\u003cbr\u003ePerfect for snacking, juicing, or adding to salads and desserts, Cara Cara Blood Oranges are a versatile and nutritious choice.\u003cbr\u003eEach orange is carefully selected to ensure optimal ripeness and quality.\u003cbr\u003eExperience the refreshing and juicy goodness of Cara Cara Blood Oranges, a premium citrus fruit that adds a burst of flavor to any dish.","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48952354799903,"sku":"A0735745755693","price":3.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/9fb5673a5ee396a6243a6b9b8cae8eee6ovEYiusaDxatU1PiIgMqkCxxrdWDbtq_58eddb0e-8fba-492c-81be-d473bbfaad7d.jpg?v=1721194783"},{"product_id":"driscolls-jumbo-blueberries-125g","title":"Driscoll's Jumbo Blueberries - 125g","description":"Enjoy the plump and juicy Driscoll's Jumbo Blueberries, packed in a convenient 125g container.\u003cbr\u003eThese blueberries are known for their large size and sweet, tangy flavor, making them perfect for snacking, baking, or adding to your favorite dishes.\u003cbr\u003eEach berry is carefully selected to ensure the highest quality and freshness.\u003cbr\u003eGrown in Australia, Driscoll's blueberries are a delicious and nutritious addition to your diet.\u003cbr\u003eExperience the premium quality and delightful taste of Driscoll's Jumbo Blueberries.","brand":"Driscoll's","offers":[{"title":"Default Title","offer_id":48952359256351,"sku":"A0735745756690","price":6.19,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/4_477589bc-64ad-46a5-bb68-1c792ae0a3c2.jpg?v=1735370318"},{"product_id":"murcott-mandarins-1-1-1-2kg","title":"Murcott Mandarins - 1.1kg","description":"Enjoy the sweet and juicy flavor of Murcott Mandarins, available in a convenient 1.1kg package.\u003cbr\u003eThese mandarins are known for their vibrant orange color and easy-to-peel skin, making them perfect for snacking.\u003cbr\u003eEach mandarin is carefully selected to ensure optimal ripeness and quality.\u003cbr\u003eWhether enjoyed fresh, in salads, or as a refreshing addition to your favorite dishes, Murcott Mandarins offer a delightful taste experience.\u003cbr\u003eExperience the premium quality and delicious flavor of these exceptional mandarins.","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48952368169247,"sku":"A0735745756683","price":3.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/07c515adb66b2856d12ba8e0400b6984lqH7cziWJQZ9ixEtilgQmEZeu9FIubia_b98664a7-8a29-40d5-a513-60b512f7c03f.jpg?v=1721195036"},{"product_id":"jm-solution-avocado-oil-ampoule-mask-35ml-10-sheets-box","title":"JM Solution Avocado Oil Ampoule Mask 35ml*10 Sheets\/Box","description":"\u003cp\u003eIndulge your skin with the JM Solution Avocado Oil Ampoule Mask, designed to provide deep hydration and nourishment. Each box contains 10 sheets, each infused with 35ml of avocado oil essence to enhance your skin's moisture barrier and leave it glowing.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDeep Hydration:\u003c\/strong\u003e Infused with avocado oil to deeply moisturize and nourish the skin.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePlant Extracts:\u003c\/strong\u003e Enriched with plant extracts to strengthen the skin.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilk Touch Sheet:\u003c\/strong\u003e Made with a silk touch sheet to lock in the essence.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConvenient Packaging:\u003c\/strong\u003e Comes in a box of 10 sheets, perfect for regular use.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEasy to Use:\u003c\/strong\u003e Simply apply the mask and relax while it works its magic.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"JM Solution","offers":[{"title":"Default Title","offer_id":49200844341535,"sku":"A8809505543492","price":11.29,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_f7240b77-da26-4bf8-947d-674a5399ff36.jpg?v=1747018640"},{"product_id":"loreal-uv-perfect-sunscreen-spf50-pa-30ml-golden","title":"L'Oreal UV Perfect Sunscreen SPF50+ PA++++ 30ml Golden","description":"\u003cp\u003eProtect your skin with L'Oreal UV Perfect Sunscreen, offering SPF50+ and PA++++ for comprehensive sun protection. This 30ml sunscreen provides a lightweight, non-greasy formula that shields against harmful UV rays while improving skin texture.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eHigh Protection:\u003c\/strong\u003e SPF50+ and PA++++ for broad-spectrum defense.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLightweight Formula:\u003c\/strong\u003e Non-greasy and suitable for daily use.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSkin Improvement:\u003c\/strong\u003e Enhances skin texture and appearance.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEasy Application:\u003c\/strong\u003e Convenient 30ml size for on-the-go protection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTrusted Brand:\u003c\/strong\u003e From the renowned L'Oreal skincare line.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"L'Oreal","offers":[{"title":"Default Title","offer_id":49727951667487,"sku":"A6941594515621","price":24.59,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_a853b5a9-2406-4deb-a21f-241994ad5f9f.jpg?v=1731295333"},{"product_id":"into-you-sweet-glossy-lip-tint-g04","title":"INTO YOU Sweet Glossy Lip Tint #G04","description":"\u003cp\u003eEnhance your lips with INTO YOU Sweet Glossy Lip Tint in shade #G04. This lip tint offers a rich, earthy tone with a glossy finish, perfect for a sophisticated and understated look.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eGlossy Finish:\u003c\/strong\u003e Provides a beautiful, shiny look.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRich Color:\u003c\/strong\u003e Earthy tones for a subtle elegance.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNon-Sticky Formula:\u003c\/strong\u003e Comfortable to wear all day.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMoisturizing:\u003c\/strong\u003e Keeps lips hydrated and smooth.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEasy Application:\u003c\/strong\u003e Comes with an applicator for precise use.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"INTO YOU","offers":[{"title":"Default Title","offer_id":49943949148447,"sku":"A6973391731171","price":12.29,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/img_01_67a96b54-32d8-41bd-a625-54b735a7421f.jpg?v=1770199283"},{"product_id":"bop-refreshing-mouthwash-mint-cold-brew-500ml","title":"BOP Refreshing Mouthwash Mint Cold Brew - 500ml","description":"\u003cp\u003eExperience long-lasting freshness with BOP Refreshing Mouthwash in Mint Cold Brew flavor. This 500ml mouthwash provides up to 14 hours of freshness, effectively combating bad breath and leaving your mouth feeling clean and invigorated.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLong-Lasting Freshness:\u003c\/strong\u003e Enjoy up to 14 hours of minty freshness.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMint Cold Brew Flavor:\u003c\/strong\u003e Refreshing and invigorating taste.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEffective Oral Care:\u003c\/strong\u003e Helps reduce bad breath and maintain oral hygiene.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConvenient Size:\u003c\/strong\u003e 500ml bottle for extended use.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEasy to Use:\u003c\/strong\u003e Simply rinse for a refreshing clean.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"BOP","offers":[{"title":"Default Title","offer_id":50436691525919,"sku":"A6972682693525","price":8.19,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/img_01_97f46273-f7b7-4a5b-b06a-6e05583cb616.jpg?v=1770201003"},{"product_id":"oishi-food-spicy-scallop-mantle-100g","title":"Oishi Food Spicy Scallop Mantle - 100g","description":"\u003cp\u003eEnjoy the bold flavors of Oishi Food Spicy Scallop Mantle. This 100g pack offers a deliciously seasoned scallop mantle with a spicy kick, perfect for seafood lovers looking for something unique and flavorful.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eSpicy Flavor:\u003c\/strong\u003e Infused with a blend of spices for a fiery taste.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePremium Quality:\u003c\/strong\u003e Made from high-quality scallop mantle.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConvenient:\u003c\/strong\u003e Ready to eat after defrosting.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVersatile:\u003c\/strong\u003e Great as a snack or addition to meals.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFrozen Freshness:\u003c\/strong\u003e Maintains flavor and texture.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Oishi Food","offers":[{"title":"Default Title","offer_id":50436941054239,"sku":"A6972359335529","price":1.59,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/2_a41d570b-479e-4732-99e5-1852103c37e8.jpg?v=1736585616"},{"product_id":"xiangjiu-braised-pork-with-pickles-400g","title":"Xiangjiu Braised Pork with Pickles - 400g","description":"\u003cp\u003eEnjoy the rich and savory flavors of Xiangjiu Braised Pork with Pickles. This 400g pack offers a classic taste, perfect for a quick and delicious meal.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAuthentic Taste:\u003c\/strong\u003e Traditional braised pork with pickles.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConvenient:\u003c\/strong\u003e Ready to heat and serve.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eQuality Ingredients:\u003c\/strong\u003e Made with premium pork and seasonings.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGenerous Portion:\u003c\/strong\u003e 400g pack, ideal for sharing.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFrozen Freshness:\u003c\/strong\u003e Maintains flavor and quality.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Xiangjiu","offers":[{"title":"Default Title","offer_id":50526487380255,"sku":"A9301168240019","price":14.39,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_85ee54ed-3d10-45ff-afe8-07f768ef1e4d.jpg?v=1737537548"},{"product_id":"zhazhahui-xinjiang-stir-fried-rice-noodles-mild-spicy-216g","title":"Zhazhahui Xinjiang Stir-Fried Rice Noodles Mild Spicy - 216g","description":"\u003cp\u003eEnjoy the authentic taste of Xinjiang with Zhazhahui Stir-Fried Rice Noodles. This mildly spicy dish offers a delightful blend of flavors and textures, perfect for a quick and satisfying meal.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAuthentic Xinjiang Flavor:\u003c\/strong\u003e Experience the unique taste of traditional stir-fried noodles.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMildly Spicy:\u003c\/strong\u003e Perfect for those who enjoy a gentle kick of spice.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eQuick and Easy:\u003c\/strong\u003e Ready in minutes for a convenient meal.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eQuality Ingredients:\u003c\/strong\u003e Made with premium rice noodles and spices.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGenerous Portion:\u003c\/strong\u003e 216g pack, ideal for a hearty serving.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Zhazhahui","offers":[{"title":"Default Title","offer_id":50574292746527,"sku":"A6975266370034","price":3.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_f8a73bc1-ca83-4606-bc9d-852343e7e2bf.jpg?v=1738992406"},{"product_id":"laiji-lengchi-spicy-beef-190g","title":"Laiji Lengchi Spicy Beef - 190g","description":"\u003cp\u003eEnjoy the rich and savory taste of Laiji Lengchi Spicy Beef. This 190g pack is filled with flavorful beef, perfect for snacking or pairing with your favorite drinks.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAuthentic Flavor:\u003c\/strong\u003e Infused with a rich soy sauce and spices.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMeaty and Satisfying:\u003c\/strong\u003e Generous portions of tender beef.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConvenient Snack:\u003c\/strong\u003e Ready to eat anytime, anywhere.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePerfect Pairing:\u003c\/strong\u003e Ideal for enjoying with drinks or as a side dish.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eQuality Ingredients:\u003c\/strong\u003e Made with premium beef and spices.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Laiji Lengchi","offers":[{"title":"Default Title","offer_id":50608203039007,"sku":"A0792105941844","price":17.29,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/575fb5480225193e813695d342e29bf772JoLV90Gvqz7bqCt91TKAowFmWlkbXH.jpg?v=1740130346"},{"product_id":"akf-moisturizing-hand-cream-qianshan-twilight-snow-scent-60g","title":"AKF Moisturizing Hand Cream - Qianshan Twilight Snow Scent, 60g","description":"\u003cp\u003eIndulge your hands with AKF Moisturizing Hand Cream, featuring the enchanting Qianshan Twilight Snow scent. This 60g tube provides deep hydration and nourishment, leaving your hands feeling soft and smooth.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eUnique Fragrance:\u003c\/strong\u003e A blend of floral and woody notes for a calming experience.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDeep Hydration:\u003c\/strong\u003e Enriched with shea butter for intense moisture.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLightweight Formula:\u003c\/strong\u003e Non-greasy and absorbs quickly.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConvenient Size:\u003c\/strong\u003e 60g tube, perfect for travel or daily use.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNourishing Ingredients:\u003c\/strong\u003e Contains natural extracts to improve skin texture.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"AKF","offers":[{"title":"Default Title","offer_id":50856217346335,"sku":"A6973719472076","price":5.19,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/img_01_44432baf-b70b-45c4-9116-3d6442375ee2.jpg?v=1770198003"},{"product_id":"fengcai-lou-black-gold-salted-egg-lava-custard-buns-frozen-dim-sum-4-pieces","title":"Fengcai Lou Black Gold Salted Egg Lava Custard Buns – Frozen Dim Sum, 4 Pieces","description":"\u003cp\u003eBring restaurant-quality dim sum to your table with Fengcai Lou’s signature Black Gold Lava Custard Buns. Encased in dramatic bamboo-charcoal dough brushed with edible gold, each bun bursts with molten salted-egg custard that flows at the first bite—ready to steam straight from the freezer in minutes.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eSignature Recipe:\u003c\/strong\u003e Created by renowned dim-sum house Fengcai Lou.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMolten Centre:\u003c\/strong\u003e Rich salted egg yolk custard delivers an irresistible sweet-savory flavour.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eStriking Appearance:\u003c\/strong\u003e Charcoal-black bun streaked with edible gold for an elegant presentation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEasy Preparation:\u003c\/strong\u003e Steam from frozen in 6–8 minutes for freshly made texture.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePerfect Portion:\u003c\/strong\u003e Convenient pack of 4 buns—ideal for sharing, appetisers or late-night treats.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Fengcai Lou","offers":[{"title":"Default Title","offer_id":51024935715103,"sku":"A9309002821134","price":11.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/img_01_29d76a7b-7ee0-4fab-8bcd-59345cb14184.jpg?v=1770986641"},{"product_id":"the-fung-choi-frozen-tender-chicken-with-premium-shiitake-mushrooms-with-signature-soy-sauce-250g-cantonese-claypot-rice-topping","title":"The Fung Choi Frozen Tender Chicken with Premium Shiitake Mushrooms (with Signature Soy Sauce) 250g – Cantonese Claypot Rice Topping","description":"\u003cp\u003eEnjoy restaurant-style comfort food at home with The Fung Choi’s classic \"滑鸡北菇\"—succulent boneless chicken marinated for tenderness, paired with fragrant premium shiitake slices and a sachet of the brand’s signature soy sauce. Flash-frozen in a convenient 250 g tray, it’s the perfect all-in-one topping for claypot rice, noodles or a quick steamed meal.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eCantonese Classic:\u003c\/strong\u003e Authentic tender chicken and shiitake combo loved in dim-sum houses.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSignature Soy Sauce Included:\u003c\/strong\u003e Adds the perfect savoury finish—no extra seasoning needed.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReady in Minutes:\u003c\/strong\u003e Steam, microwave or stir-fry straight from the freezer.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePremium Shiitake:\u003c\/strong\u003e Thick-cut mushrooms impart deep umami aroma.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConvenient Portion:\u003c\/strong\u003e 250 g pack serves 1–2, ideal for quick lunches or late-night cravings.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"The Fung Choi","offers":[{"title":"Default Title","offer_id":51024935747871,"sku":"A9309002821158","price":10.69,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/img_01_68dcbd6a-ca70-45e8-8815-6e94f0de39d8.jpg?v=1770986679"},{"product_id":"fengcailou-frozen-cantonese-black-bean-chilli-pork-spare-ribs-dim-sum-ready-to-steam-250g","title":"Fengcailou Frozen Cantonese Black Bean \u0026 Chilli Pork Spare Ribs (Dim Sum Ready-to-Steam) - 250g","description":"\u003cp\u003eEnjoy restaurant-quality yum cha at home with Fengcailou’s classic Cantonese pork spare ribs. Marinated in aromatic fermented black beans, garlic and fresh red chilli, these bite-sized ribs are portioned into a convenient 250 g tray—simply steam straight from the freezer for tender, flavour-packed dim sum in minutes.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAuthentic Hong Kong Recipe:\u003c\/strong\u003e Traditional black bean \u0026amp; chilli seasoning delivers true Cantonese taste.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReady-to-Steam Convenience:\u003c\/strong\u003e No prep needed—go from freezer to table in 10–12 minutes.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePremium Pork Spare Ribs:\u003c\/strong\u003e Meaty, evenly-cut pieces for perfect texture and bite.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIndividually Quick Frozen:\u003c\/strong\u003e Locks in freshness and juiciness without added preservatives.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePerfect Portion:\u003c\/strong\u003e 250 g pack serves 1–2 people—ideal for snacks, appetisers or part of a dim sum spread.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Fengcailou","offers":[{"title":"Default Title","offer_id":51024936239391,"sku":"A9309002821035","price":13.29,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/1_7ca5e478-b930-45c3-a36f-470c5248d224.jpg?v=1751613230"},{"product_id":"fengcailou-frozen-lotus-leaf-sticky-rice-with-chicken-lo-mai-gai-2-pieces","title":"Fengcailou Frozen Lotus Leaf Sticky Rice with Chicken (Lo Mai Gai) – 2 Pieces","description":"\u003cp\u003eEnjoy restaurant-quality dim sum at home with Fengcailou’s classic Lo Mai Gai—fragrant glutinous rice studded with tender chicken, Chinese sausage and shiitake mushrooms, all wrapped in an aromatic lotus leaf. Simply steam from frozen for a comforting Cantonese treat in minutes.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAuthentic Cantonese Recipe:\u003c\/strong\u003e Traditional flavours of chicken, lap cheong and mushrooms.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLotus Leaf Aroma:\u003c\/strong\u003e Natural leaf wrap infuses the rice with a subtle herbal fragrance.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReady in Minutes:\u003c\/strong\u003e Individually wrapped portions steam straight from the freezer—no prep needed.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConvenient Pack:\u003c\/strong\u003e 2 generous pieces, perfect for sharing or quick meals.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePreservative-Free:\u003c\/strong\u003e Flash-frozen to lock in freshness without artificial additives.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Fengcailou","offers":[{"title":"Default Title","offer_id":51024936304927,"sku":"A9309002821073","price":10.69,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/img_01_7ec433cc-43b4-4229-ab89-cb0e86386dfb.jpg?v=1770986812"}],"url":"https:\/\/www.umall.com.au\/collections\/weekly-special\/noodle-snacks.oembed","provider":"Umall - Australia's Largest Online Asian Supermarket","version":"1.0","type":"link"}