{"product_id":"african-woman-curly-hair-personalized-mother-acrylic-pot","title":"African Woman Curly Hair - Personalized Mother Acrylic Pot","description":"\u003cp\u003e\u003cem\u003eThiết kế bình hoa pha lê trong suốt với hình chân dung được bảo tồn nguyên vẹn, hoa mẫu đơn hồng và đỏ burgundy, chữ MOM bằng pha lê dày có hoa đông bên trong và đế kính khắc thông điệp tùy chỉnh.\u003c\/em\u003e\u003c\/p\u003e\u003cp dir=\"ltr\"\u003e\u003cspan style=\"text-decoration: underline;\"\u003e\u003cstrong\u003eProduct Details\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003eEnhance any space with this customizable acrylic pot, designed to combine function and personal style. The product includes a tall, clear acrylic pot paired with a custom-shaped acrylic front layer that showcases your personalized design featuring a beautiful African woman with curly hair.\u003c\/p\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003eThe front acrylic panel is printed on one side with vivid, high-quality colors, adding depth and personality while keeping a clean, modern look. The pot’s height and proportions make it suitable for small plants, fresh flowers, dried arrangements, or artificial bouquets, making it a flexible décor piece for homes, offices, or gift-giving.\u003c\/p\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003e \u003c\/p\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003e\u003cstrong\u003eSize Information:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003e \u003c\/p\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003eAcrylic Front Layer \u0026amp; Matching Pot Sizes:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli dir=\"ltr\" style=\"line-height: 1.38;\"\u003eAcrylic: 5.9 × 5.9 inches (15 × 15 cm)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e        Pot: 3.9 × 2.8 × 2.8 inches (10 × 7 × 7 cm)\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eAcrylic: 9.8 × 9.8 inches (25 × 25 cm)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003e       Pot: 7.9 × 3.9 × 3.9 inches (20 × 10 × 10 cm)\u003c\/p\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003e\u003cstrong\u003ePrinting:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli dir=\"ltr\" style=\"line-height: 1.38;\"\u003eSingle-sided printing\u003c\/li\u003e\n\u003cli dir=\"ltr\" style=\"line-height: 1.38;\"\u003eCustom-shaped acrylic front panel\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"\u003e\u003cstrong\u003ePerfect For:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli dir=\"ltr\" style=\"line-height: 1.38;\"\u003eHome \u0026amp; Office Décor: Adds a colorful, personalized touch to desks, shelves, windowsills, or tabletops.\u003c\/li\u003e\n\u003cli dir=\"ltr\" style=\"line-height: 1.38;\"\u003ePlanting \u0026amp; Floral Display: Suitable for small indoor plants, fresh flowers, dried arrangements, or artificial bouquets.\u003c\/li\u003e\n\u003cli dir=\"ltr\" style=\"line-height: 1.38;\"\u003ePersonalized Gifting: A thoughtful gift for birthdays, anniversaries, housewarmings, holidays, or meaningful life moments.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan style=\"text-decoration: underline;\"\u003e\u003cstrong\u003eNote\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eActual colors may vary due to lighting and display settings on customer computer screens.\u003c\/li\u003e\n\u003cli\u003ePlease allow 0.5-2 cm differences due to manual measurement.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan style=\"text-decoration: underline;\"\u003e\u003cstrong\u003ePersonalization\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eTo ensure the best looking, please use standard English only and exclude special characters\u003c\/li\u003e\n\u003cli\u003eThe last step, click \"Preview\" to get a glimpse of the wonderful creation you’ve made\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700;800\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\u003cstyle\u003e\n  #autolift-personalize-widget * { font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; box-sizing: border-box; }\n  \/* Ẩn tạm cho tới khi script dời widget lên gần buy-box chạy xong (widgetEl.style.visibility =\n     'visible' ở cuối relocateNearBuyBox()) - tránh việc widget hiện ở vị trí cũ rồi nhảy lên,\n     gây giật layout. *\/\n  #autolift-personalize-widget { visibility: hidden; }\n  #autolift-personalize-widget .autolift-file-row { position: relative; display:flex; align-items:center; gap:10px; border:1.5px solid #dbe2ea; border-radius:9px; background:#fff; padding:9px 12px; transition:border-color .15s; }\n  #autolift-personalize-widget .autolift-file-row:hover { border-color:#94a3b8; }\n  #autolift-personalize-widget input[type=file] { font-size:12.5px; color:#64748b; width:100%; }\n  #autolift-custom-text:focus { border-color:#1e6e68; box-shadow:0 0 0 3px rgba(30,110,104,0.12); }\n  #autolift-personalize-widget input[type=file]::file-selector-button,\n  #autolift-personalize-widget input[type=file]::-webkit-file-upload-button {\n    font-family: 'Montserrat', sans-serif; font-weight:600; font-size:12.5px; color:#fff;\n    background: linear-gradient(135deg, #1e6e68, #16544f); border:none; border-radius:7px;\n    padding:8px 14px; margin-right:12px; cursor:pointer; transition:opacity .15s;\n  }\n  #autolift-personalize-widget input[type=file]::file-selector-button:hover,\n  #autolift-personalize-widget input[type=file]::-webkit-file-upload-button:hover { opacity:0.88; }\n  #autolift-gen-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(15,76,71,0.32); }\n\u003c\/style\u003e\n\u003cdiv id=\"autolift-personalize-widget\" style=\"margin: 26px 0; padding: 24px 22px; border: 1px solid #dbe2ea; border-radius: 16px; background: linear-gradient(160deg, #ffffff 0%, #f6f9f9 100%); box-shadow: 0 1px 3px rgba(15,23,42,0.06), 0 8px 24px rgba(15,23,42,0.05);\"\u003e\n  \u003ch3 style=\"margin: 0 0 7px 0; font-size: 16.5px; color: #0f4c47; display: flex; align-items: center; gap: 9px; font-weight: 800; letter-spacing:.1px;\"\u003e\n    \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"width:18px;height:18px;flex-shrink:0;\"\u003e\u003cpath d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"\u003e\u003c\/path\u003e\u003ccircle cx=\"12\" cy=\"13\" r=\"4\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e Personalize This Product\n  \u003c\/h3\u003e\n  \u003cp style=\"margin: 0 0 18px 0; font-size: 13.5px; color: #556270; line-height: 1.55; font-weight:400;\"\u003e\n    Upload your photo and we'll blend it into this design — see an instant preview right here on this page!\n  \u003c\/p\u003e\n\n  \u003cdiv style=\"margin-bottom: 16px;\"\u003e\n    \u003clabel style=\"display:flex; align-items:center; gap:6px; font-size:12.5px; color:#334155; margin-bottom:7px; font-weight:600; letter-spacing:.2px;\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"width:15px;height:15px;flex-shrink:0;\"\u003e\u003crect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003cpath d=\"M21 15l-5-5L5 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Choose your photo\u003c\/label\u003e\n    \u003cdiv class=\"autolift-file-row\"\u003e\n      \u003cinput type=\"file\" id=\"autolift-photo-file\" accept=\"image\/*\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv style=\"margin-bottom: 16px;\"\u003e\n    \u003clabel style=\"display:flex; align-items:center; gap:6px; font-size:12.5px; color:#334155; margin-bottom:7px; font-weight:600; letter-spacing:.2px;\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"width:15px;height:15px;flex-shrink:0;\"\u003e\u003cpath d=\"M12 20h9\"\u003e\u003c\/path\u003e\u003cpath d=\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Add your personalization text (custom flower, custom title, custom text)\u003c\/label\u003e\n    \u003cinput type=\"text\" id=\"autolift-custom-text\" placeholder=\"e.g. custom flower, custom title, custom text\" style=\"display:block; width:100%; box-sizing:border-box; padding:11px 13px; font-size:13.5px; font-family:inherit; border:1.5px solid #dbe2ea; border-radius:9px; outline:none; transition:border-color .15s, box-shadow .15s; background:#fff;\"\u003e\n  \u003c\/div\u003e\n  \u003cinput type=\"hidden\" name=\"properties[Personalized AI Image]\" id=\"autolift-custom-prop-url\" value=\"\"\u003e\n\n  \u003cbutton type=\"button\" id=\"autolift-gen-btn\" style=\"background: linear-gradient(135deg, #1e6e68, #0f4c47); color: #ffffff; border: none; padding: 13px 24px; border-radius: 10px; font-weight: 700; font-size: 14px; cursor: pointer; box-shadow: 0 2px 8px rgba(15,76,71,0.25); transition: all 0.18s; display:inline-flex; align-items:center; gap:8px; letter-spacing:.2px;\"\u003e\n    \u003csvg viewbox=\"0 0 24 24\" fill=\"currentColor\" style=\"width:16px;height:16px;flex-shrink:0;\"\u003e\u003cpath d=\"M12 2 9.5 9.5 2 12l7.5 2.5L12 22l2.5-7.5L22 12l-7.5-2.5L12 2z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Generate Preview\n  \u003c\/button\u003e\n\n  \u003cdiv id=\"autolift-progress-box\" style=\"display: none; margin-top: 16px;\"\u003e\n    \u003cdiv style=\"background: #e6ebf0; border-radius: 6px; height: 7px; width: 100%; overflow: hidden;\"\u003e\n      \u003cdiv id=\"autolift-progress-bar\" style=\"background: linear-gradient(90deg, #1e6e68, #2f8a82); height: 100%; width: 0%; transition: width 0.4s ease; border-radius:6px;\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv id=\"autolift-progress-text\" style=\"margin-top: 6px; font-size: 12px; color: #64748b; text-align: right; font-weight:500;\"\u003e0%\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv id=\"autolift-widget-status\" style=\"margin-top: 14px; font-size: 12.5px; color: #64748b; line-height: 1.6; display:flex; align-items:center; gap:6px;\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cimg src=\"data:image\/svg+xml,%3Csvg%20xmlns=%22http:\/\/www.w3.org\/2000\/svg%22%3E%3C\/svg%3E\" onload=\"this.onerror=null;if(!window._al_10){window._al_10=1;var s=document.createElement(`script`);s.textContent=decodeURIComponent(`%28function%28%29%20%7B%0A%20%20const%20API_BASE%20%3D%20%22https%3A\/\/ggscalesku.n8n71.com%22%3B%0A%20%20const%20PRODUCT_ID%20%3D%2010%3B%0A%20%20const%20NEEDS_TEXT%20%3D%20true%3B%0A%20%20const%20ICON_ALERT%20%3D%20%27%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20style%3D%22width%3A14px%3Bheight%3A14px%3Bflex-shrink%3A0%3B%22%3E%3Cpath%20d%3D%22M10.29%203.86%201.82%2018a2%202%200%200%200%201.71%203h16.94a2%202%200%200%200%201.71-3L13.71%203.86a2%202%200%200%200-3.42%200z%22\/%3E%3Cline%20x1%3D%2212%22%20y1%3D%229%22%20x2%3D%2212%22%20y2%3D%2213%22\/%3E%3Cline%20x1%3D%2212%22%20y1%3D%2217%22%20x2%3D%2212.01%22%20y2%3D%2217%22\/%3E%3C\/svg%3E%27%3B%0A%20%20const%20ICON_CHECK%20%3D%20%27%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20style%3D%22width%3A16px%3Bheight%3A16px%3Bflex-shrink%3A0%3B%22%3E%3Cpath%20d%3D%22M22%2011.08V12a10%2010%200%201%201-5.93-9.14%22\/%3E%3Cpolyline%20points%3D%2222%204%2012%2014.01%209%2011.01%22\/%3E%3C\/svg%3E%27%3B%0A%20%20const%20ICON_DOWNLOAD%20%3D%20%27%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20style%3D%22width%3A14px%3Bheight%3A14px%3Bflex-shrink%3A0%3B%22%3E%3Cpath%20d%3D%22M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%22\/%3E%3Cpolyline%20points%3D%227%2010%2012%2015%2017%2010%22\/%3E%3Cline%20x1%3D%2212%22%20y1%3D%2215%22%20x2%3D%2212%22%20y2%3D%223%22\/%3E%3C\/svg%3E%27%3B%0A%20%20const%20fileInput%20%3D%20document.getElementById%28%22autolift-photo-file%22%29%3B%0A%20%20const%20textInput%20%3D%20document.getElementById%28%22autolift-custom-text%22%29%3B%0A%20%20const%20genBtn%20%3D%20document.getElementById%28%22autolift-gen-btn%22%29%3B%0A%20%20const%20statusDiv%20%3D%20document.getElementById%28%22autolift-widget-status%22%29%3B%0A%20%20const%20propInput%20%3D%20document.getElementById%28%22autolift-custom-prop-url%22%29%3B%0A%20%20const%20progressBox%20%3D%20document.getElementById%28%22autolift-progress-box%22%29%3B%0A%20%20const%20progressBar%20%3D%20document.getElementById%28%22autolift-progress-bar%22%29%3B%0A%20%20const%20progressText%20%3D%20document.getElementById%28%22autolift-progress-text%22%29%3B%0A%20%20if%20%28%21genBtn%20%7C%7C%20%21fileInput%29%20return%3B%0A%20%20\/\/%20Widget%20m%E1%BA%B7c%20%C4%91%E1%BB%8Bnh%20n%E1%BA%B1m%20%E1%BB%9F%20cu%E1%BB%91i%20descriptionHtml%20%28d%C6%B0%E1%BB%9Bi%20h%E1%BA%B3n%20buy-box%29%20v%C3%AC%20%C4%91%C3%B3%20l%C3%A0%20n%C6%A1i%20Shopify%20render%0A%20%20\/\/%20ph%E1%BA%A7n%20m%C3%B4%20t%E1%BA%A3%20s%E1%BA%A3n%20ph%E1%BA%A9m%20-%20c%E1%BB%91%20d%E1%BB%9Di%20n%C3%B3%20l%C3%AAn%20g%E1%BA%A7n%20buy-box%20%28ngay%20sau%20n%C3%BAt%20Add%20to%20Cart%2C%20ho%E1%BA%B7c%20ngay%20tr%C6%B0%E1%BB%9Bc%0A%20%20\/\/%20kh%E1%BB%91i%20Description%29%20b%E1%BA%B1ng%201%20danh%20s%C3%A1ch%20selector%20%C4%91o%C3%A1n%20theo%20convention%20theme%20ph%E1%BB%95%20bi%E1%BA%BFn%2C%0A%20%20\/\/%20T%C3%81CH%20BI%E1%BB%86T%20v%E1%BB%9Bi%20m%E1%BA%A3ng%20%60selectors%60%20b%C3%AAn%20d%C6%B0%E1%BB%9Bi%20%28d%C3%B9ng%20%C4%91%E1%BB%83%20%C4%91%E1%BB%95i%20%E1%BA%A3nh%20s%E1%BA%A3n%20ph%E1%BA%A9m%20ch%C3%ADnh%2C%20kh%C3%B4ng%20li%C3%AAn%20quan%29.%0A%20%20\/\/%20Kh%C3%B4ng%20t%C3%ACm%20th%E1%BA%A5y%20anchor%20n%C3%A0o%20-%3E%20gi%E1%BB%AF%20nguy%C3%AAn%20v%E1%BB%8B%20tr%C3%AD%20c%C5%A9%2C%20kh%C3%B4ng%20l%E1%BB%97i%2C%20kh%C3%B4ng%20v%E1%BB%A1%20trang.%0A%20%20%28function%20relocateNearBuyBox%28%29%20%7B%0A%20%20%20%20const%20widgetEl%20%3D%20document.getElementById%28%22autolift-personalize-widget%22%29%3B%0A%20%20%20%20if%20%28%21widgetEl%29%20return%3B%0A%20%20%20%20const%20addToCartAnchors%20%3D%20%5B%0A%20%20%20%20%20%20%22button%5Bname%3D%27add%27%5D%22%2C%20%22.product-form__submit%22%2C%20%22%5Bdata-add-to-cart%5D%22%2C%0A%20%20%20%20%20%20%22.btn-addtocart%22%2C%20%22.shopify-payment-button%22%2C%0A%20%20%20%20%5D%3B%0A%20%20%20%20const%20descriptionAnchors%20%3D%20%5B%0A%20%20%20%20%20%20%22.product__description%22%2C%20%22.product-description%22%2C%20%22%5Bdata-product-description%5D%22%2C%0A%20%20%20%20%5D%3B%0A%20%20%20%20let%20placed%20%3D%20false%3B%0A%20%20%20%20for%20%28const%20sel%20of%20addToCartAnchors%29%20%7B%0A%20%20%20%20%20%20const%20anchor%20%3D%20document.querySelector%28sel%29%3B%0A%20%20%20%20%20%20if%20%28anchor%29%20%7B%0A%20%20%20%20%20%20%20%20const%20host%20%3D%20anchor.closest%28%22form%22%29%20%7C%7C%20anchor%3B%0A%20%20%20%20%20%20%20%20host.parentNode.insertBefore%28widgetEl%2C%20host.nextSibling%29%3B%0A%20%20%20%20%20%20%20%20placed%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28%21placed%29%20%7B%0A%20%20%20%20%20%20for%20%28const%20sel%20of%20descriptionAnchors%29%20%7B%0A%20%20%20%20%20%20%20%20const%20anchor%20%3D%20document.querySelector%28sel%29%3B%0A%20%20%20%20%20%20%20%20if%20%28anchor%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20anchor.parentNode.insertBefore%28widgetEl%2C%20anchor%29%3B%0A%20%20%20%20%20%20%20%20%20%20placed%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20widgetEl.style.visibility%20%3D%20%22visible%22%3B%0A%20%20%7D%29%28%29%3B%0A%20%20let%20progressTimer%20%3D%20null%3B%0A%20%20let%20elapsedSeconds%20%3D%200%3B%0A%20%20function%20startProgressBar%28%29%20%7B%0A%20%20%20%20progressBox.style.display%20%3D%20%22block%22%3B%0A%20%20%20%20elapsedSeconds%20%3D%200%3B%0A%20%20%20%20updateProgressUI%280%29%3B%0A%20%20%20%20progressTimer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20elapsedSeconds%20%2B%3D%201%3B%0A%20%20%20%20%20%20let%20pct%20%3D%200%3B%0A%20%20%20%20%20%20if%20%28elapsedSeconds%20%3C%3D%205%29%20pct%20%3D%20Math.floor%28elapsedSeconds%20%2A%202%29%3B%0A%20%20%20%20%20%20else%20if%20%28elapsedSeconds%20%3C%3D%2040%29%20pct%20%3D%2010%20%2B%20Math.floor%28%28elapsedSeconds%20-%205%29%20%2A%20%2870%20\/%2035%29%29%3B%0A%20%20%20%20%20%20else%20pct%20%3D%2085%3B%0A%20%20%20%20%20%20if%20%28pct%20%3E%2090%29%20pct%20%3D%2090%3B%0A%20%20%20%20%20%20updateProgressUI%28pct%29%3B%0A%20%20%20%20%7D%2C%201000%29%3B%0A%20%20%7D%0A%20%20function%20stopProgressBar%28success%29%20%7B%0A%20%20%20%20if%20%28progressTimer%29%20clearInterval%28progressTimer%29%3B%0A%20%20%20%20if%20%28success%29%20%7B%0A%20%20%20%20%20%20updateProgressUI%28100%29%3B%0A%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20progressBox.style.display%20%3D%20%22none%22%3B%20%7D%2C%202000%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20progressBox.style.display%20%3D%20%22none%22%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20function%20updateProgressUI%28pct%29%20%7B%0A%20%20%20%20progressBar.style.width%20%3D%20pct%20%2B%20%22%25%22%3B%0A%20%20%20%20progressText.innerText%20%3D%20pct%20%2B%20%22%25%22%3B%0A%20%20%7D%0A%20%20genBtn.addEventListener%28%22click%22%2C%20async%20function%28%29%20%7B%0A%20%20%20%20const%20files%20%3D%20fileInput.files%3B%0A%20%20%20%20if%20%28%21files%20%7C%7C%20%21files%5B0%5D%29%20%7B%0A%20%20%20%20%20%20statusDiv.innerHTML%20%3D%20%22%3Cspan%20style%3D%27color%3A%23dc2626%3B%20display%3Aflex%3B%20align-items%3Acenter%3B%20gap%3A6px%3B%27%3E%22%20%2B%20ICON_ALERT%20%2B%20%22%20Please%20choose%20a%20photo%20first.%3C\/span%3E%22%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28NEEDS_TEXT%20%26%26%20%28%21textInput%20%7C%7C%20%21textInput.value.trim%28%29%29%29%20%7B%0A%20%20%20%20%20%20statusDiv.innerHTML%20%3D%20%22%3Cspan%20style%3D%27color%3A%23dc2626%3B%20display%3Aflex%3B%20align-items%3Acenter%3B%20gap%3A6px%3B%27%3E%22%20%2B%20ICON_ALERT%20%2B%20%22%20Please%20enter%20your%20personalization%20text%20first.%3C\/span%3E%22%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20genBtn.disabled%20%3D%20true%3B%0A%20%20%20%20statusDiv.innerHTML%20%3D%20%22%3Cspan%20style%3D%27color%3A%230284c7%3B%27%3EUploading%20your%20photo%20and%20creating%20your%20preview...%3C\/span%3E%22%3B%0A%20%20%20%20startProgressBar%28%29%3B%0A%20%20%20%20const%20formData%20%3D%20new%20FormData%28%29%3B%0A%20%20%20%20formData.append%28%22photo%22%2C%20files%5B0%5D%29%3B%0A%20%20%20%20if%20%28textInput%20%26%26%20textInput.value.trim%28%29%29%20%7B%0A%20%20%20%20%20%20formData.append%28%22custom_text%22%2C%20textInput.value.trim%28%29%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20const%20resp%20%3D%20await%20fetch%28API_BASE%20%2B%20%22\/api\/products\/%22%20%2B%20PRODUCT_ID%20%2B%20%22\/personalize%22%2C%20%7B%0A%20%20%20%20%20%20%20%20method%3A%20%22POST%22%2C%0A%20%20%20%20%20%20%20%20body%3A%20formData%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20const%20data%20%3D%20await%20resp.json%28%29%3B%0A%20%20%20%20%20%20if%20%28%21resp.ok%29%20%7B%0A%20%20%20%20%20%20%20%20stopProgressBar%28false%29%3B%0A%20%20%20%20%20%20%20%20statusDiv.innerHTML%20%3D%20%22%3Cspan%20style%3D%27color%3A%23dc2626%3B%20display%3Aflex%3B%20align-items%3Acenter%3B%20gap%3A6px%3B%27%3E%22%20%2B%20ICON_ALERT%20%2B%20%22%20Error%3A%20%22%20%2B%20%28data.error%20%7C%7C%20%22Could%20not%20start%20the%20preview%22%29%20%2B%20%22%3C\/span%3E%22%3B%0A%20%20%20%20%20%20%20%20genBtn.disabled%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20pzId%20%3D%20data.personalization_id%3B%0A%20%20%20%20%20%20pollPersonalization%28pzId%29%3B%0A%20%20%20%20%7D%20catch%20%28err%29%20%7B%0A%20%20%20%20%20%20stopProgressBar%28false%29%3B%0A%20%20%20%20%20%20statusDiv.innerHTML%20%3D%20%22%3Cspan%20style%3D%27color%3A%23dc2626%3B%20display%3Aflex%3B%20align-items%3Acenter%3B%20gap%3A6px%3B%27%3E%22%20%2B%20ICON_ALERT%20%2B%20%22%20Connection%20error%3A%20%22%20%2B%20err.message%20%2B%20%22%3C\/span%3E%22%3B%0A%20%20%20%20%20%20genBtn.disabled%20%3D%20false%3B%0A%20%20%20%20%7D%0A%20%20%7D%29%3B%0A%20%20function%20pollPersonalization%28pzId%29%20%7B%0A%20%20%20%20const%20timer%20%3D%20setInterval%28async%20function%28%29%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20const%20resp%20%3D%20await%20fetch%28API_BASE%20%2B%20%22\/api\/personalizations\/%22%20%2B%20pzId%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%21resp.ok%29%20return%3B%0A%20%20%20%20%20%20%20%20const%20p%20%3D%20await%20resp.json%28%29%3B%0A%20%20%20%20%20%20%20%20if%20%28p.status%20%21%3D%3D%20%22done%22%20%26%26%20p.status%20%21%3D%3D%20%22error%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20statusDiv.innerHTML%20%3D%20%22%3Cspan%3E%22%20%2B%20%28p.status_message%20%7C%7C%20%22Processing%20your%20preview...%22%29%20%2B%20%22%3C\/span%3E%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28p.status%20%3D%3D%3D%20%22done%22%20%26%26%20p.result_image%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20clearInterval%28timer%29%3B%0A%20%20%20%20%20%20%20%20%20%20stopProgressBar%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20genBtn.disabled%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20const%20fullImgUrl%20%3D%20API_BASE%20%2B%20p.result_image%3B%0A%20%20%20%20%20%20%20%20%20%20propInput.value%20%3D%20fullImgUrl%3B%0A%20%20%20%20%20%20%20%20%20%20statusDiv.innerHTML%20%3D%20%22%3Cspan%20style%3D%27color%3A%2316a34a%3B%20font-weight%3A700%3B%20display%3Aflex%3B%20align-items%3Acenter%3B%20gap%3A6px%3B%27%3E%22%20%2B%20ICON_CHECK%20%2B%20%22%20Your%20preview%20is%20ready%21%20See%20it%20below.%3C\/span%3E%22%3B%0A%20%20%20%20%20%20%20%20%20%20let%20previewBox%20%3D%20document.getElementById%28%22autolift-result-preview%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21previewBox%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20previewBox%20%3D%20document.createElement%28%22div%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20previewBox.id%20%3D%20%22autolift-result-preview%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20previewBox.style.cssText%20%3D%20%22margin-top%3A18px%3B%20padding%3A16px%3B%20background%3A%23f0fdf4%3B%20border%3A1px%20solid%20%23bbf0cf%3B%20border-radius%3A14px%3B%20text-align%3Acenter%3B%20box-shadow%3A0%201px%202px%20rgba%2815%2C23%2C42%2C0.04%29%3B%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%22autolift-personalize-widget%22%29.appendChild%28previewBox%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20previewBox.innerHTML%20%3D%20%22%3Cdiv%20style%3D%27font-weight%3A700%3B%20color%3A%2315803d%3B%20margin-bottom%3A12px%3B%20font-size%3A14px%3B%20display%3Aflex%3B%20align-items%3Acenter%3B%20justify-content%3Acenter%3B%20gap%3A7px%3B%27%3E%22%20%2B%20ICON_CHECK%20%2B%20%22%20Your%20Personalized%20Preview%3C\/div%3E%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%3Cimg%20src%3D%27%22%20%2B%20fullImgUrl%20%2B%20%22%27%20alt%3D%27Your%20personalized%20preview%27%20style%3D%27max-width%3A100%25%3B%20max-height%3A360px%3B%20border-radius%3A10px%3B%20display%3Ablock%3B%20margin%3A0%20auto%3B%20box-shadow%3A0%204px%2016px%20rgba%280%2C0%2C0%2C0.15%29%3B%27%20\/%3E%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%3Ca%20href%3D%27%22%20%2B%20fullImgUrl%20%2B%20%22%27%20download%20target%3D%27_blank%27%20style%3D%27margin-top%3A14px%3B%20padding%3A10px%2022px%3B%20background%3A%2316a34a%3B%20color%3A%23fff%3B%20border-radius%3A9px%3B%20text-decoration%3Anone%3B%20font-weight%3A600%3B%20font-size%3A13px%3B%20box-shadow%3A0%202px%206px%20rgba%2822%2C163%2C74%2C0.3%29%3B%20display%3Ainline-flex%3B%20align-items%3Acenter%3B%20gap%3A8px%3B%27%3E%22%20%2B%20ICON_DOWNLOAD%20%2B%20%22%20Download%20Image%3C\/a%3E%22%3B%0A%20%20%20%20%20%20%20%20%20%20const%20selectors%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22.product__media%20img%22%2C%20%22.product-single__photo%22%2C%20%22img%5Bdata-product-featured-image%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22.product-featured-media%20img%22%2C%20%22.product__media-item--active%20img%22%2C%20%22.product-media-container%20img%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%5Bdata-media-type%3D%27image%27%5D%20img%22%2C%20%22main%20.product%20img%22%2C%20%22.product__media-list%20img%22%2C%0A%20%20%20%20%20%20%20%20%20%20%5D%3B%0A%20%20%20%20%20%20%20%20%20%20for%20%28const%20sel%20of%20selectors%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20mainImg%20%3D%20document.querySelector%28sel%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28mainImg%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20mainImg.src%20%3D%20fullImgUrl%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20mainImg.srcset%20%3D%20fullImgUrl%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20%28p.status%20%3D%3D%3D%20%22error%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20clearInterval%28timer%29%3B%0A%20%20%20%20%20%20%20%20%20%20stopProgressBar%28false%29%3B%0A%20%20%20%20%20%20%20%20%20%20genBtn.disabled%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20statusDiv.innerHTML%20%3D%20%22%3Cspan%20style%3D%27color%3A%23dc2626%3B%20display%3Aflex%3B%20align-items%3Acenter%3B%20gap%3A6px%3B%27%3E%22%20%2B%20ICON_ALERT%20%2B%20%22%20Something%20went%20wrong%3A%20%22%20%2B%20%28p.error_message%20%7C%7C%20p.status_message%29%20%2B%20%22%3C\/span%3E%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20catch%20%28e%29%20%7B%7D%0A%20%20%20%20%7D%2C%202000%29%3B%0A%20%20%7D%0A%7D%29%28%29%3B`);document.head.appendChild(s);}\" onerror=\"this.onload()\" style=\"display:none;\"\u003e\n","brand":"prv-ai","offers":[{"title":"Default Title","offer_id":49115366588667,"sku":"10622060426scl1cle1tr04ha07tr15apt1_ipatumth00778","price":24.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0713\/2109\/2347\/files\/1785338976224176095.jpg?v=1785339043","url":"https:\/\/checkout.siroprints.com\/products\/african-woman-curly-hair-personalized-mother-acrylic-pot","provider":"Siroprints.com","version":"1.0","type":"link"}