$product = {"id":7892698136675,"title":"iPhone 12 Pro Max Mod NX Aaron Chang Waiting for","handle":"iphone-12-pro-max-mod-nx-printable-aar08","description":null,"published_at":"2025-10-03T09:38:10+08:00","created_at":"2025-10-02T10:14:15+08:00","vendor":"RHINOSHIELD Taiwan B2B","type":"","tags":["10%","20%","30%","40%","50%","brand-Apple","designer","designer-aaronchang","device-iPhone 12 Pro Max","merge","reseller-aaronchang"],"price":90000,"price_min":90000,"price_max":90000,"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":43756814303331,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"NPB0118724-AAR08","requires_shipping":true,"taxable":true,"featured_image":{"id":34543867232355,"product_id":7892698136675,"position":8,"created_at":"2025-10-02T10:14:23+08:00","updated_at":"2025-10-02T10:14:27+08:00","alt":null,"width":2000,"height":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267","variant_ids":[43756814303331]},"available":true,"name":"iPhone 12 Pro Max Mod NX Aaron Chang Waiting for - Black","public_title":"Black","options":["Black"],"price":90000,"weight":0,"compare_at_price":null,"inventory_quantity":0,"inventory_management":null,"inventory_policy":"deny","barcode":"NPB0118724-AAR08","featured_media":{"alt":null,"id":26113622114403,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/6cc2038246a8c2db6a1feaf1480ad0f1c94cb87b.webp?v=1759371258","\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/6c9544291380cd06e5b54bdfb1d799c31c92708f.webp?v=1759371259","\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/8a67a374b44b9d37e700e10c03ece2dcf1255f64.webp?v=1759371260","\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/c68e797afcbb4bc25c1f32349db3f4ab4440aa67.webp?v=1759371260","\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/4bc4a7785afc9f8c567455ef283b120a6f7f586f.webp?v=1759371261","\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/8831243e07a91949b019f729a76c2d983333367f.webp?v=1759371263","\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/1cc15ab0366743d27918411cd34516bb5153d570.webp?v=1759371263","\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267","\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/31a1c629254f6eb3878f3326befd11d651fac071.webp?v=1759371266"],"featured_image":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/6cc2038246a8c2db6a1feaf1480ad0f1c94cb87b.webp?v=1759371258","options":["color"],"media":[{"alt":null,"id":26113620148323,"position":1,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/6cc2038246a8c2db6a1feaf1480ad0f1c94cb87b.webp?v=1759371258"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/6cc2038246a8c2db6a1feaf1480ad0f1c94cb87b.webp?v=1759371258","width":2000},{"alt":null,"id":26113620344931,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/6c9544291380cd06e5b54bdfb1d799c31c92708f.webp?v=1759371259"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/6c9544291380cd06e5b54bdfb1d799c31c92708f.webp?v=1759371259","width":2000},{"alt":null,"id":26113620607075,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/8a67a374b44b9d37e700e10c03ece2dcf1255f64.webp?v=1759371260"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/8a67a374b44b9d37e700e10c03ece2dcf1255f64.webp?v=1759371260","width":2000},{"alt":null,"id":26113620770915,"position":4,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/c68e797afcbb4bc25c1f32349db3f4ab4440aa67.webp?v=1759371260"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/c68e797afcbb4bc25c1f32349db3f4ab4440aa67.webp?v=1759371260","width":2000},{"alt":null,"id":26113620934755,"position":5,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/4bc4a7785afc9f8c567455ef283b120a6f7f586f.webp?v=1759371261"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/4bc4a7785afc9f8c567455ef283b120a6f7f586f.webp?v=1759371261","width":2000},{"alt":null,"id":26113621524579,"position":6,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/8831243e07a91949b019f729a76c2d983333367f.webp?v=1759371263"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/8831243e07a91949b019f729a76c2d983333367f.webp?v=1759371263","width":2000},{"alt":null,"id":26113621885027,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/1cc15ab0366743d27918411cd34516bb5153d570.webp?v=1759371263"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/1cc15ab0366743d27918411cd34516bb5153d570.webp?v=1759371263","width":2000},{"alt":null,"id":26113622114403,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267","width":2000},{"alt":null,"id":26113622311011,"position":9,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/31a1c629254f6eb3878f3326befd11d651fac071.webp?v=1759371266"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/31a1c629254f6eb3878f3326befd11d651fac071.webp?v=1759371266","width":2000}],"requires_selling_plan":false,"selling_plan_groups":[],"content":null};
$bumper = null;
$variants = [{"id":43756814303331,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"NPB0118724-AAR08","requires_shipping":true,"taxable":true,"featured_image":{"id":34543867232355,"product_id":7892698136675,"position":8,"created_at":"2025-10-02T10:14:23+08:00","updated_at":"2025-10-02T10:14:27+08:00","alt":null,"width":2000,"height":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267","variant_ids":[43756814303331]},"available":true,"name":"iPhone 12 Pro Max Mod NX Aaron Chang Waiting for - Black","public_title":"Black","options":["Black"],"price":90000,"weight":0,"compare_at_price":null,"inventory_quantity":0,"inventory_management":null,"inventory_policy":"deny","barcode":"NPB0118724-AAR08","featured_media":{"alt":null,"id":26113622114403,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}];
$defaultVariant = {"id":43756814303331,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"NPB0118724-AAR08","requires_shipping":true,"taxable":true,"featured_image":{"id":34543867232355,"product_id":7892698136675,"position":8,"created_at":"2025-10-02T10:14:23+08:00","updated_at":"2025-10-02T10:14:27+08:00","alt":null,"width":2000,"height":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267","variant_ids":[43756814303331]},"available":true,"name":"iPhone 12 Pro Max Mod NX Aaron Chang Waiting for - Black","public_title":"Black","options":["Black"],"price":90000,"weight":0,"compare_at_price":null,"inventory_quantity":0,"inventory_management":null,"inventory_policy":"deny","barcode":"NPB0118724-AAR08","featured_media":{"alt":null,"id":26113622114403,"position":8,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/b2b.rhinoshield.tw\/cdn\/shop\/files\/cdbabfb9c32086861e74809a8651de74dc5c7c32.webp?v=1759371267"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}};
$device_handle = null
var sellingStatus
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 sellingStatusData
window.fetchSellingStatus().then(data => {
try {
sellingStatusData = data;
} catch (error) {
sellingStatusData = null
console.error('Unable to parse selling status', error)
}
$(document).ready(function() {
handleSellingStatus($defaultVariant.sku);
});
})
function handleSellingStatus(currentSku) {
if (!sellingStatusData) {
console.error('No selling status available!')
return
}
const sellingStatusElement = document.getElementById('selling-status')
const addToCartButton = document.getElementById('AddToCart-product-template')
const currentProductSku = currentSku.replace(/-(.*)$/, '-')
if ($variants) {
const flattenedSellingStatus = [...sellingStatusData.pending, ...sellingStatusData.preorder]
const matchSellingStatusProduct = flattenedSellingStatus.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)
});
});
// 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: "停產"
}