• Livraison offerte dès 49.99€

  • Satisfait ou remboursé 90 jours

  • Paiement 100% sécurisé

  • Service client réactif et proactif

GUIDE CADEAUX

 Jessemade FR

Pour couple

 Jessemade FR

Pour bébé

 Jessemade FR

Pour mamie

 Jessemade FR

Pour maman

 Jessemade FR

Sœur/amie

 Jessemade FR

Pour enfants

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);
Avis des clients

Montre plus tu as atteint le fond

FAQs

-Frais livraison

Standard : 4,99€

Gratuit plus de 49,99€

-Délai livraison

5-8 Jours

Si votre commande n'est pas livrée dans le délai de livraison estimé, veuillez contacter notre service client amical: support@jessemade.fr

Veuillez noter que le délai mentionné ci-dessus n'inclut pas le temps de production. Tous les articles sont fabriqués sur commande et nécessitent 1 à 7 jours ouvrables pour la fabrication.

-Suivre ma commande

Vous recevrez un e-mail avec numéro de suivi confirmant que votre commande a été envoyée, vous pouvez suivre votre commande sur ce lien: https://www.jessemade.fr/pages/suivi-de-commande

Différents modes de paiement sont disponibles sur le site Jessemade:Paypal, Carte Bancaire, Klarna.

Tout paiement effectué sur le site Jessemade.fr respecte le protocole de sécurité SSL.

Conformément à la recommandation de la CNIL, nos pages de paiement sont sécurisées lors de la saisie des données de paiement : numéro de carte, date d'expiration et le cryptogramme visuel (norme PCI DSS).

Cette plateforme crypte puis transmet ces données de paiement vers la banque, en toute confidentialité et les rend inaccessibles à un tiers.

En cas de paiement par carte bancaire, le débit est effectué au moment de la validation de la commande, après confirmation de la banque émettrice de la carte.

En cas de refus de la banque, la commande sera automatiquement annulée. À aucun moment, les données bancaires du Client ne transitent par le système informatique de Jessemade.fr.

Nous sommes soumis à la loi RGPD concernant la protection de vos données. Ainsi, nous ne pouvons pas procéder à des ventes à distance par téléphone.

Si vous avez la moindre question, n'hésitez pas à nous contacter par mail : support@jessemade.fr

Les raisons suivantes sont couvertes par notre politique 90 jours Retour / échange.(Jessemade est responsable des frais de retour de courrier, et des frais de remplacement)

-Nous avons envoyé la mauvaise commande ou élément (s), vous avez reçu tous les articles cassés ou la qualité des produits que vous avez reçu est mauvaise / défectueuse.

-Vous avez reçu le produit avec des photo ou texte différente de la photo ou texte fournie à Jessemade.

Les raisons suivantes NE sont PAS couvertes par notre politique de retour de 90 jours, et nous ne sommes pas responsable de ces problemes.

-Vous avez choisi la mauvaise taille de bracelet(s) ou bague(s).

-Raisons personnelles. Vous avez changé d’avis, de goût, etc. Les articles personnalisés sont uniques et ne peuvent être retournés sauf qu'ils sont défectueux ou endommagés. En effet, l’article L121-20-2 du Code de la Consommation permet aux e-marchands d’exclure du champ du droit de rétractation les contrats portant sur la « fourniture de biens (…) nettement personnalisés ».

-Les produits sont exposés à des substances corrosives ou à des produits chimiques. L'exposition à des produits chimiques peut modifier l'apparence de votre produit Jessemade. Ces produits chimiques comprennent, entre autres, le liquide polish pour l'argent, les piscines et les spas. L'argent oxydé est facilement endommagé.

-Les produits sont endommagés par une mauvaise manipulation ou un mauvais entretien.

-Les pièces d'argent sont se détériorent avec l'oxydation, avec le temps elles peuvent noircir. Pour l'enlever, nettoyez avec le chiffon de polissage d'argent pour lui rendre son aspect original.

Procédure d'échange/remboursement:

Pour vérifier l'état de votre commande, veuillez nous contacter en utilisant les informations suivantes:

-Votre numéro de commande

-L'illustration du produit endommagé

-Informations sur le produit à changer

Notre service clientèle examinera votre demande et vous répondra dans les plus brefs délais. Une fois la période de garantie confirmée, le produit vous sera envoyé très rapidement.

Veuillez noter que le traitement de remboursement est au-delà du notre contrôle et qu'il peut prendre 7-10 jours ouvrables supplémentaires pour que les frais atteigne à votre compte utilisé lors du paiement.

Notre e-mail: support@jessemade.fr (De 9h00 à 18h00 du lundi au vendredi)

Politique d'annulation

Une fois que votre commande a été confirmée, nous commençons immédiatement la production des articles personnalisés. Si vous souhaitez annuler votre achat, votre commande est soumise à des frais de réapprovisionnement de 30%.

  •  Jessemade FR

    @kaitlyn_bankes

     Jessemade FR
  •  Jessemade FR

    @eduelacerepiofficial

     Jessemade FR
  •  Jessemade FR

    @rudmanulaa

     Jessemade FR
  •  Jessemade FR

    @camilleelehmann

     Jessemade FR
  •  Jessemade FR

    @jacex1010

     Jessemade FR