{"product_id":"name-panel-firewood-rack","title":"Name Panel Firewood Rack","description":"\u003cp\u003eA steel firewood rack with your name cut into the end panel.\u003c\/p\u003e\u003cp\u003eBuilt in our Tennessee shop.\u003c\/p\u003e\u003ch3\u003eWhat's included\u003c\/h3\u003e\u003cul\u003e  \u003cli\u003eTwo steel end panels, one with your name panel.\u003c\/li\u003e  \u003cli\u003eSteel rails, hardware and bolts.\u003c\/li\u003e  \u003cli\u003eFirewood not included.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eSpecs\u003c\/h3\u003e\u003cul\u003e  \u003cli\u003eFrame cut from 1\/8 in (11 gauge) steel plate. Name panel cut from 16 gauge steel.\u003c\/li\u003e  \u003cli\u003eFlat plate, bolted together. No bent tube.\u003c\/li\u003e  \u003cli\u003eHolds a 4 ft row of split wood. Black finish.\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eShipping\u003c\/h3\u003e\u003cul\u003e  \u003cli\u003eShips knocked down in one box. End panels, rails, hardware and bolts; assembles with a wrench. Shipping is calculated at checkout by weight and address.\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003eMade to order.\u003c\/p\u003e\u003cstyle\u003e#pz-fields{margin:4px 0 18px}#pz-fields .pz-f{margin:0 0 14px}#pz-fields .pz-l{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 6px}#pz-fields input[type=text]{width:100%;box-sizing:border-box;border:1px solid #e5e1e0;border-radius:0;padding:12px 14px;font:inherit;font-size:14px;color:inherit;background:#fff}#pz-fields input[type=text]:focus{outline:none;border-color:#51372d}#pz-fields .pz-drop{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px dashed #b9b0ad;padding:16px;cursor:pointer;background:#faf9f8;text-align:center}#pz-fields .pz-drop:hover{border-color:#51372d}#pz-fields .pz-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}#pz-fields .pz-btn{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}#pz-fields .pz-hint{font-size:12px;opacity:.75}#pz-fields .pz-prev{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:13px}#pz-fields .pz-prev:empty{display:none}#pz-fields .pz-prev img{width:56px;height:56px;object-fit:contain;border:1px solid #e5e1e0;background:#fff}\u003c\/style\u003e\u003cdiv id=\"pz-fields\"\u003e\u003cdiv class=\"pz-f\"\u003e\n\u003clabel class=\"pz-l\" for=\"pz-panel-name\"\u003eName on the end panel (required). Letters and numbers, up to 12.\u003c\/label\u003e\u003cinput id=\"pz-panel-name\" class=\"pz-req\" required type=\"text\" name=\"properties[Name on Panel]\" maxlength=\"12\" pattern=\"[\\p{L}0-9' \\-]{1,12}\" placeholder=\"Example: Miller\"\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cscript\u003e(function guard() {  var f = document.querySelector('form.ProductForm'), b = f \u0026\u0026 f.querySelector('.ProductForm__AddToCart'), w = document.getElementById('pz-fields');  if (!f || !b || !w) return;  var fid = f.getAttribute('id') || (f.id = 'pz-form');  w.querySelectorAll('input,textarea').forEach(function (i) { i.setAttribute('form', fid); });  b.parentNode.insertBefore(w, b);  var file = w.querySelector('input[type=file]'), prev = w.querySelector('.pz-prev'), ei = w.querySelector('.pz-either');  var hasFile = function () { return !!(file \u0026\u0026 file.files \u0026\u0026 file.files.length); };  if (ei) ei.addEventListener('input', function () { ei.setCustomValidity(''); });  if (file) file.addEventListener('change', function () {    var x = file.files[0]; prev.innerHTML = ''; if (ei) ei.setCustomValidity('');    if (!x) return;    if (x.size \u003e 20 * 1024 * 1024) { file.value = ''; prev.textContent = 'That file is over 20 MB. Try a smaller one.'; return; }    if (\/^image\\\/\/.test(x.type)) { var img = new Image(); img.alt = ''; img.src = URL.createObjectURL(x); prev.appendChild(img); }    var s = document.createElement('span'); s.textContent = x.name + ' added'; prev.appendChild(s);  });  document.addEventListener('click', function (e) {    var t = e.target.closest \u0026\u0026 e.target.closest('.ProductForm__AddToCart'); if (!t) return;    var stop = function () { e.preventDefault(); e.stopImmediatePropagation(); };    var q = w.querySelectorAll('.pz-req');    for (var i = 0; i \u003c q.length; i++) if (!q[i].value.trim() || !q[i].checkValidity()) { stop(); q[i].reportValidity(); q[i].focus(); return; }    if (ei \u0026\u0026 !ei.value.trim() \u0026\u0026 !hasFile()) { stop(); ei.setCustomValidity('Upload your logo or type the words for the front.'); ei.reportValidity(); ei.focus(); return; }    if (!hasFile()) return;    stop(); if (t.disabled) return;    var label = t.innerHTML; t.disabled = true; t.textContent = 'Uploading your logo...';    var fd = new FormData(f); if (ei \u0026\u0026 !ei.value.trim()) fd.delete(ei.name);    fetch('\/cart\/add.js', { method: 'POST', body: fd, headers: { Accept: 'application\/json' } })      .then(function (r) { if (!r.ok) throw new Error(r.status); location.href = '\/cart'; })      .catch(function () { t.disabled = false; t.innerHTML = label; prev.textContent = 'Upload failed. Try again, or type the words for the front.'; });  }, true);})();\u003c\/script\u003e","brand":"Nashville Metal Art","offers":[{"title":"Default Title","offer_id":51021103628336,"sku":null,"price":299.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0072\/9412\/4089\/files\/fr_patio_hero_v2.png?v=1793976276","url":"https:\/\/nashvillemetalart.com\/products\/name-panel-firewood-rack","provider":"Nashville Metal Art","version":"1.0","type":"link"}