{
    "version": "https://jsonfeed.org/version/1",
    "title": "B2C HANNA FASH 9月9日",
    "description": "",
    "home_page_url": "https://hannafash.com",
    "feed_url": "https://hannafash.com/feed.json",
    "user_comment": "",
    "icon": "https://hannafash.com/media/website/hanna-fash-2-6.png",
    "author": {
        "name": "Edward Huang"
    },
    "items": [
        {
            "id": "https://hannafash.com/reliable-stainless-steel-commercial-peelers-for-busy-restaurant-kitchens.html",
            "url": "https://hannafash.com/reliable-stainless-steel-commercial-peelers-for-busy-restaurant-kitchens.html",
            "title": "How to Wear Islamic Modest Wear: A Simple Guide to Elegant Everyday Style",
            "summary": "Modest fashion is more than simply choosing clothes that cover the body. It is also about feeling comfortable, confident, and true to your personal style. Islamic modest wear offers many beautiful ways to create elegant outfits while keeping your look practical and comfortable. Whether you&hellip;",
            "content_html": "<p class=\"isSelectedEnd\">Modest fashion is more than simply choosing clothes that cover the body. It is also about feeling comfortable, confident, and true to your personal style. Islamic modest wear offers many beautiful ways to create elegant outfits while keeping your look practical and comfortable.</p>\n<p class=\"isSelectedEnd\">Whether you are new to modest fashion or looking for fresh outfit ideas, here are some simple tips to help you style your modest wardrobe.</p>\n<h2>1. Start with the Right Silhouette</h2>\n<p class=\"isSelectedEnd\">A good modest outfit starts with a comfortable and relaxed fit. Look for clothing that is loose enough to move freely without feeling oversized or uncomfortable.</p>\n<p class=\"isSelectedEnd\">Long dresses, abayas, maxi skirts, and wide-leg trousers are great choices for creating a modest silhouette. Avoid overly tight clothing and choose pieces that give you enough coverage while still allowing you to feel comfortable throughout the day.</p>\n<p class=\"isSelectedEnd\">An abaya is one of the easiest options because it creates a complete modest look with just one piece.</p>\n<h2>2. Layer Your Outfit</h2>\n<p class=\"isSelectedEnd\">Layering is an easy way to make your everyday outfits more modest while adding more style.</p>\n<p class=\"isSelectedEnd\">You can wear a long cardigan, open abaya, kimono, or lightweight outer layer over a simple dress or trousers and top. Layering also allows you to change your look depending on the weather or occasion.</p>\n<p class=\"isSelectedEnd\">For example, try a simple maxi dress with an open abaya and a matching hijab for an effortless and elegant outfit.</p>\n<h2>3. Choose Comfortable Fabrics</h2>\n<p class=\"isSelectedEnd\">Comfort is an important part of modest fashion. Since modest outfits often include long sleeves and full-length pieces, breathable fabrics can make a big difference.</p>\n<p class=\"isSelectedEnd\">Look for soft and lightweight materials that feel comfortable against your skin. Fabrics with a natural drape can also make long dresses and abayas look more elegant.</p>\n<p class=\"isSelectedEnd\">For warmer days, lightweight and breathable fabrics are ideal. For cooler weather, you can layer with thicker outerwear or knit pieces.</p>\n<h2>4. Keep Your Colors Simple</h2>\n<p class=\"isSelectedEnd\">You do not need a complicated outfit to look stylish.</p>\n<p class=\"isSelectedEnd\">Neutral shades such as black, beige, cream, brown, grey, and navy are easy to mix and match. You can also add a soft or brighter color through your hijab, handbag, shoes, or accessories.</p>\n<p class=\"isSelectedEnd\">A simple outfit in one color can create a clean and elegant look, while different shades of the same color can make your outfit look more polished.</p>\n<h2>5. Style Your Hijab</h2>\n<p class=\"isSelectedEnd\">The hijab can be an important part of a modest outfit and a simple way to express your personal style.</p>\n<p class=\"isSelectedEnd\">For an everyday look, choose a comfortable and easy-to-style fabric. Match your hijab with your outfit for a coordinated appearance, or choose a contrasting shade when you want to add more personality.</p>\n<p class=\"isSelectedEnd\">You can also keep your clothing simple and let the hijab become the main detail of your outfit.</p>\n<h2>6. Add Simple Accessories</h2>\n<p class=\"isSelectedEnd\">Accessories can make a modest outfit feel more personal without taking away from its simplicity.</p>\n<p class=\"isSelectedEnd\">A structured handbag, comfortable flats, sneakers, a simple watch, or delicate jewelry can complete your look. When wearing a statement outfit, keep your accessories minimal. With a simple abaya or dress, you can use accessories to add a little more character.</p>\n<h2>7. Dress for the Occasion</h2>\n<p class=\"isSelectedEnd\">Modest wear can work for almost any occasion.</p>\n<p class=\"isSelectedEnd\">For everyday activities, choose simple abayas, long dresses, loose trousers, and comfortable shoes.</p>\n<p class=\"isSelectedEnd\">For work, try a tailored long outer layer with a simple dress or wide-leg trousers. Keep the colors and accessories polished for a professional look.</p>\n<p class=\"isSelectedEnd\">For special occasions, choose an abaya or long dress with elegant details such as flowing sleeves, delicate textures, or subtle embellishments. Pair it with a beautiful hijab and simple accessories for a sophisticated finish.</p>\n<h2>8. Make Modest Fashion Your Own</h2>\n<p class=\"isSelectedEnd\">There is no single way to dress modestly. Your style can be simple, feminine, modern, classic, or completely your own.</p>\n<p>The most important thing is to choose clothes that fit your lifestyle, make you feel comfortable, and reflect your values. Modest fashion should help you feel confident rather than make you feel restricted.</p>",
            "image": "https://hannafash.com/media/posts/22/4.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Blogs"
            ],
            "date_published": "1970-01-01T08:00:02+08:00",
            "date_modified": "2026-08-18T16:55:14+08:00"
        },
        {
            "id": "https://hannafash.com/durable-high-volume-industrial-peelers-perfect-for-commercial-food-plants.html",
            "url": "https://hannafash.com/durable-high-volume-industrial-peelers-perfect-for-commercial-food-plants.html",
            "title": "Where to Buy Islamic Modest Wear: A Simple Guide",
            "summary": "Finding beautiful Islamic modest wear has never been easier. Today, you can shop for modest clothing both online and in physical stores, with many brands offering a wide range of abayas, hijabs, long dresses, skirts, and other modest fashion pieces. Whether you are looking for&hellip;",
            "content_html": "<p class=\"isSelectedEnd\">Finding beautiful Islamic modest wear has never been easier. Today, you can shop for modest clothing both online and in physical stores, with many brands offering a wide range of abayas, hijabs, long dresses, skirts, and other modest fashion pieces.</p>\n<p class=\"isSelectedEnd\">Whether you are looking for everyday clothing, workwear, or something special for an occasion, knowing where to shop can help you find styles that match your needs, budget, and personal taste.</p>\n<h2>1. Online Modest Fashion Stores</h2>\n<p class=\"isSelectedEnd\">Online shops are one of the easiest places to buy Islamic modest wear. You can browse different styles from home and compare fabrics, sizes, prices, and designs before making a decision.</p>\n<p class=\"isSelectedEnd\">Many online modest fashion stores offer collections designed specifically for Muslim women, including:</p>\n<ul data-spread=\"false\">\n<li>Abayas and open abayas</li>\n<li>Long dresses and maxi dresses</li>\n<li>Hijabs and scarves</li>\n<li>Modest tops and tunics</li>\n<li>Wide-leg trousers</li>\n<li>Modest occasion wear</li>\n</ul>\n<p class=\"isSelectedEnd\">Shopping online also gives you access to styles from different countries, making it easier to discover unique designs that may not be available in local stores.</p>\n<h2>2. Specialist Abaya Shops</h2>\n<p class=\"isSelectedEnd\">If you mainly wear abayas, a specialist abaya store can be a great place to shop.</p>\n<p class=\"isSelectedEnd\">These stores usually offer different abaya styles, from simple everyday designs to more elegant pieces for weddings, Eid, and other special occasions. You can find different cuts, sleeve styles, fabrics, and lengths to suit your personal preference.</p>\n<p class=\"isSelectedEnd\">When buying an abaya online, always check the size chart and garment length carefully. A good fit is especially important for full-length modest clothing.</p>\n<h2>3. Local Muslim Fashion Stores</h2>\n<p class=\"isSelectedEnd\">If you prefer to see and feel clothing before buying, local modest fashion stores are worth visiting.</p>\n<p class=\"isSelectedEnd\">Shopping in person allows you to check the fabric, fit, color, and overall quality. You can also try different styles to see what works best for you.</p>\n<p class=\"isSelectedEnd\">Local stores can be especially useful when you are looking for an outfit for an upcoming event and do not want to wait for shipping.</p>\n<h2>4. Department Stores and High-Street Brands</h2>\n<p class=\"isSelectedEnd\">You do not always need to shop at a specialist Islamic fashion store.</p>\n<p class=\"isSelectedEnd\">Many mainstream fashion brands now offer modest-friendly pieces such as long dresses, oversized shirts, maxi skirts, loose trousers, cardigans, and long coats.</p>\n<p class=\"isSelectedEnd\">These pieces can easily be combined with an abaya or hijab to create a modest outfit that suits your personal style.</p>\n<h2>5. Online Marketplaces</h2>\n<p class=\"isSelectedEnd\">Large online marketplaces can also have a wide selection of modest clothing. They are useful when you want to compare many different styles and price points in one place.</p>\n<p class=\"isSelectedEnd\">However, always check the product description, customer reviews, measurements, fabric information, and return policy before ordering. Product photos can sometimes look different from the actual item.</p>\n<h2>6. What to Look for When Buying Modest Wear</h2>\n<p class=\"isSelectedEnd\">Finding the right store is only part of the process. It is also important to pay attention to the quality and practicality of the clothing.</p>\n<h3>Fabric</h3>\n<p class=\"isSelectedEnd\">Choose fabrics that feel comfortable and are suitable for the season. Lightweight and breathable fabrics are ideal for warmer weather, while thicker materials work well for colder seasons.</p>\n<h3>Fit</h3>\n<p class=\"isSelectedEnd\">Modest clothing should give you enough room to move comfortably. Check the measurements rather than relying only on your usual size, especially when shopping online.</p>\n<h3>Length</h3>\n<p class=\"isSelectedEnd\">For abayas, dresses, and skirts, check the exact garment length before ordering. The right length can make a big difference in both comfort and appearance.</p>\n<h3>Opacity</h3>\n<p class=\"isSelectedEnd\">Make sure the fabric provides enough coverage for your needs. If a material is slightly transparent, consider wearing a suitable inner layer.</p>\n<h3>Return Policy</h3>\n<p class=\"isSelectedEnd\">A clear return or exchange policy is important when buying clothing online. It gives you more flexibility if the size, fit, or fabric is not what you expected.</p>\n<h2>7. How to Build a Modest Wardrobe</h2>\n<p class=\"isSelectedEnd\">You do not need to buy a large number of clothes to create a versatile modest wardrobe.</p>\n<p class=\"isSelectedEnd\">Start with a few basic pieces that are easy to mix and match. A simple abaya, a long dress, a neutral hijab, a loose top, and a pair of wide-leg trousers can create many different outfits.</p>\n<p>Once you have your basics, you can add more unique pieces, such as statement abayas, patterned hijabs, elegant occasion dresses, or seasonal outerwear.</p>",
            "image": "https://hannafash.com/media/posts/21/pexels-gustavo-galeano-maz-9760216.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Blogs"
            ],
            "date_published": "1970-01-01T08:00:02+08:00",
            "date_modified": "2026-08-18T16:56:38+08:00"
        },
        {
            "id": "https://hannafash.com/kimono-abaya-f-coffee.html",
            "url": "https://hannafash.com/kimono-abaya-f-coffee.html",
            "title": "Kimono Abaya (F) - Coffee",
            "summary": "Shipping All-inclusive pricing covers shipping and taxes with no hidden fees. Standard shipping takes approximately 8–10 business days. About the Look Simplify your daily wardrobe with this versatile two-piece set. Built for total comfort and modern Abaya Fashion aesthetics, it delivers full coverage and a&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>Shipping<br>All-inclusive pricing covers shipping and taxes with no hidden fees. Standard shipping takes approximately 8–10 business days.</li>\n<li>About the Look<br>Simplify your daily wardrobe with this versatile two-piece set. Built for total comfort and modern Abaya Fashion aesthetics, it delivers full coverage and a put-together finish suitable for both office days and casual weekend outings.</li>\n<li>Size Guide<br>Designed with a looser fit, this Muslim Clothes item provides a relaxed, unrestrictive feel. Please share your height, weight, chest, and waist dimensions when completing your purchase so we can suggest the optimal size for you.</li>\n<li>Please keep in mind that colors may look a little different in person due to lighting and display differences.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2266%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H746</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Coffee</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Ramadan dress</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Breathable, durable</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Fashionable abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Shape-retaining, </span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">85-95</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">95-105</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">175-185</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">105-115</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H746\";\nconst productName = \"Kimono Abaya (F) - Coffee\";\nconst unitPrice = 54.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/236/Kimono-Abaya-D-11.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "KimonoAbaya",
                   "Kimono Abaya (F)"
            ],
            "date_published": "2026-09-14T12:53:40+08:00",
            "date_modified": "2026-09-16T08:47:04+08:00"
        },
        {
            "id": "https://hannafash.com/puff-sleeve-abaya-e-pink.html",
            "url": "https://hannafash.com/puff-sleeve-abaya-e-pink.html",
            "title": "Puff Sleeve Abaya (E) - Pink",
            "summary": "You only pay the price shown. Shipping and taxes are included. Standard shipping takes 8–10 business days. Make everyday dressing effortless with this modest two-piece set, thoughtfully designed for comfort, coverage, and timeless style. Its coordinated design gives you a polished appearance with minimal effort,&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>You only pay the price shown. Shipping and taxes are included. Standard shipping takes 8–10 business days.</li>\n<li>Make everyday dressing effortless with this modest two-piece set, thoughtfully designed for comfort, coverage, and timeless style. Its coordinated design gives you a polished appearance with minimal effort, making it an easy choice for workdays, casual outings, and relaxed weekends. This versatile Modest Wear set blends beautifully into any wardrobe, while its clean silhouette makes it a Stylish abaya-inspired option for modern modest dressing.</li>\n<li>The set features a relatively loose cut for a relaxed and comfortable fit. After placing your order, please provide your height, weight, chest circumference, and waist circumference so that we can recommend the optimal size for you. Designed for easy movement and everyday comfort, it is a practical addition to your Muslim Clothing collection.</li>\n<li>We try our best to show true colors, but slight variations may occur depending on your screen.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.213%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H731</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Pink</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Abaya fashion</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Matte finish, durable</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Full cover abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Do not tumble dry</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">85-92</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">92-99</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">99-106</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.366%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.2679%; height: 30px;\"><span style=\"font-size: 12pt;\">106-113</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H731\";\nconst productName = \"Puff Sleeve Abaya (E) - Pink\";\nconst unitPrice = 57.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/227/Puff-Sleeve-Abaya-A-1.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Puff Sleeve Abaya (E)",
                   "Products",
                   "KimonoAbaya"
            ],
            "date_published": "2026-09-14T09:55:36+08:00",
            "date_modified": "2026-09-16T08:49:51+08:00"
        },
        {
            "id": "https://hannafash.com/batwing-abaya-a-cream.html",
            "url": "https://hannafash.com/batwing-abaya-a-cream.html",
            "title": "Batwing Abaya (A) - Cream",
            "summary": "The price is all-inclusive, with shipping and taxes covered. Standard delivery takes 8–10 business days. Product Highlight Butterfly abayas are a quintessential staple in our collection—and for good reason. Designed as an essential Muslim Robe, it comes in 7 universal shades with a hidden inner&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>The price is all-inclusive, with shipping and taxes covered. Standard delivery takes 8–10 business days.</li>\n<li>Product Highlight Butterfly abayas are a quintessential staple in our collection—and for good reason. Designed as an essential Muslim Robe, it comes in 7 universal shades with a hidden inner waist belt, allowing you to tailor the silhouette to your liking and pair it seamlessly with a matching hijab.</li>\n<li>Sizing &amp; Fit <i data-path-to-node=\"2,2,0\" data-index-in-node=\"13\">Fit Guide:</i> Featuring a loose, flowing cut, this Abaya Fashion piece offers generous coverage and elegant movement. Please leave your height, weight, bust, and waist measurements in the order notes after purchase so our team can recommend your optimal size.</li>\n<li>Please keep in mind that colors may look a little different in person due to lighting and display differences.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2266%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H705</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Cream</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Prayer abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Flowy, breathable</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Muslim dress</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Machine washable</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"Uni\">Uni</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H705\";\nconst productName = \"Batwing Abaya (A) - Cream\";\nconst unitPrice = 50.00;\n// ============================================\nconst sizeMap = {\n  \"Uni\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>",
            "image": "https://hannafash.com/media/posts/206/Batwing-Abaya-A-5.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Hijab",
                   "Batwing Abaya (A)"
            ],
            "date_published": "2026-09-13T17:29:27+08:00",
            "date_modified": "2026-09-16T09:12:43+08:00"
        },
        {
            "id": "https://hannafash.com/farasha-abaya-a-navy-blue.html",
            "url": "https://hannafash.com/farasha-abaya-a-navy-blue.html",
            "title": "Farasha Abaya (A) - Navy Blue",
            "summary": "The price includes shipping and taxes, so there are no extra charges. Standard delivery takes 8–10 business days. Product Highlight Elevate your wardrobe with our butterfly-cut Farasha abaya, a timeless Prayer abaya designed for supreme grace. Featuring a practical front zip, a classic mandarin collar,&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>The price includes shipping and taxes, so there are no extra charges. Standard delivery takes 8–10 business days.</li>\n<li>Product Highlight Elevate your wardrobe with our butterfly-cut Farasha abaya, a timeless Prayer abaya designed for supreme grace. Featuring a practical front zip, a classic mandarin collar, and delicate chiffon edges, its loose, flattering silhouette seamlessly blends style and comfort for daily wear, Ramadan, Hajj, and Umrah.</li>\n<li>Sizing &amp; Fit <i data-path-to-node=\"2,2,0\" data-index-in-node=\"13\">Fit Guide:</i> Designed with a relaxed, flowing cut, this Muslim Dress piece offers generous room and full coverage. Please leave your height, weight, bust, and waist measurements in the order notes after purchase so our team can recommend your optimal size.</li>\n<li>Please note that subtle color variations may occur due to photography lighting and screen displays.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2266%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H694</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Navy Blue</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Classical abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Lightweight, flowy</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Abaya fashion</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Anti-pilling, durable</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">86-90</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">90-94</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">94-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">100-106</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">106-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H694\";\nconst productName = \"Farasha Abaya (A) - Navy Blue\";\nconst unitPrice = 45.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/199/Farasha-Abaya-A-5.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Hijab",
                   "Farasha Abaya (A)"
            ],
            "date_published": "2026-09-13T17:06:35+08:00",
            "date_modified": "2026-09-16T09:20:09+08:00"
        },
        {
            "id": "https://hannafash.com/puff-sleeve-abaya-c-army-green.html",
            "url": "https://hannafash.com/puff-sleeve-abaya-c-army-green.html",
            "title": "Puff Sleeve Abaya (C) - Army Green",
            "summary": "What you see is the final price, including shipping and taxes. Standard shipping takes 8–10 business days. About the Look A perfect fusion of classic tradition and modern aesthetics, this Puff Sleeve Abaya stands out with its romantic balloon sleeves. The soft, high-quality fabric feels&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>What you see is the final price, including shipping and taxes. Standard shipping takes 8–10 business days.</li>\n<li>About the Look A perfect fusion of classic tradition and modern aesthetics, this Puff Sleeve Abaya stands out with its romantic balloon sleeves. The soft, high-quality fabric feels luxurious against the skin while providing lightweight, all-day ease for a refined finish.</li>\n<li>Size Guide Featuring a relaxed, loose cut, this Muslim Robe provides an effortless, comfortable fit. For a precise size recommendation, please share your height, weight, chest, and waist dimensions when completing your purchase.</li>\n<li>Due to differences in studio lighting and monitor calibrations, the true color may vary slightly from what appears online.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.213%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H675</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Army Green</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Eid dress</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Skin-friendly</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Muslim robe</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Shape-retaining, </span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">86-90</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">90-94</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">94-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">100-106</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">106-112</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">3XL</span></td>\n<td style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">112-118</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"3XL\">3XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H675\";\nconst productName = \"Puff Sleeve Abaya (C) - Army Green\";\nconst unitPrice = 44.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/184/Simple-Abaya-C-5.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "PuffSleeveAbaya",
                   "Puff Sleeve Abaya (C)",
                   "Products"
            ],
            "date_published": "2026-09-13T16:15:34+08:00",
            "date_modified": "2026-09-16T09:25:45+08:00"
        },
        {
            "id": "https://hannafash.com/puff-sleeve-abaya-b-black.html",
            "url": "https://hannafash.com/puff-sleeve-abaya-b-black.html",
            "title": "Puff Sleeve Abaya (B) - Black",
            "summary": "The price is all-inclusive, with shipping and taxes covered. Standard delivery takes 8–10 business days. About the Look A perfect fusion of classic tradition and modern aesthetics, this New design abaya stands out with its romantic puff balloon sleeves. The premium, soft fabric feels luxurious&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>The price is all-inclusive, with shipping and taxes covered. Standard delivery takes 8–10 business days.</li>\n<li>About the Look A perfect fusion of classic tradition and modern aesthetics, this New design abaya stands out with its romantic puff balloon sleeves. The premium, soft fabric feels luxurious against the skin while delivering lightweight, all-day comfort for a truly polished look.</li>\n<li>Size Guide Featuring a relaxed, loose cut, this Muslim Dress offers a flattering and breathable fit. For an accurate size recommendation, please provide your height, weight, chest, and waist dimensions when completing your purchase.</li>\n<li>Actual colors may vary slightly from the product images depending on lighting and monitor settings.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2266%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H662</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Black</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Prayer abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Lightweight, durable</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Pure color abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Iron on low heat</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">86-90</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">90-94</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">94-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">100-106</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">106-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H662\";\nconst productName = \"Puff Sleeve Abaya (B) - Black\";\nconst unitPrice = 45.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/176/Simple-Abaya-B-2-2.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "PuffSleeveAbaya",
                   "Puff Sleeve Abaya (B)"
            ],
            "date_published": "2026-09-13T15:40:54+08:00",
            "date_modified": "2026-09-16T09:28:32+08:00"
        },
        {
            "id": "https://hannafash.com/kimono-abaya-e-sky-blue.html",
            "url": "https://hannafash.com/kimono-abaya-e-sky-blue.html",
            "title": "Kimono Abaya (E) - Sky Blue",
            "summary": "Shipping and taxes are already included. You pay nothing extra. Standard shipping takes 8–10 business days. Designed for effortless everyday style, this Traditional abaya features a relaxed oversized silhouette that offers both comfort and modest coverage. The sturdy, durable fabric provides a structured feel, while&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>Shipping and taxes are already included. You pay nothing extra. Standard shipping takes 8–10 business days.</li>\n<li>Designed for effortless everyday style, this Traditional abaya features a relaxed oversized silhouette that offers both comfort and modest coverage. The sturdy, durable fabric provides a structured feel, while the folded sleeves add a distinctive kimono-inspired detail. Stylish yet practical, it allows you to move with ease while keeping your look beautifully modest.</li>\n<li>The dress has a naturally loose cut for a relaxed and comfortable fit. After ordering, please provide your height, weight, bust circumference, and waist circumference. We’ll use these measurements to recommend the optimal size for you. This Elegant abaya is designed to provide comfortable coverage without restricting your natural movement.</li>\n<li>Please keep in mind that colors may look a little different in person due to lighting and display differences.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2266%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H656</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Sky Blue</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Muslim clothing</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Flowy, breathable</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Fashionable abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Wash separately</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">84-91</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">91-98</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">98-105</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">105-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H656\";\nconst productName = \"Kimono Abaya (E) - Sky Blue\";\nconst unitPrice = 50.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/170/Kimono-Abaya-E-23.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "KimonoAbaya",
                   "Kimono Abaya (E)"
            ],
            "date_published": "2026-09-13T12:34:44+08:00",
            "date_modified": "2026-09-16T09:29:26+08:00"
        },
        {
            "id": "https://hannafash.com/kimono-abaya-d-deep-grey.html",
            "url": "https://hannafash.com/kimono-abaya-d-deep-grey.html",
            "title": "Kimono Abaya (D) - Deep Grey",
            "summary": "The listed price covers shipping and taxes. There are no extra costs. Standard shipping takes 8–10 business days. A versatile and stylish choice for everyday wear, this abaya features a relaxed oversized design that provides comfortable coverage without compromising on style. The durable fabric gives&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>The listed price covers shipping and taxes. There are no extra costs. Standard shipping takes 8–10 business days.</li>\n<li>A versatile and stylish choice for everyday wear, this abaya features a relaxed oversized design that provides comfortable coverage without compromising on style. The durable fabric gives the garment a structured yet comfortable feel, while the folded sleeves create a beautiful kimono-inspired silhouette. This Abaya Fashion piece is perfect for those who appreciate effortless elegance and modest dressing.</li>\n<li>This design has a relatively loose and roomy fit. After ordering, please provide your height, weight, bust circumference, and waist circumference, so we can recommend the best size for your body measurements. This Full Cover abaya is designed to offer a comfortable fit, easy movement, and a graceful silhouette.</li>\n<li>Please note that subtle color variations may occur due to photography lighting and screen displays.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.213%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H645</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Deep Grey</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Full cover abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Flowy, lightweight</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Islamic robe</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Gentle cycle</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">86-90</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">90-94</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">94-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">100-106</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">106-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H645\";\nconst productName = \"Kimono Abaya (D) - Deep Grey\";\nconst unitPrice = 50.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/161/Kimono-Abaya-D-20.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "KimonoAbaya",
                   "Kimono Abaya (D)"
            ],
            "date_published": "2026-09-13T11:14:08+08:00",
            "date_modified": "2026-09-16T09:32:08+08:00"
        },
        {
            "id": "https://hannafash.com/kimono-abaya-d-pistache.html",
            "url": "https://hannafash.com/kimono-abaya-d-pistache.html",
            "title": "Kimono Abaya (D) - Pistache",
            "summary": "All prices include shipping and taxes. No additional fees. Delivery usually takes 8–10 business days. Designed for effortless everyday styling, this Traditional abaya features a relaxed, oversized silhouette that combines a classic look with comfortable coverage. The sturdy fabric offers a durable feel, while the&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li class=\"align-justify\">All prices include shipping and taxes. No additional fees. Delivery usually takes 8–10 business days.</li>\n<li>Designed for effortless everyday styling, this Traditional abaya features a relaxed, oversized silhouette that combines a classic look with comfortable coverage. The sturdy fabric offers a durable feel, while the folded sleeves add a distinctive kimono-inspired touch. Stylish yet practical, it allows you to move with confidence and comfort throughout the day.</li>\n<li>This dress has a naturally loose cut and is designed for a relaxed fit. Once your order is placed, please send us your height, weight, bust circumference, and waist circumference. We will recommend the optimal size based on your measurements to ensure a comfortable fit. This Elegant abaya is designed to provide both freedom of movement and graceful coverage.</li>\n<li>Slight color differences between the physical product and online photographs may occur due to camera lighting and screen displays.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.213%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H644</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Pistache</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Ramadan dress</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Skin-friendly</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Classical abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.787%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.213%; height: 30px;\"><span style=\"font-size: 12pt;\">Shape-retaining, </span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">86-90</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">90-94</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">94-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">100-106</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">106-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H644\";\nconst productName = \"Kimono Abaya (D) - Pistache\";\nconst unitPrice = 50.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/160/Kimono-Abaya-D-15.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Products",
                   "KimonoAbaya",
                   "Kimono Abaya (D)"
            ],
            "date_published": "2026-09-13T11:03:46+08:00",
            "date_modified": "2026-09-16T09:32:18+08:00"
        },
        {
            "id": "https://hannafash.com/kimono-abaya-c-sands.html",
            "url": "https://hannafash.com/kimono-abaya-c-sands.html",
            "title": "Kimono Abaya (C) - Sands",
            "summary": "You only pay the price shown. Shipping and taxes are included. Standard shipping takes 8–10 business days. Why You’ll Love It Getting dressed just got so much easier with this chic Arab Robe set! It combines ultimate comfort with a graceful, covered silhouette, giving you&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>You only pay the price shown. Shipping and taxes are included. Standard shipping takes 8–10 business days.</li>\n<li>Why You’ll Love It Getting dressed just got so much easier with this chic Arab Robe set! It combines ultimate comfort with a graceful, covered silhouette, giving you an instantly stylish look for work, errands, or a cozy weekend at home.</li>\n<li>Finding Your Size Because this Pure color abaya features a looser cut, we want to make sure you get the best fit possible. Simply message us your height, weight, bust, and waist measurements after ordering, and we’ll match you with your ideal size!</li>\n<li>Please note that actual item color may vary slightly due to lighting and screen settings.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2266%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H636</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Sands</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Pure color abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Matte finish, durable</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Ramadan dress</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Do not dry clean</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">90-94</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">100-106</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H636\";\nconst productName = \"Kimono Abaya (C) - Sand\";\nconst unitPrice = 57.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/154/Kimono-Abaya-C-12.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Products",
                   "KimonoAbaya",
                   "Kimono Abaya (C)"
            ],
            "date_published": "2026-09-13T09:59:26+08:00",
            "date_modified": "2026-09-16T09:33:08+08:00"
        },
        {
            "id": "https://hannafash.com/kimono-abaya-b-wine-red.html",
            "url": "https://hannafash.com/kimono-abaya-b-wine-red.html",
            "title": "Kimono Abaya (B) - Wine Red",
            "summary": "Shipping and taxes are already included. You pay nothing extra. Standard shipping takes 8–10 business days. This everyday essential combines durability with sustainable fabric. The folded sleeves offer a traditional kimono drape, ensuring you look incredibly chic while remaining modest. Its roomy, oversized design lets&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>Shipping and taxes are already included. You pay nothing extra. Standard shipping takes 8–10 business days.</li>\n<li>This everyday essential combines durability with sustainable fabric. The folded sleeves offer a traditional kimono drape, ensuring you look incredibly chic while remaining modest. Its roomy, oversized design lets you move comfortably without your body shape showing, embodying the essence of a Classical abaya.</li>\n<li>Sizing tips: this piece is designed with a relatively loose fit. Please send us your height, weight, chest, and waist measurements after ordering, allowing us to suggest the optimal size for your new Abaya Robe.</li>\n<li>Please note that actual item color may vary slightly due to lighting and screen settings.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2266%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H629</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Wine Red</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Fashionable abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Flowy, breathable</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Puff sleeve abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Do not bleach</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">86-90</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">90-94</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">94-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">100-106</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">106-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H629\";\nconst productName = \"Kimono Abaya (B) - Wine Red\";\nconst unitPrice = 50.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/148/Kimono-Abaya-B-1.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Products",
                   "KimonoAbaya",
                   "Kimono Abaya (B)"
            ],
            "date_published": "2026-09-13T09:11:38+08:00",
            "date_modified": "2026-09-16T09:34:22+08:00"
        },
        {
            "id": "https://hannafash.com/jilbab-abaya-a-army-green.html",
            "url": "https://hannafash.com/jilbab-abaya-a-army-green.html",
            "title": "Jilbab Abaya (A) - Army Green",
            "summary": "Shipping and taxes are already included. You pay nothing extra. Standard shipping takes 8–10 business days. Why You’ll Love It Getting ready is a breeze with this stunning 2-piece Jilbab set! Made from premium fabric that drapes so smoothly, it features easy tie-back details and&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>Shipping and taxes are already included. You pay nothing extra. Standard shipping takes 8–10 business days.</li>\n<li>Why You’ll Love It Getting ready is a breeze with this stunning 2-piece Jilbab set! Made from premium fabric that drapes so smoothly, it features easy tie-back details and comfy wide elastic cuffs. Plus, the adjustable front drawstrings on the skirt make this Affordable abaya super versatile and easy to style.</li>\n<li>Finding Your Size Because this Prayer Clothes piece has a relaxed, looser fit, we want to help you get the best look possible. Simply message us your height, weight, bust, and waist measurements after placing your order, and we’ll match you with your ideal size!</li>\n<li>Due to differences in studio lighting and monitor calibrations, the true color may vary slightly from what appears online.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2266%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H616</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Army Green</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Abaya robe</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Matte finish, flowy</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">New design abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7734%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2266%; height: 30px;\"><span style=\"font-size: 12pt;\">Cool iron only</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"Uni\">Uni</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H616\";\nconst productName = \"Jilbab Abaya (A) - Army Green\";\nconst unitPrice = 52.00;\n// ============================================\nconst sizeMap = {\n  \"Uni\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>",
            "image": "https://hannafash.com/media/posts/137/Jilbab-abayas-A-2.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "PuffSleeveAbaya",
                   "Jilbab Abaya (A)",
                   "Hijab"
            ],
            "date_published": "2026-09-12T19:16:47+08:00",
            "date_modified": "2026-09-16T09:04:13+08:00"
        },
        {
            "id": "https://hannafash.com/khimar-abaya-a-white.html",
            "url": "https://hannafash.com/khimar-abaya-a-white.html",
            "title": "KhimarAbaya (A) - White",
            "summary": "The listed price covers shipping and taxes. There are no extra costs. Standard shipping takes 8–10 business days. Crafted for both comfort and simplicity, this khimar abaya never sacrifices style. The soft jersey material drapes elegantly and feels amazing on the skin, perfect for all-day&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>The listed price covers shipping and taxes. There are no extra costs. Standard shipping takes 8–10 business days.</li>\n<li>Crafted for both comfort and simplicity, this khimar abaya never sacrifices style. The soft jersey material drapes elegantly and feels amazing on the skin, perfect for all-day wear. It comes with a coordinating khimar and features sleeves with delicate ruffles for a feminine flair, making it a beautiful choice for Modest Wear.</li>\n<li>Sizing advice: this garment is tailored with a relaxed, loose fit. After placing your order, please provide your height, weight, chest, and waist measurements so we can suggest the perfect size for your new Elegant abaya.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2125%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2125%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H607</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2125%; height: 30px;\"><span style=\"font-size: 12pt;\">White</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2125%; height: 30px;\"><span style=\"font-size: 12pt;\">Elegant abaya</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2125%; height: 30px;\"><span style=\"font-size: 12pt;\">Lightweight, flowy</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2125%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2125%; height: 30px;\"><span style=\"font-size: 12pt;\">Abaya robe</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.2125%; height: 30px;\"><span style=\"font-size: 12pt;\">Do not bleach</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">86-90</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">94-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">106-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H607\";\nconst productName = \"KhimarAbaya (A) - White\";\nconst unitPrice = 57.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/129/Khimar-Abaya-A-3.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "Khimar Abaya (A)",
                   "Hijab"
            ],
            "date_published": "2026-09-12T18:33:33+08:00",
            "date_modified": "2026-09-16T09:01:41+08:00"
        },
        {
            "id": "https://hannafash.com/simple-abaya-a-black-2.html",
            "url": "https://hannafash.com/simple-abaya-a-black-2.html",
            "title": "Puff Sleeve Abaya (A) - Black",
            "summary": "The price includes shipping and taxes, so there are no extra charges. Standard delivery takes 8–10 business days. The delicate puff sleeves give this Fashionable abaya a playful yet sophisticated look, while the elastic cuffs help keep the forearms covered. Crafted from a soft, natural&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>The price includes shipping and taxes, so there are no extra charges. Standard delivery takes 8–10 business days.</li>\n<li>The delicate puff sleeves give this Fashionable abaya a playful yet sophisticated look, while the elastic cuffs help keep the forearms covered. Crafted from a soft, natural fabric, it offers a comfortable feel throughout the day and works beautifully for both casual moments and chic occasions.</li>\n<li>This dress features a relatively loose and relaxed fit. After placing your order, please provide your height, weight, bust circumference, and waist circumference so we can recommend the most suitable size for a comfortable and flattering fit. This Modest Fashion piece is designed to offer both ease of movement and comfortable coverage.</li>\n<li>Please keep in mind that colors may look a little different in person due to lighting and display differences.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.8012%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.1988%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.8012%; height: 30px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.1988%; height: 30px;\" width=\"104\"><span style=\"font-size: 12pt;\">H593</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.8012%; height: 30px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.1988%; height: 30px;\"><span style=\"font-size: 12pt;\">Black</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.8012%; height: 30px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.1988%; height: 30px;\"><span style=\"font-size: 12pt;\">Muslim robe</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.8012%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.1988%; height: 30px;\"><span style=\"font-size: 12pt;\">Flowy, lightweight</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.8012%; height: 30px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.1988%; height: 30px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.8012%; height: 30px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.1988%; height: 30px;\"><span style=\"font-size: 12pt;\">Ramadan wear</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.8012%; height: 30px;\"><span style=\"font-size: 12pt;\">Care Instruction</span></td>\n<td style=\"width: 57.1988%; height: 30px;\"><span style=\"font-size: 12pt;\">Do not dry clean</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3007%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3007%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3007%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"xl65\" style=\"height: 30px; width: 33.3007%;\" width=\"72\" height=\"21\"><span style=\"font-size: 12pt;\">XS</span></td>\n<td class=\"xl65\" style=\"border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">160-165</span></td>\n<td class=\"xl65\" style=\"border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">80-84</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"xl65\" style=\"height: 30px; border-top: none; width: 33.3007%;\" width=\"72\" height=\"21\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">84-88</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"xl65\" style=\"height: 30px; border-top: none; width: 33.3007%;\" width=\"72\" height=\"21\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">88-92</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"xl65\" style=\"height: 30px; border-top: none; width: 33.3007%;\" width=\"72\" height=\"21\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">92-96</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"xl65\" style=\"height: 30px; border-top: none; width: 33.3007%;\" width=\"72\" height=\"21\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">96-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"xl65\" style=\"height: 30px; border-top: none; width: 33.3007%;\" width=\"72\" height=\"21\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">100-104</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"xl65\" style=\"height: 30px; border-top: none; width: 33.3007%;\" width=\"72\" height=\"21\"><span style=\"font-size: 12pt;\">3XL</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">104-108</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"xl65\" style=\"height: 30px; border-top: none; width: 33.3007%;\" width=\"72\" height=\"21\"><span style=\"font-size: 12pt;\">4XL</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"xl65\" style=\"border-top: none; border-left: none; width: 33.3007%; height: 30px;\" width=\"72\"><span style=\"font-size: 12pt;\">108-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XS\">XS</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"3XL\">3XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"4XL\">4XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H593\";\nconst productName = \"Puff Sleeve Abaya (A) - Black\";\nconst unitPrice = 45.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/120/Simple-Abaya-A-2.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "PuffSleeveAbaya",
                   "Puff Sleeve Abaya (A)"
            ],
            "date_published": "2026-09-12T17:04:32+08:00",
            "date_modified": "2026-09-16T07:16:20+08:00"
        },
        {
            "id": "https://hannafash.com/kimono-abaya-a-navy-blue.html",
            "url": "https://hannafash.com/kimono-abaya-a-navy-blue.html",
            "title": "Kimono Abaya (A) - Navy Blue",
            "summary": "All prices include shipping and taxes. No additional fees. Delivery usually takes 8–10 business days. This elegant two-piece set makes getting dressed effortless, combining comfort, ease, and timeless style. Designed with a flattering silhouette and comfortable coverage, it’s perfect for a variety of occasions, from&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li>All prices include shipping and taxes. No additional fees. Delivery usually takes 8–10 business days.</li>\n<li>This elegant two-piece set makes getting dressed effortless, combining comfort, ease, and timeless style. Designed with a flattering silhouette and comfortable coverage, it’s perfect for a variety of occasions, from busy workdays to relaxed weekends.</li>\n<li style=\"padding-left: 0.457143rem;\">This dress features a relatively relaxed fit. After placing your order, please provide your height, weight, bust circumference, and waist circumference. We’ll recommend the most suitable size for you to ensure a comfortable and flattering fit.</li>\n<li>Color disclaimer: Actual product color may differ slightly from the photo.</li>\n</ul>\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7875%; height: 30px;\"><span style=\"font-size: 12pt;\">Key Attribute</span></td>\n<td style=\"width: 57.2125%; height: 30px;\"><span style=\"font-size: 12pt;\">Specification</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 42.7673%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Model Number</span></td>\n<td style=\"width: 57.2327%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">H584</span></td>\n</tr>\n<tr style=\"height: 47.1562px;\">\n<td style=\"width: 42.7673%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Colour</span></td>\n<td style=\"width: 57.2327%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Navy Blue</span></td>\n</tr>\n<tr style=\"height: 47.1562px;\">\n<td style=\"width: 42.7673%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Product name</span></td>\n<td style=\"width: 57.2327%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Muslim Dress</span></td>\n</tr>\n<tr style=\"height: 47.1562px;\">\n<td style=\"width: 42.7673%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Feature</span></td>\n<td style=\"width: 57.2327%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Anti‑Pilling, Durable</span></td>\n</tr>\n<tr style=\"height: 47.1562px;\">\n<td style=\"width: 42.7673%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Fabric composition</span></td>\n<td style=\"width: 57.2327%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Polyester</span></td>\n</tr>\n<tr style=\"height: 47.1562px;\">\n<td style=\"width: 42.7673%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Style</span></td>\n<td style=\"width: 57.2327%; height: 47.1562px;\"><span style=\"font-size: 16px;\">Modest Wear</span></td>\n</tr>\n<tr style=\"height: 47.1562px;\">\n<td style=\"width: 42.7673%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">Season</span></td>\n<td style=\"width: 57.2327%; height: 47.1562px;\"><span style=\"font-size: 12pt;\">All</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">Body Chart</h4>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">\n<table class=\"align-center\" style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Size</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Height</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">Bust</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">S</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">86-90</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">M</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">165-170</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">90-94</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">L</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">94-100</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">170-175</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">100-106</span></td>\n</tr>\n<tr style=\"height: 30px;\">\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">2XL</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">175-180</span></td>\n<td class=\"align-left align-center\" style=\"width: 33.3333%; height: 30px;\"><span style=\"font-size: 12pt;\">106-112</span></td>\n</tr>\n</tbody>\n</table>\n</div>\n<h4 style=\"margin: 0 0 10px 0;\">EU Size</h4>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"S\">S</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\"><button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">-</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<p>\n<script>\n// =========每个产品页面修改这3个参数============\nconst baseSku = \"H584\";\nconst productName = \"Kimono Abaya (A) - Navy Blue\";\nconst unitPrice = 61.00;\n// ============================================\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\",\n  \"3XL\":\"7\",\n  \"4XL\":\"8\",\n  \"5XL\":\"9\"\n};\nlet selectedSize = \"\";\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\n// 从localStorage读取保存的购物车，跨页面持久化\nfunction getCart(){\n  const saved = localStorage.getItem(\"siteCart\");\n  return saved ? JSON.parse(saved) : [];\n}\nfunction saveCart(cartData){\n  localStorage.setItem(\"siteCart\", JSON.stringify(cartData));\n}\nlet cart = getCart();\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  if(v>1) qtyInput.value = v - 1; \n};\nqtyPlus.onclick = ()=>{ \n  let v=Number(qtyInput.value); \n  qtyInput.value = v + 1; \n};\nqtyInput.onchange = ()=>{ \n  if(isNaN(qtyInput.value) || Number(qtyInput.value) < 1) qtyInput.value = 1; \n};\n\n//渲染购物车\nfunction renderCart(){\n  cart = getCart();\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * item.price;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n  <span>\n    <strong>${item.name || productName}</strong><br>\n    ${item.sku} | Size:${item.size} × ${item.qty}\n  </span>\n  <span>$${sub.toFixed(2)} <button data-idx=\"${idx}\" class=\"delItem\" style=\"margin-left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n</div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车条目\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      cart.splice(Number(this.dataset.idx),1);\n      saveCart(cart);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  cart = getCart();\n  const qty = Number(qtyInput.value);\n  const sku = baseSku + sizeMap[selectedSize];\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n  cart[existIndex].qty += qty;\n}else{\n  cart.push({\n    name: productName,        // ← 新增这一行\n    sku, \n    size: selectedSize, \n    qty, \n    price: unitPrice\n  });\n}\n  saveCart(cart);\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  saveCart(cart);\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  cart = getCart();\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * item.price;\n    totalAmount += sub;\n    cartTextLines.push(`${item.name || productName}, SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\n//页面加载立刻读取本地存储，渲染购物车\nrenderCart();\n</script>\n</p>\n</div>",
            "image": "https://hannafash.com/media/posts/102/Kimono-Abaya-A-44.jpg",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
                   "KimonoAbaya",
                   "Kimono Abaya (A)"
            ],
            "date_published": "2026-09-11T18:23:31+08:00",
            "date_modified": "2026-09-16T08:30:51+08:00"
        },
        {
            "id": "https://hannafash.com/testing.html",
            "url": "https://hannafash.com/testing.html",
            "title": "testing ",
            "summary": "Selected premium material: made of high‑quality blended fabric, soft, skin‑friendly, breathable and durable. Ideal for several seasons, combines elegance with comfort Size recommendation: this dress has a relatively loose cut. Please specify your height, weight as well as your chest circumference and waist circumference after&hellip;",
            "content_html": "<ul class=\"a-unordered-list a-vertical a-spacing-small\">\n<li><span class=\"a-list-item a-size-base a-color-base\">Selected premium material: made of high‑quality blended fabric, soft, skin‑friendly, breathable and durable. Ideal for several seasons, combines elegance with comfort</span></li>\n<li style=\"padding-left: 0.457143rem;\"><span class=\"a-list-item a-size-base a-color-base\">Size recommendation: this dress has a relatively loose cut. Please specify your height, weight as well as your chest circumference and waist circumference after ordering, so that we can recommend the optimal size for a comfortable fit</span></li>\n</ul>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr style=\"height: 35px;\">\n<td style=\"width: 42.7673%; height: 35px;\">Model Number</td>\n<td style=\"width: 57.2327%; height: 35px;\">H581</td>\n</tr>\n<tr style=\"height: 35px;\">\n<td style=\"width: 42.7673%; height: 35px;\">Product name</td>\n<td style=\"width: 57.2327%; height: 35px;\">Muslim Women Abaya</td>\n</tr>\n<tr style=\"height: 35px;\">\n<td style=\"width: 42.7673%; height: 35px;\">Gender</td>\n<td style=\"width: 57.2327%; height: 35px;\">Women</td>\n</tr>\n<tr style=\"height: 35px;\">\n<td style=\"width: 42.7673%; height: 35px;\">Feature</td>\n<td style=\"width: 57.2327%; height: 35px;\">Anti‑Pilling, Breathable</td>\n</tr>\n<tr style=\"height: 35px;\">\n<td style=\"width: 42.7673%; height: 35px;\">Fabric composition</td>\n<td style=\"width: 57.2327%; height: 35px;\">100% Polyester</td>\n</tr>\n<tr style=\"height: 35px;\">\n<td style=\"width: 42.7673%; height: 35px;\">Sleeve type</td>\n<td style=\"width: 57.2327%; height: 35px;\">Puff sleeves</td>\n</tr>\n<tr style=\"height: 35px;\">\n<td style=\"width: 42.7673%; height: 35px;\">Season</td>\n<td style=\"width: 57.2327%; height: 35px;\">Spring / Autumn</td>\n</tr>\n</tbody>\n</table>\n<!-- 尺码选择 -->\n<div style=\"margin: 14px 0;\">\n<div style=\"font-size: 13px; margin-bottom: 8px;\">Size EU:</div>\n<div style=\"display: flex; gap: 8px;\"><button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XS\">XS</button>\n<div style=\"position: relative; width: 32px; height: 32px;\"><button class=\"size-btn out‑of‑stock\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: none; cursor: not-allowed; color: #888; background: #eeeeee; background-image: linear-gradient(45deg, transparent calc(50% - 1px), #ff0000 calc(50% - 1px), #ff0000 calc(50% + 1px), transparent calc(50% + 1px)); background-size: 40px 40px; background-position: center;\" disabled=\"disabled\" data-size=\"S\">S</button></div>\n<button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"M\">M</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"L\">L</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"XL\">XL</button> <button class=\"size-btn\" style=\"width: 32px; height: 32px; border-radius: 50%; border: 1px solid #aaa; position: relative; z-index: 10; pointer-events: auto; cursor: pointer; background: #eeeeee;\" data-size=\"2XL\">2XL</button></div>\n</div>\n<!-- 数量选择 -->\n<div style=\"margin: 14px 0; display: flex; align-items: center; gap: 10px;\">Quantity:<button id=\"qtyMinus\" style=\"width: 30px; height: 30px;\">‑</button> <input id=\"qtyInput\" type=\"number\" min=\"1\" value=\"1\" style=\"width: 60px; height: 26px; text-align: center;\"> <button id=\"qtyPlus\" style=\"width: 30px; height: 30px;\">+</button> <button id=\"addCartBtn\" style=\"padding: 8px 14px; margin-left: 10px; cursor: pointer;\">Add to Cart</button></div>\n<!-- 购物车区域 -->\n<div style=\"border: 1px solid #ccc; padding: 12px; margin: 16px 0; border-radius: 6px;\">\n<h4 style=\"margin: 0 0 10px 0;\">🛒 Shopping Cart</h4>\n<div id=\"cartList\"></div>\n<div id=\"cartTotalLine\" style=\"margin-top: 10px; font-weight: bold;\"></div>\n<div style=\"margin-top: 10px; display: flex; gap: 10px;\"><button id=\"clearCartBtn\" style=\"padding: 6px 10px; cursor: pointer;\">Clear Cart</button> <button id=\"checkoutBtn\" style=\"padding: 8px 16px; cursor: pointer;\">Checkout → Go to Order Form</button></div>\n</div>\n<script>\nconst baseSku = \"H581\";\nconst productName = \"Islamic Casual Dress Kimono Abaya suit\";\nconst unitPrice = 54.00;\nconst sizeMap = {\n  \"XS\":\"1\",\n  \"S\":\"2\",\n  \"M\":\"3\",\n  \"L\":\"4\",\n  \"XL\":\"5\",\n  \"2XL\":\"6\"\n};\nlet selectedSize = \"\";\nlet cart = [];\nconst formBaseUrl = \"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\";\n\nconst qtyInput = document.getElementById(\"qtyInput\");\nconst qtyMinus = document.getElementById(\"qtyMinus\");\nconst qtyPlus = document.getElementById(\"qtyPlus\");\nconst addCartBtn = document.getElementById(\"addCartBtn\");\nconst cartList = document.getElementById(\"cartList\");\nconst cartTotalLine = document.getElementById(\"cartTotalLine\");\nconst clearCartBtn = document.getElementById(\"clearCartBtn\");\nconst checkoutBtn = document.getElementById(\"checkoutBtn\");\n\n//数量加减\nqtyMinus.onclick = ()=>{ let v=+qtyInput.value; if(v>1) qtyInput.value=v‑1; };\nqtyPlus.onclick = ()=>{ let v=+qtyInput.value; qtyInput.value=v+1; };\nqtyInput.onchange = ()=>{ if(isNaN(qtyInput.value)||+qtyInput.value<1) qtyInput.value=1; };\n\n//渲染购物车\nfunction renderCart(){\n  if(cart.length===0){\n    cartList.innerHTML = \"<div style='color:#777'>Cart is empty</div>\";\n    cartTotalLine.innerText = \"\";\n    return;\n  }\n  let html = \"\";\n  let total = 0;\n  cart.forEach((item,idx)=>{\n    const sub = item.qty * unitPrice;\n    total += sub;\n    html += `<div style=\"display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #eee;\">\n      <span>${item.sku} | Size:${item.size} × ${item.qty}</span>\n      <span>$${sub.toFixed(2)} <button data‑idx=\"${idx}\" class=\"delItem\" style=\"margin‑left:8px;color:red;border:none;background:none;cursor:pointer;\">×</button></span>\n    </div>`;\n  });\n  cartList.innerHTML = html;\n  cartTotalLine.innerText = `Total: $${total.toFixed(2)}`;\n\n  //删除购物车项\n  document.querySelectorAll(\".delItem\").forEach(btn=>{\n    btn.onclick = function(){\n      const i = Number(this.dataset.idx);\n      cart.splice(i,1);\n      renderCart();\n    }\n  })\n}\n\n//加入购物车\naddCartBtn.onclick = function(){\n  if(!selectedSize){\n    alert(\"Please select your size first\");\n    return;\n  }\n  const qty = +qtyInput.value;\n  const sku = baseSku + sizeMap[selectedSize];\n  //判断购物车内是否已有同款SKU，有则叠加数量\n  const existIndex = cart.findIndex(i=>i.sku===sku);\n  if(existIndex>=0){\n    cart[existIndex].qty += qty;\n  }else{\n    cart.push({sku, size:selectedSize, qty});\n  }\n  renderCart();\n};\n\n//清空购物车\nclearCartBtn.onclick = function(){\n  cart = [];\n  renderCart();\n};\n\n//结算跳转飞书表单\ncheckoutBtn.onclick = function(){\n  if(cart.length===0){\n    alert(\"Your cart is empty, add items first.\");\n    return;\n  }\n  let totalAmount = 0;\n  let cartTextLines = [];\n  cart.forEach(item=>{\n    const sub = item.qty * unitPrice;\n    totalAmount += sub;\n    cartTextLines.push(`SKU:${item.sku}, Size:${item.size}, Qty:${item.qty}, Subtotal:$${sub.toFixed(2)}`);\n  });\n  const cartContent = cartTextLines.join(\"\\n\");\n\n  const params = new URLSearchParams();\n  params.append(\"prefill_Cart Items\", cartContent);\n  params.append(\"prefill_Total Amount\", totalAmount.toFixed(2));\n  const jumpUrl = formBaseUrl + \"?\" + params.toString();\n  window.open(jumpUrl,\"_blank\");\n};\n\n//尺码选择\ndocument.querySelectorAll(\".size-btn:not([disabled])\").forEach(btn=>{\n  btn.onclick = function(){\n    selectedSize = this.dataset.size;\n    document.querySelectorAll(\".size-btn:not([disabled])\").forEach(el=>{\n      el.style.background=\"#eeeeee\";\n      el.style.color=\"#000000\";\n    });\n    this.style.background=\"#000000\";\n    this.style.color=\"#ffffff\";\n  }\n});\n\nrenderCart();\n</script>",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
            ],
            "date_published": "2026-09-03T14:02:31+08:00",
            "date_modified": "2026-09-03T14:02:31+08:00"
        },
        {
            "id": "https://hannafash.com/alipay3.html",
            "url": "https://hannafash.com/alipay3.html",
            "title": "alipay3",
            "content_html": "<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://hannafash.com/media/posts/71/alipay3.png\" alt=\"\" width=\"689\" height=\"687\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://hannafash.com/media/posts/71/responsive/alipay3-xs.png 300w ,https://hannafash.com/media/posts/71/responsive/alipay3-sm.png 480w ,https://hannafash.com/media/posts/71/responsive/alipay3-md.png 768w\"></figure>",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
            ],
            "date_published": "2026-08-31T11:59:37+08:00",
            "date_modified": "2026-08-31T12:03:51+08:00"
        },
        {
            "id": "https://hannafash.com/alipay2.html",
            "url": "https://hannafash.com/alipay2.html",
            "title": "alipay2",
            "content_html": "<figure class=\"post__image align-center\"><img loading=\"lazy\"  src=\"https://hannafash.com/media/posts/70/alipay2.png\" alt=\"\" width=\"795\" height=\"799\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://hannafash.com/media/posts/70/responsive/alipay2-xs.png 300w ,https://hannafash.com/media/posts/70/responsive/alipay2-sm.png 480w ,https://hannafash.com/media/posts/70/responsive/alipay2-md.png 768w\"></figure>",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
            ],
            "date_published": "2026-08-31T11:59:06+08:00",
            "date_modified": "2026-08-31T12:03:59+08:00"
        },
        {
            "id": "https://hannafash.com/alipay1.html",
            "url": "https://hannafash.com/alipay1.html",
            "title": "alipay1",
            "content_html": "<figure class=\"post__image align-center\"><img loading=\"lazy\"  src=\"https://hannafash.com/media/posts/69/alipay1.png\" alt=\"\" width=\"801\" height=\"797\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://hannafash.com/media/posts/69/responsive/alipay1-xs.png 300w ,https://hannafash.com/media/posts/69/responsive/alipay1-sm.png 480w ,https://hannafash.com/media/posts/69/responsive/alipay1-md.png 768w\"></figure>",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
            ],
            "date_published": "2026-08-31T11:59:01+08:00",
            "date_modified": "2026-08-31T12:04:34+08:00"
        },
        {
            "id": "https://hannafash.com/wechatpay3.html",
            "url": "https://hannafash.com/wechatpay3.html",
            "title": "WechatPay3",
            "summary": "Long-press the QR code to scan and pay",
            "content_html": "<p class=\"align-center\">Long-press the QR code to scan and pay</p>\n<figure class=\"post__image align-center\"><img loading=\"lazy\"  src=\"https://hannafash.com/media/posts/68//wechat3.png\" alt=\"\" width=\"493\" height=\"493\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://hannafash.com/media/posts/68//responsive/wechat3-xs.png 300w ,https://hannafash.com/media/posts/68//responsive/wechat3-sm.png 480w ,https://hannafash.com/media/posts/68//responsive/wechat3-md.png 768w\"></figure>",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
            ],
            "date_published": "2026-08-31T11:49:55+08:00",
            "date_modified": "2026-08-31T12:11:10+08:00"
        },
        {
            "id": "https://hannafash.com/wechatpay2.html",
            "url": "https://hannafash.com/wechatpay2.html",
            "title": "WechatPay2",
            "summary": "Long-press the QR code to scan and pay",
            "content_html": "<p class=\"align-center\">Long-press the QR code to scan and pay</p>\n<figure class=\"post__image align-center\"><img loading=\"lazy\"  src=\"https://hannafash.com/media/posts/67/wechat2.png\" alt=\"\" width=\"655\" height=\"660\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://hannafash.com/media/posts/67/responsive/wechat2-xs.png 300w ,https://hannafash.com/media/posts/67/responsive/wechat2-sm.png 480w ,https://hannafash.com/media/posts/67/responsive/wechat2-md.png 768w\"></figure>",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
            ],
            "date_published": "2026-08-31T11:49:37+08:00",
            "date_modified": "2026-08-31T12:13:35+08:00"
        },
        {
            "id": "https://hannafash.com/wechatpay1.html",
            "url": "https://hannafash.com/wechatpay1.html",
            "title": "WechatPay1",
            "summary": "Long-press the QR code to scan and pay 这里也可以加文字",
            "content_html": "<p class=\"align-center\">Long-press the QR code to scan and pay</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://hannafash.com/media/posts/66/wechat1.png\" alt=\"\" width=\"658\" height=\"664\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://hannafash.com/media/posts/66/responsive/wechat1-xs.png 300w ,https://hannafash.com/media/posts/66/responsive/wechat1-sm.png 480w ,https://hannafash.com/media/posts/66/responsive/wechat1-md.png 768w\"></figure>\n<p>这里也可以加文字</p>",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
            ],
            "date_published": "2026-08-31T11:49:09+08:00",
            "date_modified": "2026-08-31T12:14:54+08:00"
        },
        {
            "id": "https://hannafash.com/ce-shi-shang-pin.html",
            "url": "https://hannafash.com/ce-shi-shang-pin.html",
            "title": "中英文按钮模板",
            "summary": "🛒Buy🏷️HC-5843 🛒Select Color and Size 🏷️HC-5843 🛒Select Color and Size 🛒立即购买🏷️BAG-001 🛒立即购买🏷️BAG-001",
            "content_html": "<!-- 英文 -->\n<p><a href=\"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\" class=\"btn btn-primary lang-en\" target=\"_blank\" rel=\"noopener noreferrer\">🛒Buy🏷️HC-5843</a></p>\n<p> </p>\n<p><a href=\"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\" class=\"btn btn-primary lang-en\" target=\"_blank\" rel=\"noopener noreferrer\">🛒Select Color and Size 🏷️HC-5843</a></p>\n<p> </p>\n<!-- 英文 -->\n<p><a href=\"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\"></a><a href=\"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnrCPQlYxVJ3VhXQme79CoEg\" class=\"btn btn-primary lang-en\" target=\"_blank\" rel=\"noopener noreferrer\">🛒Select Color and Size</a></p>\n<!-- 中文 -->\n<p><a href=\"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnFMpNqtSDRDnCyLz4dGzTjf\" class=\"btn btn-primary lang-cn\" target=\"_blank\" rel=\"noopener noreferrer\">🛒立即购买🏷️BAG-001</a><a href=\"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnFMpNqtSDRDnCyLz4dGzTjf\"></a></p>\n<p> </p>\n<p><a href=\"https://rcna3jxsuxou.feishu.cn/share/base/form/shrcnFMpNqtSDRDnCyLz4dGzTjf\" class=\"btn btn-primary lang-cn\" target=\"_blank\" rel=\"noopener noreferrer\">🛒立即购买🏷️BAG-001</a></p>\n<p> </p>\n<p> </p>",
            "author": {
                "name": "Edward Huang"
            },
            "tags": [
            ],
            "date_published": "2026-08-25T17:06:25+08:00",
            "date_modified": "2026-08-25T17:30:33+08:00"
        }
    ]
}
