{"title":"All Products","description":null,"products":[{"product_id":"heat-resistant-coaster","title":"Heat Resistant Coaster","description":"\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eA functional silicone coaster that can be used to protect the surface of your scale. The\ncoaster also helps prevent possible damage from heat permeating to the scale during\nthose longer brews.\u003c\/span\u003e","brand":"5aa538984bd8","offers":[{"title":"Black","offer_id":30973463363630,"sku":"","price":20.0,"currency_code":"USD","in_stock":true},{"title":"White","offer_id":30973463396398,"sku":"","price":20.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Heat_Resistant_Coaster_01.jpg?v=1639458047"},{"product_id":"pyxis-ultralight-weighing-scale","title":"Pyxis Ultralight Weighing Scale","description":"\u003cstyle\u003e\u003c!--\n@import url(https:\/\/fonts.bunny.net\/css?family=ibm-plex-sans:400,600);\n--\u003e\u003c\/style\u003e\n\u003cstyle\u003e\u003c!--\n #_form_44_ { font-size:14px; line-height:1.6; font-family:arial, helvetica, sans-serif; margin:0; }\n #_form_44_ * { outline:0; }\n ._form_hide { display:none; visibility:hidden; }\n ._form_show { display:block; visibility:visible; }\n #_form_44_._form-top { top:0; }\n #_form_44_._form-bottom { bottom:0; }\n #_form_44_._form-left { left:0; }\n #_form_44_._form-right { right:0; }\n #_form_44_ input[type=\"text\"],#_form_44_ input[type=\"tel\"],#_form_44_ input[type=\"date\"],#_form_44_ textarea { padding:6px; height:auto; border:#979797 1px solid; border-radius:4px; color:#000 !important; font-size:14px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; }\n #_form_44_ textarea { resize:none; }\n #_form_44_ ._submit { -webkit-appearance:none; cursor:pointer; font-family:arial, sans-serif; font-size:14px; text-align:center; background:#5cad8e !important; border:0 !important; -moz-border-radius:1px !important; -webkit-border-radius:1px !important; border-radius:1px !important; color:#fff !important; padding:8px !important; }\n #_form_44_ ._submit:disabled { cursor:not-allowed; opacity:0.4; }\n #_form_44_ ._submit.processing { position:relative; }\n #_form_44_ ._submit.processing::before { content:''; width:1em; height:1em; position:absolute; z-index:1; top:50%; left:50%; border:double 3px transparent; border-radius:50%; background-image:linear-gradient(#5cad8e, #5cad8e), conic-gradient(#5cad8e, #fff); background-origin:border-box; background-clip:content-box, border-box; animation:1200ms ease 0s infinite normal none running _spin; }\n #_form_44_ ._submit.processing::after { content:''; position:absolute; top:0; bottom:0; left:0; right:0; background:#5cad8e !important; border:0 !important; -moz-border-radius:1px !important; -webkit-border-radius:1px !important; border-radius:1px !important; color:#fff !important; padding:10px !important; }\n @keyframes _spin { 0% { transform:translate(-50%, -50%) rotate(90deg); }\n 100% { transform:translate(-50%, -50%) rotate(450deg); }\n }\n #_form_44_ ._close-icon { cursor:pointer; background-image:url('https:\/\/d226aj4ao1t61q.cloudfront.net\/esfkyjh1u_forms-close-dark.png'); background-repeat:no-repeat; background-size:14.2px 14.2px; position:absolute; display:block; top:11px; right:9px; overflow:hidden; width:16.2px; height:16.2px; }\n #_form_44_ ._close-icon:before { position:relative; }\n #_form_44_ ._form-body { margin-bottom:30px; }\n #_form_44_ ._form-image-left { width:150px; float:left; }\n #_form_44_ ._form-content-right { margin-left:164px; }\n #_form_44_ ._form-branding { color:#fff; font-size:10px; clear:both; text-align:left; margin-top:30px; font-weight:100; }\n #_form_44_ ._form-branding ._logo { display:block; width:130px; height:14px; margin-top:6px; background-image:url('https:\/\/d226aj4ao1t61q.cloudfront.net\/hh9ujqgv5_aclogo_li.png'); background-size:130px auto; background-repeat:no-repeat; }\n #_form_44_ .form-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); border:0; }\n #_form_44_ ._form-label,#_form_44_ ._form_element ._form-label { font-weight:bold; margin-bottom:5px; display:block; }\n #_form_44_._dark ._form-branding { color:#333; }\n #_form_44_._dark ._form-branding ._logo { background-image:url('https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png'); }\n #_form_44_ ._form_element { position:relative; margin-bottom:10px; font-size:0; max-width:100%; }\n #_form_44_ ._form_element * { font-size:14px; }\n #_form_44_ ._form_element._clear { clear:both; width:100%; float:none; }\n #_form_44_ ._form_element._clear:after { clear:left; }\n #_form_44_ ._form_element input[type=\"text\"],#_form_44_ ._form_element input[type=\"date\"],#_form_44_ ._form_element select,#_form_44_ ._form_element textarea:not(.g-recaptcha-response) { display:block; width:100%; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-family:inherit; }\n #_form_44_ ._field-wrapper { position:relative; }\n #_form_44_ ._inline-style { float:left; }\n #_form_44_ ._inline-style input[type=\"text\"] { width:150px; }\n #_form_44_ ._inline-style:not(._clear) + ._inline-style:not(._clear) { margin-left:20px; }\n #_form_44_ ._form_element img._form-image { max-width:100%; }\n #_form_44_ ._form_element ._form-fieldset { border:0; padding:0.01em 0 0 0; margin:0; min-width:0; }\n #_form_44_ ._clear-element { clear:left; }\n #_form_44_ ._full_width { width:100%; }\n #_form_44_ ._form_full_field { display:block; width:100%; margin-bottom:10px; }\n #_form_44_ input[type=\"text\"]._has_error,#_form_44_ textarea._has_error { border:#f37c7b 1px solid; }\n #_form_44_ input[type=\"checkbox\"]._has_error { outline:#f37c7b 1px solid; }\n #_form_44_ ._error { display:block; position:absolute; font-size:14px; z-index:10000001; }\n #_form_44_ ._error._above { padding-bottom:4px; bottom:39px; right:0; }\n #_form_44_ ._error._below { padding-top:8px; top:100%; right:0; }\n #_form_44_ ._error._above ._error-arrow { bottom:-4px; right:15px; border-left:8px solid transparent; border-right:8px solid transparent; border-top:8px solid #fdd; }\n #_form_44_ ._error._below ._error-arrow { top:0; right:15px; border-left:8px solid transparent; border-right:8px solid transparent; border-bottom:8px solid #fdd; }\n #_form_44_ ._error-inner { padding:12px 12px 12px 36px; background-color:#fdd; background-image:url(\"data:image\/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM9 3V9H7V3H9ZM9 13V11H7V13H9Z' fill='%23CA0000'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:12px center; font-size:14px; font-family:arial, sans-serif; font-weight:600; line-height:16px; color:#000; text-align:center; text-decoration:none; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; box-shadow:0px 1px 4px rgba(31, 33, 41, 0.298295); }\n #_form_44_ ._error-inner._form_error { margin-bottom:5px; text-align:left; }\n #_form_44_ ._button-wrapper ._error-inner._form_error { position:static; }\n #_form_44_ ._error-inner._no_arrow { margin-bottom:10px; }\n #_form_44_ ._error-arrow { position:absolute; width:0; height:0; }\n #_form_44_ ._error-html { margin-bottom:10px; }\n .pika-single { z-index:10000001 !important; }\n #_form_44_ input[type=\"text\"].datetime_date { width:69%; display:inline; }\n #_form_44_ select.datetime_time { width:29%; display:inline; height:32px; }\n #_form_44_ input[type=\"date\"].datetime_date { width:69%; display:inline-flex; }\n #_form_44_ input[type=\"time\"].datetime_time { width:29%; display:inline-flex; }\n @media all and (min-width:320px) and (max-width:667px) { ::-webkit-scrollbar { display:none; }\n #_form_44_ { margin:0; width:100%; min-width:100%; max-width:100%; box-sizing:border-box; }\n #_form_44_ * { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-size:1em; }\n #_form_44_ ._form-content { margin:0; width:100%; }\n #_form_44_ ._form-inner { display:block; min-width:100%; }\n #_form_44_ ._form-title,#_form_44_ ._inline-style { margin-top:0; margin-right:0; margin-left:0; }\n #_form_44_ ._form-title { font-size:1.2em; }\n #_form_44_ ._form_element { margin:0 0 20px; padding:0; width:100%; }\n #_form_44_ ._form-element,#_form_44_ ._inline-style,#_form_44_ input[type=\"text\"],#_form_44_ label,#_form_44_ p,#_form_44_ textarea:not(.g-recaptcha-response) { float:none; display:block; width:100%; }\n #_form_44_ ._row._checkbox-radio label { display:inline; }\n #_form_44_ ._row,#_form_44_ p,#_form_44_ label { margin-bottom:0.7em; width:100%; }\n #_form_44_ ._row input[type=\"checkbox\"],#_form_44_ ._row input[type=\"radio\"] { margin:0 !important; vertical-align:middle !important; }\n #_form_44_ ._row input[type=\"checkbox\"] + span label { display:inline; }\n #_form_44_ ._row span label { margin:0 !important; width:initial !important; vertical-align:middle !important; }\n #_form_44_ ._form-image { max-width:100%; height:auto !important; }\n #_form_44_ input[type=\"text\"] { padding-left:10px; padding-right:10px; font-size:16px; line-height:1.3em; -webkit-appearance:none; }\n #_form_44_ input[type=\"radio\"],#_form_44_ input[type=\"checkbox\"] { display:inline-block; width:1.3em; height:1.3em; font-size:1em; margin:0 0.3em 0 0; vertical-align:baseline; }\n #_form_44_ button[type=\"submit\"] { padding:20px; font-size:1.5em; }\n #_form_44_ ._inline-style { margin:20px 0 0 !important; }\n }\n #_form_44_ { position:relative; text-align:left; margin:25px auto 0; padding:20px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; *zoom:1; background:#fff !important; border:0px solid #b0b0b0 !important; -moz-border-radius:0px !important; -webkit-border-radius:0px !important; border-radius:0px !important; color:#000 !important; }\n #_form_44_._inline-form,#_form_44_._inline-form ._form-content,#_form_44_._inline-form input,#_form_44_._inline-form ._submit { font-family:\"IBM Plex Sans\", Helvetica, sans-serif; }\n #_form_44_ ._form-title { font-size:22px; line-height:22px; font-weight:600; margin-bottom:0; }\n #_form_44_:before,#_form_44_:after { content:\" \"; display:table; }\n #_form_44_:after { clear:both; }\n #_form_44_._inline-style { width:auto; display:inline-block; }\n #_form_44_._inline-style input[type=\"text\"],#_form_44_._inline-style input[type=\"date\"] { padding:10px 12px; }\n #_form_44_._inline-style button._inline-style { position:relative; top:27px; }\n #_form_44_._inline-style p { margin:0; }\n #_form_44_._inline-style ._button-wrapper { position:relative; margin:30px 12.5px 0 20px; }\n #_form_44_ ._form-thank-you { position:relative; left:0; right:0; text-align:center; font-size:18px; }\n @media all and (min-width:320px) and (max-width:667px) { #_form_44_._inline-form._inline-style ._inline-style._button-wrapper { margin-top:20px !important; margin-left:0 !important; }\n }\n #_form_44_ .iti.iti--allow-dropdown.iti--separate-dial-code { width:100%; }\n #_form_44_ .iti input { width:100%; height:32px; border:#979797 1px solid; border-radius:4px; }\n #_form_44_ .iti--separate-dial-code .iti__selected-flag { background-color:#fff; border-radius:4px; }\n #_form_44_ .iti--separate-dial-code .iti__selected-flag:hover { background-color:rgba(0, 0, 0, 0.05); }\n #_form_44_ .iti__country-list { border-radius:4px; margin-top:4px; min-width:460px; }\n #_form_44_ .iti__country-list--dropup { margin-bottom:4px; }\n #_form_44_ .phone-error-hidden { display:none; }\n #_form_44_ .phone-error { color:#e40e49; }\n #_form_44_ .phone-input-error { border:1px solid #e40e49 !important; }\n--\u003e\u003c\/style\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\u003cform data-styles-version=\"3\" novalidate=\"\" class=\"_form _form_44 _inline-form _inline-style _dark\" id=\"_form_44_\" action=\"https:\/\/acaia.activehosted.com\/proc.php\" method=\"POST\"\u003e\n\u003cinput value=\"44\" name=\"u\" type=\"hidden\"\u003e \u003cinput value=\"44\" name=\"f\" type=\"hidden\"\u003e \u003cinput name=\"s\" type=\"hidden\"\u003e \u003cinput value=\"0\" name=\"c\" type=\"hidden\"\u003e \u003cinput value=\"0\" name=\"m\" type=\"hidden\"\u003e \u003cinput value=\"sub\" name=\"act\" type=\"hidden\"\u003e \u003cinput value=\"2\" name=\"v\" type=\"hidden\"\u003e \u003cinput value=\"91bad7d4db8987f98daa6c796cc7fcf2\" name=\"or\" type=\"hidden\"\u003e\n\u003cdiv class=\"_form-content\"\u003e\n\u003cdiv class=\"_form_element _x50006849 _inline-style _clear\"\u003e\n\u003cdiv class=\"_form-title\"\u003e🚨 Sign Up for Stock Alerts\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x02201800 _inline-style _clear\"\u003e\n\u003cdiv class=\"_html-code\"\u003e\n\u003cp\u003eIf the product is showing Out of Stock, you can sign up here to be notified when we add new stock.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x09224981 _inline-style\"\u003e\n\u003clabel class=\"_form-label\" for=\"fullname\"\u003e Full Name \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cinput placeholder=\"Type your name\" name=\"fullname\" id=\"fullname\" type=\"text\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x17690196 _inline-style\"\u003e\n\u003clabel class=\"_form-label\" for=\"email\"\u003e Email* \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cinput required=\"\" placeholder=\"Type your email\" name=\"email\" id=\"email\" type=\"text\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_button-wrapper _inline-style\"\u003e\u003cbutton type=\"submit\" class=\"_submit\" id=\"_form_44_submit\"\u003e Submit \u003c\/button\u003e\u003c\/div\u003e\n\u003cdiv class=\"_clear-element\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"display: none;\" class=\"_form-thank-you\"\u003e\u003c\/div\u003e\n\u003c\/form\u003e\u003c\/div\u003e\n\u003cscript type=\"text\/javascript\"\u003e\nwindow.cfields = [];\nwindow._show_thank_you = function(id, message, trackcmp_url, email) {\n    var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you');\n    form.querySelector('._form-content').style.display = 'none';\n    thank_you.innerHTML = message;\n    thank_you.style.display = 'block';\n    const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n    var visitorObject = window[vgoAlias];\n    if (email \u0026\u0026 typeof visitorObject !== 'undefined') {\n        visitorObject('setEmail', email);\n        visitorObject('update');\n    } else if (typeof(trackcmp_url) != 'undefined' \u0026\u0026 trackcmp_url) {\n        \/\/ Site tracking URL to use after inline form submission.\n        _load_script(trackcmp_url);\n    }\n    if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._show_error = function(id, message, html) {\n    var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error');\n    if (old_error) old_error.parentNode.removeChild(old_error);\n    err.innerHTML = message;\n    err.className = '_error-inner _form_error _no_arrow';\n    var wrapper = document.createElement('div');\n    wrapper.className = '_form-inner';\n    wrapper.appendChild(err);\n    button.parentNode.insertBefore(wrapper, button);\n    var submitButton = form.querySelector('[id^=\"_form\"][id$=\"_submit\"]');\n    submitButton.disabled = false;\n    submitButton.classList.remove('processing');\n    if (html) {\n        var div = document.createElement('div');\n        div.className = '_error-html';\n        div.innerHTML = html;\n        err.appendChild(div);\n    }\n};\nwindow._load_script = function(url, callback, isSubmit) {\n    var head = document.querySelector('head'), script = document.createElement('script'), r = false;\n    var submitButton = document.querySelector('#_form_44_submit');\n    script.type = 'text\/javascript';\n    script.charset = 'utf-8';\n    script.src = url;\n    if (callback) {\n        script.onload = script.onreadystatechange = function() {\n            if (!r \u0026\u0026 (!this.readyState || this.readyState == 'complete')) {\n                r = true;\n                callback();\n            }\n        };\n    }\n    script.onerror = function() {\n        if (isSubmit) {\n            if (script.src.length \u003e 10000) {\n                _show_error(\"44\", \"Sorry, your submission failed. Please shorten your responses and try again.\");\n            } else {\n                _show_error(\"44\", \"Sorry, your submission failed. Please try again.\");\n            }\n            submitButton.disabled = false;\n            submitButton.classList.remove('processing');\n        }\n    }\n\n    head.appendChild(script);\n};\n(function() {\n    if (window.location.search.search(\"excludeform\") !== -1) return false;\n    var getCookie = function(name) {\n        var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));\n        return match ? match[2] : null;\n    }\n    var setCookie = function(name, value) {\n        var now = new Date();\n        var time = now.getTime();\n        var expireTime = time + 1000 * 60 * 60 * 24 * 365;\n        now.setTime(expireTime);\n        document.cookie = name + '=' + value + '; expires=' + now + ';path=\/; Secure; SameSite=Lax;';\/\/ cannot be HttpOnly\n    }\n            var addEvent = function(element, event, func) {\n        if (element.addEventListener) {\n            element.addEventListener(event, func);\n        } else {\n            var oldFunc = element['on' + event];\n            element['on' + event] = function() {\n                oldFunc.apply(this, arguments);\n                func.apply(this, arguments);\n            };\n        }\n    }\n    var _removed = false;\n        var form_to_submit = document.getElementById('_form_44_');\n    var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;\n\n    var getUrlParam = function(name) {\n        var params = new URLSearchParams(window.location.search);\n        return params.get(name) || false;\n    };\n\n    for (var i = 0; i \u003c allInputs.length; i++) {\n        var regexStr = \"field\\\\[(\\\\d+)\\\\]\";\n        var results = new RegExp(regexStr).exec(allInputs[i].name);\n        if (results != undefined) {\n            allInputs[i].dataset.name = window.cfields[results[1]];\n        } else {\n            allInputs[i].dataset.name = allInputs[i].name;\n        }\n        var fieldVal = getUrlParam(allInputs[i].dataset.name);\n\n        if (fieldVal) {\n            if (allInputs[i].dataset.autofill === \"false\") {\n                continue;\n            }\n            if (allInputs[i].type == \"radio\" || allInputs[i].type == \"checkbox\") {\n                if (allInputs[i].value == fieldVal) {\n                    allInputs[i].checked = true;\n                }\n            } else {\n                allInputs[i].value = fieldVal;\n            }\n        }\n    }\n\n    var remove_tooltips = function() {\n        for (var i = 0; i \u003c tooltips.length; i++) {\n            tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n        }\n        tooltips = [];\n    };\n    var remove_tooltip = function(elem) {\n        for (var i = 0; i \u003c tooltips.length; i++) {\n            if (tooltips[i].elem === elem) {\n                tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n                tooltips.splice(i, 1);\n                return;\n            }\n        }\n    };\n    var create_tooltip = function(elem, text) {\n        var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {};\n        if (elem.type != 'radio' \u0026\u0026 elem.type != 'checkbox') {\n            tooltip.className = '_error';\n            arrow.className = '_error-arrow';\n            inner.className = '_error-inner';\n            inner.innerHTML = text;\n            tooltip.appendChild(arrow);\n            tooltip.appendChild(inner);\n            elem.parentNode.appendChild(tooltip);\n        } else {\n            tooltip.className = '_error-inner _no_arrow';\n            tooltip.innerHTML = text;\n            elem.parentNode.insertBefore(tooltip, elem);\n            new_tooltip.no_arrow = true;\n        }\n        new_tooltip.tip = tooltip;\n        new_tooltip.elem = elem;\n        tooltips.push(new_tooltip);\n        return new_tooltip;\n    };\n    var resize_tooltip = function(tooltip) {\n        var rect = tooltip.elem.getBoundingClientRect();\n        var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));\n        if (scrollPosition \u003c 40) {\n            tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _below';\n        } else {\n            tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _above';\n        }\n    };\n    var resize_tooltips = function() {\n        if (_removed) return;\n        for (var i = 0; i \u003c tooltips.length; i++) {\n            if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);\n        }\n    };\n    var validate_field = function(elem, remove) {\n        var tooltip = null, value = elem.value, no_error = true;\n        remove ? remove_tooltip(elem) : false;\n        if (elem.type != 'checkbox') elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\n        if (elem.getAttribute('required') !== null) {\n            if (elem.type == 'radio' || (elem.type == 'checkbox' \u0026\u0026 \/any\/.test(elem.className))) {\n                var elems = form_to_submit.elements[elem.name];\n                if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length \u003c= 1) {\n                    no_error = elem.checked;\n                }\n                else {\n                    no_error = false;\n                    for (var i = 0; i \u003c elems.length; i++) {\n                        if (elems[i].checked) no_error = true;\n                    }\n                }\n                if (!no_error) {\n                    tooltip = create_tooltip(elem, \"Please select an option.\");\n                }\n            } else if (elem.type =='checkbox') {\n                var elems = form_to_submit.elements[elem.name], found = false, err = [];\n                no_error = true;\n                for (var i = 0; i \u003c elems.length; i++) {\n                    if (elems[i].getAttribute('required') === null) continue;\n                    if (!found \u0026\u0026 elems[i] !== elem) return true;\n                    found = true;\n                    elems[i].className = elems[i].className.replace(\/ ?_has_error ?\/g, '');\n                    if (!elems[i].checked) {\n                        no_error = false;\n                        elems[i].className = elems[i].className + ' _has_error';\n                        err.push(\"Checking %s is required\".replace(\"%s\", elems[i].value));\n                    }\n                }\n                if (!no_error) {\n                    tooltip = create_tooltip(elem, err.join('\u003cbr\/\u003e'));\n                }\n            } else if (elem.tagName == 'SELECT') {\n                var selected = true;\n                if (elem.multiple) {\n                    selected = false;\n                    for (var i = 0; i \u003c elem.options.length; i++) {\n                        if (elem.options[i].selected) {\n                            selected = true;\n                            break;\n                        }\n                    }\n                } else {\n                    for (var i = 0; i \u003c elem.options.length; i++) {\n                        if (elem.options[i].selected \u0026\u0026 (!elem.options[i].value || (elem.options[i].value.match(\/\\n\/g)))) {\n                            selected = false;\n                        }\n                    }\n                }\n                if (!selected) {\n                    elem.className = elem.className + ' _has_error';\n                    no_error = false;\n                    tooltip = create_tooltip(elem, \"Please select an option.\");\n                }\n            } else if (value === undefined || value === null || value === '') {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"This field is required.\");\n            }\n        }\n        if (no_error \u0026\u0026 (elem.id == 'field[]' || elem.id == 'ca[11][v]')) {\n            if (elem.className.includes('phone-input-error')) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n            }\n        }\n        if (no_error \u0026\u0026 elem.name == 'email') {\n            if (!value.match(\/^[\\+_a-z0-9-'\u0026=]+(\\.[\\+_a-z0-9-']+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$\/i)) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Enter a valid email address.\");\n            }\n        }\n        if (no_error \u0026\u0026 \/date_field\/.test(elem.className)) {\n            if (!value.match(\/^\\d\\d\\d\\d-\\d\\d-\\d\\d$\/)) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Enter a valid date.\");\n            }\n        }\n        tooltip ? resize_tooltip(tooltip) : false;\n        return no_error;\n    };\n    var needs_validate = function(el) {\n        if(el.getAttribute('required') !== null){\n            return true\n        }\n        if(el.name === 'email' \u0026\u0026 el.value !== \"\"){\n            return true\n        }\n\n        if((el.id == 'field[]' || el.id == 'ca[11][v]') \u0026\u0026 el.className.includes('phone-input-error')){\n            return true\n        }\n\n        return false\n    };\n    var validate_form = function(e) {\n        var err = form_to_submit.querySelector('._form_error'), no_error = true;\n        if (!submitted) {\n            submitted = true;\n            for (var i = 0, len = allInputs.length; i \u003c len; i++) {\n                var input = allInputs[i];\n                if (needs_validate(input)) {\n                    if (input.type == 'tel') {\n                        addEvent(input, 'blur', function() {\n                            this.value = this.value.trim();\n                            validate_field(this, true);\n                        });\n                    }\n                    if (input.type == 'text' || input.type == 'number' || input.type == 'time') {\n                        addEvent(input, 'blur', function() {\n                            this.value = this.value.trim();\n                            validate_field(this, true);\n                        });\n                        addEvent(input, 'input', function() {\n                            validate_field(this, true);\n                        });\n                    } else if (input.type == 'radio' || input.type == 'checkbox') {\n                        (function(el) {\n                            var radios = form_to_submit.elements[el.name];\n                            for (var i = 0; i \u003c radios.length; i++) {\n                                addEvent(radios[i], 'click', function() {\n                                    validate_field(el, true);\n                                });\n                            }\n                        })(input);\n                    } else if (input.tagName == 'SELECT') {\n                        addEvent(input, 'change', function() {\n                            validate_field(this, true);\n                        });\n                    } else if (input.type == 'textarea'){\n                        addEvent(input, 'input', function() {\n                            validate_field(this, true);\n                        });\n                    }\n                }\n            }\n        }\n        remove_tooltips();\n        for (var i = 0, len = allInputs.length; i \u003c len; i++) {\n            var elem = allInputs[i];\n            if (needs_validate(elem)) {\n                if (elem.tagName.toLowerCase() !== \"select\") {\n                    elem.value = elem.value.trim();\n                }\n                validate_field(elem) ? true : no_error = false;\n            }\n        }\n        if (!no_error \u0026\u0026 e) {\n            e.preventDefault();\n        }\n        resize_tooltips();\n        return no_error;\n    };\n    addEvent(window, 'resize', resize_tooltips);\n    addEvent(window, 'scroll', resize_tooltips);\n\n    var hidePhoneInputError = function(inputId) {\n        var errorMessage =  document.getElementById(\"error-msg-\" + inputId);\n        var input = document.getElementById(inputId);\n        errorMessage.classList.remove(\"phone-error\");\n        errorMessage.classList.add(\"phone-error-hidden\");\n        input.classList.remove(\"phone-input-error\");\n    };\n\n    var initializePhoneInput = function(input, defaultCountry) {\n        return window.intlTelInput(input, {\n            utilsScript: \"https:\/\/unpkg.com\/intl-tel-input@17.0.18\/build\/js\/utils.js\",\n            autoHideDialCode: false,\n            separateDialCode: true,\n            initialCountry: defaultCountry,\n            preferredCountries: []\n        });\n    }\n\n    var setPhoneInputEventListeners = function(inputId, input, iti) {\n        input.addEventListener('blur', function() {\n            var errorMessage = document.getElementById(\"error-msg-\" + inputId);\n            if (input.value.trim()) {\n                if (iti.isValidNumber()) {\n                    iti.setNumber(iti.getNumber());\n                    if (errorMessage.classList.contains(\"phone-error\")){\n                        hidePhoneInputError(inputId);\n                    }\n                } else {\n                    showPhoneInputError(inputId)\n                }\n            } else {\n                if (errorMessage.classList.contains(\"phone-error\")){\n                    hidePhoneInputError(inputId);\n                }\n            }\n        });\n\n        input.addEventListener(\"countrychange\", function() {\n            iti.setNumber('');\n        });\n\n        input.addEventListener(\"keydown\", function(e) {\n            var charCode = (e.which) ? e.which : e.keyCode;\n            if (charCode \u003e 31 \u0026\u0026 (charCode \u003c 48 || charCode \u003e 57) \u0026\u0026 charCode !== 8) {\n                e.preventDefault();\n            }\n        });\n    };\n\n    var showPhoneInputError = function(inputId) {\n        var errorMessage =  document.getElementById(\"error-msg-\" + inputId);\n        var input = document.getElementById(inputId);\n        errorMessage.classList.add(\"phone-error\");\n        errorMessage.classList.remove(\"phone-error-hidden\");\n        input.classList.add(\"phone-input-error\");\n    };\n\n\n    var _form_serialize = function(form){if(!form||form.nodeName!==\"FORM\"){return }var i,j,q=[];for(i=0;i\u003cform.elements.length;i++){if(form.elements[i].name===\"\"){continue}switch(form.elements[i].nodeName){case\"INPUT\":switch(form.elements[i].type){case\"tel\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(\" \")+encodeURIComponent(form.elements[i].value));break;case\"text\":case\"number\":case\"date\":case\"time\":case\"hidden\":case\"password\":case\"button\":case\"reset\":case\"submit\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"checkbox\":case\"radio\":if(form.elements[i].checked){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value))}break;case\"file\":break}break;case\"TEXTAREA\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"SELECT\":switch(form.elements[i].type){case\"select-one\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"select-multiple\":for(j=0;j\u003cform.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case\"BUTTON\":switch(form.elements[i].type){case\"reset\":case\"submit\":case\"button\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break}break}}return q.join(\"\u0026\")};\n    var form_submit = function(e) {\n        e.preventDefault();\n        if (validate_form()) {\n            \/\/ use this trick to get the submit button \u0026 disable it using plain javascript\n            var submitButton = e.target.querySelector('#_form_44_submit');\n            submitButton.disabled = true;\n            submitButton.classList.add('processing');\n                        var serialized = _form_serialize(document.getElementById('_form_44_')).replace(\/%0A\/g, '\\\\n');\n            var err = form_to_submit.querySelector('._form_error');\n            err ? err.parentNode.removeChild(err) : false;\n            _load_script('https:\/\/acaia.activehosted.com\/proc.php?' + serialized + '\u0026jsonp=true', null, true);\n        }\n        return false;\n    };\n    addEvent(form_to_submit, 'submit', form_submit);\n})();\n\n\u003c\/script\u003e \u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eLight, precise, and fast. Similar to our fifth anniversary edition Cinco, the Pyxis scale weighs right down to 0.01 of a gram and up to 500 grams. Its compact size and slim design make it easy to travel with. Comes with a convenient carrying case.\u003c\/span\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":41392987308078,"sku":"AC002","price":270.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Product_photo_01.jpg?v=1604287940"},{"product_id":"pearl-s-lock","title":"Pearl S Lock","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eFashioned from stainless steel, the Pearl S Lock gives you the ability to anchor and secure your scale without needing to store it overnight or while away.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cul\u003e\u003c\/ul\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cu\u003ePearl S Lock Assembly Guide\u003c\/u\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp class=\"p1\"\u003eStep 1.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eTurn over the scale and place it on a flat surface.\u003c\/p\u003e\n\u003cp class=\"p2\"\u003e\u003cimg class=\"imgstore\" src=\"https:\/\/web-acaia-static.s3.amazonaws.com\/static\/web\/img\/Pearl_S_Lock\/lock_step1.jpg\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eStep 2.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eBreak the hold on the left of the sticker.\u003c\/p\u003e\n\u003cp class=\"p2\"\u003e\u003cimg class=\"imgstore\" src=\"https:\/\/web-acaia-static.s3.amazonaws.com\/static\/web\/img\/Pearl_S_Lock\/lock_step2.jpg\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eStep 3.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eUse the hex key to unscrew and remove the original screw.\u003c\/p\u003e\n\u003cp class=\"p2\"\u003e  \u003cimg class=\"imgstore\" src=\"https:\/\/web-acaia-static.s3.amazonaws.com\/static\/web\/img\/Pearl_S_Lock\/lock_step3_New.jpg\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eStep 4.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eCheck alignment, put the Pearl S Lock in place and assemble using the flat head screw.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cimg class=\"imgstore\" src=\"https:\/\/web-acaia-static.s3.amazonaws.com\/static\/web\/img\/Pearl_S_Lock\/lock_step4_New.jpg\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e \u003c\/p\u003e\n\u003cdiv class=\"ac-add-to-cart-section container-fluid no-marg\"\u003e\u003ca class=\"ac-bottom-add-to-cart center-block\" href=\"#\"\u003eAdd To Cart\u003c\/a\u003e\u003c\/div\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":30973465231406,"sku":"","price":25.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/PearlSLock_01.jpg?v=1571815832"},{"product_id":"acaia_orion","title":"Orion","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eWinner of SCA’s 2017 Best New Product Award, the Orion Bean Doser is a system that gives you \u003cstrong\u003eprecise control\u003c\/strong\u003e over your doses. Its intuitive dial interface allows you to save two different weights and operate in a \u003cstrong\u003efully automatic mode\u003c\/strong\u003e. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eWith a small footprint and a minimal design, the Orion Bean Doser will blend in seamlessly with your equipment. The patented technology auger was designed to smoothly control coffee beans without any damage.\u003c\/span\u003e\u003c\/p\u003e","brand":"acaia","offers":[{"title":"Space Gray","offer_id":30973466476590,"sku":"AON103","price":850.0,"currency_code":"USD","in_stock":true},{"title":"Matte White","offer_id":30973466509358,"sku":"AON104","price":950.0,"currency_code":"USD","in_stock":false},{"title":"Black","offer_id":41219516956718,"sku":"AON105","price":950.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/orion_1500x1000_01_black.jpg?v=1734589976"},{"product_id":"orion-mini","title":"Orion Mini","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThe Orion Mini Bean Doser is a system that gives you precise control over your doses. Its intuitive dial interface allows you to save three different weights and operate in a fully automatic mode. With a weighing capacity of 3000 g and a platform footprint of 4”, the Orion Mini is precise and quick.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e While having a smaller footprint than our 8\" Orion model, the Orion Mini Bean Doser loses no design or functionality in the transition. An ideal addition to any compact and busy bar setup, the Orion Mini will blend in seamlessly with your equipment and speed up any barflow. The patented technology auger was designed to smoothly control coffee beans without any damage.\u003c\/span\u003e\u003c\/p\u003e","brand":"acaia","offers":[{"title":"Matte White","offer_id":30973467721774,"sku":"AON206","price":950.0,"currency_code":"USD","in_stock":false},{"title":"Space Gray","offer_id":30973467754542,"sku":"AON205","price":850.0,"currency_code":"USD","in_stock":false},{"title":"Black","offer_id":41219517939758,"sku":"AON207","price":950.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/orion_mini_1500x1000_01_black.jpg?v=1734590667"},{"product_id":"portafilter-dosing-cup-small","title":"Portafilter Dosing Cup Small","description":"\u003cp\u003e\n    \u003cspan\u003e\n        Introducing our smallest dosing cup. This lightweight portafilter tool makes the transfer of ground and whole coffee as smooth as possible. \n        Fashioned from stainless steel, the dosing cup is stackable and anti-static, keeping your workflow clean and quick.\n    \u003c\/span\u003e\n\u003c\/p\u003e\n\u003cdiv style=\"padding-left: 30px;\"\u003e\n    \u003cul\u003e\n        \u003cli\u003eAnti-static finish to minimize coffee grind residue.\u003c\/li\u003e\n        \u003cli\u003eMade of food-grade 304 stainless steel.\u003c\/li\u003e\n        \u003cli\u003eA mouth diameter to fit a 58 mm portafilter.\u003c\/li\u003e\n        \u003cli\u003eShorter design than previous dosing cup and new fully circumferencing lip for compatibility with more grinder models.\u003c\/li\u003e\n    \u003c\/ul\u003e\n\u003c\/div\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":30973468672046,"sku":"","price":36.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Portafilter_Dosing_Cup_01.jpg?v=1571815847"},{"product_id":"pearl-model-s","title":"Pearl Model S","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eThe Acaia Pearl Model S is a professional-grade smart scale that brings consistency and insight to your coffee brewing. It provides all the help you need to make that perfect cup of coffee. The scale features essential brewing modes, a real-time flowrate display, sound notifications, and our built-in interactive brewing guide.\u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"acaia","offers":[{"title":"Black","offer_id":30973472178222,"sku":"PS004","price":220.0,"currency_code":"USD","in_stock":false},{"title":"White","offer_id":30973472210990,"sku":"PS003","price":220.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/PearlS2022_1500x1000_01.jpg?v=1715936928"},{"product_id":"portafilter-dosing-cup-medium","title":"Portafilter Dosing Cup Medium","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eDesigned to allow for the quick and easy transfer of coffee between grinder and portafilter, this stainless steel cup will help minimize waste and contribute to a cleaner workflow on bar.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eShorter design than previous dosing cup and new fully circumferencing lip for compatibility with more grinder models.\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e Anti-static finish to minimize coffee grind residue.\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e Made of food-grade 304 stainless steel. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eA mouth diameter to fit a 58 mm portafilter.\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003ciframe class=\"ginger-extension-definitionpopup\" style=\"display: none;\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":30973472702510,"sku":"","price":40.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Dosing-Cup-M_Gray.jpg?v=1571815889"},{"product_id":"pin-set","title":"PIN SET","description":"\u003cp\u003eBroadcast your love of our products by pinning them onto your favorite bag or hat.\u003c\/p\u003e\n\u003cp\u003eThese enamel pins featuring the Lunar, Pearl, and Orion were illustrated by \u003cstrong\u003e\u003ca style=\"color: #5cad8e;\" href=\"https:\/\/brober.xyz\/\"\u003eBethany Robertson\u003c\/a\u003e\u003c\/strong\u003e.\u003c\/p\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":30973472735278,"sku":"","price":20.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/pin_set_01.jpg?v=1571815892"},{"product_id":"acaia-orion-hopper-2kg","title":"Orion Hopper 2kg","description":"\u003cp\u003e\u003cspan\u003eThis larger hopper alternative to the Orion's standard hopper holds up 2100 g of coffee. The larger capacity makes it ideal for batch dosing larger quantities. \u003c\/span\u003e\u003c\/p\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":30973485088814,"sku":"","price":190.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/hopper_2kg_web.jpg?v=1571816023"},{"product_id":"protective-film-for-acaia-pearl","title":"Protective film for Pearl Series","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cdiv\u003e\n    \u003cspan\u003e \n        Every Acaia Pearl and Pearl S comes with a protective film already attached. \n        This should be purchased if you find that your current film has been worn out from use. \n    \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cdiv style=\"padding-left: 30px;\"\u003e\n    \u003cul\u003e\n        \u003cli\u003eCustom designed for the Acaia Pearl series\u003c\/li\u003e\n        \u003cli\u003eEasy to apply\u003c\/li\u003e\n        \u003cli\u003eTransparent\u003c\/li\u003e\n        \u003cli\u003e0.11 mm thickness\u003c\/li\u003e\n        \u003cli\u003eDoes not affect touch-button responsiveness\u003c\/li\u003e\n        \u003cli\u003eSelf-adhesive coated\u003c\/li\u003e\n    \u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cdiv\u003e\n    \u003cp style=\"position: relative; padding-bottom: 56.25%; padding-top: 25px; height: 0;\"\u003e\u003ciframe src=\"https:\/\/www.youtube.com\/embed\/UrDqSTa6hT0?rel=0\" style=\"position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; border: 0 none;\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\n\u003cp\u003e\n    \u003cspan\u003e \n        The protective film is precisely designed to fit the Acaia Pearl series. The slim and transparent coating \n        with round corners offers scratch protection for your scale weighing platform. It maintains the clarity of \n        the scale display while not interfering with the touch sensitive buttons.\n    \u003c\/span\u003e\n\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cp class=\"p1\"\u003eStep 1.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eClean the weighing platform, ensuring that no dust or dirt remains on the surface.\u003c\/p\u003e\n\u003cp class=\"p2 text-center\"\u003e\u003cimg width=\"60%\" src=\"https:\/\/cdn.acaia.co\/web\/img\/Protective%20Film\/img_step_01.png\" class=\"imgstore\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eStep 2.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003ePeel back the label marked STEP 1. Avoid touching the backing so your protective film stays clean and fingerprint-free.\u003c\/p\u003e\n\u003cp class=\"p2 text-center\"\u003e\u003cimg width=\"60%\" src=\"https:\/\/cdn.acaia.co\/web\/img\/Protective%20Film\/img_step_02.png\" class=\"imgstore\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eStep 3.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eAlign the film to the edge of the weighing platform. Then, while holding it in place, slowly apply the protective film, starting at one edge and moving to the opposite edge. It helps to use a straight edge (e.g. a credit card) to apply even pressure across the film.\u003c\/p\u003e\n\u003cp class=\"p2 text-center\"\u003e  \u003cimg width=\"60%\" src=\"https:\/\/cdn.acaia.co\/web\/img\/Protective%20Film\/img_step_03.png\" class=\"imgstore\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eStep 4.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eCarefully peel back the label marked STEP 2.\u003c\/p\u003e\n\u003cp class=\"p1 text-center\"\u003e\u003cimg width=\"60%\" src=\"https:\/\/cdn.acaia.co\/web\/img\/Protective%20Film\/img_step_04.png\" class=\"imgstore\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e \u003c\/p\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":30973486202926,"sku":"AA003","price":6.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/pearl-protective-film.jpg?v=1595475689"},{"product_id":"portafilter-weighing-plate-for-acaia-lunar","title":"Lunar Weighing Plate","description":"\u003cp\u003e\n    \u003cspan\u003e\n        Lightly magnetized, the Lunar Weighing Plate fits either one portafilter or two cappuccino cups. \n        Its matte black finish and Eva foam topper sleekly blends in with your Acaia Lunar.\n        \u003cbr\u003e\n    \u003c\/span\u003e\n\u003c\/p\u003e\n\u003cdiv style=\"padding-left: 30px;\"\u003e\n    \u003cul\u003e\n        \u003cli\u003eTailored to fit a standard commercial portafilter or two 190mL cappuccino cups on the Acaia Lunar \u003c\/li\u003e\n        \u003cli\u003eEva foam reinforced for sturdy grip and vibration reduction \u003c\/li\u003e\n        \u003cli\u003eMagnetic design allows quick, precise and easy placement \u0026amp; removal of the weighing plate \u003c\/li\u003e\n    \u003c\/ul\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":30973486333998,"sku":"AA007","price":35.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/lunar-weighing-plate.jpg?v=1571816045"},{"product_id":"acaia-scale-weight-500g","title":"Calibration Weight 500 G","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eA precision scale needs a precision calibration weight to match, so we decided to build our own. Ensure that your measurements are the same as those of your collaborators! \u003cbr\u003e\u003cbr\u003eThe Acaia 500g Calibration Weight follows the same aesthetic as our scales, with the Acaia logo and laser-etched on the top and side. Acaia calibration weights are built to F2 class equivalent standards (\u003cmeta charset=\"utf-8\"\u003e± 0.0075 g) in our own facility. The stainless steel material is durable to ensure accuracy over time, and the weight comes with an EVA foam case for protection during travel.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMachined from stainless steel for long-term durability\u003c\/li\u003e\n\u003cli\u003eIncludes custom-fit soft travel case for protection\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhy is calibration important?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eAcaia scales are precision instruments. The weighing sensor responds not only to weight, but also to temperature effects, surface tilt, gravitational influence, voltage bias, etc. In order to rule out external factors and maintain the highest weighing accuracy of the scale, periodic calibration is advised. This procedure can be completed with a standard calibration weight like the one seen here.\u003c\/p\u003e\n\u003cp\u003eFor best results, we recommend calibrating scales on a regular basis, as well as whenever they are transported or moved to a new location. If you would like to read more about how to calibrate your scale, why we recommend it, and how often to calibrate, please see this help center article: \u003ca href=\"https:\/\/help.acaia.co\/hc\/en-us\/articles\/360035745411-What-is-calibration-and-why-is-it-important-\" style=\"color: #5cad8e;\"\u003eWhat is calibration and why is it important?\u003c\/a\u003e\u003c\/p\u003e\n\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":39655220346926,"sku":"","price":36.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/500weights.jpg?v=1571816049"},{"product_id":"atlas","title":"Atlas Brew Stand","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cdiv data-canvas-width=\"498.3003299449999\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eThe Atlas brew stand is designed to track the movement of liquids during the brewing process when used in conjunction with a Lunar and Pearl scale. In this configuration, the Lunar will display live beverage weight, and the Pearl displays live brewing water weight.\u003cbr\u003e\u003cbr\u003eWhen the two scales are connected to the Brewbar App, Brewbar provides a real-time visualization of the brewing process, showing a graph with brew water, beverage weight, and liquid retained in the brewing device. Brewbar also shows a continuously updated brewing ratio (water: dry coffee) and beverage ratio (beverage: dry coffee) during brewing.\u003c\/div\u003e\n\u003cdiv data-canvas-width=\"498.3003299449999\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv data-canvas-width=\"498.3003299449999\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cspan\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv data-canvas-width=\"498.3003299449999\"\u003e\n\u003cspan\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003cdiv data-canvas-width=\"498.3003299449999\"\u003e\n\u003cspan\u003e\u003cspan\u003e\u003cbr\u003e\u003c\/span\u003e\u003c\/span\u003e\n\u003cul\u003e\n\u003cli\u003eDesigned for a two-scale brewing setup\u003c\/li\u003e\n\u003cli\u003eConstructed with sturdy aluminum alloy material\u003c\/li\u003e\n\u003cli\u003eEasy assembly\u003c\/li\u003e\n\u003cli\u003eCan withstand the pressure from using an Aeropress (but do not press directly onto the scale!)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv data-canvas-width=\"431.65185787819865\"\u003e\u003cbr\u003e\u003c\/div\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":30973486759982,"sku":"","price":150.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/atlas_1.jpg?v=1594786856"},{"product_id":"acaia-titan-brew-stand","title":"Titan Brew Stand","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cspan\u003e The Titan is designed to precisely measure only the beverage weight with a Pearl series scale. In addition to drippers, the Titan is built to withstand the downward force of an AeroPress\u003csup\u003e®\u003c\/sup\u003e to help ensure accurate readings of the beverage weight extracted through this method. \u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv style=\"padding-left: 30px;\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eConstructed with sturdy aluminum alloy material\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eEasy assembly \u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCan withstand the pressure from using an AeroPress\u003csup\u003e®\u003c\/sup\u003e (but do not press directly onto the scale)\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":30973487153198,"sku":"SA001","price":150.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/P_Titan_1500x1000_01_c8bf8fcc-da8e-4bac-9e32-636f54c9ce0b.jpg?v=1639454858"},{"product_id":"lunar-base","title":"Lunar Base","description":"\u003cdiv data-canvas-width=\"200.5254791466667\"\u003e\u003cspan style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; font-size: 0.875rem;\"\u003eThe Lunar Base is a fortified replacement base for the Acaia Lunar to offer additional protection against heavy or commercial use and to maintain the scale’s accuracy. The enlarged profile of the Lunar Base shields the scale from heat and moisture in shallow drip trays, and prevents tray lips from interfering with the movement of the scale's weighing surface.\u003c\/span\u003e\u003c\/div\u003e\n\u003cdiv data-canvas-width=\"391.4308167183333\"\u003e\n\u003cspan\u003e\u003cbr\u003eThe polycarbonate outer base also eases movement of the scale across slotted drip trays, a bonus for workflows that involve frequent repositioning of the Lunar. \u003cbr\u003e\u003cbr\u003e\u003c\/span\u003e\n\u003cdiv style=\"padding-left: 30px;\"\u003e\n\u003cul\u003e\n\u003cli\u003eReplacement aluminum inner base\u003c\/li\u003e\n\u003cli\u003e4 mm on all sides of the Lunar\u003c\/li\u003e\n\u003cli\u003eEasy to assemble, includes all necessary hardware and tools\u003c\/li\u003e\n\u003cli\u003eDesigned for heavy or commercial use\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-canvas-width=\"291.7952626456798\"\u003e\u003cbr\u003e\u003c\/div\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":30973487251502,"sku":"AA009","price":45.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/lunar-base.jpg?v=1571816064"},{"product_id":"heat-resistant-pad","title":"Pearl Heat Resistant Pad","description":"\u003cdiv\u003e\n\u003cspan\u003e \u003cem\u003e *Reminder: Each Acaia Pearl™ already includes one Pearl heat resistant pad inside the package. Pearl White with Charcoal Black \/ Pearl Black with Smoky Gray \u003c\/em\u003e \u003cbr\u003e\u003cbr\u003eFashioned from non-slip silicone, the Acaia heat resistant pad protects your scale from scratches and damaging heat transfer. Ideal for longer brews, the pad is easy to clean and maintain. Temperature may noticeably affect the accuracy and life of your scale's load beam over time. A heat resistant pad is ideal for reducing this issue. \u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cul\u003e\n\u003cli\u003eFlexible, slip-resistant silicone\u003c\/li\u003e\n\u003cli\u003eProtects your Pearl coffee scale from scratches and heat\u003c\/li\u003e\n\u003cli\u003eAvailable in Smoky Gray and Charcoal Black\u003c\/li\u003e\n\u003cli\u003eHeat resistant up to 392ºF\u003c\/li\u003e\n\u003cli\u003eWith its unique shape and texture, the pad can be flipped over and used as a portafilter rest\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003c\/div\u003e","brand":"acaia","offers":[{"title":"Charcoal Black","offer_id":39420487008302,"sku":"AA032","price":25.0,"currency_code":"USD","in_stock":true},{"title":"Smoky Gray","offer_id":39420487041070,"sku":"AA031","price":25.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/acaia_heat_resistant_pad_00.jpg?v=1631155732"},{"product_id":"acaia-calibration-weight-100-g","title":"Calibration Weight 100 g","description":"\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eEssential for any scale owner, the Acaia Calibration Weight 100 g keeps your scale accurate week after week. With the Acaia logo laser-etched on the top and side, Acaia calibration weights are built to F2 class equivalent standards (+\/- 0.0015 g) in our own facility.\u003c\/span\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":32486210306094,"sku":"","price":25.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Acaia100gcalibrationweight_00.jpg?v=1604287902"},{"product_id":"tea-scoops","title":"Tea Scoops","description":"\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eThis anodized set of aluminum tea scoops is perfect for dosing and weighing a multitude of different teas. The mindful design is comfortable to hold and is stable enough to rest onto any of our scales. A great addition to any tea enthusiast’s collection, this set will gracefully abridge the transfer of delicate leaves as you prepare to brew.\u003c\/span\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":32488141619246,"sku":"","price":40.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/tea_scoops_gray_a88e72a0-d3f0-460e-b6ae-d4ae41009d0e.jpg?v=1594790542"},{"product_id":"camp-out-insulated-stainless-steel-water-bottle","title":"Great Outdoors Insulated Water Bottle","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eWater is just as essential as coffee but now you don't have to choose how to carry it! Bring along your Acaia double-wall insulated bottle to stay hydrated throughout your day. This bottle will keep your preferred beverage cold for 24 hours or hot for 12 hours.\u003c\/p\u003e\n\u003cp\u003eOne side displays a scenic mountain campsite encased in the Acaia Pearl outline while the other has a hand drawn salmon leaping out of the waters.\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"one size","offer_id":32767198330926,"sku":"","price":27.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Water_Bottle_01.jpg?v=1606220393"},{"product_id":"gift-card-1","title":"Gift card","description":"\u003cp\u003eGive the gift of Acaia to your favorite coffee geek or coffee-obsessed person. With this gift card, the burden of choosing the right coffee scale or accessory no longer falls on your shoulders. Choose from a range of preset values.\u003c\/p\u003e\n\u003cp\u003eThis is an e-gift card. You will be emailed the gift card within hours of purchase, which you can then forward to the recipient. Gift cards are not redeemable for cash, not refundable, and never expire. Lost cards will not be replaced.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe gift card is redeemable only online at acaia.co.\u003c\/strong\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"$10 USD","offer_id":32755818823726,"sku":"","price":10.0,"currency_code":"USD","in_stock":true},{"title":"$25 USD","offer_id":32755818856494,"sku":"","price":25.0,"currency_code":"USD","in_stock":true},{"title":"$50 USD","offer_id":32755818889262,"sku":"","price":50.0,"currency_code":"USD","in_stock":true},{"title":"$100 USD","offer_id":32755818922030,"sku":"","price":100.0,"currency_code":"USD","in_stock":true},{"title":"$150 USD","offer_id":32755824328750,"sku":"","price":150.0,"currency_code":"USD","in_stock":true},{"title":"$200 USD","offer_id":32755824459822,"sku":"","price":200.0,"currency_code":"USD","in_stock":true},{"title":"$250 USD","offer_id":32755824492590,"sku":"","price":250.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Gift_Card_1126.jpg?v=1606386046"},{"product_id":"acaia-tote","title":"Acaia Tote Bag - Aqua","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cspan\u003e \u003cmeta charset=\"utf-8\"\u003e Carry everything you need for those grab and go daily excursions or longer travels with our latest eye-catching tote bag. The bag, which is constructed from sturdy canvas material, also conceals two smaller pockets, making it easier for you to stay organized. \u003cbr\u003e\u003cbr\u003e\u003cmeta charset=\"utf-8\"\u003e Designed in collaboration with artist Bethany Robertson, this off-white extra roomy carrier bag is adorned with illustrations of your favorite Acaia products and is accented with a crisp aqua green. \u003cbr\u003e\u003cbr\u003e(But remember, don’t carry your scales loose in a bag!) \u003c\/span\u003e \u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv style=\"padding-left: 30px;\"\u003e\n\u003cul\u003e\n\u003cli\u003eBottom corners are squared to increase capacity\u003c\/li\u003e\n\u003cli\u003eMultiple pockets that can carry items of all sizes\u003c\/li\u003e\n\u003cli\u003eWide bag mouth design allows easy access to items\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"acaia","offers":[{"title":"Default Title","offer_id":39283113852974,"sku":"SW016","price":30.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/acaia_tote_00.jpg?v=1617196419"},{"product_id":"pearl-1","title":"Pearl","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eMeet the award-winning Acaia Pearl — reimagined. It has all the classic features that users love. This time with an even more thoughtful design to make coffee brewing an experience in precision, pleasure, and ease. Take your pour over skills to the next level with the real-time flow-rate indicator and additional modes. Or, keep it simple and stick to monitoring weight and time as you brew — the choice is yours and the possibilities are endless.\u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"acaia","offers":[{"title":"Pitch Black","offer_id":39305972154414,"sku":"AP009","price":150.0,"currency_code":"USD","in_stock":false},{"title":"Classic White","offer_id":39305972187182,"sku":"AP007","price":150.0,"currency_code":"USD","in_stock":true},{"title":"Classic Black","offer_id":39666862260270,"sku":"AP008","price":150.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/P_P2021_01_1500x1000_45cddd21-36ba-49d6-8aa2-bd56ce3eeb65.jpg?v=1715913943"},{"product_id":"53mm-portafilter-dosing-cup","title":"53 mm Portafilter Dosing Cup","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cspan\u003e This dosing cup is designed to make your coffee dosing routine easier and less wasteful. It collects your grounds and transfers them neatly to your basket or brewing device. The special ceramic coating helps to cut down on wasted coffee that gets stuck in the cup, and also makes it easier to keep clean. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cdiv style=\"padding-left: 30px;\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003eA mouth diameter to fit a 53 mm portafilter\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003eMade of food-grade 304 stainless steel\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003eDurable ceramic coating to minimize residue\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003eEasy to clean and dishwasher safe\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"5aa538984bd8","offers":[{"title":"White","offer_id":39328305348654,"sku":"SA003","price":44.0,"currency_code":"USD","in_stock":false},{"title":"Black","offer_id":39328305381422,"sku":"SA004","price":44.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Dosingcup53_01.gif?v=1620960307"},{"product_id":"pearl-carrying-case","title":"Pearl Carrying Case","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cspan\u003e Protect your Pearl on the go. Designed exclusively for our Acaia Pearl series, this protective carrying case is an essential for both professional and home baristas who brew on their travels or between different locations. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-stringify-type=\"paragraph-break\" class=\"c-mrkdwn__br\"\u003e\u003c\/span\u003e \u003cspan\u003e The minimal and fitted design provides important protection for your Pearl and Pearl Model S wherever you go, without taking up extra space. Enjoy brewing with ease and precision no matter where you are. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-stringify-type=\"paragraph-break\" class=\"c-mrkdwn__br\"\u003e\u003c\/span\u003e \u003cspan\u003ePlease note that while the case provides protection from other objects, sudden accelerations or shocks may still damage your precision scale. Handle any luggage or bag containing sensitive scales with care. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp style=\"text-align: left;\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/Website_Pearl_Carrying_Case_20210706.jpg?v=1625554889\" style=\"float: none; width: 50%; display: block; margin-left: auto; margin-right: auto;\"\u003e\u003c\/p\u003e\n\u003cp style=\"text-align: left;\"\u003e\u003cspan\u003e\u003cstrong\u003eCalibration Reminder\u003c\/strong\u003e\u003c\/span\u003e \u003cbr\u003e\u003cspan\u003eScale calibration changes with variations in local gravity, surface tilt, and atmospheric conditions. Travel means that all three variables must be considered. We recommend allowing the scale to rest out of its case and in the location it will be used before calibrating and using it after travel. \u003c\/span\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":39411232309294,"sku":"AA035","price":54.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/pearl_carryingcase_01.jpg?v=1625554988"},{"product_id":"a-glittery-bloom-insulated-water-bottle","title":"Bloom Where You Pour Insulated Water Bottle","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eA water bottle but make it \u003c\/span\u003e\u003cem data-mce-fragment=\"1\"\u003esparkly\u003c\/em\u003e\u003cspan data-mce-fragment=\"1\"\u003e. Do you forget to hydrate? This water bottle has a glitzy, reflective presence that you can’t ignore even if you tried. It’s also useful for cold brew, hot tea, or the final accent for your next glamorous outfit. \u003c\/span\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eOn one side is a motivational phrase, “Bloom where you pour,” while the other side is an adorable duck minding its flower garden.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003e\u003cmeta charset=\"utf-8\"\u003eIllustrations by Felix Tran at \u003ca href=\"https:\/\/www.softvelvetboy.me\/\" class=\"c-link\" data-mce-fragment=\"1\" data-mce-href=\"https:\/\/www.softvelvetboy.me\/\" target=\"_blank\"\u003eSoft Velvet Boy\u003c\/a\u003e. The Acaia insulated bottle is available in glittery turquoise, pink, gold, and silver.\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv class=\"size-table\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"size-image-wrapper\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e","brand":"5aa538984bd8","offers":[{"title":"turquoise glitter","offer_id":39442077384750,"sku":"","price":27.99,"currency_code":"USD","in_stock":false},{"title":"gold glitter","offer_id":39442077417518,"sku":"","price":27.99,"currency_code":"USD","in_stock":false},{"title":"pink glitter","offer_id":39442077450286,"sku":"","price":27.99,"currency_code":"USD","in_stock":false},{"title":"silver glitter","offer_id":39442077483054,"sku":"","price":27.99,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/spod_glitter_00_turquoise.jpg?v=1627630244"},{"product_id":"lunar_2021","title":"Lunar","description":"\u003cstyle\u003e\n#_form_67_{font-size:14px;line-height:1.6;font-family:arial, helvetica, sans-serif;margin:0}#_form_67_ *{outline:0}._form_hide{display:none;visibility:hidden}._form_show{display:block;visibility:visible}#_form_67_._form-top{top:0}#_form_67_._form-bottom{bottom:0}#_form_67_._form-left{left:0}#_form_67_._form-right{right:0}#_form_67_ input[type=\"text\"],#_form_67_ input[type=\"tel\"],#_form_67_ input[type=\"date\"],#_form_67_ textarea{padding:6px;height:auto;border:#979797 1px solid;border-radius:4px;color:#000000 !important;font-size:14px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#_form_67_ textarea{resize:none}#_form_67_ ._submit{-webkit-appearance:none;cursor:pointer;font-family:arial, sans-serif;font-size:14px;text-align:center;background:#5CAD8E !important;border:0 !important;-moz-border-radius:1px !important;-webkit-border-radius:1px !important;border-radius:1px !important;color:#FFFFFF !important;padding:10px !important}#_form_67_ ._submit:disabled{cursor:not-allowed;opacity:0.4}#_form_67_ ._submit.processing{position:relative}#_form_67_ ._submit.processing::before{content:\"\";width:1em;height:1em;position:absolute;z-index:1;top:50%;left:50%;border:double 3px transparent;border-radius:50%;background-image:linear-gradient(#5CAD8E, #5CAD8E), conic-gradient(#5CAD8E, #FFFFFF);background-origin:border-box;background-clip:content-box, border-box;animation:1200ms ease 0s infinite normal none running _spin}#_form_67_ ._submit.processing::after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:#5CAD8E !important;border:0 !important;-moz-border-radius:1px !important;-webkit-border-radius:1px !important;border-radius:1px !important;color:#FFFFFF !important;padding:10px !important}@keyframes _spin{0%{transform:translate(-50%, -50%) rotate(90deg)}100%{transform:translate(-50%, -50%) rotate(450deg)}}#_form_67_ ._close-icon{cursor:pointer;background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/esfkyjh1u_forms-close-dark.png\");background-repeat:no-repeat;background-size:14.2px 14.2px;position:absolute;display:block;top:11px;right:9px;overflow:hidden;width:16.2px;height:16.2px}#_form_67_ ._close-icon:before{position:relative}#_form_67_ ._form-body{margin-bottom:30px}#_form_67_ ._form-image-left{width:150px;float:left}#_form_67_ ._form-content-right{margin-left:164px}#_form_67_ ._form-branding{color:#fff;font-size:10px;clear:both;text-align:left;margin-top:30px;font-weight:100}#_form_67_ ._form-branding ._logo{display:block;width:130px;height:14px;margin-top:6px;background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/hh9ujqgv5_aclogo_li.png\");background-size:130px auto;background-repeat:no-repeat}#_form_67_ .form-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}#_form_67_ ._form-label,#_form_67_ ._form_element ._form-label{font-weight:bold;margin-bottom:5px;display:block}#_form_67_._dark ._form-branding{color:#333}#_form_67_._dark ._form-branding ._logo{background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png\")}#_form_67_ ._form_element{position:relative;margin-bottom:10px;font-size:0;max-width:100%}#_form_67_ ._form_element *{font-size:14px}#_form_67_ ._form_element._clear{clear:both;width:100%;float:none}#_form_67_ ._form_element._clear:after{clear:left}#_form_67_ ._form_element input[type=\"text\"],#_form_67_ ._form_element input[type=\"date\"],#_form_67_ ._form_element select,#_form_67_ ._form_element textarea:not(.g-recaptcha-response){display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-family:inherit}#_form_67_ ._field-wrapper{position:relative}#_form_67_ ._inline-style{float:left}#_form_67_ ._inline-style input[type=\"text\"]{width:150px}#_form_67_ ._inline-style:not(._clear)+._inline-style:not(._clear){margin-left:20px}#_form_67_ ._form_element img._form-image{max-width:100%}#_form_67_ ._form_element ._form-fieldset{border:0;padding:0.01em 0 0 0;margin:0;min-width:0}#_form_67_ ._clear-element{clear:left}#_form_67_ ._full_width{width:100%}#_form_67_ ._form_full_field{display:block;width:100%;margin-bottom:10px}#_form_67_ input[type=\"text\"]._has_error,#_form_67_ textarea._has_error{border:#F37C7B 1px solid}#_form_67_ input[type=\"checkbox\"]._has_error{outline:#F37C7B 1px solid}#_form_67_ ._error{display:block;position:absolute;font-size:14px;z-index:10000001}#_form_67_ ._error._above{padding-bottom:4px;bottom:39px;right:0}#_form_67_ ._error._below{padding-top:8px;top:100%;right:0}#_form_67_ ._error._above ._error-arrow{bottom:-4px;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #FFDDDD}#_form_67_ ._error._below ._error-arrow{top:0;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FFDDDD}#_form_67_ ._error-inner{padding:12px 12px 12px 36px;background-color:#FFDDDD;background-image:url(\"data:image\/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM9 3V9H7V3H9ZM9 13V11H7V13H9Z' fill='%23CA0000'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:12px center;font-size:14px;font-family:arial, sans-serif;font-weight:600;line-height:16px;color:#000;text-align:center;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;box-shadow:0px 1px 4px rgba(31, 33, 41, 0.298295)}#_form_67_ ._error-inner._form_error{margin-bottom:5px;text-align:left}#_form_67_ ._button-wrapper ._error-inner._form_error{position:static}#_form_67_ ._error-inner._no_arrow{margin-bottom:10px}#_form_67_ ._error-arrow{position:absolute;width:0;height:0}#_form_67_ ._error-html{margin-bottom:10px}.pika-single{z-index:10000001 !important}#_form_67_ input[type=\"text\"].datetime_date{width:69%;display:inline}#_form_67_ select.datetime_time{width:29%;display:inline;height:32px}#_form_67_ input[type=\"date\"].datetime_date{width:69%;display:inline-flex}#_form_67_ input[type=\"time\"].datetime_time{width:29%;display:inline-flex}@media (min-width:320px) and (max-width:667px){::-webkit-scrollbar{display:none}#_form_67_{margin:0;width:100%;min-width:100%;max-width:100%;box-sizing:border-box}#_form_67_ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:1em}#_form_67_ ._form-content{margin:0;width:100%}#_form_67_ ._form-inner{display:block;min-width:100%}#_form_67_ ._form-title,#_form_67_ ._inline-style{margin-top:0;margin-right:0;margin-left:0}#_form_67_ ._form-title{font-size:1.2em}#_form_67_ ._form_element{margin:0 0 20px;padding:0;width:100%}#_form_67_ ._form-element,#_form_67_ ._inline-style,#_form_67_ input[type=\"text\"],#_form_67_ label,#_form_67_ p,#_form_67_ textarea:not(.g-recaptcha-response){float:none;display:block;width:100%}#_form_67_ ._row._checkbox-radio label{display:inline}#_form_67_ ._row,#_form_67_ p,#_form_67_ label{margin-bottom:0.7em;width:100%}#_form_67_ ._row input[type=\"checkbox\"],#_form_67_ ._row input[type=\"radio\"]{margin:0 !important;vertical-align:middle !important}#_form_67_ ._row input[type=\"checkbox\"]+span label{display:inline}#_form_67_ ._row span label{margin:0 !important;width:initial !important;vertical-align:middle !important}#_form_67_ ._form-image{max-width:100%;height:auto !important}#_form_67_ input[type=\"text\"]{padding-left:10px;padding-right:10px;font-size:16px;line-height:1.3em;-webkit-appearance:none}#_form_67_ input[type=\"radio\"],#_form_67_ input[type=\"checkbox\"]{display:inline-block;width:1.3em;height:1.3em;font-size:1em;margin:0 0.3em 0 0;vertical-align:baseline}#_form_67_ button[type=\"submit\"]{padding:20px;font-size:1.5em}#_form_67_ ._inline-style{margin:20px 0 0 !important}}#_form_67_{position:relative;text-align:left;margin:25px auto 0;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background:#FFFFFF !important;border:0px solid #B0B0B0 !important;-moz-border-radius:0px !important;-webkit-border-radius:0px !important;border-radius:0px !important;color:#000000}#_form_67_._inline-form,#_form_67_._inline-form ._form-content{font-family:\"Trebuchet MS\", \"Lucida Grande\", \"Lucida Sans Unicode\", \"Lucida Sans\", Tahoma, sans-serif}#_form_67_._inline-form ._row span,#_form_67_._inline-form ._row label{font-family:\"Trebuchet MS\", \"Lucida Grande\", \"Lucida Sans Unicode\", \"Lucida Sans\", Tahoma, sans-serif;font-size:14px;font-weight:400;line-height:1.6em}#_form_67__inlineform input[type=\"text\"],#_form_67__inlineform input[type=\"date\"],#_form_67__inlineform input[type=\"tel\"],#_form_67__inlineform select,#_form_67__inlineform textarea:not(.g-recaptcha-response){font-family:\"Trebuchet MS\", \"Lucida Grande\", \"Lucida Sans Unicode\", \"Lucida Sans\", Tahoma, sans-serif;font-size:14px;font-weight:400;font-color:#000000;line-height:1.6em}#_form_67_._inline-form ._html-code *:not(h1, h2, h3, h4, h5, h6),#_form_67_._inline-form ._form-thank-you{font-family:\"Trebuchet MS\", \"Lucida Grande\", \"Lucida Sans Unicode\", \"Lucida Sans\", Tahoma, sans-serif}#_form_67_._inline-form ._form-label,#_form_67_._inline-form ._form-emailidentifier,#_form_67_._inline-form ._form-checkbox-option-label{font-family:\"Trebuchet MS\", \"Lucida Grande\", \"Lucida Sans Unicode\", \"Lucida Sans\", Tahoma, sans-serif;font-size:14px;font-weight:700;line-height:1.6em}#_form_67_._inline-form ._submit{margin-top:12px;font-family:\"Trebuchet MS\", \"Lucida Grande\", \"Lucida Sans Unicode\", \"Lucida Sans\", Tahoma, sans-serif}#_form_67_._inline-form ._html-code h1,#_form_67_._inline-form ._html-code h2,#_form_67_._inline-form ._html-code h3,#_form_67_._inline-form ._html-code h4,#_form_67_._inline-form ._html-code h5,#_form_67_._inline-form ._html-code h6,#_form_67_._inline-form ._form-title{font-size:22px;line-height:normal;font-weight:600;margin-bottom:0}#_form_67_._inline-form ._form-branding{font-family:\"IBM Plex Sans\", Helvetica, sans-serif;font-size:13px;font-weight:100;font-style:normal;text-decoration:none}#_form_67_:before,#_form_67_:after{content:\" \";display:table}#_form_67_:after{clear:both}#_form_67_._inline-style{width:auto;display:inline-block}#_form_67_._inline-style input[type=\"text\"],#_form_67_._inline-style input[type=\"date\"]{padding:10px 12px}#_form_67_._inline-style button._inline-style{position:relative;top:27px}#_form_67_._inline-style p{margin:0}#_form_67_._inline-style ._button-wrapper{position:relative;margin:27px 12.5px 0 20px}#_form_67_ ._form-thank-you{position:relative;left:0;right:0;text-align:center;font-size:18px}#_form_67_ ._form-pc-confirmation ._submit{margin-top:16px}@media (min-width:320px) and (max-width:667px){#_form_67_._inline-form._inline-style ._inline-style._button-wrapper{margin-top:20px !important;margin-left:0 !important}}#_form_67_ .iti.iti--allow-dropdown.iti--separate-dial-code{width:100%}#_form_67_ .iti input{width:100%;height:32px;border:#979797 1px solid;border-radius:4px}#_form_67_ .iti--separate-dial-code .iti__selected-flag{background-color:#FFFFFF;border-radius:4px}#_form_67_ .iti--separate-dial-code .iti__selected-flag:hover{background-color:rgba(0, 0, 0, 0.05)}#_form_67_ .iti__country-list{border-radius:4px;margin-top:4px;min-width:460px}#_form_67_ .iti__country-list--dropup{margin-bottom:4px}#_form_67_ .phone-error-hidden{display:none}#_form_67_ .phone-error{color:#E40E49}#_form_67_ .phone-input-error{border:1px solid #E40E49 !important}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field fieldset{margin:0;margin-bottom:1.1428571429em;border:none;padding:0}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field fieldset:last-child{margin-bottom:0}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field legend{margin-bottom:1.1428571429em}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field label{display:flex;align-items:flex-start;justify-content:flex-start;margin-bottom:0.8571428571em}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field label:last-child{margin-bottom:0}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field input{margin:0;margin-right:8px}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label{display:block;font-weight:400;margin-top:-4px}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label-with-description{display:block;font-weight:700;margin-top:-4px}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-description{margin:0;font-size:0.8571428571em}#_form_67_._inline-form ._form-content ._form-list-subscriptions-field ._form-subscriptions-unsubscribe-all-description{line-height:normal;margin-top:-2px}\u003c\/style\u003e\n\u003cform method=\"POST\" action=\"https:\/\/acaia.activehosted.com\/proc.php\" id=\"_form_67_\" class=\"_form _form_67 _inline-form  _dark\" novalidate=\"\" data-styles-version=\"5\"\u003e\n\u003cinput type=\"hidden\" name=\"u\" value=\"67\"\u003e \u003cinput type=\"hidden\" name=\"f\" value=\"67\"\u003e \u003cinput type=\"hidden\" name=\"s\"\u003e \u003cinput type=\"hidden\" name=\"c\" value=\"0\"\u003e \u003cinput type=\"hidden\" name=\"m\" value=\"0\"\u003e \u003cinput type=\"hidden\" name=\"act\" value=\"sub\"\u003e \u003cinput type=\"hidden\" name=\"v\" value=\"2\"\u003e \u003cinput type=\"hidden\" name=\"or\" value=\"5876cf8614191eb87520c5de7999f64b\"\u003e\n\u003cdiv class=\"_form-content\"\u003e\n\u003cdiv class=\"_form_element _x34533216 _full_width _clear\"\u003e\n\u003cdiv class=\"_form-title\"\u003eSubscribe for Lunar Beige White and Space Gray In-Stock Alerts\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x33798132 _full_width _clear\"\u003e\n\u003cdiv class=\"_html-code\"\u003e\n\u003cp\u003eSign up to be notified of when our latest espresso scale colorways are available to purchase\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x05446410 _full_width\"\u003e\n\u003clabel for=\"fullname\" class=\"_form-label\"\u003e Full Name \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cinput type=\"text\" id=\"fullname\" name=\"fullname\" placeholder=\"Type your name\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x15625398 _full_width\"\u003e\n\u003clabel for=\"email\" class=\"_form-label\"\u003e Email* \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cinput type=\"text\" id=\"email\" name=\"email\" placeholder=\"Type your email\" required=\"\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_button-wrapper _full_width\"\u003e\u003cbutton id=\"_form_67_submit\" class=\"_submit\" type=\"submit\"\u003e Submit \u003c\/button\u003e\u003c\/div\u003e\n\u003cdiv class=\"_clear-element\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form-thank-you\" style=\"display: none;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/form\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eDesigned for brewing espresso with consistent precision, the reimagined Lunar is fast, responsive, and accurate. This scale is built with water-resistant anodized aluminum and Acaia’s own leading industrial weighing technology. It is an essential element for any commercial environment and fits perfectly onto espresso machines.\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eBrew your own way with customizable parameters, a choice of automated brewing modes, and a new Tare Save feature to save the weight of your preferred dosing container. The visual feedback provided by the new Flow-Rate Indicator will also help you monitor your extraction in real time, achieving more consistent shots and allowing you to adjust more accurately for perfect espresso extractions.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eAccessories that are sold separately include the Lunar Weighing Plate, Lunar Base, and the Lunar Carrying Case. Each Lunar scale comes with a heat resistant pad and a 100 g calibration weight. The Lunar includes a 2-year limited manufacturer’s warranty, which also covers water damage.\u003c\/span\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Cool White","offer_id":39725917175854,"sku":"","price":250.0,"currency_code":"USD","in_stock":true},{"title":"Beige White","offer_id":41093236850734,"sku":"","price":250.0,"currency_code":"USD","in_stock":false},{"title":"Black","offer_id":39511821090862,"sku":"","price":250.0,"currency_code":"USD","in_stock":true},{"title":"Silver","offer_id":39511821123630,"sku":"","price":250.0,"currency_code":"USD","in_stock":true},{"title":"Space Gray","offer_id":41093236883502,"sku":"","price":250.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/P_Lunar2021_1500x1000_01_coolwhite_wood.jpg?v=1729137117"},{"product_id":"lunar-heat-resistant-pad","title":"Lunar Heat Resistant Pad","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eDesigned for longer coffee extractions, this heat resistant pad is ideal for pour over brewing using the Acaia Lunar scale. The surface pattern is constructed to maximize protection against the transfer of heat between carafe and scale. The pad also works in tandem with the Lunar Base and can be flipped over to better accommodate the shape of portafilters when weighing doses.\u003c\/span\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Charcoal Black","offer_id":39799202545710,"sku":"AA038","price":23.0,"currency_code":"USD","in_stock":true},{"title":"Smoky Gray","offer_id":39799202578478,"sku":"AA037","price":23.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Lunar-heat-resistant-pad_01.jpg?v=1651653030"},{"product_id":"lunar-carrying-case-1","title":"Lunar Carrying Case","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cspan\u003e Protect your precision scale on the go. Designed exclusively for our Acaia Lunar espresso scale, this case comes with an additional small pocket for holding the 100 g calibration weight and your coffee. It’s a must-have for the coffee enthusiast or barista on the move. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e The minimal and fitted design provides essential protection for your Lunar as you travel and takes up no extra space. This means you can brew a great cup of coffee anywhere while still traveling light. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e Please note that while the case provides protection from other objects, sudden accelerations or shocks may still damage your precision scale. Handle any luggage or bag containing sensitive scales with care. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"p2\"\u003e\u003cimg src=\"https:\/\/s3.amazonaws.com\/web-acaia-static\/static\/img\/2021_img\/product_page_icon\/10.jpg\" style=\"margin: 0px auto; width: 60%; display: block;\" class=\"imgstore\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cstrong\u003eCalibration Reminder\u003c\/strong\u003e\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e Scale calibration changes with variations in local gravity, surface tilt, and atmospheric conditions. Travel means that all three variables must be considered. We recommend allowing the scale to rest out of its case and in the location it will be used before calibrating and using it after travel. \u003c\/span\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":39644665217070,"sku":"AA034","price":48.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/LunarCarryingCase_01.jpg?v=1638951926"},{"product_id":"portafilter-dosing-cup-storage-lid-medium","title":"Portafilter Dosing Cup \u0026 Storage Lid Medium","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cdiv class=\"p-rich_text_section\"\u003e\n\u003cmeta charset=\"UTF-8\"\u003e \u003cspan\u003eDesigned to allow for the quick and easy transfer of coffee between grinder and setup. This stainless steel cup helps minimize waste and promotes a cleaner workflow on bar. Crafted with an anti-static finish and compatible with most portafilter models. \u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan\u003eBring the dosing cup from the brew bar to the world thanks to the removal wooden lid. Carry the ideal dose of coffee with you anywhere. Your favorite cup of coffee is just one pour away!\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"p-rich_text_section\"\u003e\u003cbr\u003e\u003c\/div\u003e","brand":"5aa538984bd8","offers":[{"title":"White","offer_id":40266327785518,"sku":"AA042","price":45.0,"currency_code":"USD","in_stock":true},{"title":"Black","offer_id":40266327818286,"sku":"AA043","price":45.0,"currency_code":"USD","in_stock":true},{"title":"Stainless Steel","offer_id":40266327851054,"sku":"AA046","price":45.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Dosing-Cup-M_01.jpg?v=1681900828"},{"product_id":"portafilter-dosing-cup-storage-lid-small","title":"Portafilter Dosing Cup \u0026 Storage Lid Small","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cdiv class=\"p-rich_text_section\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"p-rich_text_section\"\u003e\n\u003cspan\u003eDesigned to allow for the quick and easy transfer of coffee between grinder and setup. This stainless steel cup helps minimize waste and promotes a cleaner workflow on bar. Crafted with an anti-static finish and compatible with most portafilter models.\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan\u003eBring the dosing cup from the brew bar to the world thanks to the removal wooden lid. Carry the ideal dose of coffee with you anywhere. Your favorite cup of coffee is just one pour away!\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"p-rich_text_section\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e","brand":"5aa538984bd8","offers":[{"title":"White","offer_id":40266328703022,"sku":"AA044","price":41.0,"currency_code":"USD","in_stock":true},{"title":"Black","offer_id":40266328735790,"sku":"AA045","price":41.0,"currency_code":"USD","in_stock":true},{"title":"Stainless Steel","offer_id":40266328768558,"sku":"AA047","price":41.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/Dosing-Cup-S_01.jpg?v=1680072381"},{"product_id":"acaia-purr-over-set","title":"Pour-over Set","description":"\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eAre you feline the weight of the world on your shoulders? Take your coffee swag game to the next level with these adorable cat baristas. Iron or sew onto your favorite jean jacket, beanie hat, or backpack. You'll be the cat's pajamas wearing this patch set.\u003c\/span\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":40303915466798,"sku":"SW038","price":15.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/products\/PatchSet_1500x1000px-1.jpg?v=1681441322"},{"product_id":"if-i-fits-i-brews-beanie","title":"“If I Fits I Brews” Beanie","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eThe \"If I Fits I Brews\" beanie will keep you so purr-fectly warm that it's almost as good as a cat sitting on your head. An excellent addition to your fall or winter accessory closet, you'll be showing off your love of cats in a fashionable and practical way.\u003c\/p\u003e\n\u003cp\u003eAcaia does not recommend using our scales to weigh cats if they are larger and\/or heavier than your scale's capacity allows. Doing so will risk permanent damage to your scale's load beam.\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003eIllustration by Acaia's talented illustrator Yo Yo LASTNAME. Beanies were customized by \u003ca style=\"text-decoration: underline;\" data-link-card=\"true\" href=\"https:\/\/residencyapparel.com\/\" target=\"_blank\"\u003eResidency Apparel\u003c\/a\u003e, a \"non-profit social enterprise that produces custom, branded merchandise and apparel to help women transition into permanent housing.\" The Acaia \"If I Fits I Brews\" beanie is available in black and copper.\u003cbr\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Black","offer_id":40442255015982,"sku":"SW039","price":25.0,"currency_code":"USD","in_stock":true},{"title":"Copper","offer_id":40442255048750,"sku":"SW040","price":25.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/Beanie_01.jpg?v=1695783549"},{"product_id":"acaia-orion-nano","title":"Orion Nano","description":"The Orion Nano is designed to achieve precise and customizable coffee bean dosing. An ideal tool for cupping sessions, seamless on-demand dosing in cafes, and effortless coffee blending. All through its innovative connectivity feature, Orion's Belt.","brand":"5aa538984bd8","offers":[{"title":"Space Gray","offer_id":40483146170414,"sku":"AON301","price":750.0,"currency_code":"USD","in_stock":false},{"title":"Beige White","offer_id":40834859106350,"sku":"AON302","price":850.0,"currency_code":"USD","in_stock":false},{"title":"Black","offer_id":40834859139118,"sku":"AON303","price":850.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/P_OrbitNano_1500x1000_01.jpg?v=1734592141"},{"product_id":"acaia-orbit-multi-purpose-hopper","title":"Orbit Multi-Purpose Hopper","description":"\u003cstyle\u003e@import url(https:\/\/fonts.bunny.net\/css?family=ibm-plex-sans:400,600);\u003c\/style\u003e\n\u003cstyle\u003e\n #_form_50_ { font-size:14px; line-height:1.6; font-family:arial, helvetica, sans-serif; margin:0; }\n #_form_50_ * { outline:0; }\n ._form_hide { display:none; visibility:hidden; }\n ._form_show { display:block; visibility:visible; }\n #_form_50_._form-top { top:0; }\n #_form_50_._form-bottom { bottom:0; }\n #_form_50_._form-left { left:0; }\n #_form_50_._form-right { right:0; }\n #_form_50_ input[type=\"text\"],#_form_50_ input[type=\"tel\"],#_form_50_ input[type=\"date\"],#_form_50_ textarea { padding:6px; height:auto; border:#979797 1px solid; border-radius:4px; color:#000 !important; font-size:14px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; }\n #_form_50_ textarea { resize:none; }\n #_form_50_ ._submit { -webkit-appearance:none; cursor:pointer; font-family:arial, sans-serif; font-size:14px; text-align:center; background:#5cad8e !important; border:0 !important; -moz-border-radius:1px !important; -webkit-border-radius:1px !important; border-radius:1px !important; color:#fff !important; padding:10px !important; }\n #_form_50_ ._submit:disabled { cursor:not-allowed; opacity:0.4; }\n #_form_50_ ._submit.processing { position:relative; }\n #_form_50_ ._submit.processing::before { content:''; width:1em; height:1em; position:absolute; z-index:1; top:50%; left:50%; border:double 3px transparent; border-radius:50%; background-image:linear-gradient(#5cad8e, #5cad8e), conic-gradient(#5cad8e, #fff); background-origin:border-box; background-clip:content-box, border-box; animation:1200ms ease 0s infinite normal none running _spin; }\n #_form_50_ ._submit.processing::after { content:''; position:absolute; top:0; bottom:0; left:0; right:0; background:#5cad8e !important; border:0 !important; -moz-border-radius:1px !important; -webkit-border-radius:1px !important; border-radius:1px !important; color:#fff !important; padding:10px !important; }\n @keyframes _spin { 0% { transform:translate(-50%, -50%) rotate(90deg); }\n 100% { transform:translate(-50%, -50%) rotate(450deg); }\n }\n #_form_50_ ._close-icon { cursor:pointer; background-image:url('https:\/\/d226aj4ao1t61q.cloudfront.net\/esfkyjh1u_forms-close-dark.png'); background-repeat:no-repeat; background-size:14.2px 14.2px; position:absolute; display:block; top:11px; right:9px; overflow:hidden; width:16.2px; height:16.2px; }\n #_form_50_ ._close-icon:before { position:relative; }\n #_form_50_ ._form-body { margin-bottom:30px; }\n #_form_50_ ._form-image-left { width:150px; float:left; }\n #_form_50_ ._form-content-right { margin-left:164px; }\n #_form_50_ ._form-branding { color:#fff; font-size:10px; clear:both; text-align:left; margin-top:30px; font-weight:100; }\n #_form_50_ ._form-branding ._logo { display:block; width:130px; height:14px; margin-top:6px; background-image:url('https:\/\/d226aj4ao1t61q.cloudfront.net\/hh9ujqgv5_aclogo_li.png'); background-size:130px auto; background-repeat:no-repeat; }\n #_form_50_ .form-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); border:0; }\n #_form_50_ ._form-label,#_form_50_ ._form_element ._form-label { font-weight:bold; margin-bottom:5px; display:block; }\n #_form_50_._dark ._form-branding { color:#333; }\n #_form_50_._dark ._form-branding ._logo { background-image:url('https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png'); }\n #_form_50_ ._form_element { position:relative; margin-bottom:10px; font-size:0; max-width:100%; }\n #_form_50_ ._form_element * { font-size:14px; }\n #_form_50_ ._form_element._clear { clear:both; width:100%; float:none; }\n #_form_50_ ._form_element._clear:after { clear:left; }\n #_form_50_ ._form_element input[type=\"text\"],#_form_50_ ._form_element input[type=\"date\"],#_form_50_ ._form_element select,#_form_50_ ._form_element textarea:not(.g-recaptcha-response) { display:block; width:100%; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-family:inherit; }\n #_form_50_ ._field-wrapper { position:relative; }\n #_form_50_ ._inline-style { float:left; }\n #_form_50_ ._inline-style input[type=\"text\"] { width:150px; }\n #_form_50_ ._inline-style:not(._clear) + ._inline-style:not(._clear) { margin-left:20px; }\n #_form_50_ ._form_element img._form-image { max-width:100%; }\n #_form_50_ ._form_element ._form-fieldset { border:0; padding:0.01em 0 0 0; margin:0; min-width:0; }\n #_form_50_ ._clear-element { clear:left; }\n #_form_50_ ._full_width { width:100%; }\n #_form_50_ ._form_full_field { display:block; width:100%; margin-bottom:10px; }\n #_form_50_ input[type=\"text\"]._has_error,#_form_50_ textarea._has_error { border:#f37c7b 1px solid; }\n #_form_50_ input[type=\"checkbox\"]._has_error { outline:#f37c7b 1px solid; }\n #_form_50_ ._error { display:block; position:absolute; font-size:14px; z-index:10000001; }\n #_form_50_ ._error._above { padding-bottom:4px; bottom:39px; right:0; }\n #_form_50_ ._error._below { padding-top:8px; top:100%; right:0; }\n #_form_50_ ._error._above ._error-arrow { bottom:-4px; right:15px; border-left:8px solid transparent; border-right:8px solid transparent; border-top:8px solid #fdd; }\n #_form_50_ ._error._below ._error-arrow { top:0; right:15px; border-left:8px solid transparent; border-right:8px solid transparent; border-bottom:8px solid #fdd; }\n #_form_50_ ._error-inner { padding:12px 12px 12px 36px; background-color:#fdd; background-image:url(\"data:image\/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM9 3V9H7V3H9ZM9 13V11H7V13H9Z' fill='%23CA0000'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:12px center; font-size:14px; font-family:arial, sans-serif; font-weight:600; line-height:16px; color:#000; text-align:center; text-decoration:none; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; box-shadow:0px 1px 4px rgba(31, 33, 41, 0.298295); }\n #_form_50_ ._error-inner._form_error { margin-bottom:5px; text-align:left; }\n #_form_50_ ._button-wrapper ._error-inner._form_error { position:static; }\n #_form_50_ ._error-inner._no_arrow { margin-bottom:10px; }\n #_form_50_ ._error-arrow { position:absolute; width:0; height:0; }\n #_form_50_ ._error-html { margin-bottom:10px; }\n .pika-single { z-index:10000001 !important; }\n #_form_50_ input[type=\"text\"].datetime_date { width:69%; display:inline; }\n #_form_50_ select.datetime_time { width:29%; display:inline; height:32px; }\n #_form_50_ input[type=\"date\"].datetime_date { width:69%; display:inline-flex; }\n #_form_50_ input[type=\"time\"].datetime_time { width:29%; display:inline-flex; }\n @media all and (min-width:320px) and (max-width:667px) { ::-webkit-scrollbar { display:none; }\n #_form_50_ { margin:0; width:100%; min-width:100%; max-width:100%; box-sizing:border-box; }\n #_form_50_ * { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-size:1em; }\n #_form_50_ ._form-content { margin:0; width:100%; }\n #_form_50_ ._form-inner { display:block; min-width:100%; }\n #_form_50_ ._form-title,#_form_50_ ._inline-style { margin-top:0; margin-right:0; margin-left:0; }\n #_form_50_ ._form-title { font-size:1.2em; }\n #_form_50_ ._form_element { margin:0 0 20px; padding:0; width:100%; }\n #_form_50_ ._form-element,#_form_50_ ._inline-style,#_form_50_ input[type=\"text\"],#_form_50_ label,#_form_50_ p,#_form_50_ textarea:not(.g-recaptcha-response) { float:none; display:block; width:100%; }\n #_form_50_ ._row._checkbox-radio label { display:inline; }\n #_form_50_ ._row,#_form_50_ p,#_form_50_ label { margin-bottom:0.7em; width:100%; }\n #_form_50_ ._row input[type=\"checkbox\"],#_form_50_ ._row input[type=\"radio\"] { margin:0 !important; vertical-align:middle !important; }\n #_form_50_ ._row input[type=\"checkbox\"] + span label { display:inline; }\n #_form_50_ ._row span label { margin:0 !important; width:initial !important; vertical-align:middle !important; }\n #_form_50_ ._form-image { max-width:100%; height:auto !important; }\n #_form_50_ input[type=\"text\"] { padding-left:10px; padding-right:10px; font-size:16px; line-height:1.3em; -webkit-appearance:none; }\n #_form_50_ input[type=\"radio\"],#_form_50_ input[type=\"checkbox\"] { display:inline-block; width:1.3em; height:1.3em; font-size:1em; margin:0 0.3em 0 0; vertical-align:baseline; }\n #_form_50_ button[type=\"submit\"] { padding:20px; font-size:1.5em; }\n #_form_50_ ._inline-style { margin:20px 0 0 !important; }\n }\n #_form_50_ { position:relative; text-align:left; margin:25px auto 0; padding-top:20px; padding-right:20px; padding-bottom:20px; padding-left:20px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; *zoom:1; background:#fff !important; border:0px solid #b0b0b0 !important; -moz-border-radius:0px !important; -webkit-border-radius:0px !important; border-radius:0px !important; color:#000 !important; }\n #_form_50_._inline-form,#_form_50_._inline-form ._form-content,#_form_50_._inline-form input,#_form_50_._inline-form ._submit { font-family:\"IBM Plex Sans\", Helvetica, sans-serif; }\n #_form_50_ ._form-title { font-size:22px; line-height:22px; font-weight:600; margin-bottom:0; }\n #_form_50_:before,#_form_50_:after { content:\" \"; display:table; }\n #_form_50_:after { clear:both; }\n #_form_50_._inline-style { width:auto; display:inline-block; }\n #_form_50_._inline-style input[type=\"text\"],#_form_50_._inline-style input[type=\"date\"] { padding:10px 12px; }\n #_form_50_._inline-style button._inline-style { position:relative; top:27px; }\n #_form_50_._inline-style p { margin:0; }\n #_form_50_._inline-style ._button-wrapper { position:relative; margin:27px 12.5px 0 20px; }\n #_form_50_ ._form-thank-you { position:relative; left:0; right:0; text-align:center; font-size:18px; }\n @media all and (min-width:320px) and (max-width:667px) { #_form_50_._inline-form._inline-style ._inline-style._button-wrapper { margin-top:20px !important; margin-left:0 !important; }\n }\n #_form_50_ .iti.iti--allow-dropdown.iti--separate-dial-code { width:100%; }\n #_form_50_ .iti input { width:100%; height:32px; border:#979797 1px solid; border-radius:4px; }\n #_form_50_ .iti--separate-dial-code .iti__selected-flag { background-color:#fff; border-radius:4px; }\n #_form_50_ .iti--separate-dial-code .iti__selected-flag:hover { background-color:rgba(0, 0, 0, 0.05); }\n #_form_50_ .iti__country-list { border-radius:4px; margin-top:4px; min-width:460px; }\n #_form_50_ .iti__country-list--dropup { margin-bottom:4px; }\n #_form_50_ .phone-error-hidden { display:none; }\n #_form_50_ .phone-error { color:#e40e49; }\n #_form_50_ .phone-input-error { border:1px solid #e40e49 !important; }\n\n\u003c\/style\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\u003cform method=\"POST\" action=\"https:\/\/acaia.activehosted.com\/proc.php\" id=\"_form_50_\" class=\"_form _form_50 _inline-form _inline-style _dark\" novalidate=\"\" data-styles-version=\"4\"\u003e\n\u003cinput type=\"hidden\" name=\"u\" value=\"50\"\u003e \u003cinput type=\"hidden\" name=\"f\" value=\"50\"\u003e \u003cinput type=\"hidden\" name=\"s\"\u003e \u003cinput type=\"hidden\" name=\"c\" value=\"0\"\u003e \u003cinput type=\"hidden\" name=\"m\" value=\"0\"\u003e \u003cinput type=\"hidden\" name=\"act\" value=\"sub\"\u003e \u003cinput type=\"hidden\" name=\"v\" value=\"2\"\u003e \u003cinput type=\"hidden\" name=\"or\" value=\"1ab569b1cc1dfee550f681e27786abf6\"\u003e\n\u003cdiv class=\"_form-content\"\u003e\n\u003cdiv class=\"_form_element _x50006849 _inline-style _clear\"\u003e\n\u003cdiv class=\"_form-title\"\u003e🚨 Sign Up for Stock Alerts\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x02201800 _inline-style _clear\"\u003e\n\u003cdiv class=\"_html-code\"\u003e\n\u003cp\u003eIf the product is showing Out of Stock, you can sign up here to be notified when we add new stock.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x09224981 _inline-style\"\u003e\n\u003clabel for=\"fullname\" class=\"_form-label\"\u003e Full Name \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cinput type=\"text\" id=\"fullname\" name=\"fullname\" placeholder=\"Type your name\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x17690196 _inline-style\"\u003e\n\u003clabel for=\"email\" class=\"_form-label\"\u003e Email* \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cinput type=\"text\" id=\"email\" name=\"email\" placeholder=\"Type your email\" required=\"\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_button-wrapper _inline-style\"\u003e\u003cbutton id=\"_form_50_submit\" class=\"_submit\" type=\"submit\"\u003e Submit \u003c\/button\u003e\u003c\/div\u003e\n\u003cdiv class=\"_clear-element\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form-thank-you\" style=\"display: none;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/form\u003e\u003c\/div\u003e\n\u003cp\u003e\u003cscript type=\"text\/javascript\"\u003e\nwindow.cfields = [];\nwindow._show_thank_you = function(id, message, trackcmp_url, email) {\n    var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you');\n    form.querySelector('._form-content').style.display = 'none';\n    thank_you.innerHTML = message;\n    thank_you.style.display = 'block';\n    const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n    var visitorObject = window[vgoAlias];\n    if (email \u0026\u0026 typeof visitorObject !== 'undefined') {\n        visitorObject('setEmail', email);\n        visitorObject('update');\n    } else if (typeof(trackcmp_url) != 'undefined' \u0026\u0026 trackcmp_url) {\n        \/\/ Site tracking URL to use after inline form submission.\n        _load_script(trackcmp_url);\n    }\n    if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._show_error = function(id, message, html) {\n    var form = document.getElementById('_form_' + id + '_'),\n        err = document.createElement('div'),\n        button = form.querySelector('button'),\n        old_error = form.querySelector('._form_error');\n    if (old_error) old_error.parentNode.removeChild(old_error);\n    err.innerHTML = message;\n    err.className = '_error-inner _form_error _no_arrow';\n    var wrapper = document.createElement('div');\n    wrapper.className = '_form-inner';\n    wrapper.appendChild(err);\n    button.parentNode.insertBefore(wrapper, button);\n    var submitButton = form.querySelector('[id^=\"_form\"][id$=\"_submit\"]');\n    submitButton.disabled = false;\n    submitButton.classList.remove('processing');\n    if (html) {\n        var div = document.createElement('div');\n        div.className = '_error-html';\n        div.innerHTML = html;\n        err.appendChild(div);\n    }\n};\nwindow._load_script = function(url, callback, isSubmit) {\n    var head = document.querySelector('head'), script = document.createElement('script'), r = false;\n    var submitButton = document.querySelector('#_form_50_submit');\n    script.type = 'text\/javascript';\n    script.charset = 'utf-8';\n    script.src = url;\n    if (callback) {\n        script.onload = script.onreadystatechange = function() {\n            if (!r \u0026\u0026 (!this.readyState || this.readyState == 'complete')) {\n                r = true;\n                callback();\n            }\n        };\n    }\n    script.onerror = function() {\n        if (isSubmit) {\n            if (script.src.length \u003e 10000) {\n                _show_error(\"50\", \"Sorry, your submission failed. Please shorten your responses and try again.\");\n            } else {\n                _show_error(\"50\", \"Sorry, your submission failed. Please try again.\");\n            }\n            submitButton.disabled = false;\n            submitButton.classList.remove('processing');\n        }\n    }\n\n    head.appendChild(script);\n};\n(function() {\n    if (window.location.search.search(\"excludeform\") !== -1) return false;\n    var getCookie = function(name) {\n        var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));\n        return match ? match[2] : null;\n    }\n    var setCookie = function(name, value) {\n        var now = new Date();\n        var time = now.getTime();\n        var expireTime = time + 1000 * 60 * 60 * 24 * 365;\n        now.setTime(expireTime);\n        document.cookie = name + '=' + value + '; expires=' + now + ';path=\/; Secure; SameSite=Lax;';\n    }\n            var addEvent = function(element, event, func) {\n        if (element.addEventListener) {\n            element.addEventListener(event, func);\n        } else {\n            var oldFunc = element['on' + event];\n            element['on' + event] = function() {\n                oldFunc.apply(this, arguments);\n                func.apply(this, arguments);\n            };\n        }\n    }\n    var _removed = false;\n        var form_to_submit = document.getElementById('_form_50_');\n    var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;\n\n    var getUrlParam = function(name) {\n        var params = new URLSearchParams(window.location.search);\n        return params.get(name) || false;\n    };\n\n    var acctDateFormat = \"%B %d, %Y\";\n    var getNormalizedDate = function(date, acctFormat) {\n        var decodedDate = decodeURIComponent(date);\n        if (acctFormat \u0026\u0026 acctFormat.match(\/(%d|%e).*%m\/gi) !== null) {\n            return decodedDate.replace(\/(\\d{2}).*(\\d{2}).*(\\d{4})\/g, '$3-$2-$1');\n        } else if (Date.parse(decodedDate)) {\n            var dateObj = new Date(decodedDate);\n            var year = dateObj.getFullYear();\n            var month = dateObj.getMonth() + 1;\n            var day = dateObj.getDate();\n            return `${year}-${month \u003c 10 ? `0${month}` : month}-${day \u003c 10 ? `0${day}` : day}`;\n        }\n        return false;\n    };\n\n    var getNormalizedTime = function(time) {\n        var hour, minutes;\n        var decodedTime = decodeURIComponent(time);\n        var timeParts = Array.from(decodedTime.matchAll(\/(\\d{1,2}):(\\d{1,2})\\W*([AaPp][Mm])?\/gm))[0];\n        if (timeParts[3]) { \/\/ 12 hour format\n            var isPM = timeParts[3].toLowerCase() === 'pm';\n            if (isPM) {\n                hour = parseInt(timeParts[1]) === 12 ? '12' : `${parseInt(timeParts[1]) + 12}`;\n            } else {\n                hour = parseInt(timeParts[1]) === 12 ? '0' : timeParts[1];\n            }\n        } else { \/\/ 24 hour format\n            hour = timeParts[1];\n        }\n        var normalizedHour = parseInt(hour) \u003c 10 ? `0${parseInt(hour)}` : hour;\n        var minutes = timeParts[2];\n        return `${normalizedHour}:${minutes}`;\n    };\n\n    for (var i = 0; i \u003c allInputs.length; i++) {\n        var regexStr = \"field\\\\[(\\\\d+)\\\\]\";\n        var results = new RegExp(regexStr).exec(allInputs[i].name);\n        if (results != undefined) {\n            allInputs[i].dataset.name = allInputs[i].name.match(\/\\[time\\]$\/)\n                ? `${window.cfields[results[1]]}_time`\n                : window.cfields[results[1]];\n        } else {\n            allInputs[i].dataset.name = allInputs[i].name;\n        }\n        var fieldVal = getUrlParam(allInputs[i].dataset.name);\n\n        if (fieldVal) {\n            if (allInputs[i].dataset.autofill === \"false\") {\n                continue;\n            }\n            if (allInputs[i].type == \"radio\" || allInputs[i].type == \"checkbox\") {\n                if (allInputs[i].value == fieldVal) {\n                    allInputs[i].checked = true;\n                }\n            } else if (allInputs[i].type == \"date\") {\n                allInputs[i].value = getNormalizedDate(fieldVal, acctDateFormat);\n            } else if (allInputs[i].type == \"time\") {\n                allInputs[i].value = getNormalizedTime(fieldVal);\n            } else {\n                allInputs[i].value = fieldVal;\n            }\n        }\n    }\n\n    var remove_tooltips = function() {\n        for (var i = 0; i \u003c tooltips.length; i++) {\n            tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n        }\n        tooltips = [];\n    };\n    var remove_tooltip = function(elem) {\n        for (var i = 0; i \u003c tooltips.length; i++) {\n            if (tooltips[i].elem === elem) {\n                tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n                tooltips.splice(i, 1);\n                return;\n            }\n        }\n    };\n    var create_tooltip = function(elem, text) {\n        var tooltip = document.createElement('div'),\n            arrow = document.createElement('div'),\n            inner = document.createElement('div'), new_tooltip = {};\n        if (elem.type != 'radio' \u0026\u0026 elem.type != 'checkbox') {\n            tooltip.className = '_error';\n            arrow.className = '_error-arrow';\n            inner.className = '_error-inner';\n            inner.innerHTML = text;\n            tooltip.appendChild(arrow);\n            tooltip.appendChild(inner);\n            elem.parentNode.appendChild(tooltip);\n        } else {\n            tooltip.className = '_error-inner _no_arrow';\n            tooltip.innerHTML = text;\n            elem.parentNode.insertBefore(tooltip, elem);\n            new_tooltip.no_arrow = true;\n        }\n        new_tooltip.tip = tooltip;\n        new_tooltip.elem = elem;\n        tooltips.push(new_tooltip);\n        return new_tooltip;\n    };\n    var resize_tooltip = function(tooltip) {\n        var rect = tooltip.elem.getBoundingClientRect();\n        var doc = document.documentElement,\n            scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));\n        if (scrollPosition \u003c 40) {\n            tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _below';\n        } else {\n            tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _above';\n        }\n    };\n    var resize_tooltips = function() {\n        if (_removed) return;\n        for (var i = 0; i \u003c tooltips.length; i++) {\n            if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);\n        }\n    };\n    var validate_field = function(elem, remove) {\n        var tooltip = null, value = elem.value, no_error = true;\n        remove ? remove_tooltip(elem) : false;\n        if (elem.type != 'checkbox') elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\n        if (elem.getAttribute('required') !== null) {\n            if (elem.type == 'radio' || (elem.type == 'checkbox' \u0026\u0026 \/any\/.test(elem.className))) {\n                var elems = form_to_submit.elements[elem.name];\n                if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length \u003c= 1) {\n                    no_error = elem.checked;\n                }\n                else {\n                    no_error = false;\n                    for (var i = 0; i \u003c elems.length; i++) {\n                        if (elems[i].checked) no_error = true;\n                    }\n                }\n                if (!no_error) {\n                    tooltip = create_tooltip(elem, \"Please select an option.\");\n                }\n            } else if (elem.type =='checkbox') {\n                var elems = form_to_submit.elements[elem.name], found = false, err = [];\n                no_error = true;\n                for (var i = 0; i \u003c elems.length; i++) {\n                    if (elems[i].getAttribute('required') === null) continue;\n                    if (!found \u0026\u0026 elems[i] !== elem) return true;\n                    found = true;\n                    elems[i].className = elems[i].className.replace(\/ ?_has_error ?\/g, '');\n                    if (!elems[i].checked) {\n                        no_error = false;\n                        elems[i].className = elems[i].className + ' _has_error';\n                        err.push(\"Checking %s is required\".replace(\"%s\", elems[i].value));\n                    }\n                }\n                if (!no_error) {\n                    tooltip = create_tooltip(elem, err.join('\u003cbr\/\u003e'));\n                }\n            } else if (elem.tagName == 'SELECT') {\n                var selected = true;\n                if (elem.multiple) {\n                    selected = false;\n                    for (var i = 0; i \u003c elem.options.length; i++) {\n                        if (elem.options[i].selected) {\n                            selected = true;\n                            break;\n                        }\n                    }\n                } else {\n                    for (var i = 0; i \u003c elem.options.length; i++) {\n                        if (elem.options[i].selected\n                            \u0026\u0026 (!elem.options[i].value\n                            || (elem.options[i].value.match(\/\\n\/g)))\n                        ) {\n                            selected = false;\n                        }\n                    }\n                }\n                if (!selected) {\n                    elem.className = elem.className + ' _has_error';\n                    no_error = false;\n                    tooltip = create_tooltip(elem, \"Please select an option.\");\n                }\n            } else if (value === undefined || value === null || value === '') {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"This field is required.\");\n            }\n        }\n        if (no_error \u0026\u0026 (elem.id == 'field[]' || elem.id == 'ca[11][v]')) {\n            if (elem.className.includes('phone-input-error')) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n            }\n        }\n        if (no_error \u0026\u0026 elem.name == 'email') {\n            if (!value.match(\/^[\\+_a-z0-9-'\u0026=]+(\\.[\\+_a-z0-9-']+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$\/i)) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Enter a valid email address.\");\n            }\n        }\n        if (no_error \u0026\u0026 \/date_field\/.test(elem.className)) {\n            if (!value.match(\/^\\d\\d\\d\\d-\\d\\d-\\d\\d$\/)) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Enter a valid date.\");\n            }\n        }\n        tooltip ? resize_tooltip(tooltip) : false;\n        return no_error;\n    };\n    var needs_validate = function(el) {\n        if(el.getAttribute('required') !== null){\n            return true\n        }\n        if(el.name === 'email' \u0026\u0026 el.value !== \"\"){\n            return true\n        }\n\n        if((el.id == 'field[]' || el.id == 'ca[11][v]') \u0026\u0026 el.className.includes('phone-input-error')){\n            return true\n        }\n\n        return false\n    };\n    var validate_form = function(e) {\n        var err = form_to_submit.querySelector('._form_error'), no_error = true;\n        if (!submitted) {\n            submitted = true;\n            for (var i = 0, len = allInputs.length; i \u003c len; i++) {\n                var input = allInputs[i];\n                if (needs_validate(input)) {\n                    if (input.type == 'tel') {\n                        addEvent(input, 'blur', function() {\n                            this.value = this.value.trim();\n                            validate_field(this, true);\n                        });\n                    }\n                    if (input.type == 'text' || input.type == 'number' || input.type == 'time') {\n                        addEvent(input, 'blur', function() {\n                            this.value = this.value.trim();\n                            validate_field(this, true);\n                        });\n                        addEvent(input, 'input', function() {\n                            validate_field(this, true);\n                        });\n                    } else if (input.type == 'radio' || input.type == 'checkbox') {\n                        (function(el) {\n                            var radios = form_to_submit.elements[el.name];\n                            for (var i = 0; i \u003c radios.length; i++) {\n                                addEvent(radios[i], 'click', function() {\n                                    validate_field(el, true);\n                                });\n                            }\n                        })(input);\n                    } else if (input.tagName == 'SELECT') {\n                        addEvent(input, 'change', function() {\n                            validate_field(this, true);\n                        });\n                    } else if (input.type == 'textarea'){\n                        addEvent(input, 'input', function() {\n                            validate_field(this, true);\n                        });\n                    }\n                }\n            }\n        }\n        remove_tooltips();\n        for (var i = 0, len = allInputs.length; i \u003c len; i++) {\n            var elem = allInputs[i];\n            if (needs_validate(elem)) {\n                if (elem.tagName.toLowerCase() !== \"select\") {\n                    elem.value = elem.value.trim();\n                }\n                validate_field(elem) ? true : no_error = false;\n            }\n        }\n        if (!no_error \u0026\u0026 e) {\n            e.preventDefault();\n        }\n        resize_tooltips();\n        return no_error;\n    };\n    addEvent(window, 'resize', resize_tooltips);\n    addEvent(window, 'scroll', resize_tooltips);\n\n    var hidePhoneInputError = function(inputId) {\n        var errorMessage =  document.getElementById(\"error-msg-\" + inputId);\n        var input = document.getElementById(inputId);\n        errorMessage.classList.remove(\"phone-error\");\n        errorMessage.classList.add(\"phone-error-hidden\");\n        input.classList.remove(\"phone-input-error\");\n    };\n\n    var initializePhoneInput = function(input, defaultCountry) {\n        return window.intlTelInput(input, {\n            utilsScript: \"https:\/\/unpkg.com\/intl-tel-input@17.0.18\/build\/js\/utils.js\",\n            autoHideDialCode: false,\n            separateDialCode: true,\n            initialCountry: defaultCountry,\n            preferredCountries: []\n        });\n    }\n\n    var setPhoneInputEventListeners = function(inputId, input, iti) {\n        input.addEventListener('blur', function() {\n            var errorMessage = document.getElementById(\"error-msg-\" + inputId);\n            if (input.value.trim()) {\n                if (iti.isValidNumber()) {\n                    iti.setNumber(iti.getNumber());\n                    if (errorMessage.classList.contains(\"phone-error\")){\n                        hidePhoneInputError(inputId);\n                    }\n                } else {\n                    showPhoneInputError(inputId)\n                }\n            } else {\n                if (errorMessage.classList.contains(\"phone-error\")){\n                    hidePhoneInputError(inputId);\n                }\n            }\n        });\n\n        input.addEventListener(\"countrychange\", function() {\n            iti.setNumber('');\n        });\n\n        input.addEventListener(\"keydown\", function(e) {\n            var charCode = (e.which) ? e.which : e.keyCode;\n            if (charCode \u003e 31 \u0026\u0026 (charCode \u003c 48 || charCode \u003e 57) \u0026\u0026 charCode !== 8) {\n                e.preventDefault();\n            }\n        });\n    };\n\n    var showPhoneInputError = function(inputId) {\n        var errorMessage =  document.getElementById(\"error-msg-\" + inputId);\n        var input = document.getElementById(inputId);\n        errorMessage.classList.add(\"phone-error\");\n        errorMessage.classList.remove(\"phone-error-hidden\");\n        input.classList.add(\"phone-input-error\");\n    };\n\n\n    var _form_serialize = function(form){if(!form||form.nodeName!==\"FORM\"){return }var i,j,q=[];for(i=0;i\u003cform.elements.length;i++){if(form.elements[i].name===\"\"){continue}switch(form.elements[i].nodeName){case\"INPUT\":switch(form.elements[i].type){case\"tel\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(\" \")+encodeURIComponent(form.elements[i].value));break;case\"text\":case\"number\":case\"date\":case\"time\":case\"hidden\":case\"password\":case\"button\":case\"reset\":case\"submit\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"checkbox\":case\"radio\":if(form.elements[i].checked){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value))}break;case\"file\":break}break;case\"TEXTAREA\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"SELECT\":switch(form.elements[i].type){case\"select-one\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"select-multiple\":for(j=0;j\u003cform.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case\"BUTTON\":switch(form.elements[i].type){case\"reset\":case\"submit\":case\"button\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break}break}}return q.join(\"\u0026\")};\n\n    const formSupportsPost = false;\n    var form_submit = function(e) {\n        e.preventDefault();\n        if (validate_form()) {\n            \/\/ use this trick to get the submit button \u0026 disable it using plain javascript\n            var submitButton = e.target.querySelector('#_form_50_submit');\n            submitButton.disabled = true;\n            submitButton.classList.add('processing');\n                        var serialized = _form_serialize(\n                document.getElementById('_form_50_')\n            ).replace(\/%0A\/g, '\\\\n');\n            var err = form_to_submit.querySelector('._form_error');\n            err ? err.parentNode.removeChild(err) : false;\n            async function submitForm() {\n              var formData = new FormData();\n              const searchParams = new URLSearchParams(serialized);\n              searchParams.forEach((value, key) =\u003e {\n                formData.append(key, value);\n              });\n\n              const response = await fetch('https:\/\/acaia.activehosted.com\/proc.php?jsonp=true', {\n                headers: {\n                  \"Accept\": \"application\/json\"\n                },\n                body: formData,\n                method: \"POST\"\n              });\n              return response.json();\n            }\n\n            if (formSupportsPost) {\n              submitForm().then((data) =\u003e {\n                eval(data.js);\n              });\n            } else {\n              _load_script('https:\/\/acaia.activehosted.com\/proc.php?' + serialized + '\u0026jsonp=true', null, true);\n            }\n        }\n        return false;\n    };\n    addEvent(form_to_submit, 'submit', form_submit);\n})();\n\n\u003c\/script\u003e \u003cbr\u003e\u003c\/p\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cbr\u003e\u003cspan style=\"font-weight: 400;\"\u003eThe Multi-Purpose Hopper serves as both a single-dose hopper and an adapter for larger hoppers. The hopper includes a tight-fitting lid designed to reduce noise and prevent dust from entering during the grinding process. Constructed from anodized aluminum, it offers a range of flexible capacity options, from 250 g to 2 kg. Suitable for both batch grinding and precise grind-by-weight \u003cmeta charset=\"utf-8\"\u003e \u003cspan\u003eapplications\u003c\/span\u003e.\u003c\/span\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":40528091447342,"sku":"AA050","price":100.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/Adapter_01.jpg?v=1701078052"},{"product_id":"acaia-bean-hopper","title":"Bean Hopper","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eExpand your dose with the Acaia Bean Hopper series! Our line of hoppers come in four different sizes and attach directly to any Orion Bean Doser. They also connect to the Acaia Orbit using the dedicated \u003c\/span\u003e\u003cspan style=\"text-decoration: underline; color: #5cad8e;\"\u003e\u003ca style=\"color: #5cad8e; text-decoration: underline;\" class=\"c-link\" data-stringify-link=\"https:\/\/acaia.co\/products\/multi-purpose-hopper\" data-sk=\"tooltip_parent\" href=\"https:\/\/acaia.co\/products\/multi-purpose-hopper\" target=\"_blank\"\u003eMulti-Purpose Hopper\u003c\/a\u003e\u003c\/span\u003e\u003cspan\u003e\u003cspan style=\"text-decoration: underline; color: #5cad8e;\"\u003e. \u003c\/span\u003eThe increased capacity makes each hopper size ideal for batch dosing or grinding. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThe 750 g and 2 kg versions include a hopper gate to assist in the exchange of coffee beans when not fully depleted.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan class=\"c-mrkdwn__br\" data-stringify-type=\"paragraph-break\"\u003e\u003c\/span\u003e\u003cspan\u003eCompatible with:\u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eThe Orion, Orion Mini, and Orion Nano\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eThe Orbit, via the Multi-Purpose Hopper\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"5aa538984bd8","offers":[{"title":"250 G","offer_id":40528104259630,"sku":"AA049","price":50.0,"currency_code":"USD","in_stock":false},{"title":"520 G","offer_id":40528104292398,"sku":"AA051","price":70.0,"currency_code":"USD","in_stock":true},{"title":"750 G","offer_id":40528104325166,"sku":"AA030","price":170.0,"currency_code":"USD","in_stock":false},{"title":"2 KG","offer_id":40528104357934,"sku":"AA048","price":200.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/hopper.jpg?v=1742884843"},{"product_id":"acaia-orbit","title":"Orbit","description":"\u003cp\u003eThe minimal design of the Acaia Orbit is now available in Space Gray, Black and Beige White. The grinder maintains its unique functionality while offering a sleek, modern aesthetic. Acaia tailored our first-ever coffee grinder for single-dosing with automatic cleaning. These features aid in minimizing retention. The Orbit links with the Acaia Lunar for a seamless grind-by-weight experience. Built with Acaia's proprietary technology, it provides advanced RPM control and energy efficiency. Access these functions through the grinder companion app.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eLimit 1 unit per order. We cannot accept orders which ship to a freight forwarding business; those orders will be canceled and refunded.\u003c\/strong\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Black \/ Mazzer 33M","offer_id":40658585845806,"sku":"","price":1600.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ SSP Multi-Purpose","offer_id":40658585878574,"sku":"","price":1700.0,"currency_code":"USD","in_stock":true},{"title":"White \/ Mazzer 33M","offer_id":40658585944110,"sku":"","price":1600.0,"currency_code":"USD","in_stock":true},{"title":"White \/ SSP Multi-Purpose","offer_id":40658585976878,"sku":"","price":1700.0,"currency_code":"USD","in_stock":true},{"title":"Space gray \/ Mazzer 33M","offer_id":40658586042414,"sku":"","price":1450.0,"currency_code":"USD","in_stock":true},{"title":"Space gray \/ SSP Multi-Purpose","offer_id":40658586075182,"sku":"","price":1550.0,"currency_code":"USD","in_stock":true},{"title":"Space gray \/ SSP Lab Sweet V3","offer_id":40658586107950,"sku":"","price":1550.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ SSP Lab Sweet V3","offer_id":41240203952174,"sku":"","price":1700.0,"currency_code":"USD","in_stock":false},{"title":"White \/ SSP Lab Sweet V3","offer_id":41240204083246,"sku":"","price":1700.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/Orbit_1500x1000_03_2d4725b9-bb64-495f-ad7e-22398ca1bea3.jpg?v=1709284107"},{"product_id":"acaia-ion-beam-1","title":"Ion Beam","description":"\u003cp\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e For Mahlkonig EK43 owners, we recommend waiting for the release of a special Ion Beam version that is more powerful and comes with a mounted adapter. Our \u003ca title=\"Acaia News and Updates\" href=\"https:\/\/acaia.co\/blogs\/news\"\u003eBlog\u003c\/a\u003e will have more information available soon.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cform method=\"POST\" action=\"https:\/\/acaia.activehosted.com\/proc.php\" id=\"_form_40_\" class=\"_form _form_40 _inline-form  _dark\" novalidate=\"\"\u003e\n\u003cinput type=\"hidden\" name=\"u\" value=\"40\"\u003e \u003cinput type=\"hidden\" name=\"f\" value=\"40\"\u003e \u003cinput type=\"hidden\" name=\"s\"\u003e \u003cinput type=\"hidden\" name=\"c\" value=\"0\"\u003e \u003cinput type=\"hidden\" name=\"m\" value=\"0\"\u003e \u003cinput type=\"hidden\" name=\"act\" value=\"sub\"\u003e \u003cinput type=\"hidden\" name=\"v\" value=\"2\"\u003e \u003cinput type=\"hidden\" name=\"or\" value=\"0c90834741f24c7ccbd201317a01fdb4\"\u003e\n\u003cdiv class=\"_form-content\"\u003e\n\u003cdiv class=\"_form_element _x50006849 _full_width _clear\"\u003e\n\u003cdiv class=\"_form-title\"\u003e🚨 Ion Beam: Sign up for updates and news\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x02201800 _full_width _clear\"\u003e\n\u003cdiv class=\"_html-code\"\u003e\n\u003cp\u003eTo be notified when additional Ion Beam stock arrives, please provide your information below.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x09224981 _full_width\"\u003e\n\u003clabel for=\"fullname\" class=\"_form-label\"\u003e Full Name \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cinput type=\"text\" id=\"fullname\" name=\"fullname\" placeholder=\"Type your name\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x17690196 _full_width\"\u003e\n\u003clabel for=\"email\" class=\"_form-label\"\u003e Email* \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cinput type=\"text\" id=\"email\" name=\"email\" placeholder=\"Type your email\" required=\"\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form_element _x73927935 _full_width\"\u003e\n\u003clabel for=\"field[11]\" class=\"_form-label\"\u003e Country (to be notified when the Ion Beam is available in your region) \u003c\/label\u003e\n\u003cdiv class=\"_field-wrapper\"\u003e\u003cselect name=\"field[11]\" id=\"field[11]\"\u003e\n\u003coption selected\u003e\u003c\/option\u003e\n\u003coption value=\"Afghanistan\"\u003eAfghanistan\u003c\/option\u003e\n\u003coption value=\"Albania\"\u003eAlbania\u003c\/option\u003e\n\u003coption value=\"Algeria\"\u003eAlgeria\u003c\/option\u003e\n\u003coption value=\"American Samoa\"\u003eAmerican Samoa\u003c\/option\u003e\n\u003coption value=\"Andorra\"\u003eAndorra\u003c\/option\u003e\n\u003coption value=\"Angola\"\u003eAngola\u003c\/option\u003e\n\u003coption value=\"Anguilla\"\u003eAnguilla\u003c\/option\u003e\n\u003coption value=\"Antarctica\"\u003eAntarctica\u003c\/option\u003e\n\u003coption value=\"Antigua and Barbuda\"\u003eAntigua and Barbuda\u003c\/option\u003e\n\u003coption value=\"Argentina\"\u003eArgentina\u003c\/option\u003e\n\u003coption value=\"Armenia\"\u003eArmenia\u003c\/option\u003e\n\u003coption value=\"Aruba\"\u003eAruba\u003c\/option\u003e\n\u003coption value=\"Australia\"\u003eAustralia\u003c\/option\u003e\n\u003coption value=\"Austria\"\u003eAustria\u003c\/option\u003e\n\u003coption value=\"Azerbaijan\"\u003eAzerbaijan\u003c\/option\u003e\n\u003coption value=\"Bahamas\"\u003eBahamas\u003c\/option\u003e\n\u003coption value=\"Bahrain\"\u003eBahrain\u003c\/option\u003e\n\u003coption value=\"Bangladesh\"\u003eBangladesh\u003c\/option\u003e\n\u003coption value=\"Barbados\"\u003eBarbados\u003c\/option\u003e\n\u003coption value=\"Belarus\"\u003eBelarus\u003c\/option\u003e\n\u003coption value=\"Belgium\"\u003eBelgium\u003c\/option\u003e\n\u003coption value=\"Belize\"\u003eBelize\u003c\/option\u003e\n\u003coption value=\"Benin\"\u003eBenin\u003c\/option\u003e\n\u003coption value=\"Bermuda\"\u003eBermuda\u003c\/option\u003e\n\u003coption value=\"Bhutan\"\u003eBhutan\u003c\/option\u003e\n\u003coption value=\"Bolivia\"\u003eBolivia\u003c\/option\u003e\n\u003coption value=\"Bosnia and Herzegovina\"\u003eBosnia and Herzegovina\u003c\/option\u003e\n\u003coption value=\"Botswana\"\u003eBotswana\u003c\/option\u003e\n\u003coption value=\"Bouvet Island\"\u003eBouvet Island\u003c\/option\u003e\n\u003coption value=\"Brazil\"\u003eBrazil\u003c\/option\u003e\n\u003coption value=\"British Indian Ocean Territory\"\u003eBritish Indian Ocean Territory\u003c\/option\u003e\n\u003coption value=\"Brunei Darussalam\"\u003eBrunei Darussalam\u003c\/option\u003e\n\u003coption value=\"Bulgaria\"\u003eBulgaria\u003c\/option\u003e\n\u003coption value=\"Burkina Faso\"\u003eBurkina Faso\u003c\/option\u003e\n\u003coption value=\"Burundi\"\u003eBurundi\u003c\/option\u003e\n\u003coption value=\"Cambodia\"\u003eCambodia\u003c\/option\u003e\n\u003coption value=\"Cameroon\"\u003eCameroon\u003c\/option\u003e\n\u003coption value=\"Canada\"\u003eCanada\u003c\/option\u003e\n\u003coption value=\"Cape Verde\"\u003eCape Verde\u003c\/option\u003e\n\u003coption value=\"Cayman Islands\"\u003eCayman Islands\u003c\/option\u003e\n\u003coption value=\"Central African Republic\"\u003eCentral African Republic\u003c\/option\u003e\n\u003coption value=\"Chad\"\u003eChad\u003c\/option\u003e\n\u003coption value=\"Chile\"\u003eChile\u003c\/option\u003e\n\u003coption value=\"China\"\u003eChina\u003c\/option\u003e\n\u003coption value=\"Christmas Island\"\u003eChristmas Island\u003c\/option\u003e\n\u003coption value=\"Cocos (Keeling) Islands\"\u003eCocos (Keeling) Islands\u003c\/option\u003e\n\u003coption value=\"Colombia\"\u003eColombia\u003c\/option\u003e\n\u003coption value=\"Comoros\"\u003eComoros\u003c\/option\u003e\n\u003coption value=\"Congo\"\u003eCongo\u003c\/option\u003e\n\u003coption value=\"Congo, the Democratic Republic of the\"\u003eCongo, the Democratic Republic of the\u003c\/option\u003e\n\u003coption value=\"Cook Islands\"\u003eCook Islands\u003c\/option\u003e\n\u003coption value=\"Costa Rica\"\u003eCosta Rica\u003c\/option\u003e\n\u003coption value=\"Cote D'Ivoire\"\u003eCote D'Ivoire\u003c\/option\u003e\n\u003coption value=\"Croatia\"\u003eCroatia\u003c\/option\u003e\n\u003coption value=\"Cuba\"\u003eCuba\u003c\/option\u003e\n\u003coption value=\"Cyprus\"\u003eCyprus\u003c\/option\u003e\n\u003coption value=\"Czech Republic\"\u003eCzech Republic\u003c\/option\u003e\n\u003coption value=\"Denmark\"\u003eDenmark\u003c\/option\u003e\n\u003coption value=\"Djibouti\"\u003eDjibouti\u003c\/option\u003e\n\u003coption value=\"Dominica\"\u003eDominica\u003c\/option\u003e\n\u003coption value=\"Dominican Republic\"\u003eDominican Republic\u003c\/option\u003e\n\u003coption value=\"Ecuador\"\u003eEcuador\u003c\/option\u003e\n\u003coption value=\"Egypt\"\u003eEgypt\u003c\/option\u003e\n\u003coption value=\"El Salvador\"\u003eEl Salvador\u003c\/option\u003e\n\u003coption value=\"Equatorial Guinea\"\u003eEquatorial Guinea\u003c\/option\u003e\n\u003coption value=\"Eritrea\"\u003eEritrea\u003c\/option\u003e\n\u003coption value=\"Estonia\"\u003eEstonia\u003c\/option\u003e\n\u003coption value=\"Ethiopia\"\u003eEthiopia\u003c\/option\u003e\n\u003coption value=\"Falkland Islands (Malvinas)\"\u003eFalkland Islands (Malvinas)\u003c\/option\u003e\n\u003coption value=\"Faroe Islands\"\u003eFaroe Islands\u003c\/option\u003e\n\u003coption value=\"Fiji\"\u003eFiji\u003c\/option\u003e\n\u003coption value=\"Finland\"\u003eFinland\u003c\/option\u003e\n\u003coption value=\"France\"\u003eFrance\u003c\/option\u003e\n\u003coption value=\"French Guiana\"\u003eFrench Guiana\u003c\/option\u003e\n\u003coption value=\"French Polynesia\"\u003eFrench Polynesia\u003c\/option\u003e\n\u003coption value=\"French Southern Territories\"\u003eFrench Southern Territories\u003c\/option\u003e\n\u003coption value=\"Gabon\"\u003eGabon\u003c\/option\u003e\n\u003coption value=\"Gambia\"\u003eGambia\u003c\/option\u003e\n\u003coption value=\"Georgia\"\u003eGeorgia\u003c\/option\u003e\n\u003coption value=\"Germany\"\u003eGermany\u003c\/option\u003e\n\u003coption value=\"Ghana\"\u003eGhana\u003c\/option\u003e\n\u003coption value=\"Gibraltar\"\u003eGibraltar\u003c\/option\u003e\n\u003coption value=\"Greece\"\u003eGreece\u003c\/option\u003e\n\u003coption value=\"Greenland\"\u003eGreenland\u003c\/option\u003e\n\u003coption value=\"Grenada\"\u003eGrenada\u003c\/option\u003e\n\u003coption value=\"Guadeloupe\"\u003eGuadeloupe\u003c\/option\u003e\n\u003coption value=\"Guam\"\u003eGuam\u003c\/option\u003e\n\u003coption value=\"Guatemala\"\u003eGuatemala\u003c\/option\u003e\n\u003coption value=\"Guinea\"\u003eGuinea\u003c\/option\u003e\n\u003coption value=\"Guinea-Bissau\"\u003eGuinea-Bissau\u003c\/option\u003e\n\u003coption value=\"Guyana\"\u003eGuyana\u003c\/option\u003e\n\u003coption value=\"Haiti\"\u003eHaiti\u003c\/option\u003e\n\u003coption value=\"Heard Island and Mcdonald Islands\"\u003eHeard Island and Mcdonald Islands\u003c\/option\u003e\n\u003coption value=\"Holy See (Vatican City State)\"\u003eHoly See (Vatican City State)\u003c\/option\u003e\n\u003coption value=\"Honduras\"\u003eHonduras\u003c\/option\u003e\n\u003coption value=\"Hong Kong\"\u003eHong Kong\u003c\/option\u003e\n\u003coption value=\"Hungary\"\u003eHungary\u003c\/option\u003e\n\u003coption value=\"Iceland\"\u003eIceland\u003c\/option\u003e\n\u003coption value=\"India\"\u003eIndia\u003c\/option\u003e\n\u003coption value=\"Indonesia\"\u003eIndonesia\u003c\/option\u003e\n\u003coption value=\"Iran, Islamic Republic of\"\u003eIran, Islamic Republic of\u003c\/option\u003e\n\u003coption value=\"Iraq\"\u003eIraq\u003c\/option\u003e\n\u003coption value=\"Ireland\"\u003eIreland\u003c\/option\u003e\n\u003coption value=\"Israel\"\u003eIsrael\u003c\/option\u003e\n\u003coption value=\"Italy\"\u003eItaly\u003c\/option\u003e\n\u003coption value=\"Jamaica\"\u003eJamaica\u003c\/option\u003e\n\u003coption value=\"Japan\"\u003eJapan\u003c\/option\u003e\n\u003coption value=\"Jordan\"\u003eJordan\u003c\/option\u003e\n\u003coption value=\"Kazakhstan\"\u003eKazakhstan\u003c\/option\u003e\n\u003coption value=\"Kenya\"\u003eKenya\u003c\/option\u003e\n\u003coption value=\"Kiribati\"\u003eKiribati\u003c\/option\u003e\n\u003coption value=\"Korea, Democratic People's Republic of\"\u003eKorea, Democratic People's Republic of\u003c\/option\u003e\n\u003coption value=\"Korea, Republic of\"\u003eKorea, Republic of\u003c\/option\u003e\n\u003coption value=\"Kuwait\"\u003eKuwait\u003c\/option\u003e\n\u003coption value=\"Kyrgyzstan\"\u003eKyrgyzstan\u003c\/option\u003e\n\u003coption value=\"Lao People's Democratic Republic\"\u003eLao People's Democratic Republic\u003c\/option\u003e\n\u003coption value=\"Latvia\"\u003eLatvia\u003c\/option\u003e\n\u003coption value=\"Lebanon\"\u003eLebanon\u003c\/option\u003e\n\u003coption value=\"Lesotho\"\u003eLesotho\u003c\/option\u003e\n\u003coption value=\"Liberia\"\u003eLiberia\u003c\/option\u003e\n\u003coption value=\"Libyan Arab Jamahiriya\"\u003eLibyan Arab Jamahiriya\u003c\/option\u003e\n\u003coption value=\"Liechtenstein\"\u003eLiechtenstein\u003c\/option\u003e\n\u003coption value=\"Lithuania\"\u003eLithuania\u003c\/option\u003e\n\u003coption value=\"Luxembourg\"\u003eLuxembourg\u003c\/option\u003e\n\u003coption value=\"Macao\"\u003eMacao\u003c\/option\u003e\n\u003coption value=\"Macedonia, the Former Yugoslav Republic of\"\u003eMacedonia, the Former Yugoslav Republic of\u003c\/option\u003e\n\u003coption value=\"Madagascar\"\u003eMadagascar\u003c\/option\u003e\n\u003coption value=\"Malawi\"\u003eMalawi\u003c\/option\u003e\n\u003coption value=\"Malaysia\"\u003eMalaysia\u003c\/option\u003e\n\u003coption value=\"Maldives\"\u003eMaldives\u003c\/option\u003e\n\u003coption value=\"Mali\"\u003eMali\u003c\/option\u003e\n\u003coption value=\"Malta\"\u003eMalta\u003c\/option\u003e\n\u003coption value=\"Marshall Islands\"\u003eMarshall Islands\u003c\/option\u003e\n\u003coption value=\"Martinique\"\u003eMartinique\u003c\/option\u003e\n\u003coption value=\"Mauritania\"\u003eMauritania\u003c\/option\u003e\n\u003coption value=\"Mauritius\"\u003eMauritius\u003c\/option\u003e\n\u003coption value=\"Mayotte\"\u003eMayotte\u003c\/option\u003e\n\u003coption value=\"Mexico\"\u003eMexico\u003c\/option\u003e\n\u003coption value=\"Micronesia, Federated States of\"\u003eMicronesia, Federated States of\u003c\/option\u003e\n\u003coption value=\"Moldova, Republic of\"\u003eMoldova, Republic of\u003c\/option\u003e\n\u003coption value=\"Monaco\"\u003eMonaco\u003c\/option\u003e\n\u003coption value=\"Mongolia\"\u003eMongolia\u003c\/option\u003e\n\u003coption value=\"Montserrat\"\u003eMontserrat\u003c\/option\u003e\n\u003coption value=\"Morocco\"\u003eMorocco\u003c\/option\u003e\n\u003coption value=\"Mozambique\"\u003eMozambique\u003c\/option\u003e\n\u003coption value=\"Myanmar\"\u003eMyanmar\u003c\/option\u003e\n\u003coption value=\"Namibia\"\u003eNamibia\u003c\/option\u003e\n\u003coption value=\"Nauru\"\u003eNauru\u003c\/option\u003e\n\u003coption value=\"Nepal\"\u003eNepal\u003c\/option\u003e\n\u003coption value=\"Netherlands\"\u003eNetherlands\u003c\/option\u003e\n\u003coption value=\"Netherlands Antilles\"\u003eNetherlands Antilles\u003c\/option\u003e\n\u003coption value=\"New Caledonia\"\u003eNew Caledonia\u003c\/option\u003e\n\u003coption value=\"New Zealand\"\u003eNew Zealand\u003c\/option\u003e\n\u003coption value=\"Nicaragua\"\u003eNicaragua\u003c\/option\u003e\n\u003coption value=\"Niger\"\u003eNiger\u003c\/option\u003e\n\u003coption value=\"Nigeria\"\u003eNigeria\u003c\/option\u003e\n\u003coption value=\"Niue\"\u003eNiue\u003c\/option\u003e\n\u003coption value=\"Norfolk Island\"\u003eNorfolk Island\u003c\/option\u003e\n\u003coption value=\"North Macedonia\"\u003eNorth Macedonia\u003c\/option\u003e\n\u003coption value=\"Northern Mariana Islands\"\u003eNorthern Mariana Islands\u003c\/option\u003e\n\u003coption value=\"Norway\"\u003eNorway\u003c\/option\u003e\n\u003coption value=\"Oman\"\u003eOman\u003c\/option\u003e\n\u003coption value=\"Pakistan\"\u003ePakistan\u003c\/option\u003e\n\u003coption value=\"Palau\"\u003ePalau\u003c\/option\u003e\n\u003coption value=\"Palestinian Territory, Occupied\"\u003ePalestinian Territory, Occupied\u003c\/option\u003e\n\u003coption value=\"Panama\"\u003ePanama\u003c\/option\u003e\n\u003coption value=\"Papua New Guinea\"\u003ePapua New Guinea\u003c\/option\u003e\n\u003coption value=\"Paraguay\"\u003eParaguay\u003c\/option\u003e\n\u003coption value=\"Peru\"\u003ePeru\u003c\/option\u003e\n\u003coption value=\"Philippines\"\u003ePhilippines\u003c\/option\u003e\n\u003coption value=\"Pitcairn\"\u003ePitcairn\u003c\/option\u003e\n\u003coption value=\"Poland\"\u003ePoland\u003c\/option\u003e\n\u003coption value=\"Portugal\"\u003ePortugal\u003c\/option\u003e\n\u003coption value=\"Puerto Rico\"\u003ePuerto Rico\u003c\/option\u003e\n\u003coption value=\"Qatar\"\u003eQatar\u003c\/option\u003e\n\u003coption value=\"Reunion\"\u003eReunion\u003c\/option\u003e\n\u003coption value=\"Romania\"\u003eRomania\u003c\/option\u003e\n\u003coption value=\"Russian Federation\"\u003eRussian Federation\u003c\/option\u003e\n\u003coption value=\"Rwanda\"\u003eRwanda\u003c\/option\u003e\n\u003coption value=\"Saint Helena\"\u003eSaint Helena\u003c\/option\u003e\n\u003coption value=\"Saint Kitts and Nevis\"\u003eSaint Kitts and Nevis\u003c\/option\u003e\n\u003coption value=\"Saint Lucia\"\u003eSaint Lucia\u003c\/option\u003e\n\u003coption value=\"Saint Pierre and Miquelon\"\u003eSaint Pierre and Miquelon\u003c\/option\u003e\n\u003coption value=\"Saint Vincent and the Grenadines\"\u003eSaint Vincent and the Grenadines\u003c\/option\u003e\n\u003coption value=\"Samoa\"\u003eSamoa\u003c\/option\u003e\n\u003coption value=\"San Marino\"\u003eSan Marino\u003c\/option\u003e\n\u003coption value=\"Sao Tome and Principe\"\u003eSao Tome and Principe\u003c\/option\u003e\n\u003coption value=\"Saudi Arabia\"\u003eSaudi Arabia\u003c\/option\u003e\n\u003coption value=\"Senegal\"\u003eSenegal\u003c\/option\u003e\n\u003coption value=\"Serbia and Montenegro\"\u003eSerbia and Montenegro\u003c\/option\u003e\n\u003coption value=\"Seychelles\"\u003eSeychelles\u003c\/option\u003e\n\u003coption value=\"Sierra Leone\"\u003eSierra Leone\u003c\/option\u003e\n\u003coption value=\"Singapore\"\u003eSingapore\u003c\/option\u003e\n\u003coption value=\"Slovakia\"\u003eSlovakia\u003c\/option\u003e\n\u003coption value=\"Slovenia\"\u003eSlovenia\u003c\/option\u003e\n\u003coption value=\"Solomon Islands\"\u003eSolomon Islands\u003c\/option\u003e\n\u003coption value=\"Somalia\"\u003eSomalia\u003c\/option\u003e\n\u003coption value=\"South Africa\"\u003eSouth Africa\u003c\/option\u003e\n\u003coption value=\"South Georgia and the South Sandwich Islands\"\u003eSouth Georgia and the South Sandwich Islands\u003c\/option\u003e\n\u003coption value=\"Spain\"\u003eSpain\u003c\/option\u003e\n\u003coption value=\"Sri Lanka\"\u003eSri Lanka\u003c\/option\u003e\n\u003coption value=\"Sudan\"\u003eSudan\u003c\/option\u003e\n\u003coption value=\"Suriname\"\u003eSuriname\u003c\/option\u003e\n\u003coption value=\"Svalbard and Jan Mayen\"\u003eSvalbard and Jan Mayen\u003c\/option\u003e\n\u003coption value=\"Swaziland\"\u003eSwaziland\u003c\/option\u003e\n\u003coption value=\"Sweden\"\u003eSweden\u003c\/option\u003e\n\u003coption value=\"Switzerland\"\u003eSwitzerland\u003c\/option\u003e\n\u003coption value=\"Syrian Arab Republic\"\u003eSyrian Arab Republic\u003c\/option\u003e\n\u003coption value=\"Taiwan, Province of China\"\u003eTaiwan, Province of China\u003c\/option\u003e\n\u003coption value=\"Tajikistan\"\u003eTajikistan\u003c\/option\u003e\n\u003coption value=\"Tanzania, United Republic of\"\u003eTanzania, United Republic of\u003c\/option\u003e\n\u003coption value=\"Thailand\"\u003eThailand\u003c\/option\u003e\n\u003coption value=\"Timor-Leste\"\u003eTimor-Leste\u003c\/option\u003e\n\u003coption value=\"Togo\"\u003eTogo\u003c\/option\u003e\n\u003coption value=\"Tokelau\"\u003eTokelau\u003c\/option\u003e\n\u003coption value=\"Tonga\"\u003eTonga\u003c\/option\u003e\n\u003coption value=\"Trinidad and Tobago\"\u003eTrinidad and Tobago\u003c\/option\u003e\n\u003coption value=\"Tunisia\"\u003eTunisia\u003c\/option\u003e\n\u003coption value=\"Turkey\"\u003eTurkey\u003c\/option\u003e\n\u003coption value=\"Turkmenistan\"\u003eTurkmenistan\u003c\/option\u003e\n\u003coption value=\"Turks and Caicos Islands\"\u003eTurks and Caicos Islands\u003c\/option\u003e\n\u003coption value=\"Tuvalu\"\u003eTuvalu\u003c\/option\u003e\n\u003coption value=\"Uganda\"\u003eUganda\u003c\/option\u003e\n\u003coption value=\"Ukraine\"\u003eUkraine\u003c\/option\u003e\n\u003coption value=\"United Arab Emirates\"\u003eUnited Arab Emirates\u003c\/option\u003e\n\u003coption value=\"United Kingdom\"\u003eUnited Kingdom\u003c\/option\u003e\n\u003coption value=\"United States\"\u003eUnited States\u003c\/option\u003e\n\u003coption value=\"United States Minor Outlying Islands\"\u003eUnited States Minor Outlying Islands\u003c\/option\u003e\n\u003coption value=\"Uruguay\"\u003eUruguay\u003c\/option\u003e\n\u003coption value=\"Uzbekistan\"\u003eUzbekistan\u003c\/option\u003e\n\u003coption value=\"Vanuatu\"\u003eVanuatu\u003c\/option\u003e\n\u003coption value=\"Venezuela\"\u003eVenezuela\u003c\/option\u003e\n\u003coption value=\"Viet Nam\"\u003eViet Nam\u003c\/option\u003e\n\u003coption value=\"Virgin Islands, British\"\u003eVirgin Islands, British\u003c\/option\u003e\n\u003coption value=\"Virgin Islands, U.s.\"\u003eVirgin Islands, U.s.\u003c\/option\u003e\n\u003coption value=\"Wallis and Futuna\"\u003eWallis and Futuna\u003c\/option\u003e\n\u003coption value=\"Western Sahara\"\u003eWestern Sahara\u003c\/option\u003e\n\u003coption value=\"Yemen\"\u003eYemen\u003c\/option\u003e\n\u003coption value=\"Zambia\"\u003eZambia\u003c\/option\u003e\n\u003coption value=\"Zimbabwe\"\u003eZimbabwe\u003c\/option\u003e\n\u003c\/select\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_button-wrapper _full_width\"\u003e\u003cbutton id=\"_form_40_submit\" class=\"_submit\" type=\"submit\"\u003e Submit \u003c\/button\u003e\u003c\/div\u003e\n\u003cdiv class=\"_clear-element\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"_form-thank-you\" style=\"display: none;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/form\u003e\n\u003cp\u003e\u003cscript type=\"text\/javascript\"\u003e\nwindow.cfields = {\"11\":\"country\"};\nwindow._show_thank_you = function(id, message, trackcmp_url, email) {\n  var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you');\n  form.querySelector('._form-content').style.display = 'none';\n  thank_you.innerHTML = message;\n  thank_you.style.display = 'block';\n  const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n  var visitorObject = window[vgoAlias];\n  if (email \u0026\u0026 typeof visitorObject !== 'undefined') {\n    visitorObject('setEmail', email);\n    visitorObject('update');\n  } else if (typeof(trackcmp_url) != 'undefined' \u0026\u0026 trackcmp_url) {\n    \/\/ Site tracking URL to use after inline form submission.\n    _load_script(trackcmp_url);\n  }\n  if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._show_error = function(id, message, html) {\n  var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error');\n  if (old_error) old_error.parentNode.removeChild(old_error);\n  err.innerHTML = message;\n  err.className = '_error-inner _form_error _no_arrow';\n  var wrapper = document.createElement('div');\n  wrapper.className = '_form-inner';\n  wrapper.appendChild(err);\n  button.parentNode.insertBefore(wrapper, button);\n  document.querySelector('[id^=\"_form\"][id$=\"_submit\"]').disabled = false;\n  if (html) {\n    var div = document.createElement('div');\n    div.className = '_error-html';\n    div.innerHTML = html;\n    err.appendChild(div);\n  }\n};\nwindow._load_script = function(url, callback, isSubmit) {\n  var head = document.querySelector('head'), script = document.createElement('script'), r = false;\n  script.type = 'text\/javascript';\n  script.charset = 'utf-8';\n  script.src = url;\n  if (callback) {\n    script.onload = script.onreadystatechange = function() {\n      if (!r \u0026\u0026 (!this.readyState || this.readyState == 'complete')) {\n        r = true;\n        callback();\n      }\n    };\n  }\n  script.onerror = function() {\n    if (isSubmit) {\n      if (script.src.length \u003e 10000) {\n        _show_error(\"40\", \"Sorry, your submission failed. Please shorten your responses and try again.\");\n      } else {\n        _show_error(\"40\", \"Sorry, your submission failed. Please try again.\");\n      }\n    }\n  }\n\n  head.appendChild(script);\n};\n(function() {\n  if (window.location.search.search(\"excludeform\") !== -1) return false;\n  var getCookie = function(name) {\n    var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));\n    return match ? match[2] : null;\n  }\n  var setCookie = function(name, value) {\n    var now = new Date();\n    var time = now.getTime();\n    var expireTime = time + 1000 * 60 * 60 * 24 * 365;\n    now.setTime(expireTime);\n    document.cookie = name + '=' + value + '; expires=' + now + ';path=\/; Secure; SameSite=Lax;';\/\/ cannot be HttpOnly\n  }\n      var addEvent = function(element, event, func) {\n    if (element.addEventListener) {\n      element.addEventListener(event, func);\n    } else {\n      var oldFunc = element['on' + event];\n      element['on' + event] = function() {\n        oldFunc.apply(this, arguments);\n        func.apply(this, arguments);\n      };\n    }\n  }\n  var _removed = false;\n  var form_to_submit = document.getElementById('_form_40_');\n  var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;\n\n  var getUrlParam = function(name) {\n    var params = new URLSearchParams(window.location.search);\n    return params.get(name) || false;\n  };\n\n  for (var i = 0; i \u003c allInputs.length; i++) {\n    var regexStr = \"field\\\\[(\\\\d+)\\\\]\";\n    var results = new RegExp(regexStr).exec(allInputs[i].name);\n    if (results != undefined) {\n      allInputs[i].dataset.name = window.cfields[results[1]];\n    } else {\n      allInputs[i].dataset.name = allInputs[i].name;\n    }\n    var fieldVal = getUrlParam(allInputs[i].dataset.name);\n\n    if (fieldVal) {\n      if (allInputs[i].dataset.autofill === \"false\") {\n        continue;\n      }\n      if (allInputs[i].type == \"radio\" || allInputs[i].type == \"checkbox\") {\n        if (allInputs[i].value == fieldVal) {\n          allInputs[i].checked = true;\n        }\n      } else {\n        allInputs[i].value = fieldVal;\n      }\n    }\n  }\n\n  var remove_tooltips = function() {\n    for (var i = 0; i \u003c tooltips.length; i++) {\n      tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n    }\n    tooltips = [];\n  };\n  var remove_tooltip = function(elem) {\n    for (var i = 0; i \u003c tooltips.length; i++) {\n      if (tooltips[i].elem === elem) {\n        tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n        tooltips.splice(i, 1);\n        return;\n      }\n    }\n  };\n  var create_tooltip = function(elem, text) {\n    var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {};\n    if (elem.type != 'radio' \u0026\u0026 elem.type != 'checkbox') {\n      tooltip.className = '_error';\n      arrow.className = '_error-arrow';\n      inner.className = '_error-inner';\n      inner.innerHTML = text;\n      tooltip.appendChild(arrow);\n      tooltip.appendChild(inner);\n      elem.parentNode.appendChild(tooltip);\n    } else {\n      tooltip.className = '_error-inner _no_arrow';\n      tooltip.innerHTML = text;\n      elem.parentNode.insertBefore(tooltip, elem);\n      new_tooltip.no_arrow = true;\n    }\n    new_tooltip.tip = tooltip;\n    new_tooltip.elem = elem;\n    tooltips.push(new_tooltip);\n    return new_tooltip;\n  };\n  var resize_tooltip = function(tooltip) {\n    var rect = tooltip.elem.getBoundingClientRect();\n    var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));\n    if (scrollPosition \u003c 40) {\n      tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _below';\n    } else {\n      tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _above';\n    }\n  };\n  var resize_tooltips = function() {\n    if (_removed) return;\n    for (var i = 0; i \u003c tooltips.length; i++) {\n      if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);\n    }\n  };\n  var validate_field = function(elem, remove) {\n    var tooltip = null, value = elem.value, no_error = true;\n    remove ? remove_tooltip(elem) : false;\n    if (elem.type != 'checkbox') elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\n    if (elem.getAttribute('required') !== null) {\n      if (elem.type == 'radio' || (elem.type == 'checkbox' \u0026\u0026 \/any\/.test(elem.className))) {\n        var elems = form_to_submit.elements[elem.name];\n        if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length \u003c= 1) {\n          no_error = elem.checked;\n        }\n        else {\n          no_error = false;\n          for (var i = 0; i \u003c elems.length; i++) {\n            if (elems[i].checked) no_error = true;\n          }\n        }\n        if (!no_error) {\n          tooltip = create_tooltip(elem, \"Please select an option.\");\n        }\n      } else if (elem.type =='checkbox') {\n        var elems = form_to_submit.elements[elem.name], found = false, err = [];\n        no_error = true;\n        for (var i = 0; i \u003c elems.length; i++) {\n          if (elems[i].getAttribute('required') === null) continue;\n          if (!found \u0026\u0026 elems[i] !== elem) return true;\n          found = true;\n          elems[i].className = elems[i].className.replace(\/ ?_has_error ?\/g, '');\n          if (!elems[i].checked) {\n            no_error = false;\n            elems[i].className = elems[i].className + ' _has_error';\n            err.push(\"Checking %s is required\".replace(\"%s\", elems[i].value));\n          }\n        }\n        if (!no_error) {\n          tooltip = create_tooltip(elem, err.join('\u003cbr\/\u003e'));\n        }\n      } else if (elem.tagName == 'SELECT') {\n        var selected = true;\n        if (elem.multiple) {\n          selected = false;\n          for (var i = 0; i \u003c elem.options.length; i++) {\n            if (elem.options[i].selected) {\n              selected = true;\n              break;\n            }\n          }\n        } else {\n          for (var i = 0; i \u003c elem.options.length; i++) {\n            if (elem.options[i].selected \u0026\u0026 (!elem.options[i].value || (elem.options[i].value.match(\/\\n\/g)))) {\n              selected = false;\n            }\n          }\n        }\n        if (!selected) {\n          elem.className = elem.className + ' _has_error';\n          no_error = false;\n          tooltip = create_tooltip(elem, \"Please select an option.\");\n        }\n      } else if (value === undefined || value === null || value === '') {\n        elem.className = elem.className + ' _has_error';\n        no_error = false;\n        tooltip = create_tooltip(elem, \"This field is required.\");\n      }\n    }\n    if (no_error \u0026\u0026 (elem.id == 'field[]' || elem.id == 'ca[11][v]')) {\n      if (elem.className.includes('phone-input-error')) {\n        elem.className = elem.className + ' _has_error';\n        no_error = false;\n      }\n    }\n    if (no_error \u0026\u0026 elem.name == 'email') {\n      if (!value.match(\/^[\\+_a-z0-9-'\u0026=]+(\\.[\\+_a-z0-9-']+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$\/i)) {\n        elem.className = elem.className + ' _has_error';\n        no_error = false;\n        tooltip = create_tooltip(elem, \"Enter a valid email address.\");\n      }\n    }\n    if (no_error \u0026\u0026 \/date_field\/.test(elem.className)) {\n      if (!value.match(\/^\\d\\d\\d\\d-\\d\\d-\\d\\d$\/)) {\n        elem.className = elem.className + ' _has_error';\n        no_error = false;\n        tooltip = create_tooltip(elem, \"Enter a valid date.\");\n      }\n    }\n    tooltip ? resize_tooltip(tooltip) : false;\n    return no_error;\n  };\n  var needs_validate = function(el) {\n        if(el.getAttribute('required') !== null){\n            return true\n        }\n        if(el.name === 'email' \u0026\u0026 el.value !== \"\"){\n            return true\n        }\n\n    if((el.id == 'field[]' || el.id == 'ca[11][v]') \u0026\u0026 el.className.includes('phone-input-error')){\n            return true\n        }\n\n        return false\n  };\n  var validate_form = function(e) {\n    var err = form_to_submit.querySelector('._form_error'), no_error = true;\n    if (!submitted) {\n      submitted = true;\n      for (var i = 0, len = allInputs.length; i \u003c len; i++) {\n        var input = allInputs[i];\n        if (needs_validate(input)) {\n          if (input.type == 'tel') {\n            addEvent(input, 'blur', function() {\n              this.value = this.value.trim();\n              validate_field(this, true);\n            });\n          }\n          if (input.type == 'text' || input.type == 'number' || input.type == 'time') {\n            addEvent(input, 'blur', function() {\n              this.value = this.value.trim();\n              validate_field(this, true);\n            });\n            addEvent(input, 'input', function() {\n              validate_field(this, true);\n            });\n          } else if (input.type == 'radio' || input.type == 'checkbox') {\n            (function(el) {\n              var radios = form_to_submit.elements[el.name];\n              for (var i = 0; i \u003c radios.length; i++) {\n                addEvent(radios[i], 'click', function() {\n                  validate_field(el, true);\n                });\n              }\n            })(input);\n          } else if (input.tagName == 'SELECT') {\n            addEvent(input, 'change', function() {\n              validate_field(this, true);\n            });\n          } else if (input.type == 'textarea'){\n            addEvent(input, 'input', function() {\n              validate_field(this, true);\n            });\n          }\n        }\n      }\n    }\n    remove_tooltips();\n    for (var i = 0, len = allInputs.length; i \u003c len; i++) {\n      var elem = allInputs[i];\n      if (needs_validate(elem)) {\n        if (elem.tagName.toLowerCase() !== \"select\") {\n          elem.value = elem.value.trim();\n        }\n        validate_field(elem) ? true : no_error = false;\n      }\n    }\n    if (!no_error \u0026\u0026 e) {\n      e.preventDefault();\n    }\n    resize_tooltips();\n    return no_error;\n  };\n  addEvent(window, 'resize', resize_tooltips);\n  addEvent(window, 'scroll', resize_tooltips);\n\n  var hidePhoneInputError = function(inputId) {\n    var errorMessage =  document.getElementById(\"error-msg-\" + inputId);\n    var input = document.getElementById(inputId);\n    errorMessage.classList.remove(\"phone-error\");\n    errorMessage.classList.add(\"phone-error-hidden\");\n    input.classList.remove(\"phone-input-error\");\n  };\n\n  var initializePhoneInput = function(input, defaultCountry) {\n    return window.intlTelInput(input, {\n      utilsScript: \"https:\/\/unpkg.com\/intl-tel-input@17.0.18\/build\/js\/utils.js\",\n      autoHideDialCode: false,\n      separateDialCode: true,\n      initialCountry: defaultCountry,\n      preferredCountries: []\n    });\n  }\n\n  var setPhoneInputEventListeners = function(inputId, input, iti) {\n    input.addEventListener('blur', function() {\n      var errorMessage = document.getElementById(\"error-msg-\" + inputId);\n      if (input.value.trim()) {\n        if (iti.isValidNumber()) {\n          iti.setNumber(iti.getNumber());\n          if (errorMessage.classList.contains(\"phone-error\")){\n            hidePhoneInputError(inputId);\n          }\n        } else {\n          showPhoneInputError(inputId)\n        }\n      } else {\n        if (errorMessage.classList.contains(\"phone-error\")){\n          hidePhoneInputError(inputId);\n        }\n      }\n    });\n\n    input.addEventListener(\"countrychange\", function() {\n      iti.setNumber('');\n    });\n\n    input.addEventListener(\"keydown\", function(e) {\n        var charCode = (e.which) ? e.which : e.keyCode;\n        if (charCode \u003e 31 \u0026\u0026 (charCode \u003c 48 || charCode \u003e 57) \u0026\u0026 charCode !== 8) {\n               e.preventDefault();\n      }\n     });\n  };\n\n  var showPhoneInputError = function(inputId) {\n    var errorMessage =  document.getElementById(\"error-msg-\" + inputId);\n    var input = document.getElementById(inputId);\n    errorMessage.classList.add(\"phone-error\");\n    errorMessage.classList.remove(\"phone-error-hidden\");\n    input.classList.add(\"phone-input-error\");\n  };\n\n\n    var _form_serialize = function(form){if(!form||form.nodeName!==\"FORM\"){return }var i,j,q=[];for(i=0;i\u003cform.elements.length;i++){if(form.elements[i].name===\"\"){continue}switch(form.elements[i].nodeName){case\"INPUT\":switch(form.elements[i].type){case\"tel\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(\" \")+encodeURIComponent(form.elements[i].value));break;case\"text\":case\"number\":case\"date\":case\"time\":case\"hidden\":case\"password\":case\"button\":case\"reset\":case\"submit\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"checkbox\":case\"radio\":if(form.elements[i].checked){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value))}break;case\"file\":break}break;case\"TEXTAREA\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"SELECT\":switch(form.elements[i].type){case\"select-one\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"select-multiple\":for(j=0;j\u003cform.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case\"BUTTON\":switch(form.elements[i].type){case\"reset\":case\"submit\":case\"button\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break}break}}return q.join(\"\u0026\")};\n  var form_submit = function(e) {\n    e.preventDefault();\n    if (validate_form()) {\n      \/\/ use this trick to get the submit button \u0026 disable it using plain javascript\n      document.querySelector('#_form_40_submit').disabled = true;\n            var serialized = _form_serialize(document.getElementById('_form_40_')).replace(\/%0A\/g, '\\\\n');\n      var err = form_to_submit.querySelector('._form_error');\n      err ? err.parentNode.removeChild(err) : false;\n      _load_script('https:\/\/acaia.activehosted.com\/proc.php?' + serialized + '\u0026jsonp=true', null, true);\n    }\n    return false;\n  };\n  addEvent(form_to_submit, 'submit', form_submit);\n})();\n\n\u003c\/script\u003e \u003cbr\u003e\u003c\/p\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cbr\u003e\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eDesigned to work both as a portable accessory for different grinders, or to be mounted on the Orbit, our latest accessory solves the common problem of static generated during the grinding process.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003eThe Acaia Ion Beam is equipped with an industrial-grade ion generator that efficiently minimizes static generated during the grinding process, resulting in reduced retention, less flying chaff, and less clumping. This is accomplished by emitting a continuous flow of charged ions that neutralize the static charge buildup during grinding. The Ion Beam generates negative ions at the front end and positive ions at the back end for either positive or negative static buildup.\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003eTripod stand not included.\u003c\/em\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Black","offer_id":40700569354286,"sku":"","price":165.0,"currency_code":"USD","in_stock":false},{"title":"Space Gray","offer_id":40700569387054,"sku":"","price":165.0,"currency_code":"USD","in_stock":false},{"title":"White","offer_id":40700569419822,"sku":"","price":165.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/ionbeam_1500x1000_01.jpg?v=1711103538"},{"product_id":"acaia-cosmic-stickers-set","title":"Acaia Cosmic Stickers Set","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eAcaia was founded a decade ago with a commitment to combining design and technology. Since then, we have explored new possibilities, crafting fresh experiences in coffee brewing. This ten-year journey resembles the ongoing exploration of the cosmos. We're excited to celebrate these ten years with a series of cosmic illustrations. Join us as we continue forward, preparing to tap, tare, and brew through the next decade.\u003c\/span\u003e\u003c\/p\u003e\n\u003c!----\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":40947059261486,"sku":"","price":8.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/CosmicStickersSet_1500x1000_01_2158a433-a726-4fa5-97d8-b20415d45e3a.jpg?v=1718362038"},{"product_id":"tap-tare-brew-tote-bag","title":"Tap Tare Brew Tote Bag","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eAcaia was founded a decade ago with a commitment to combining design and technology. Since then, we have explored new possibilities, crafting fresh experiences in coffee brewing. This ten-year journey resembles the ongoing exploration of the cosmos. We're excited to celebrate these ten years with a series of cosmic illustrations. Join us as we continue forward, preparing to tap, tare, and brew through the next decade.\u003c\/span\u003e\u003c\/p\u003e\n\u003c!----\u003e","brand":"5aa538984bd8","offers":[{"title":"Black","offer_id":41418266738734,"sku":"","price":30.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/ToteBag_1500x1000_01.jpg?v=1718362336"},{"product_id":"acaia-double-insulated-cup-4-oz-120-ml","title":"Double Insulated Cup 4 oz \/ 120 ml","description":"\u003cp\u003e\u003cspan\u003e Experience coffee with the Double-Insulated Cup. Its thickened rim enhances flavor while the wide mouth minimizes splashes. Double-wall insulation keeps your coffee at the perfect temperature. The rounded base ensures easy cleaning. The stackable design is convenient for space-saving. This cup is a must-have for those who appreciate quality and style in their coffee routine. \u003c\/span\u003e \u003cbr\u003e\u003c\/p\u003e\n\u003cdiv style=\"padding-left: 30px;\" class=\"dot\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eMade with durable 304 stainless steel\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBPA-Free\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eNot Microwave safe\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Black","offer_id":41139234471982,"sku":"","price":30.0,"currency_code":"USD","in_stock":false},{"title":"Space Gray","offer_id":41139234504750,"sku":"","price":30.0,"currency_code":"USD","in_stock":false},{"title":"Beige White","offer_id":41139234537518,"sku":"","price":30.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/InsulatedCupGlossy.jpg?v=1732151949"},{"product_id":"acaia-double-insulated-cup-with-spout","title":"Spouted Double Insulated Cup 4 oz \/ 120ml","description":"\u003cp\u003e\u003cspan\u003e \u003cstrong\u003eDouble Insulated Cup\u003c\/strong\u003e – where precision meets performance. Crafted for discerning coffee professionals, this cup is engineered to provide superior heat retention and flawless pours every time. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e The innovative spout design ensures a controlled, accurate pour, allowing you to split your espresso shot perfectly every time. Double-wall insulation keeps your espresso at the optimal temperature longer, retaining heat for up to 3 minutes – a significant upgrade over standard catch cups. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e Elevate your coffee experience with a cup that blends practicality with style, ensuring each pour is as precise as your passion for coffee. \u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv style=\"padding-left: 30px;\" class=\"dot\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eMade with durable 304 stainless steel\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eBPA-Free\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eNot microwave safe\u003c\/span\u003e\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n","brand":"5aa538984bd8","offers":[{"title":"Space Gray","offer_id":41149511204910,"sku":"","price":35.0,"currency_code":"USD","in_stock":false},{"title":"Black","offer_id":41149511237678,"sku":"","price":35.0,"currency_code":"USD","in_stock":false},{"title":"Beige White","offer_id":41149511270446,"sku":"","price":35.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/Double-Insulated-Cup_SP_03.jpg?v=1745318165"},{"product_id":"acaia-x-standart-coffee-scale-travel-set","title":"Acaia x Standart - Coffee Scale Travel Set","description":"\u003cp type=\"cite\" class=\"c-mrkdwn__quote\" data-stringify-type=\"quote\"\u003eAcaia and Standart unite in celebration of a decade of creativity.\u003c\/p\u003e\n\u003cp type=\"cite\" class=\"c-mrkdwn__quote\" data-stringify-type=\"quote\"\u003e\u003cspan class=\"c-mrkdwn__br\" data-stringify-type=\"paragraph-break\"\u003e\u003c\/span\u003eTo celebrate our 10th anniversaries, Acaia and Standart, print magazine about coffee culture have collaborated on a series of coffee-themed works. This collaboration combines Acaia's precise design with Standart's artistic style. These straightforward and thoughtful pieces provide a fresh perspective on coffee culture.\u003c\/p\u003e\n\u003cp type=\"cite\" class=\"c-mrkdwn__quote\" data-stringify-type=\"quote\"\u003e\u003cspan class=\"c-mrkdwn__br\" data-stringify-type=\"paragraph-break\"\u003e\u003c\/span\u003eThe scale set features art by Kimiaki Yaegashi, a Japanese illustrator, whose work has been frequently celebrated in the pages of standart. His work is deeply rooted in Japan's rich folklore tradition. It captures the charm of imperfection and the playfulness of everyday life.\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":41177437667374,"sku":"","price":204.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/standartscale-1.jpg?v=1731396445"},{"product_id":"acaia-x-sw-zesty-galaxy-cup-set","title":"Acaia x SW - Zesty Galaxy Cup Set","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eAcaia and Sally Wang have come together to create a cup set that captures the beauty of everyday moments. This collaboration blends Acaia’s design with the refined artistry of Sally Wang. Wang is a Taiwanese potter based in Japan. Inspired by the quiet rhythms of daily life, each cup in the Zesty Galaxy Cup Set adds a touch of elegance to simple rituals. The delicate craftsmanship celebrates life’s subtle joys, infusing mindfulness into every sip. Whether used for coffee or tea, these cups invite you to connect with the present. Reflect on the vastness and depth of a galaxy within the ordinary.\u003c\/span\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":41177443631150,"sku":"","price":125.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/SW_01.jpg?v=1731397452"},{"product_id":"dosing_cup_magnetic_pad","title":"Anti-Static Magnetic Pad for Orbit Dosing Cup","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eThe magnetic pad features an anti-static design to minimize coffee grounds clinging and scattering. It also offers stability and precise alignment. Keep your brew station tidy and organized with ease.\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cdiv class=\"size-image\" style=\"padding-top:10px; text-align: center;\"\u003e      \u003cimg alt=\"Acaia Double Insulated Cup with Spout\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/dosing-cup-pad_spe.jpg?v=1736239075\" style=\"width: 100%; height: auto;\"\u003e                                    \n\u003c\/div\u003e\n","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":41239317151790,"sku":"","price":10.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/dosing-cup-pad_01.jpg?v=1736233317"},{"product_id":"acaia-cosmic-t-shirt","title":"Acaia Cosmic T-shirt","description":"\u003cp dir=\"ltr\"\u003e\u003cspan\u003eAcaia was founded a decade ago with a commitment to combining design and technology. Since then, we have explored new possibilities, crafting fresh experiences in coffee brewing. This ten-year journey resembles the ongoing exploration of the cosmos. We're excited to celebrate these ten years with a series of cosmic illustrations. Join us as we continue forward, preparing to tap, tare, and brew through the next decade.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Black \/ S","offer_id":41346787835950,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"Black \/ M","offer_id":41346787868718,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"Black \/ L","offer_id":41346787901486,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"Black \/ XL","offer_id":41346787934254,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"Black \/ XXL","offer_id":41346787967022,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"White \/ S","offer_id":41346787999790,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"White \/ M","offer_id":41346788032558,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"White \/ L","offer_id":41346788065326,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"White \/ XL","offer_id":41346788098094,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"White \/ XXL","offer_id":41346788130862,"sku":"","price":0.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/AnniversaryT-shirt_1500x1000_01.jpg?v=1742875663"},{"product_id":"toggle-patch-beanie","title":"Toggle Patch Beanie","description":"\u003cp\u003e\u003cspan\u003eAcaia was founded a decade ago with a commitment to combining design and technology. Since then, we have explored new possibilities, crafting fresh experiences in coffee brewing. This ten-year journey resembles the ongoing exploration of the cosmos. We're excited to celebrate these ten years with a series of cosmic illustrations. Join us as we continue forward, preparing to tap, tare, and brew through the next decade.\u003c\/span\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Black","offer_id":41346826633262,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"Gray","offer_id":41346826666030,"sku":"","price":0.0,"currency_code":"USD","in_stock":false},{"title":"Orange","offer_id":41346826698798,"sku":"","price":0.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/Beanie_05.jpg?v=1742884722"},{"product_id":"umbra-lunar","title":"Umbra","description":"Meet the Umbra, an innovative product that opens up new possibilities for your coffee bar. The Umbra encapsulates Acaia’s professional weighing technology within a minimalistic, display-free silhouette. \n\nThe Umbra communicates measurement data in real-time with other Acaia scales through our Magic Relay function (patent pending) and shares a display. The display switches seamlessly between weight changes, allowing you to extend your workflow without any interruption. \n\nBuilt with anodized aluminum, the Umbra series provides enhanced stability, ensuring reliable performance in demanding commercial settings. Its energy-efficient, display-free design also minimizes battery consumption, extending battery life. The Umbra series can also work as a standalone scale. Simply connect it with a smartphone via Acaia's apps. With the Umbra series, your coffee bar gains unparalleled flexibility and efficiency.","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":41391652438062,"sku":"AUL001","price":135.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/PH_umbra_lunar_1500x1000_01_47ecb064-04ef-4dd9-be5d-59d9f95814ef.jpg?v=1745201643"},{"product_id":"landing","title":"Umbra Lunar","description":"\u003cstyle\u003e\nspan.redacted {\n    color: black;\n    background-color: black;\n}\n  p{\n    padding: 5px;\n  }\n\u003c\/style\u003e\n\u003cp\u003e\u003cspan class=\"redacted\"\u003eA still more glorious dawn awaits. Not a sunrise, but a galaxy rise.\u003c\/span\u003e innovative \u003cspan class=\"redacted\"\u003eA morning filled with 400 billion suns. The rising of the Milky Way.\u003c\/span\u003e new possibilities \u003cspan class=\"redacted\"\u003eIn their exploratory intent, in the lofty ambition of their objectives, in their utter lack of intent to do harm, and in the brilliance of their design and performance, these robots speak eloquently for us.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003eEffortlessly \u003cspan class=\"redacted\"\u003eRemember to look up at the stars and not down at your feet. Try to make sense of what you see and wonder about what makes the Universe exist\u003c\/span\u003e experience \u003cspan class=\"redacted\"\u003eBe curious. And however difficult life may seem, there is always something you can do and succeed at.\u003c\/span\u003e previously unimagined \u003cspan class=\"redacted\"\u003eIt matters that you don't just give up.\u003c\/span\u003e sophisticated technology \u003cspan class=\"redacted\"\u003eFor the eyes of the world now look into space, to the moon and to the planets beyond, and we have vowed that we shall not see it governed by a hostile flag of conquest, but by a banner of freedom and peace.\u003c\/span\u003e\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":41357559693358,"sku":"","price":0.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/Web_0-00-00-00_8a9ec4a2-31e9-458b-9964-ccbde5863c03.jpg?v=1744724178"},{"product_id":"umbra-lunar-duo","title":"Umbra Duo","description":"\u003cp dir=\"ltr\"\u003eMeet the Umbra Duo, an innovative product that encapsulates Acaia’s professional weighing technology within a minimalistic, display-free silhouette. \u003cbr\u003eCompared to the Lunar scale, the Umbra Duo features a double-sized weighing pan, which expands your workflow and meets multiple commercial needs. The Umbra Duo is ideal for using with a portafilter or brewing two cappuccino cups at once on an espresso machine.\u003c\/p\u003e\n\u003cp dir=\"ltr\"\u003eThe Umbra Duo communicates measurement data in real-time with other Acaia scales through our Magic Relay function(patent pending) and shares a display. The display switches seamlessly between weight changes, allowing you to extend your workflow without any interruption. \u003c\/p\u003e\n\u003cp dir=\"ltr\"\u003eBuilt with anodized aluminum, the Umbra series provides enhanced stability, ensuring reliable performance in demanding commercial settings. Its energy-efficient, display-free design also minimizes battery consumption, extending battery life. The Umbra series can also work as a standalone scale. Simply connect it with a smartphone via Acaia's apps. With the Umbra series, your coffee bar gains unparalleled flexibility and efficiency.\u003c\/p\u003e","brand":"5aa538984bd8","offers":[{"title":"Default Title","offer_id":41431017619502,"sku":"AUL101","price":225.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0247\/1667\/3070\/files\/PH_umbra-lunar_duo_1500x1000_01.jpg?v=1750295566"}],"url":"https:\/\/5aa538984bd8.myshopify.com\/collections\/all.oembed?page=5","provider":"5aa538984bd8","version":"1.0","type":"link"}