Livraison gratuite pour les commandes supérieures à 50 euros.
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
1 / 17
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés
0% OFF

Décoration de sapin de Noël 8pcs complet forme spéciale de peinture de diamant kit de porte-clés

3 ventes
€4.99

614519

Quantité 109 Stock
8pcs DIY Full Special Shaped Drill Diamond Painting Christmas Tree Hanging Pendentif Mosaic Kit Strass Dessin Image Home Room Décorations
Caractéristique:
Peinture de bricolage, ingénieuse;
Utilisez de la résine pour fabriquer de la laque. Le lustre unique des paillettes en résine est éblouissant et brille à la lumière. C’est actuellement la décoration de bricolage la plus populaire.

Spécification:
Matériel: Carton + résine diamant
Taille: 81x60mm / 3.19x2.36in, comme indiqué dans la figure
Type de diamant: Perceuse de forme spéciale complète (perceuse simple face)

Étape de peinture au diamant DIY:
1. Ouvrez la boîte et cochez les outils spéciaux pour la peinture au diamant;
2. Selon le code couleur du diamant en résine, choisissez une couleur sur la plaque. Si la même couleur est collée à la fois, la vitesse peut être augmentée;
3. Trouvez le code couleur correspondant sur la toile, commencez à coller jusqu’à ce qu’il soit terminé;
4. Lorsque vous l’avez terminé, mettez des livres sur le dessus, laissez-le plus fermement;
5. Enfin terminé, vous pouvez accrocher vos résultats sur le sapin de Noël, les meubles, etc., décorer votre maison autant que vous le souhaitez et ajouter de la vitalité à votre maison.

Note:
Il s’agit d’une peinture au diamant DIY, elle n’est pas terminée, vous devez la compléter par vous-même.
En raison de l’effet de moniteur et de lumière différent, la couleur réelle de l’article peut être légèrement différente de la couleur montrée sur les images. Merci!
Veuillez autoriser un écart de mesure de 1 à 2 cm en raison de la mesure manuelle.
8 X Cartons
1set X Diamond Painting Tool (stylo de forage ponctuel, plaque d’accélération)
1set X Sacs Diamant

