Livraison gratuite dès 50 € !
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
1 / 17
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
fr.everydayedeals 8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale
Tu pourrais aussi aimer Je n'aime pas ça?
0% OFF
Épargnez €-19.99
EDS

8pcs peinture au diamant cartes de vœux cartes de remerciement de forme spéciale perceuse de forme spéciale

€19.99
1 ventes
Quantité 1000 Stock

8pcs Diamond Painting Cartes de vœux Set Special-shape Partial Drill Mosaic Thanks Birthday Postcards 5D DIY Festival Folding Greet Cards Cadeau
Spécification:
Article: Carte de peinture au diamant DIY
Matériel: perceuse partielle de forme spéciale de haute qualité + papier carton
Taille: 15x15cm / 5.91x5.91in (après que la carte est pliée en deux)
Poids: 300g
Taille de l’emballage: 30x15x3cm / 11.81x5.91x1.18in

Étapes de peinture au diamant DIY:
1. Ouvrez la boîte d’emballage et vérifiez les outils spéciaux pour la peinture au diamant
2. Vérifiez la couleur du diamant de résine et organisez-le dans l’ordre de codage
3. Découvrez la bande ci-dessus et vous verrez de nombreux symboles correspondant au code couleur
4. Incrusté des diamants avec de la résine selon le luminaire de codage couleur correspondant
5. Il est suggéré qu’un ensemble de diamants en résine puisse être complété plus rapidement
6. Afin de faire une peinture de diamant parfaite, mettez le dessin au même endroit, et il n’est pas nécessaire de laisser des diamants dans chaque ligne de symboles
7. Pour couper une bonne figure sur le dessin, veuillez installer le tableau de classification sur le plan du matériau ci-dessus
8. L’épissage doit être plat, propre et exempt de fissures
9. Après une bonne lutte, les trous de colle restants rencontrent le symbole du diamant

Note:
Il s’agit d’un produit de diamant point de diamant de bricolage, il n’est pas terminé, vous devez le compléter 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 affichée sur les images. Merci!
Veuillez autoriser un écart de mesure de 1 à 2 cm en raison de la mesure manuelle.
8 * Cartons diamantés
8 * Enveloppes de cartes de vœux

1 ensemble * Outils de dessin au diamant (stylo de forage ponctuel, plaque d’accélération, sac de perçage)


8 * Diamond Cardboards
8 * Greeting Card Envelopes

1 set * Diamond Drawing Tools (point drill pen, speed-up plate, drill bag)
Tu pourrais aussi aimer Je n'aime pas ça?
Avis des clients

Here are what our customers say.

émettre un commentaire
Commentaire de clients
tu as atteint le fond
Le plus récent
Le plus aimé
Meilleures notes
Notes les plus basses
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.
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('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);