Are armored motorcycle hoodies safe? Yes, but only if the garment is tested to EN 17092 and holds CE-certified armor at the shoulders, elbows and back. Here is what to check before you buy.
FREE SHIPPING in USA, Canada, Europe & AustraliaFAST SHIPPINGOne-Year Garment Warranty30-Day Return PolicyFREE SHIPPING in USA, Canada, Europe & AustraliaFAST SHIPPINGOne-Year Garment Warranty30-Day Return Policy
/* =========================================================
OZ MOTO GEAR — SAVINGS LABEL FIX V2
---------------------------------------------------------
FIXES:
- Desktop Cart Page price location
- Mobile Cart Page price location
- Cart Drawer price location
- Moves existing badge if placed in hidden element
- Uses actual variant compare-at price
- Does not modify Shopify cart or checkout
========================================================= */
function updateSavings(row, line, cart) {
/* GET CORRECT PRODUCT VARIANT */
const product = productCache.get(line.handle);
const variant = product &&
(product.variants || []).find(v =>
String(v.id) === String(line.variant_id)
);
const compareAt = Number(
variant && variant.compare_at_price
) || 0;
const originalPrice =
Number(line.original_price) || 0;
const finalPrice = Number(
line.final_price !== undefined
? line.final_price
: line.price
);
const regularPrice = Math.max(
compareAt,
originalPrice
);
const saving = regularPrice - finalPrice;
let badge = row.querySelector(
'.oz-cart-save-label'
);
/* REMOVE LABEL IF NO REAL SAVING */
if (!Number.isFinite(saving) || saving <= 0) {
if (badge) badge.remove();
return;
}
/* =====================================================
FIND CORRECT VISIBLE PRICE ELEMENT
Prefer actual price text, not hidden price containers
===================================================== */
const selectors = [
/* Desktop Cart Page */
'td.line-item__price-list-container .price-list > .price:not(.price--compare)',
/* Mobile Cart Page */
'.product-item-meta__price-list-container .price-list > .price:not(.price--compare)',
/* Cart Drawer */
'.price-list > .price:not(.price--compare)',
/* Other Focal price layouts */
'.line-item__price',
'.cart-item__price',
'[data-line-item-price]',
'.price-list'
];
const candidates = [];
selectors.forEach(selector => {
row.querySelectorAll(selector).forEach(el => {
if (!candidates.includes(el)) {
candidates.push(el);
}
});
});
const priceArea = candidates.find(el => {
return el.getClientRects().length > 0 &&
window.getComputedStyle(el).visibility !== 'hidden';
}) || candidates[0];
if (!priceArea) return;
/* CREATE BADGE */
if (!badge) {
badge = document.createElement('span');
badge.className = 'oz-cart-save-label';
}
/* FIX: MOVE BADGE OUT OF HIDDEN PRICE AREA */
if (badge.parentElement !== priceArea) {
priceArea.appendChild(badge);
}
/* SHOW CORRECT SAVINGS */
badge.textContent =
' (Save ' +
money(saving, cart.currency) +
')';
}
/* =========================================================
END OZ MOTO GEAR — SAVINGS LABEL FIX V2
========================================================= */