Just In: Halloween Ready with Cosplay Collection!
Black and White
Whether you're portraying a possessed entity or a malevolent spirit, these black and white lenses are the perfect go-to wear!
Black and White
Whether you're portraying a possessed entity or a malevolent spirit, these black and white lenses are the perfect go-to wear!
0 ? (data.index - 1) : (data.total - 1)});">
Red
If you want to enhance your vampire or wicked witch styles, look no further than these red cosplay contacts.
Red
If you want to enhance your vampire or wicked witch styles, look no further than these red cosplay contacts.
Red
If you want to enhance your vampire or wicked witch styles, look no further than these red cosplay contacts.
0 ? (data.index - 1) : (data.total - 1)});">
Green and Yellow
Bringing mythical creatures and fantasy characters like Cat Women to life. Get that vibrant look with these green and yellow lenses.
Green and Yellow
Bringing mythical creatures and fantasy characters like Cat Women to life. Get that vibrant look with these green and yellow lenses.
0 ? (data.index - 1) : (data.total - 1)});">
Recently Viewed
${function() {
const force_image_size = "natural";
const product_hover_on = true;
const product_show_sale_label = true;
const product_save_type = "percent";
const badge1 = "";
const badge2 = "";
const badge3 = "";
const product_title_mobile_hide = false;
const product_title_style = "hide";
const enable_collection_thumb_image = true;
const variantNames = ["color","diopter"];
const thumbMaxNum = 3;
const url = data.url;
const productId = data.id;
const price = data.price;
const productAvailable = data.available;
const productVariants = data.variants || [];
const images = data.images || [];
const image = data.image || {};
const imageWidth = image.width;
let imageHeight = image.height;
let image2 = null;
let imageHoverOn = false;
if (force_image_size !== 'natural') {
imageHeight = imageWidth * force_image_size;
}
if (product_hover_on) {
for (let i = 1; i < images.length; i++) {
const img = images[i];
if (img.src && img.src.indexOf('video=') === -1) {
image2 = img;
imageHoverOn = true;
break;
}
}
}
let compareAtPrice = data.compare_at_price;
let offRatio = data.off_ratio;
let discountMaxUrl = url;
for (let i = 0; i < productVariants.length; i++) {
const variant = productVariants[i];
if (variant.price == price && compareAtPrice < variant.compare_at_price) {
compareAtPrice = variant.compare_at_price;
offRatio = variant.off_ratio;
variant.available && (discountMaxUrl = variant.url);
}
}
const soldOutText = "Sold out";
let soldOn = false;
let saleOn = false;
if (productAvailable) {
if (product_show_sale_label && price < compareAtPrice) {
saleOn = true;
}
} else {
soldOn = true;
}
const diffPrice = compareAtPrice - price;
const saveLabelContent = product_save_type == 'percent' ? (offRatio + '%') : ` `;
let saveText = "Save {off_ratio}";
saveText = saveText.replace('{off_ratio}', saveLabelContent);
if (product_save_type == 'percent') {
saveText = "-" + offRatio + "%";
}
var product_tags = (data.tags && data.tags.split(',')) || [];
var badge = '';
product_tags.forEach(function(item, i){
if(item.includes('_badge_')){
badge = item.split('_badge_')[1];
}
})
const productTitle = data.title;
const heading = "title" === 'subtitle' ? data.brief : productTitle;
const variantValues = [];
const showVariants = [];
if (data.need_variant_image && enable_collection_thumb_image && variantNames.length > 0) {
for (let i = 0; i < (data.options || []).length; i++) {
const option = data.options[i];
const optionName = option.name.toLowerCase();
if (variantNames.includes(optionName)) {
for (let j = 0; j < productVariants.length; j++) {
const variant = productVariants[j];
const value = variant.options[i].value;
if (!variantValues.includes(value)) {
variantValues.push(value);
showVariants.push(variant);
}
}
break;
}
}
}
return `
${showVariants.map((item, idx) => {
let showMoreHtml = '';
if (idx == thumbMaxNum) {
showMoreHtml += `
`;
}
return `
${showMoreHtml}
`;
}).join('')
}
`;
}()}
`).join('')}