8 X Cardboards
1set X Diamond Painting Tool(point drill pen, speed-up plate)
1set X Diamond Bags
class SpzSmartBlockComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this.i18n_ = {}; this.config_ = {}; this.show_type_ = 3; this.product_resource_id_ = ''; this.collection_resource_id_ = ''; this.cart_items_ = []; this.customer_id_ = ''; this.order_id_ = ''; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { const template_type = window.SHOPLAZZA.meta.page.template_type; if (template_type === 1) { this.show_type_ = 3; this.product_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 2) { this.show_type_ = 4; this.collection_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 15){ this.show_type_ = 5; } else if (template_type === 13){ this.show_type_ = 6; } else if (template_type === 20){ this.show_type_ = 7; this.customer_id_ = window.SHOPLAZZA.customer.customer_id; } else if (template_type === 35){ this.show_type_ = 8; this.order_id_ = window.location.pathname.split('/').pop(); } this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('appzebu smart mounted'); const that = this; const themeName = window.SHOPLAZZA.theme.merchant_theme_name; const isGeek = /Geek/.test(themeName); this.fetchRules().then((res) => { if (res && res.rules && res.rules.length) { const blockEl = document.getElementById('smart_recommend_block'); SPZ.whenApiDefined(blockEl).then((api) => { api.render({data: res}, true).then(() => { if (isGeek && that.show_type_ === 6) { blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0'; } const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` .plugin__recommend_container,.app-recommend-card { display: none !important; } `; document.head.appendChild(recommendStyle); const fetchList = []; res.rules.forEach((rule) => { fetchList.push(this.fetchRuleProductList(rule.id)); }); const fetchAll = Promise.all(fetchList); fetchAll.then((p_res) => { res.rules.forEach((rule, index) => { rule.products = p_res[index] && p_res[index].products; const ruleEl = document.getElementById('smart_recommend_rule_' + rule.id); SPZ.whenApiDefined(ruleEl).then((api) => { api.render({data: rule}, true).then(() => { that.impressListen(`#smart_recommend_rule_ul_${rule.id}`, function(){ that.trackRuleImpress(rule); }); const btnElList = document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`); btnElList.forEach((btnEl) => { if (btnEl && rule.config && rule.config.quick_shop_button_bg_color && rule.config.quick_shop_button_text_color) { btnEl.style.backgroundColor = rule.config.quick_shop_button_bg_color; btnEl.style.color = rule.config.quick_shop_button_text_color; } }) }); }); }); }); }) }) } else { if (window.top !== window.self) { const template_type = window.SHOPLAZZA.meta.page.template_type; const holderEl = document.getElementById('smart_recommend_preview_no_data_placeholder'); SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart: template_type === 13, isCollection: template_type === 2, isProduct: template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); } setAction_() { this.registerAction('quickShop', (data) => { const that = this; const product_id = data.args.product_id; const productIndex = data.args.productIndex; const rule_id = data.args.rule_id; const ssp = data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb = data.args.ifb; const modalRender = document.getElementById('smart_recommend_product_modal_render'); if (product_id) { this.fetchProductData(product_id).then((res) => { const product = res.products && res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb = ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product: product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm, show_type: that.show_type_}, true).then(() => { const modalEl = document.getElementById('smart_recommend_product_modal'); SPZ.whenApiDefined(modalEl).then((modal) => { that.impressListen('#smart_recommend_product_modal', function(){ that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); }); modal.open(); }); const formEl = document.getElementById('smart_recommend_product_form'); SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const variantEl = document.getElementById('smart_recommend_product_variants'); SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product); }); }); }) }); } }); this.registerAction('handleScroll', (data) => { this.directTo(data.args.rule_id, data.args.direction); }); this.registerAction('handleProductChange', (data) => { const variant = data.args.data.variant; const product = data.args.data.product; const imageRenderEl = document.getElementById('smart_recommend_product_image'); SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant, product: product }, true); }); }); this.registerAction('handleAtcSuccess', (detail) => { const data = detail.args; data.data.product = data.data.product || {}; data.data.variant = data.data.variant || {}; const product_id = data.data.product.id; const product_title = data.data.product.title; const variant_id = data.data.variant.id; const price = data.data.variant.price; const rule_id = data.rule_id; const aid = `smart_recommend.${this.show_type_}.${rule_id}`; const ifb = data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp; const scm = data.scm; const spm = `smart_recommend_${this.show_type_}.${data.spmIndex}`; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => { const params = data.args; const spm = `smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` + params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() { const payload = { show_type: this.show_type_, }; let that = this; if (this.show_type_ === 6) { let line_items = []; return this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) { line_items = res.cart.line_items.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: item.quantity, price: item.price } }); } payload.line_items = line_items; that.cart_items_ = line_items; return that.fetchRulesRequest(payload); }); } else { if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }); } fetchCart() { return fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`) .then((res) => { if (res.ok) { return res.json(); } }); } fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields: ["title", "url", "image", "min_price_variant.price", "min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 6) { payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); } fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_ids: [product_id], fields: [ "images", "options", "min_price_variant", "variants"] }) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); const loadingEl = document.getElementById('smart_recommend_loading'); if (loadingEl) { loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele) return; if (window.getComputedStyle) { return window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; } directTo(id, direction) { const scrollElement = document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth = parseInt(this.getStyle(scrollElement, 'width')); const scrollLength = (blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth - scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left') { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength, 0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint + 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } } trackRuleImpress(rule) { if (window.sa && window.sa.track) { window.sa.track("plugin_common", { plugin_name: "upsell", event_type: "impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) { window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell", event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id, show_type: this.show_type_, }); } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart-block', SpzSmartBlockComponent);