Skip to content
See all offers
Made in Guizhou. Made to be kept.
Made in Guizhou. Made to be kept.
Made in Guizhou. Made to be kept.
Made in Guizhou. Made to be kept.
Home
About Us
About Batik
Shop
Handcrafted Batik Hats
Handcrafted Bags
Home & Living
Everyday Indigo Edit
Journal
More links
Log in
Create an account
${(data.data && data.data.count) > 999 ? '999+' : (data.data && data.data.count)}
${(data.data && data.data.count) > 999 ? '999+' : (data.data && data.data.count)}
Search
Home
About Us
About Batik
Shop
Shop
Handcrafted Batik Hats
Handcrafted Bags
Home & Living
Everyday Indigo Edit
Journal
Log in
Top search terms
${function() { if (data === undefined || typeof data !== 'string' || data == '') return ''; const searchEmpty = ("Your search for \"{test}\" did not yield any results.").replace('{test}', data); return `
View more
${searchEmpty}
`; }()}
Home
/
Journal
Journal
${data.title}
${data.excerpt}
Read more
${ data == 1 ? ("1 product was added to your cart!") : ("{count} products were added to your cart!").replace('{count}', data) }
${function() { const freeShippingAmount = 79; const totalPrice = Number(data.data.total_price) || 0; const diffAmount = freeShippingAmount - totalPrice; const freeShippingText = diffAmount > 0 ? "Spend {amount} more to unlock free shipping!" : "You\u2019ve unlocked free shipping!"; return `
${diffAmount > 0 ? freeShippingText.replace('{amount}', `
`) : freeShippingText}
`; }()}
${data.title}
${data.variant.options.map(option => option.value).join(' / ')}
${(data.parsedProperties || []).map((propertie)=>{ if (propertie.isImage){ return `
${propertie.name}:
View image
` }else{ return `
${propertie.name}: ${propertie.value}
` } }).join('')}
${data.data.item_count == 1 ? ("Cart subtotal (1 product)") : ("Cart subtotal ( {count} products)").replace('{count}', data.data.line_items.reduce((res, item) => res + Number(item.quantity), 0))}
${function() { const cart = data.data; const saved = function() { const items = cart.line_items; const total = Number(cart.total_price); if (!Array.isArray(items) || !items.length || cart.total_price == null || !Number.isFinite(total) || total < 0) return 0; let referenceTotal = 0; for (const item of items) { const price = Number(item.price); const quantity = Number(item.quantity); if (item.price == null || !Number.isFinite(price) || price < 0 || !Number.isFinite(quantity) || quantity <= 0) return 0; const compareAt = Number(item.compare_at_price); referenceTotal += Math.max(price, Number.isFinite(compareAt) ? compareAt : price) * quantity; } return Math.max(0, Math.round((referenceTotal - total) * 100) / 100); }(); if (!(saved > 0)) return ""; const label = ("Save {off_ratio}").replace('{off_ratio}', `
`); return `
${label}
`; }()}
Taxes and shipping calculated at checkout
Check out
View cart
Continue shopping
You may also like
${function() { const force_image_size = "natural"; const product_hover_on = true; const product_show_sale_label = false; const product_save_type = "amount"; const badge1 = ""; const badge2 = ""; const badge3 = ""; const product_title_mobile_hide = false; const product_title_style = "full"; const enable_collection_thumb_image = true; const variantNames = ["color"]; const thumbMaxNum = 4; const suffix_id = Math.random().toFixed(6).slice(-6); const url = data.withinUrl; 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 = data.secondImage; let imageHoverOn = !!image2.src; if (force_image_size !== 'natural') { imageHeight = imageWidth * force_image_size; } let compareAtPrice = data.compare_at_price; let offRatio = data.off_ratio; let discountMaxUrl = url; const showFrom = data.price_min != data.price_max ? true : false; 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.withinUrl); } } 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); const productTitle = data.title; 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 `
${saleOn ? saveText : soldOutText}
${badge1}
${badge2}
${badge3}
${ "title" === 'subtitle' ? data.brief : data.title }
From
${showVariants.map((item, idx) => { let showMoreHtml = ''; if (idx == thumbMaxNum) { showMoreHtml += `
+${showVariants.length - thumbMaxNum}
`; } return ` ${showMoreHtml}
`; }).join('') }
`; }()}
${function() { const defaultSelectedVariant = data.variants.find(v => v.available) || data.variants[0]; const defaultIndex = !!defaultSelectedVariant ? data.images.findIndex(img => img.src == (defaultSelectedVariant.image && defaultSelectedVariant.image.src)) : -1; const initialSlide = defaultIndex == -1 ? 0 : defaultIndex; const attrs = data.images.length > 1 ? 'slide controls' : ''; return `
`; }()}
${data.title}
${data.brief}
${function() { const defaultSelectedVariant = data.variants.find(v => v.available) || data.variants[0]; return `
-
`; }()}
${function(){ const defaultSelectedVariant = data.variants.find(v => v.available) || data.variants[0]; let status_lan = "Add to cart"; if ((defaultSelectedVariant && !defaultSelectedVariant.available) || (!defaultSelectedVariant && !data.available)) { status_lan = "Sold out"; } return `
Quantity
${status_lan}
Buy now
` }()}
${function() { return data.product.options.map((option, index) => { const optionName = option.name || ''; const optionId = option.id || ''; let isThumbImage = !!option.showThumbImage; const thumbStyle = "image_with_text"; const thumbType = isThumbImage ? thumbStyle.replace(/_/g, '-') : 'text'; const variantType = null; const selectedVariantVal = data.selectedOptions && data.selectedOptions.length && data.selectedOptions.find(v => v.name === optionName).value[0] || ''; const isSelected = (value) => { const selected = (data.selectedOptions || []).find(v => v.name === optionName); return selected && selected.value.length && selected.value[0] == value; }; const getThumbImage = (value) => { const options = data.product.options || []; const option = options.find(o => o.name === optionName); if (option.thumbImages) { const thumbImage = option.thumbImages.find(t => t.value === value); if (thumbImage && thumbImage.image) { return { src: thumbImage.image.src, alt: thumbImage.image.alt }; } } return {src: '', alt: ''}; }; return `
${optionName.slice(0, 1).toUpperCase() + optionName.slice(1).toLowerCase()} :
${selectedVariantVal}
${option.values.map((value, idx) => { return `
${value}
${value}
` }).join('')}
`; }).join(''); }()}
${data.value || ''}
-
-