Floral mama shirt/sweatshirt

$29.90
$59.99
Save $30.09

Produced in the US,the UK,and AU

Fast turnaround

Size : Unisex XS
Style : T-shirt
Letter Pattern : Orange
Global delivery
Free Shipping Over $49!
Sustainably made
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
Description

Dive into a world of love with our Floral mama shirt! ๐ŸŒˆ Select from various styles to infuse your life with sweetness and warmth.

๐Ÿ‘‰ Order Process: Within 24 hours of your order, our dedicated team kickstarts the production plan, ensuring every thread is woven with love. Perfect for expressing your unique style and spreading love in your daily life. Ideal for:

  • ๐Ÿก Cozy Nights In: Snuggle up in style, surrounded by the warmth of love.
  • ๐ŸŽ‰ Celebrating Milestones: Add a personal touch to birthdays, anniversaries, or special occasions.
  • ๐Ÿ‘ฉ‍๐Ÿ‘ง‍๐Ÿ‘ฆ Family Bonding: Customize with names and celebrate the love that binds your family together.
  • ๐ŸŽ Thoughtful Gifting: Surprise a friend or loved one with a personalized token of affection.

๐Ÿ‘‰ Our Commitment to You: Every product is a labor of love, uniquely designed just for you. While returns or exchanges may not be possible due to customization, we're here to address any concerns about design or product-related damages. Your satisfaction is our priority, so feel free to reach out. ๐Ÿค

Material:

  • 55% Cotton, 45% Polyester

Care Instructions:

  • Allow 24 hours before the first wash to let the love settle in.
  • Wash inside out, with similar colors, using a warm cycle.
  • Embrace air drying whenever possible (tumble drying not recommended).
  • Treat the vinyl (printed part) gently—no direct ironing.
  • Preserve the vibrancy by avoiding bleach and dry cleaning.

Size Chart: Find the size chart below the product description. Additional measurements are available in the listing photos, ensuring comfort with a margin of about 1" less or more.

๐Ÿ›’๐Ÿ’• Perfect for individuals who appreciate:

  • ๐ŸŒฟ Sustainable and Comfortable Fashion
  • ๐ŸŽจ Personalized and Unique Designs
  • ๐ŸŒŸ Thoughtful Gifts with a Personal Touch
  • ๐Ÿก Cozy Home Atmosphere

Note:

  • ๐Ÿ“ฌIn moments of uncertainty, leave us a message or reach us at forlovergift@vip.forlovergift.com We are here to guide you. 

♥ ♥ Thank you for choosing Forlovergift. Let this be more than a purchase; let it be a tribute to the boundless love of mothers. We are grateful for your trust, and we're here to make every moment count! ♥ ♥ ๐ŸŒน"

 

Shipping & Return

How It Works

1 - Production (2 to 5 days): After we receive your order, we shift into production mode. During busy seasons, the process typically takes 1-2 days longer. Please understand.

2 - Shipping (7-14 Days or Faster): Want to get your item faster? Select the 'Expedited VIP' option after adding your product to the cart for the fastest shipping method we can provide. There are also different shipping options available at checkout.

Delivery

Please note that it is the customer's responsibility to provide us with a correct and complete shipping address. If your shipping address is different from your billing address, please specify this during checkout.

After we begin to deliver your order, we will send you a Shipping Notification email, including the information of your Order ID and Tracking Shipping Number. You can check the status of your order online by logging into the Track My Order page with your Order ID and email.

Please Note: If you do not receive our order notification email, please check your spam box, or please contact us to provide the email address you used to place your order. If you have any other questions regarding shipping, please contact our Customer Service Representatives.

  • The above time frame is only applicable for orders to the US with standard shipping methods.

  • International orders: It may take 2-5 days longer due to the customs clearance process.

*Due to unpredictable postal service delays, specified delivery dates are not guaranteed.

  • For more information about Shipping and Delivery, visit here.

  • Learn more about Returns and Refunds here.

Satisfaction Guarantee

We want you to be satisfied with the products you buy from us. 

We have 24/7/365 ticket and email support. Please contact us at service@forlovergift.com if you need any assistance.

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
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.