${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "100%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }; const product_image_hover_on = true && !!secondary_image.src; const has_save_label = true && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return `
${ data.available ? `${ (+data.compare_at_price > +data.price) ? `Save ${ data.off_ratio }% ` : '' }` : "Sold out" }
Mixed Lot
${data.title}
${ data.price_min != data.price_max ? `from
` : `
` }
+${data.remainInvisibleThumbCount}
` })()}
crazy-patch
crazy-patch
Log in
Create an account
${data.data && data.data.count}
PATCH
Embroidery patch
AA AB AC
AD AE AF
AG AH AJ
AK AL AJ
AK AL AM
AN AO AP
AQ AS AY
Large & Full set patch
BA BB BC BD BE LW WB
PVC patch
LE
BZ
special patch
BA BB BC BD
XH
AS (1-160)
Flag12 (126-249)
ZA (1-101) AS (161-184)
AD (1-160)
AE(1-160)
XT
AO (1-160)
Flag8 (1-73) AF (1-70)
CA (1-81)
AF(71-200)
CJ
Flag37 (1-114)
PA (1-160)
AX
AN (1-160)
AP (1-80) Flag12 (1-125)
AP(81-160)
CY
YA (1-99)
AY(1-80) EA(1-90) Large(1-110)
XP
CC (1-81)
TYY
CB (1-81)
CR
XY
AG(1-160)
CAP
Trucker cap
Vintage trucker cap
Classic trucker cap
Outdoor trucker cap
Custom patch
Custom embroidery patch
DH
KEYCHAIN
Keychain
keychain Y1 Y2
keychain Y3 Y4
keychain Y5 Y6
keychain Y7 Y8
T-SHIRT
More links
${(function(){ var linkList =[true,true,true,true,false].slice(offset); var hasChild = linkList.some(v => v); if(!hasChild){ return `
PATCH
CAP
Custom patch
KEYCHAIN
T-SHIRT
` } return `
PATCH
CAP
Custom patch
KEYCHAIN
T-SHIRT
Embroidery patch
AA AB AC
AD AE AF
AG AH AJ
AK AL AJ
AK AL AM
AN AO AP
AQ AS AY
Large & Full set patch
BA BB BC BD BE LW WB
PVC patch
LE
BZ
special patch
BA BB BC BD
XH
AS (1-160)
Flag12 (126-249)
ZA (1-101) AS (161-184)
AD (1-160)
AE(1-160)
XT
AO (1-160)
Flag8 (1-73) AF (1-70)
CA (1-81)
AF(71-200)
CJ
Flag37 (1-114)
PA (1-160)
AX
AN (1-160)
AP (1-80) Flag12 (1-125)
AP(81-160)
CY
YA (1-99)
AY(1-80) EA(1-90) Large(1-110)
XP
CC (1-81)
TYY
CB (1-81)
CR
XY
AG(1-160)
Trucker cap
Vintage trucker cap
Classic trucker cap
Outdoor trucker cap
Custom embroidery patch
DH
Keychain
keychain Y1 Y2
keychain Y3 Y4
keychain Y5 Y6
keychain Y7 Y8
` })()}
PATCH
Embroidery patch
AA AB AC
AD AE AF
AG AH AJ
AK AL AJ
AK AL AM
AN AO AP
AQ AS AY
Large & Full set patch
BA BB BC BD BE LW WB
PVC patch
LE
BZ
special patch
BA BB BC BD
XH
AS (1-160)
Flag12 (126-249)
ZA (1-101) AS (161-184)
AD (1-160)
AE(1-160)
XT
AO (1-160)
Flag8 (1-73) AF (1-70)
CA (1-81)
AF(71-200)
CJ
Flag37 (1-114)
PA (1-160)
AX
AN (1-160)
AP (1-80) Flag12 (1-125)
AP(81-160)
CY
YA (1-99)
AY(1-80) EA(1-90) Large(1-110)
XP
CC (1-81)
TYY
CB (1-81)
CR
XY
AG(1-160)
CAP
Trucker cap
Vintage trucker cap
Classic trucker cap
Outdoor trucker cap
Custom patch
Custom embroidery patch
DH
KEYCHAIN
Keychain
keychain Y1 Y2
keychain Y3 Y4
keychain Y5 Y6
keychain Y7 Y8
T-SHIRT
More links
${(function(){ var linkList =[true,true,true,true,false].slice(offset); var hasChild = linkList.some(v => v); if(!hasChild){ return `
PATCH
CAP
Custom patch
KEYCHAIN
T-SHIRT
` } return `
PATCH
CAP
Custom patch
KEYCHAIN
T-SHIRT
Embroidery patch
AA AB AC
AD AE AF
AG AH AJ
AK AL AJ
AK AL AM
AN AO AP
AQ AS AY
Large & Full set patch
BA BB BC BD BE LW WB
PVC patch
LE
BZ
special patch
BA BB BC BD
XH
AS (1-160)
Flag12 (126-249)
ZA (1-101) AS (161-184)
AD (1-160)
AE(1-160)
XT
AO (1-160)
Flag8 (1-73) AF (1-70)
CA (1-81)
AF(71-200)
CJ
Flag37 (1-114)
PA (1-160)
AX
AN (1-160)
AP (1-80) Flag12 (1-125)
AP(81-160)
CY
YA (1-99)
AY(1-80) EA(1-90) Large(1-110)
XP
CC (1-81)
TYY
CB (1-81)
CR
XY
AG(1-160)
Trucker cap
Vintage trucker cap
Classic trucker cap
Outdoor trucker cap
Custom embroidery patch
DH
Keychain
keychain Y1 Y2
keychain Y3 Y4
keychain Y5 Y6
keychain Y7 Y8
` })()}
crazy-patch
crazy-patch
Log in
Create an account
${data.data && data.data.count}
${(function(){ if (data === undefined || typeof data !== 'string' || data == '') return '
'; const keyword = encodeURIComponent(data); return `
View more
Your search for '${data}' did not yield any results.
` })()}
PATCH
PATCH
Embroidery patch
Embroidery patch
AA AB AC
AD AE AF
AG AH AJ
AK AL AJ
AK AL AM
AN AO AP
AQ AS AY
Large & Full set patch
BA BB BC BD BE LW WB
PVC patch
LE
BZ
special patch
special patch
BA BB BC BD
XH
XH
AS (1-160)
Flag12 (126-249)
ZA (1-101) AS (161-184)
AD (1-160)
AE(1-160)
XT
XT
AO (1-160)
Flag8 (1-73) AF (1-70)
CA (1-81)
AF(71-200)
CJ
CJ
Flag37 (1-114)
PA (1-160)
AX
AX
AN (1-160)
AP (1-80) Flag12 (1-125)
AP(81-160)
CY
CY
YA (1-99)
AY(1-80) EA(1-90) Large(1-110)
XP
XP
CC (1-81)
TYY
TYY
CB (1-81)
CR
XY
XY
AG(1-160)
CAP
CAP
Trucker cap
Trucker cap
Vintage trucker cap
Classic trucker cap
Outdoor trucker cap
Custom patch
Custom patch
Custom embroidery patch
Custom embroidery patch
DH
KEYCHAIN
KEYCHAIN
Keychain
Keychain
keychain Y1 Y2
keychain Y3 Y4
keychain Y5 Y6
keychain Y7 Y8
T-SHIRT
Log in
Create an account
(function(){ let w = window.innerWidth; function setHeaderCssVar() { const headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){ return }; document.body.style.setProperty('--window-height', `${window.innerHeight}px`); document.body.style.setProperty('--header-height', `${headerEle.clientHeight}px`); const mdScorllHideEle = headerEle.querySelector('.header__mobile .header__scroll_hide'); if (mdScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-md', `${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle = headerEle.querySelector('.header__desktop .header__scroll_hide'); if (pcScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-pc', `${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w == window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); }; function init(){ setHeaderCssVar(); window.removeEventListener('resize', window._theme_header_listener) window._theme_header_listener = handlResize; window.addEventListener('resize', window._theme_header_listener); } init(); })();
Login
Please enter your e-mail and password:
${data.errors && data.errors[0]}
Email
Email is required
Please enter a valid email.
Password
Password is required.
Password must be between 6-16 characters long.
Forgot password?
Forgot password?
Sign in
${ Object.keys((data && data.login_setting) || {}) .map(type => `
`) .join("") }
Login for more discounts
View Cart
${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { const nameEscape = opt.name.replace(/\/|\\|\s|\'|\"|`|\<|\>/g, '') product_change_event = product_change_event + `quick-shop-selected-variant-${opt.id}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `@${nameEscape}Mouseout="quick-shop-selected-variant-${opt.id}.rerender(data=event.selectData.${opt.name}, redo=true);"`; mouse_over_event = mouse_over_event + `@${nameEscape}Mouseover="quick-shop-selected-variant-${opt.id}.rerender(data=event, redo=true);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return `
${statusLan}
` }()}
${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return `
Retail
` }()}
${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = null; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return `
` }else { const price = variantData && variantData.price; return price != undefined ? `
` : '
'; } }()}
${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const optionId = option.id || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return `
${optionName}:
${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return `
${value}
` }).join('')}
${optionName}
${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `
${value}
` }).join('')}
` }).join(''); }()}
${data.originData && data.originData.value || data.value}