집
신상품
베스트셀러
제품 카테고리
테마 카테고리
인기 있는
브랜드 카테고리
모든 제품
블로그
기프트 카드
더 많은 링크
Korean
Global Sites
Japanese
Spanish
German
Netherlands
로그인
등록하다
Unboxing of cheap and beautiful journaling supplies!
Jan 17, 2025
~에 의해 Journalsay
카트
장바구니가 비어 있습니다
지금 쇼핑하기
요약
${ data.originData.message }
${function () { if (!data.originData) return ""; let { apply_scenario, discount_info, landing_page_info, threshold_category } = data.originData; const progressDom = `
`; const { mobile_layout, show_add_to_cart, show_discount_label } = landing_page_info.product_display; const isBXGY = discount_info.discount_type === "DT_CODE_BXGY"; const buyProductsDom = `
`; const obtainProductsDom = `
`; const is_obtain = threshold_category === 'THRESHOLD_CATEGORY_OBTAIN_PRODUCT' ? 'active' : ''; const tabsDom = `
${function(){ let liDom = ''; const items = [ { text: landing_page_info.product.buy_product.text, class: "", value: 1 }, { text: landing_page_info.product.obtain_product.text, class: "cart-coupon-code-modal-tab__obtain", value: 2, is_obtain } ]; for (item of items) { liDom += `
${ item.text }
` } return liDom; }()}
${buyProductsDom}
${obtainProductsDom}
`; return `
${progressDom} ${isBXGY ? tabsDom : `
${buyProductsDom}
`}
` }()}
const TAG = 'spz-custom-cart-coupon-code-utils'; class SpzCustomCartCouponCodeUtils extends SPZ.BaseElement { constructor(element) { super(element); } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.keepOpenGuardBound_ = false; this.registerAction('setSideBarHeight', this.setSideBarHeight_.bind(this)); this.onResize_ = this.setSideBarHeight_.bind(this); window.addEventListener('resize', this.onResize_); } detachedCallback() { if (this.onResize_) { window.removeEventListener('resize', this.onResize_); this.onResize_ = null; } } ensureKeepOpenGuard_($sideBar) { if (this.keepOpenGuardBound_) return; this.keepOpenGuardBound_ = true; const observer = new MutationObserver(() => { if ($sideBar.hasAttribute('open') && $sideBar.hasAttribute('hidden')) { $sideBar.removeAttribute('hidden'); this.setSideBarHeight_(); } }); observer.observe($sideBar, { attributes: true, attributeFilter: ['hidden', 'open'] }); } getOpenDrawer_() { return document.querySelector('[data-section-type="cart_drawer"] spz-sidebar[open]'); } setSideBarHeight_() { const $sideBar = document.querySelector('#cart-coupon-code-modal'); if (!$sideBar) return; this.ensureKeepOpenGuard_($sideBar); const windowHeight = window.innerHeight; const $drawer = this.getOpenDrawer_(); if (!$drawer) { $sideBar.style.setProperty('max-height', windowHeight * 0.9 + 'px', 'important'); $sideBar.style.removeProperty('height'); $sideBar.style.removeProperty('width'); $sideBar.classList.remove('cart-coupon-code-modal--in-drawer'); return; } const drawerHeight = (windowHeight - 40) + 'px'; $sideBar.style.setProperty('max-height', drawerHeight, 'important'); $sideBar.style.setProperty('height', drawerHeight, 'important'); $sideBar.classList.add('cart-coupon-code-modal--in-drawer'); const rect = $drawer.getBoundingClientRect(); if (rect.width > 0) { $sideBar.style.setProperty('width', rect.width + 'px', 'important'); } } } SPZ.defineElement(TAG, SpzCustomCartCouponCodeUtils);
${function(){ const settings_product_image_hover_on = true; const variantShowLimit = 4; const private_id = 'product-tmpl-' + Math.random().toFixed(6).slice(-6); const product_variants = data.variants || []; const product_id = data.id; const images = data.images || []; const image = data.image || {}; const imageWidth = image.width; let imageHeight = image.height; const price = Number(data.price_min); let compareAtPrice = Number(data.compare_at_price); const type = data.type; const isMock = data.isMock; let product_image_hover_on = false; for (item of product_variants) { const vcap = Number(item.compare_at_price); if (item.price == price && vcap > compareAtPrice) { compareAtPrice = vcap; } } let second_image = null; if (settings_product_image_hover_on) { for (img of images.slice(1)) { if (img.src && img.src.indexOf('video=') === -1) { second_image = img; product_image_hover_on = true; break; } } } const sold_label_on = !data.available; let sale_label_on = false; if (compareAtPrice > price && data.available) { sale_label_on = true; } const diffPrice = compareAtPrice - price; return `
${function(){ return `
` }() }
매진
판매
${data.title}
-
${data.available ? `
` : ''}
`; }()}
const carousel = document.getElementById('marketing-quick-view-images'); const selector = document.getElementById('marketing-quick-view-thumb-images'); const resizeObserver = new ResizeObserver(entries => { for (let entry of entries) { const { height } = entry.contentRect; selector.style.height = height + 'px'; } }); resizeObserver.observe(carousel);
${function(){ const variantsNamesSet = new Set(data.options.map((opt) => opt.name.toLowerCase()) || []); const handleName = (name) => name.replace(/\/|\\|\s|\'|\"|`|\<|\>/g, ''); const mouseoutevent = data.options.map((opt) => `@${handleName(opt.name)}Mouseout="qv-selected-render-${opt.id}.rerender(data=event,redo=true);"`).join(' '); const mouseoverevent = data.options.map((opt) => `@${handleName(opt.name)}Mouseover="qv-selected-render-${opt.id}.rerender(data=event,redo=true);"`).join(' '); const variants = data?.variants?.map((item) => item.image.path) || []; const productData = data; const images = data.images; const selectedVariant = data.variants.find(v => v.available) || data.variants[0]; const selectedIndex = !!selectedVariant ? images.findIndex(img => img.src === (selectedVariant.image && selectedVariant.image.src)) : 0; const initialSlide = selectedIndex === -1 ? 0 : selectedIndex; return `
${images.map((image, index) => `
`).join('')}
${images.map(image => `
`).join('')} ${images.length > 1 ? `
` : ''}
${data.title}
가격
${function() { const origin = "view"; const product = (origin === 'shop' ? data.product : data) || {}; const selectedVariant = product.variants.find(v => v.available) || product.variants[0]; return !!selectedVariant ? `
저장
` : `
-
`; }()}
수량
${selectedVariant.available ? "장바구니에 담기" : "매진"}
지금 구매하세요
제품이 품절되었습니다.
제품을 사용할 수 없습니다.
-
${function() { const MAX_INVENTORY = 999999; const product0 = Object.prototype.toString.call(data) == '[object Array]' ? data[0] : (data.product || data); const inventoryQty = product0.inventory_quantity; const inventoryPolicy = product0.inventory_policy; const inventoryTracking = product0.inventory_tracking; const lowStock = 5; const selectedVariant = product0.variants.find(v => v.available) || product0?.variants[0]; const selectedVariantAvailableQuantity = selectedVariant && selectedVariant.available_quantity; let actualInventory = inventoryQty; if ((inventoryTracking && inventoryPolicy == 'continue') || !inventoryTracking) { actualInventory = MAX_INVENTORY; } return `
Avaliability:
제품이 품절되었습니다.
재고, 배송 준비
낮은 주식
`; }()}
` }()}
${function(){ return (data.product.options || []).map((option, index) => { const optionName = option.name || ''; const optionId = option.id || ''; return `
${optionName}:
${data.selectedValues[optionName]}
${option.values.map((value,idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; return `
${value}
` }).join('')}
` }).join('') }()}
${function(){ const { currentOptName, originData: { selectData, value } } = data; const optionValue = selectData ? selectData[currentOptName].value[0] : value; return `
${optionValue}
` }()}
저장
-
${function(){ const productData = data.product; const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const product_options = productData.options.filter(Boolean) || []; const handleName = (name) => name.replace(/\/|\\|\s|\'|\"|`|\<|\>/g, ''); const mouseoutevent = productData.options.map((opt) => `@${handleName(opt.name)}Mouseout="qs-selected-render-${opt.id}.rerender(data=event,redo=true);"`).join(' '); const mouseoverevent = productData.options.map((opt) => `@${handleName(opt.name)}Mouseover="qs-selected-render-${opt.id}.rerender(data=event,redo=true);"`).join(' '); return `
가격
${function() { const origin = "shop"; const product = (origin === 'shop' ? data.product : data) || {}; const selectedVariant = product.variants.find(v => v.available) || product.variants[0]; return !!selectedVariant ? `
저장
` : `
-
`; }()}
수량
${selectedVariant.available ? "장바구니에 담기" : "매진"}
지금 구매하세요
제품이 품절되었습니다.
제품을 사용할 수 없습니다.
-
${function() { const MAX_INVENTORY = 999999; const product0 = Object.prototype.toString.call(data) == '[object Array]' ? data[0] : (data.product || data); const inventoryQty = product0.inventory_quantity; const inventoryPolicy = product0.inventory_policy; const inventoryTracking = product0.inventory_tracking; const lowStock = 5; const selectedVariant = product0.variants.find(v => v.available) || product0?.variants[0]; const selectedVariantAvailableQuantity = selectedVariant && selectedVariant.available_quantity; let actualInventory = inventoryQty; if ((inventoryTracking && inventoryPolicy == 'continue') || !inventoryTracking) { actualInventory = MAX_INVENTORY; } return `
Avaliability:
제품이 품절되었습니다.
재고, 배송 준비
낮은 주식
`; }()}
` }()}
${function(){ return (data.product.options || []).map((option, index) => { const optionName = option.name || ''; const optionId = option.id || ''; return `
${optionName}:
${data.selectedValues[optionName]}
${option.values.map((value,idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; return `
${value}
` }).join('')}
` }).join('') }()}
${function(){ const { currentOptName, originData: { selectData, value } } = data; const optionValue = selectData ? selectData[currentOptName].value[0] : value; return `
${optionValue}
` }()}
저장
-
const TAG = 'spz-custom-marketing-utils'; class SpzCustomMarketingUtils extends SPZ.BaseElement { constructor(element) { super(element); } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } mountCallback() { this.ensureToastInBody_('coupon-code-toast-wrap'); } showCouponCodeToast_(message) { this.ensureToastInBody_('coupon-code-toast-wrap'); const toastEl = document.getElementById('coupon-code-toast'); if (!toastEl) return; SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast(message); }); } ensureToastInBody_(id) { const wrapEl = document.getElementById(id); if (!wrapEl) return; if (!wrapEl.closest('[data-section-type="cart_drawer"]')) return; if (wrapEl.parentNode !== document.body) { document.body.appendChild(wrapEl); } } buildCallback() { this.registerAction('addToCartTrigger', (invocation) => { window.$ && $(document).trigger('dj.common.cart.change'); window.$ && $(document).trigger('dj.addToCart', invocation.event.detail); }); this.registerAction('showAddToCartToast', () => { this.showCouponCodeToast_("성공적으로 추가됨"); }); } } SPZ.defineElement(TAG, SpzCustomMarketingUtils);
할인 코드
사용
${function(){ if (data.status === 'APPLY_STATUS_SUCCESS' || !data.message) { return `
` } return `
${data.originData.message}
추가
` }()}
${data.map( item => { return `
${item}
` }).join('')}
아래 할인 코드는 사용할 수 없습니다.
${data.map( item => { return `
${item}
` }).join('')}
${function(){ const code_data = data.originData.list; if (!code_data || !code_data.length) return ''; const recommendDom = `
할인코드 추천
`; const discountCodeListDom = code_data.map( item => { item.end_at = item.end_at == -1 ? item.end_at : item.end_at * 1000; item.start_at *= 1000; return `
${item.discount_text}
-
${item.code}
` }).join(''); return `
${recommendDom}
${discountCodeListDom}
${recommendDom}
${discountCodeListDom}
` }()}
결제시 계산 된 세금 및 배송
체크 아웃
지불 방법
체크 아웃
View cart
아직 기록 없음
아직 추천 내역이 없습니다
로딩 중...
회원 탈퇴
성공적으로 탈퇴했습니다.