{"title":"AGO Comeback Deals","description":"\u003cp\u003eFive everyday favourites worth coming back for. Shop them in Asian Grocer Online, powered by UMall.\u003c\/p\u003e","products":[{"product_id":"fresh-a2-full-cream-milk-2l","title":"A2 Full Cream Milk 2L","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eLimit 1 per customer. Not valid with multi-buy discounts.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003eA2 Full Cream Milk is a fresh, high-quality dairy product that provides a rich and creamy taste. It comes in a 2L packaging, perfect for family consumption or those who regularly consume milk.\u003c\/p\u003e","brand":"A2","offers":[{"title":"Default Title","offer_id":48151619633439,"sku":"A9335390000035","price":6.79,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/80b207f75ce50ed1402bf2318eac201e2nCf8WIuxe7NRZ0Tc1LZZ1AS0Em6n9I4.jpg?v=1745982943"},{"product_id":"nongshim-shin-ramyun-noodles-120g-pack-of-5-bags","title":"Nongshim Shin Ramyun Noodle Soup, 120g × 5 Packs [Limit 1 PP]","description":"\u003cp class=\"p1\"\u003eSavor the bold, spicy taste of Korea’s iconic Nongshim Shin Ramyun Noodle Soup. Known for its rich, savory broth and satisfyingly chewy noodles, it delivers an authentic ramen experience every time.\u003c\/p\u003e\n\u003cp class=\"p2\"\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp class=\"p3\"\u003e\u003cb\u003eHighlights:\u003c\/b\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p4\"\u003e \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp class=\"p1\"\u003e\u003cspan class=\"s1\"\u003e\u003cb\u003eSignature Spicy Broth:\u003c\/b\u003e\u003c\/span\u003e A robust and fiery soup base with layers of savory flavor.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp class=\"p1\"\u003e\u003cspan class=\"s1\"\u003e\u003cb\u003eQuality Noodles:\u003c\/b\u003e\u003c\/span\u003e Chewy and hearty noodles that hold up beautifully in hot broth.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp class=\"p1\"\u003e\u003cspan class=\"s1\"\u003e\u003cb\u003eAuthentic Korean Taste:\u003c\/b\u003e\u003c\/span\u003e Enjoy the beloved flavor found in Korean households and restaurants.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp class=\"p1\"\u003e\u003cspan class=\"s1\"\u003e\u003cb\u003eConvenient Packs:\u003c\/b\u003e\u003c\/span\u003e Perfect for quick meals or late-night cravings—just boil and serve.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp class=\"p1\"\u003e\u003cspan class=\"s1\"\u003e\u003cb\u003eTrusted Brand:\u003c\/b\u003e\u003c\/span\u003e From Nongshim, a global leader in instant noodle excellence.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp class=\"p1\"\u003eLimit 1 per purchase.  Not valid with multi-buy discounts.\u003c\/p\u003e","brand":"Nongshim","offers":[{"title":"Default Title","offer_id":48157871603999,"sku":"A031146157365","price":4.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/b1070d08-8219-4883-a7a3-7b2a2a51fbe7.jpg?v=1747018788"},{"product_id":"shanghai-bok-choy-1-bunch","title":"Shanghai Bok Choy - 1 Bunch","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\u003csection style=\"--brand: #DB3A35; max-width: 860px; margin: 0 auto; padding: 8px 12px; color: #0f172a; font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; line-height: 1.6;\" id=\"umall-desc\"\u003e\n\u003csection style=\"border: 1px solid #e2e8f0; background: #fff; border-radius: 16px; padding: 20px;\"\u003e\n\u003ch1 style=\"margin: 0; font-size: 26px; font-weight: 800;\"\u003eShanghai Bok Choy — 1 Bunch\u003c\/h1\u003e\n\u003cp style=\"margin: 10px 0 0; color: #475569; font-size: 14px;\"\u003eAlso called bok choy or pak choi. Crisp jade-green stems and tender leaves with a naturally sweet flavour — perfect for garlic stir-fry, noodle soup, or simple steaming. Quick-cook and low-calorie; great everyday greens with next-day Sydney delivery.\u003c\/p\u003e\n\u003cimg style=\"width: 100%; border-radius: 12px; margin-top: 12px; display: block;\" alt=\"Shanghai Bok Choy bunch\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/27f3145cc4c2c3550f84f6692bec729d5cI6GKMEDAqomUTyc4G2kFnXVEFWCxhD.jpg?v=1745982846\"\u003e\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; color: #334155; font-size: 14px;\"\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan\u003e \u003cmeta charset=\"utf-8\"\u003e\u003c\/span\u003e\u003cspan style=\"color: rgb(51, 65, 85); font-size: 14px;\"\u003eSweet, mild flavour with a clean crunch\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\u003cspan\u003eQuick to cook: stir-fry 2–3 mins or steam 3–4 mins.\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003eA light option that fits low-calorie meals\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan\u003e\u003c\/span\u003e\n\u003cdiv\u003e\u003cspan\u003eVersatile for stir-fries, soups, noodles and simple steamed greens.\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\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\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\u003ch4 style=\"margin: 0 0 6px; font-size: 16px; font-weight: bold;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cspan style=\"font-size: 18px; font-weight: bold; color: rgb(15, 23, 42);\"\u003eHow to enjoy\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4 style=\"margin: 0 0 6px; font-size: 16px; font-weight: bold;\"\u003e5‑Minute Garlic Stir‑Fried Shanghai Bok Choy\u003c\/h4\u003e\n\u003cp style=\"margin: 6px 0; color: #475569; font-size: 14px;\"\u003eHalve lengthwise, pat dry, then wok‑fry with sliced or smashed garlic and a pinch of salt. Finish with a splash of oyster sauce for sheen and umami. Try with \u003ca style=\"color: var(--brand);\" href=\"\/products\/peeled-garlic-cloves-250g\"\u003ePeeled Garlic Cloves\u003c\/a\u003e and \u003ca style=\"color: var(--brand);\" href=\"\/products\/haitian-premium-oyster-sauce-700g\"\u003eHaitian Premium Oyster Sauce 700g\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"border: 1px solid #e2e8f0; border-radius: 12px; padding: 14px; background: #fff;\"\u003e\n\u003ch4 style=\"margin: 0 0 6px; font-size: 16px; font-weight: bold;\"\u003eLight Shirataki Noodle Soup with Bok Choy \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: 6px 0; color: #475569; font-size: 14px;\"\u003eSimmer clear chicken stock, add sliced bok choy and shirataki threads; cook until just tender (2‑4 minutes). Garnish with a few blanched mushrooms. Use \u003ca style=\"color: var(--brand);\" href=\"\/products\/hankun-crispy-konjac-yam-threads-200g\"\u003eKonjac Yam Threads\u003c\/a\u003e, \u003ca style=\"color: var(--brand);\" href=\"\/products\/bull-head-clear-chicken-broth-411ml-canned-chicken-stock\"\u003eBull Head Clear Chicken Broth\u003c\/a\u003e, and \u003ca style=\"color: var(--brand);\" href=\"\/products\/chois-shimeji-mushrooms-150g\"\u003eShimeji Mushrooms\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"border: 1px solid #e2e8f0; border-radius: 12px; padding: 14px; background: #fff;\"\u003e\n\u003ch4 style=\"margin: 0 0 6px; font-size: 16px; font-weight: bold;\"\u003eNo‑Fry Sesame–Soy Blanched Greens\u003c\/h4\u003e\n\u003cp style=\"margin: 6px 0; color: #475569; font-size: 14px;\"\u003eBlanch bok choy until vibrant; drain well. Drizzle a light mix of soy sauce, rice vinegar, a few drops of sesame oil, and white pepper. Try \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\/hengshun-white-rice-vinegar-500ml\"\u003eHengshun White Rice Vinegar\u003c\/a\u003e, and \u003ca style=\"color: var(--brand);\" href=\"\/products\/lee-kum-kee-pure-sesame-oil-207ml\"\u003eLee Kum Kee Sesame Oil\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"border: 1px solid #e2e8f0; border-radius: 12px; padding: 14px; background: #fff;\"\u003e\n\u003ch4 style=\"margin: 0 0 6px; font-size: 16px; font-weight: bold;\"\u003eQuick Beef \u0026amp; Bok Choy over Steamed Rice\u003c\/h4\u003e\n\u003cp style=\"margin: 6px 0; color: #475569; font-size: 14px;\"\u003eStir‑fry sliced beef, add bok choy and a splash of savory yakiniku sauce; serve over hot rice. Use \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\/ebara-grated-daikon-soy-flavored-yakiniku-sauce-270g\"\u003eEbara Grated Daikon Yakiniku Sauce\u003c\/a\u003e, and \u003ca style=\"color: var(--brand);\" href=\"\/products\/arawana-northeast-rice-5kg\"\u003eArawana Northeast Rice\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\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\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; color: #334155; font-size: 14px;\"\u003e\n\u003cli\u003eRinse well between stems; grit likes to hide near the base. Trim a thin slice off the root end.\u003c\/li\u003e\n\u003cli\u003eCook stems first, then toss in leaves to finish — this keeps everything crisp‑tender.\u003c\/li\u003e\n\u003cli\u003eFor bright color and snap, keep heat high and cooking time short (2‑4 minutes depending on cut size).\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; color: #334155; font-size: 14px;\"\u003e\n\u003cli\u003e\u003ca style=\"color: var(--brand);\" href=\"\/products\/australian-raw-king-prawns-peeled-tail-on-flash-frozen-700g\"\u003eAustralian Raw King Prawns (Peeled, Tail‑On)\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca style=\"color: var(--brand);\" href=\"\/products\/fresh-ever-green-smooth-tofu-approximately-300g\"\u003eEver Green Silken Tofu, 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\n\u003ca style=\"color: var(--brand);\" href=\"\/products\/fresh-dried-garlic-heads-approximately-500g\"\u003eGarlic Bulbs, 500g\u003c\/a\u003e \u0026amp; \u003ca style=\"color: var(--brand);\" href=\"\/products\/fresh-green-leaf-farm-tender-ginger-approximately-500g\"\u003eGinger 500g\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca style=\"color: var(--brand);\" href=\"\/products\/haitian-premium-light-soy-sauce-500ml\"\u003eHaitian Premium Light Soy Sauce 500ml\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca style=\"color: var(--brand);\" href=\"\/products\/chunsi-jiangxi-rice-noodles-1kg\"\u003eChunsi Jiangxi Rice Noodles - 1kg\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; text-align: center;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px; font-size: 18px; font-weight: bold;\"\u003eMore in this category\u003c\/h3\u003e\n\u003ca style=\"display: inline-block; margin-top: 6px; color: var(--brand); font-weight: bold; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 14px;\" href=\"\/collections\/leafy-vegetables\"\u003eBrowse all leafy vegetables\u003c\/a\u003e\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 #e5e7eb;\"\u003e\n\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\n\u003c\/table\u003e\n\u003c\/section\u003e\n\u003c\/section\u003e","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":48800946520351,"sku":"9335351095940","price":0.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/27f3145cc4c2c3550f84f6692bec729d5cI6GKMEDAqomUTyc4G2kFnXVEFWCxhD.jpg?v=1745982846"},{"product_id":"frozen-pork-cabbage-dumplings-1kg","title":"Frozen Pork \u0026 Cabbage Dumplings - 1kg","description":"\u003cp\u003eThese Pork \u0026amp; Cabbage Dumplings deliver a classic Northern Chinese jiaozi taste—juicy pork blended with crisp cabbage and wrapped in thin, tender dough. Cook straight from the freezer for a quick, satisfying meal any night of the week.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eClassic Filling:\u003c\/strong\u003e Savoury pork balanced with fresh cabbage.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThin Wrapper, Big Bite:\u003c\/strong\u003e Delicate skins with a generous, juicy centre.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCook From Frozen:\u003c\/strong\u003e Boil, steam, or pan‑fry in minutes.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFamily Pack:\u003c\/strong\u003e 1kg bag suits weeknight dinners or gatherings.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVersatile:\u003c\/strong\u003e Enjoy with black vinegar, chilli oil, or in soup.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Umall Fresh","offers":[{"title":"Default Title","offer_id":51242084303135,"sku":"A735850186993","price":9.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/erp_03.source_80e4ed67-c9df-4faf-a805-83025c3347c4.png?v=1785875988"},{"product_id":"umall-original-tofu-900g","title":"UMALL Original Tofu 900g","description":"\u003cp\u003eUMALL Original Tofu is a versatile regular-firm tofu made in Australia from Australian ingredients. Its clean, mild soy flavour and satisfying texture make it a handy choice for stir-fries, soups, hot pots and braised dishes.\u003c\/p\u003e\u003ch2\u003eProduct Highlights:\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eRegular Firm Texture:\u003c\/strong\u003e Holds its shape well in everyday cooking.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMade in Australia:\u003c\/strong\u003e Produced using Australian ingredients.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNon-GMO Soybeans:\u003c\/strong\u003e Made with non-GMO soybeans.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSimple Versatility:\u003c\/strong\u003e Suitable for pan-frying, simmering, steaming or adding to soups.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGenerous Pack:\u003c\/strong\u003e 900g pack for family meals and multiple dishes.\u003c\/li\u003e\n\u003c\/ul\u003e\u003cdetails\u003e\u003csummary\u003eSearch terms\u003c\/summary\u003e\u003cp\u003e\u003csmall\u003eSearch keywords: UMALL tofu, original tofu, firm tofu, 豆腐, 优选豆腐, Australian tofu\u003c\/small\u003e\u003c\/p\u003e\u003c\/details\u003e","brand":"UMALL","offers":[{"title":"Default Title","offer_id":52762895188255,"sku":"M9202604271853","price":2.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0864\/3602\/0511\/files\/f400aa5b80b006a3233dc8019fb9a9e44MCq9lIW87GQ9b1Ewc6i7lYYSMti7yue.png?v=1786251482"}],"url":"https:\/\/www.umall.com.au\/collections\/ago-comeback-deals\/australian-made.oembed","provider":"Umall - Australia's Largest Online Asian Supermarket","version":"1.0","type":"link"}