$product = {"id":6982407553123,"title":"CrashGuard for OnePlus 8 黑色 Black","handle":"limit-discount-product-aa0916724","description":null,"published_at":"2023-07-27T18:23:11+08:00","created_at":"2023-07-27T18:23:09+08:00","vendor":"RHINOSHIELD Taiwan B2B","type":"","tags":["20%","20240304-reseller-\u003ereplace_to-","25%","30%","35%","40%","45%","50%","limit-discount-product","member","reseller","reseller-limit-discount-product","Top50"],"price":20400,"price_min":20400,"price_max":20400,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":40590324072547,"title":"黑色 Black","option1":"黑色 Black","option2":null,"option3":null,"sku":"AA0916724","requires_shipping":true,"taxable":true,"featured_image":{"id":30275170140259,"product_id":6982407553123,"position":1,"created_at":"2023-07-27T18:23:11+08:00","updated_at":"2023-07-27T18:23:11+08:00","alt":null,"width":524,"height":525,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391","variant_ids":[40590324072547]},"available":true,"name":"CrashGuard for OnePlus 8 黑色 Black - 黑色 Black","public_title":"黑色 Black","options":["黑色 Black"],"price":20400,"weight":204,"compare_at_price":null,"inventory_quantity":999999999,"inventory_management":null,"inventory_policy":"deny","barcode":"4711366114268","featured_media":{"alt":null,"id":22633782706275,"position":1,"preview_image":{"aspect_ratio":0.998,"height":525,"width":524,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391"],"featured_image":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391","options":["Color"],"media":[{"alt":null,"id":22633782706275,"position":1,"preview_image":{"aspect_ratio":0.998,"height":525,"width":524,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391"},"aspect_ratio":0.998,"height":525,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391","width":524}],"requires_selling_plan":false,"selling_plan_groups":[],"content":null}; $bumper = null; $variants = [{"id":40590324072547,"title":"黑色 Black","option1":"黑色 Black","option2":null,"option3":null,"sku":"AA0916724","requires_shipping":true,"taxable":true,"featured_image":{"id":30275170140259,"product_id":6982407553123,"position":1,"created_at":"2023-07-27T18:23:11+08:00","updated_at":"2023-07-27T18:23:11+08:00","alt":null,"width":524,"height":525,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391","variant_ids":[40590324072547]},"available":true,"name":"CrashGuard for OnePlus 8 黑色 Black - 黑色 Black","public_title":"黑色 Black","options":["黑色 Black"],"price":20400,"weight":204,"compare_at_price":null,"inventory_quantity":999999999,"inventory_management":null,"inventory_policy":"deny","barcode":"4711366114268","featured_media":{"alt":null,"id":22633782706275,"position":1,"preview_image":{"aspect_ratio":0.998,"height":525,"width":524,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}]; $defaultVariant = {"id":40590324072547,"title":"黑色 Black","option1":"黑色 Black","option2":null,"option3":null,"sku":"AA0916724","requires_shipping":true,"taxable":true,"featured_image":{"id":30275170140259,"product_id":6982407553123,"position":1,"created_at":"2023-07-27T18:23:11+08:00","updated_at":"2023-07-27T18:23:11+08:00","alt":null,"width":524,"height":525,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391","variant_ids":[40590324072547]},"available":true,"name":"CrashGuard for OnePlus 8 黑色 Black - 黑色 Black","public_title":"黑色 Black","options":["黑色 Black"],"price":20400,"weight":204,"compare_at_price":null,"inventory_quantity":999999999,"inventory_management":null,"inventory_policy":"deny","barcode":"4711366114268","featured_media":{"alt":null,"id":22633782706275,"position":1,"preview_image":{"aspect_ratio":0.998,"height":525,"width":524,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/temp-img_964520ba-a2c4-4857-8406-7e41ecace217.png?v=1690453391"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; var sellingStatus; $device_handle = null if ($bumper) { $(document).ready(function() { var productImg = $product.images[0] var bumperVariants = $bumper.variants; var bumperColors = new Object(); var currentVariant = ''; var productType = ''; bumperVariants.forEach(variant => { bumperColors[`${variant.title.split(' (')[0].toLowerCase()}`] = variant.featured_image.src; }); if (productType === 'mod-nx-backplate' || productType === 'mod-backplate') { mergeImages([productImg, bumperColors[currentVariant]],{ crossOrigin: 'anonymous' }) .then(mergedImg => { $('.merged-img').attr('src', mergedImg); }); } else { mergeImages([bumperColors[currentVariant], productImg],{ crossOrigin: 'anonymous' }) .then(mergedImg => { $('.merged-img').attr('src', mergedImg); }); } }); }; var storedData = sessionStorage.getItem('sellingStatusData'); try { sellingStatusData = JSON.parse(storedData) } catch (error) { console.error('JSON.parse Error', error) sellingStatusData = null } $(document).ready(function() { handleSellingStatus($defaultVariant.sku, sellingStatusData); }); function handleSellingStatus(currentSku, sellingStatusData) { const sellingStatusElement = document.getElementById('selling-status') const addToCartButton = document.getElementById('AddToCart-product-template') const currentProductSku = currentSku.replace(/-(.*)$/, '-') if ($variants) { const matchSellingStatusProduct = sellingStatusData.filter(product => currentProductSku === product.sku) if (matchSellingStatusProduct.length > 0) { const isProductPending = matchSellingStatusProduct[0].status === 'pending' const matchDate = matchSellingStatusProduct[0].date sellingStatus = isProductPending ? "缺貨中" : "預購完成出貨日:" + matchDate sellingStatusElement.textContent = sellingStatus if (sellingStatus.includes("缺貨中")){ addToCartButton.disabled ='true'; addToCartButton.textContent = "缺貨中無法加入購物車" } else { addToCartButton.textContent = "加到購物車" } } else { sellingStatusElement.textContent = '' addToCartButton.textContent = "加到購物車" }; }; }; document.addEventListener('DOMContentLoaded', function () { var currentVariantSelect = document.getElementById('SingleOptionSelector-0') currentVariantSelect.addEventListener('change', function() { var currentSku = $('#current_sku').text() var skuElement = document.getElementById('current-sku') skuElement.textContent = currentSku handleSellingStatus(currentSku, sellingStatusData) }); });
// Override default values of shop.strings for each template. // Alternate product templates can change values of // add to cart button, sold out, and unavailable states here. theme.productStrings = { addToCart: "加到購物車", soldOut: "售完", unavailable: "停產" }