🎃 Beginner-Friendly Halloween Highland Cow 3D Pearl Bead DIY Kit | Complete Kit with All Tools & Step-by-Step Guide Included 💕

$33.98 $45.07 Save $11.09
/** * 优惠码组件模型类 * 处理优惠码的显示和交互逻辑 */ class SpzCustomDiscountCodeModel extends SPZ.BaseElement { constructor(element) { super(element); // 复制按钮和内容的类名 this.copyBtnClass = "discount_code_btn" this.copyClass = "discount_code_value" } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { // 初始化服务 this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); } /** * 渲染优惠码组件 * @param {Object} data - 渲染数据 */ doRender_(data) { return this.templates_ .findAndRenderTemplate(this.element, Object.assign(this.getDefaultData(), data) ) .then((el) => { this.clearDom(); this.element.appendChild(el); // 绑定复制代码功能 this.copyCode(el, data); }); } /** * 获取渲染模板 * @param {Object} data - 渲染数据 */ getRenderTemplate(data) { const renderData = Object.assign(this.getDefaultData(), data); return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); return el; }); } /** * 清除DOM内容 */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * 获取默认数据 * @returns {Object} 默认数据对象 */ getDefaultData() { return { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), image_domain: this.win.SHOPLAZZA.image_domain, copyBtnClass: this.copyBtnClass, copyClass: this.copyClass } } /** * 复制优惠码功能 * @param {Element} el - 当前元素 */ copyCode(el) { const copyBtnList = el.querySelectorAll(`.${this.copyBtnClass}`); if (copyBtnList.length > 0) { copyBtnList.forEach(item => { item.onclick = async () => { // 确保获取正确的元素和内容 const codeElement = item.querySelector(`.${this.copyClass}`); if (!codeElement) return; // 获取纯文本内容 const textToCopy = codeElement.innerText.trim(); // 尝试使用现代API,如果失败则使用备用方案 try { if (navigator.clipboard && navigator.clipboard.writeText) { await navigator.clipboard.writeText(textToCopy); } else { throw new Error('Clipboard API not available'); } // 显示复制成功提示 this.showCopySuccessToast(textToCopy, el); } catch (err) { console.error('Modern clipboard API failed, trying fallback...', err); // 使用备用复制方案 this.fallbackCopy(textToCopy, el); } const discountId = item.dataset["discountId"]; // 跳转决策: is_redirection + link(可选覆盖) const setting = { is_redirection: item.dataset["redirection"] === "true", link: item.dataset["link"], }; const landingUrl = `/promotions/discount-default/${discountId}`; const finalUrl = appDiscountUtils.resolveDiscountHref(setting, landingUrl); if (finalUrl && appDiscountUtils.inProductBody(this.element)) { this.win.open(finalUrl, '_blank', 'noopener'); } } }) } } /** * 使用 execCommand 的复制方案 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ fallbackCopy(codeText, el) { const textarea = this.win.document.createElement('textarea'); textarea.value = codeText; // 设置样式使文本框不可见 textarea.style.position = 'fixed'; textarea.style.left = '-9999px'; textarea.style.top = '0'; // 添加 readonly 属性防止移动端虚拟键盘弹出 textarea.setAttribute('readonly', 'readonly'); this.win.document.body.appendChild(textarea); textarea.focus(); textarea.select(); try { this.win.document.execCommand('copy'); // 显示复制成功提示 this.showCopySuccessToast(codeText, el); } catch (err) { console.error('Copy failed:', err); } this.win.document.body.removeChild(textarea); } /** * 创建 Toast 元素 * @returns {Element} 创建的 Toast 元素 */ createToastEl_() { const toast = document.createElement('ljs-toast'); toast.setAttribute('layout', 'nodisplay'); toast.setAttribute('hidden', ''); toast.setAttribute('id', 'discount-code-toast'); toast.style.zIndex = '1051'; return toast; } /** * 挂载 Toast 元素到 body * @returns {Element} 挂载的 Toast 元素 */ mountToastToBody_() { const existingToast = this.win.document.getElementById('discount-code-toast'); if (existingToast) { return existingToast; } const toast = this.createToastEl_(); this.win.document.body.appendChild(toast); return toast; } /** * 复制成功的提醒 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ showCopySuccessToast(codeText, el) { const $toast = this.mountToastToBody_(); SPZ.whenApiDefined($toast).then(toast => { toast.showToast("Discount code copied !"); this.codeCopyInSessionStorage(codeText); }); } /** * 复制优惠码成功后要存一份到本地存储中,购物车使用 * @param {string} codeText - 要复制的文本 */ codeCopyInSessionStorage(codeText) { try { sessionStorage.setItem('other-copied-coupon', codeText); } catch (error) { console.error(error) } } } // 注册自定义元素 SPZ.defineElement('spz-custom-discount-code-model', SpzCustomDiscountCodeModel);
/** * Custom discount code component that handles displaying and managing discount codes * @extends {SPZ.BaseElement} */ class SpzCustomDiscountCode extends SPZ.BaseElement { constructor(element) { super(element); // API endpoint for fetching discount codes this.getDiscountCodeApi = "\/api\/storefront\/promotion\/code\/list"; // Debounce timer for resize events this.timer = null; // Current variant ID this.variantId = "af810f92-81db-4994-ae8e-850f923e2604"; // Store discount code data this.discountCodeData = {} } /** * Check if layout is supported * @param {string} layout - Layout type * @return {boolean} */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** * Initialize component after build */ buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // Bind methods to maintain context this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } /** * Setup component when mounted */ mountCallback() { this.getData(); // Add event listeners this.viewport_.onResize(this.resize); this.win.document.addEventListener('dj.variantChange', this.switchVariant); } /** * Cleanup when component is unmounted */ unmountCallback() { this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } /** * Handle resize events with debouncing */ resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { if (appDiscountUtils.inProductBody(this.element)) { this.render(); } else { this.renderSkeleton(); } }, 200); } /** * Handle variant changes * @param {Event} event - Variant change event */ switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '250a15be-82ee-4fce-ba59-382685768472' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } /** * Fetch discount code data from API */ getData() { if (appDiscountUtils.inProductBody(this.element)) { const reqBody = { product_id: "250a15be-82ee-4fce-ba59-382685768472", variant_id: this.variantId, product_type: "default", } if (!reqBody.product_id || !reqBody.variant_id) return; this.discountCodeData = {}; this.win.fetch(this.getDiscountCodeApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { let data = await response.json(); if (data.list && data.list.length > 0) { data.list[0].product_setting.template_config = JSON.parse(data.list[0].product_setting.template_config); // Format timestamps to local timezone const zone = this.win.SHOPLAZZA.shop.time_zone; data.list = data.list.map(item => { if(+item.ends_at !== -1) { item.ends_at = appDiscountUtils.convertTimestampToFormat(+item.ends_at, zone); } item.starts_at = appDiscountUtils.convertTimestampToFormat(+item.starts_at, zone); return item; }); } this.discountCodeData = data; this.render(); } else { this.clearDom(); } }).catch(err => { console.error("discount_code", err) this.clearDom(); }); } else { this.renderSkeleton(); } } /** * Clear component DOM except template */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * Render discount codes with formatted dates */ render() { // Render using discount code model SPZ.whenApiDefined(document.querySelector('#spz_custom_discount_code_model')).then(renderApi => { renderApi.doRender_({ discountCodeData: this.discountCodeData }) }).catch(err => { this.clearDom(); }) } renderSkeleton() { // Render template for non-product pages this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile() }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) .catch(err => { this.clearDom(); }); } } // Register custom element SPZ.defineElement('spz-custom-discount-code', SpzCustomDiscountCode);
Style🎁Buy 2— Save 10% Off & Free Shipping:  🧙‍♀️ Witch
Quantity
Share the love
Free worldwide shipping
Free returns
Sustainably made
Secure payments
Description

Turn glossy pearl beads into an adorable Halloween Highland cow that feels just as fun to make as it is to display. Each spooky-cute design becomes a colorful handmade keepsake that adds personality to shelves, desks, and seasonal décor.


Why You’ll Love This Halloween Highland Cow Pearl DIY Kit

🐮 Spooky-Cute Highland Cow Design

The sweet Highland cow shape is combined with playful Halloween costumes, creating a charming character that feels festive without looking overly scary.

• Adorable Highland cow face
• Signature curved horns
• Cute rounded miniature shape
• Playful Halloween costume details
• Friendly design for kids and adults
• Charming finished seasonal decoration

🎃 8 Halloween Styles to Choose From

Choose your favorite spooky-season character or collect multiple designs to create a complete Halloween Highland cow display.

• Witch
• Ghost
• Pumpkin
• Mummy
• Skeleton
• Bat
• Candy Corn
• Spiderweb

✨ Glossy Pearl Bead Details

Colorful pearl-look beads give every character a bright, polished finish with rich three-dimensional texture.

• Smooth glossy bead surface
• Dimensional handcrafted appearance
• Bright Halloween color combinations
• Detailed facial features
• Textured costume accessories
• Eye-catching from every angle

🧩 Easy Step-by-Step Project

Sort the beads, follow the illustrated pattern, build the Highland cow, and add the finishing accessories to complete your chosen character.

• Clear illustrated instructions
• Simple repeatable steps
• Easy-to-follow pattern guide
• Organized bead colors
• Suitable for patient beginners
• Creates a polished finished figure

📦 Everything Needed in One Kit

Each kit includes the coordinating beads and essential crafting accessories needed to complete the selected Halloween Highland cow design.

• Coordinating pearl beads
• Beading tool
• Illustrated pattern guide
• Display base
• Organized bead container
• Accessories for the selected style

🧘 Relaxing Hands-On Craft Time

Placing the beads one by one creates an enjoyable screen-free activity that encourages focus while gradually bringing the character to life.

• Calm repetitive crafting process
• Encourages focus and patience
• Enjoyable at your own pace
• Fun solo or family activity
• Creates a satisfying sense of progress
• Ends with a finished keepsake

🏠 Cute Halloween Display Décor

Once completed, the miniature Highland cow can be displayed throughout the Halloween season on a shelf, desk, mantel, console, or craft-room table.

• Compact tabletop decoration
• Cute addition to Halloween displays
• Suitable for shelves and desks
• Easy to style with pumpkins and lights
• Fun to display individually
• Charming as a complete collection

🎁 Thoughtful Gift for Craft Lovers

This kit offers both a creative activity and a finished Halloween decoration, making it a fun seasonal surprise for anyone who enjoys hands-on projects.

• Great for Halloween lovers
• Fun gift for Highland cow fans
• Suitable for creative kids ages 6+
• Thoughtful craft-night activity
• Offers an experience and keepsake
• Available in multiple collectible styles

♻️ Make, Keep, and Collect

Bring the finished character back every Halloween or add more styles over time to build your own spooky-cute Highland cow collection.

• Reusable seasonal decoration
• Easy to display every Halloween
• Multiple characters to collect
• Personal handmade keepsake
• Fun for annual decorating
• More meaningful because you made it

📝 Specifications

  • Product Name: Halloween Highland Cow Pearl DIY Kit
  • Product Type: Beaded character craft kit
  • Design Theme: Halloween Highland cow
  • Available Styles: Witch, Ghost, Pumpkin, Mummy, Skeleton, Bat, Candy Corn, and Spiderweb
  • Recommended Age: 6+
  • Craft Style: Three-dimensional pearl bead art
  • Main Colors: Orange, purple, black, white, brown, cream, and pink
  • Finished Form: Freestanding miniature character
  • Surface Appearance: Glossy pearl-look bead texture
  • Skill Level: Beginner-friendly guided project
  • Recommended Use: Crafting, collecting, gifting, and Halloween decorating
  • Recommended Display Areas: Shelf, desk, mantel, console, side table, or craft room
  • Recommended Occasion: Halloween, family craft time, birthdays, and seasonal gifting

Package Includes

• 1 × Selected Halloween Highland Cow Design Kit
• Coordinating Pearl Beads
• Beading Tool
• Display Base
• Illustrated Step-by-Step Guide
• Organized Bead Container
• Character Accessories for the Selected Style


❓ Frequently Asked Questions

Q: Is this a finished Halloween figure or a DIY kit?
A: This is a DIY kit. You use the included beads, tool, pattern guide, and base to create the selected Highland cow character.

Q: Are all eight Halloween designs included in one package?
A: No. Each design is a separate style. Choose from Witch, Ghost, Pumpkin, Mummy, Skeleton, Bat, Candy Corn, or Spiderweb.

Q: Is the kit suitable for beginners?
A: Yes! The illustrated pattern and step-by-step process make it approachable for beginners who can work carefully with small beads.

Q: Where can the finished Highland cow be displayed?
A: It can be displayed on a shelf, desk, mantel, console, side table, or anywhere you want to add a playful Halloween accent.

Q: Is this suitable as a gift?
A: Yes! It is a fun gift for Halloween lovers, Highland cow collectors, creative kids ages 6+, and anyone who enjoys detailed hands-on crafts.