Bottlenose dolphin Canvas Wall Art

$44.99  - $159.99
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = 'af1921b6-37f7-45f4-9bbf-20921d0721ed'; this.isRTL = SPZ.win.document.dir === 'rtl'; this.isAddingToCart_ = false; // 加购中状态 } static deferredMount() { return false; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback() { this.init(); // 监听事件 this.bindEvent_(); } async init() { this.handleFitTheme(); const data = await this.getDiscountList(); this.renderApiData_(data); } async getDiscountList() { const productId = '879159b1-e4d7-4831-917e-369d2f70cf46'; const variantId = this.variant_id; const productType = ''; const reqBody = { product_id: productId, variant_id: variantId, discount_method: "DM_AUTOMATIC", customer: { customer_id: window.C_SETTINGS.customer.customer_id, email: window.C_SETTINGS.customer.customer_email }, product_type: productType } const url = `/api/storefront/promotion/display_setting/text/list`; const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { this.setContainerDisabled(false); }) return data; } async renderDiscountList() { this.setContainerDisabled(true); const data = await this.getDiscountList(); this.setContainerDisabled(false); // 重新渲染 抖动问题处理 this.renderApiData_(data); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } async renderApiData_(data) { const parentDiv = document.querySelector('.automatic_discount_container'); const newTplDom = await this.getRenderTemplate(data); if (parentDiv) { parentDiv.innerHTML = ''; parentDiv.appendChild(newTplDom); } else { console.log('automatic_discount_container is null'); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, { ...renderData, isRTL: this.isRTL }) .then((el) => { this.clearDom(); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container_outer'); if(isDisable) { automaticDiscountEl.setAttribute('disabled', ''); } else { automaticDiscountEl.removeAttribute('disabled'); } } // 绑定事件 bindEvent_() { window.addEventListener('click', (e) => { let containerNodes = document.querySelectorAll(".automatic-container .panel"); let bool; Array.from(containerNodes).forEach((node) => { if(node.contains(e.target)){ bool = true; } }) // 是否popover面板点击范围 if (bool) { return; } if(e.target.classList.contains('drowdown-icon') || e.target.parentNode.classList.contains('drowdown-icon')){ return; } const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { node.classList.remove('open-dropdown'); }) // 兼容主题 this.toggleProductSticky(true); }) // 监听变体变化 document.addEventListener('dj.variantChange', async(event) => { // 重新渲染 const variant = event.detail.selected; if (variant.product_id == '879159b1-e4d7-4831-917e-369d2f70cf46' && variant.id != this.variant_id) { this.variant_id = variant.id; this.renderDiscountList(); } }); } // 兼容主题 handleFitTheme() { // top 属性影响抖动 let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ productInfoEl.classList.add('force-top-auto'); } } // 兼容 wind/flash /hero 主题 (sticky属性影响 popover 层级展示, 会被其他元素覆盖) toggleProductSticky(isSticky) { let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ if(isSticky) { // 还原该主题原有的sticky属性值 productInfoEl.classList.remove('force-position-static'); return; } productInfoEl.classList.toggle('force-position-static'); } } setupAction_() { this.registerAction('handleDropdown', (invocation) => { const discount_id = invocation.args.discount_id; const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { if(node.getAttribute('id') != `automatic-${discount_id}`) { node.classList.remove('open-dropdown'); } }) const $discount_item = document.querySelector(`#automatic-${discount_id}`); $discount_item && $discount_item.classList.toggle('open-dropdown'); // 兼容主题 this.toggleProductSticky(); }); // 加购事件 this.registerAction('handleAddToCart', (invocation) => { // 阻止事件冒泡 const event = invocation.event; if (event) { event.stopPropagation(); event.preventDefault(); } // 如果正在加购中,直接返回 if (this.isAddingToCart_) { return; } const quantity = invocation.args.quantity || 1; this.addToCart(quantity); }); } // 加购方法 async addToCart(quantity) { // 设置加购中状态 this.isAddingToCart_ = true; const productId = '879159b1-e4d7-4831-917e-369d2f70cf46'; const variantId = this.variant_id; const url = '/api/cart'; const reqBody = { product_id: productId, variant_id: variantId, quantity: quantity }; try { const data = await this.xhr_.fetchJson(url, { method: 'POST', body: reqBody }); // 触发加购成功提示 this.triggerAddToCartToast_(); return data; } catch (error) { error.then(err=>{ this.showToast_(err?.message || err?.errors?.[0] || 'Unknown error'); }) } finally { // 无论成功失败,都重置加购状态 this.isAddingToCart_ = false; } } showToast_(message) { const toastEl = document.querySelector("#apps-match-drawer-add_to_cart_toast"); if (toastEl) { SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast(message); }); } } // 触发加购成功提示 triggerAddToCartToast_() { // 如果主题有自己的加购提示,则不显示 const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy'); if (themeAddToCartToastEl) return; // 显示应用的加购成功提示 this.showToast_("Added successfully"); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomProductAutomatic);
class SpzCustomDiscountBundle extends SPZ.BaseElement { constructor(element) { super(element); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } mountCallback() {} unmountCallback() {} setupAction_() { this.registerAction('showAddToCartToast', () => { const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy') if(themeAddToCartToastEl) return const toastEl = document.querySelector('#apps-match-drawer-add_to_cart_toast') SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast("Added successfully"); }); }); } buildCallback() { this.setupAction_(); }; } SPZ.defineElement('spz-custom-discount-toast', SpzCustomDiscountBundle);
class SpzCustomDiscountFlashsale extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.getFlashSaleApi = "\/api\/storefront\/promotion\/flashsale\/display_setting\/product_setting"; this.timer = null; this.variantId = "af1921b6-37f7-45f4-9bbf-20921d0721ed"; // 促销活动数据 this.flashsaleData = {} } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // 挂载bind函数 解决this指向问题 this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } mountCallback() { // 获取数据 this.getData(); this.element.onclick = (e) => { const cur = this.win.document.querySelector(".app_discount_flashsale_desc"); const setting = this.flashsaleData.product_setting; const landingUrl = `/promotions/discount-default/${this.flashsaleData.discount_info.id}`; const finalUrl = appDiscountUtils.resolveDiscountHref(setting, landingUrl); if (finalUrl && appDiscountUtils.inProductBody(this.element) && e.target !== cur) { this.win.open(finalUrl, '_blank', 'noopener'); } } // 绑定 this.viewport_.onResize(this.resize); // 监听子款式切换,重新渲染 this.win.document.addEventListener('dj.variantChange', this.switchVariant); } unmountCallback() { // 解绑 this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { this.render(); }, 200) } switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '879159b1-e4d7-4831-917e-369d2f70cf46' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "879159b1-e4d7-4831-917e-369d2f70cf46", product_type: "", variant_id: this.variantId } this.flashsaleData = {}; this.win.fetch(this.getFlashSaleApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { this.flashsaleData = await response.json(); this.render(); } else { this.clearDom(); } }).catch(err => { this.clearDom(); }); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } render() { this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), inProductDetail: appDiscountUtils.inProductBody(this.element), flashsaleData: this.flashsaleData, image_domain: this.win.SHOPLAZZA.image_domain, }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) } } SPZ.defineElement('spz-custom-discount-flashsale', SpzCustomDiscountFlashsale);
Shipping
/** * 优惠码组件模型类 * 处理优惠码的显示和交互逻辑 */ 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 = "af1921b6-37f7-45f4-9bbf-20921d0721ed"; // 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 == '879159b1-e4d7-4831-917e-369d2f70cf46' && 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: "879159b1-e4d7-4831-917e-369d2f70cf46", variant_id: this.variantId, product_type: "", } 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);
Frame:  Frameless
SIZE:  23*46INCHES(🔥🔥Best-Selling)
Quantity

Size And Frame

100% MADE IN USA

⚡️Ready To Ship⚡️

🚚GLOBAL FREE SHIPPING✈️

Canvas is made available in size:

How do I hang it? Is it complicated?

No tools, no hassle—just instant beauty for your walls.

 Pre-installed hangers on the back for easy mounting.

 Lightweight but durable—hang it in minutes.

 Perfectly balanced design—no tilting or misalignment.

What Is Canvas and Frame?

Unique Features

* Highest Museum Quality Standards
* Gallery Wrapped
* UV-protective coating
* Genuine Archival PIGMENT Ink (Produced to last over 100 years)
* Available in different sizes (custom sizes available on request)
* Vibrant non-fade colors
* Hand-stretched and tightly folded corners
* Mirrored edges with no loss of image on the sides
* Dried Pinewood Framework 1,5” ( 3cm ) wide, does not deform over time.
* Largest selection of images
* Our canvas prints are guaranteed to look fabulous for years to come.
* Very carefully packaged in 3 protective layers, no damage during transportation
* Your satisfaction is 100% guaranteed- please contact us about any problems.
* Comes with love!

100% MADE IN USA

It Starts With A High-Quality Image

Our team of designers carefully review each piece of art for high-quality resolution

Own Every Stage of Production

The Personal Touch: This is the only way we can be sure to deliver on the highest standards of quality and add a personal touch that is distinctively our.  We do all of this because we are passionate about art and the relationship our customers have with our product.
1. Never hang your canvas prints outside, in areas of high humidity, or near any heat source!
2. Never use any chemical cleaners to clean your canvas prints!
3. Wipe the dust using a dry cloth without strong pressing on the surface.

Shipping Details

When can I expect to receive my order?

Our items are made to order by hand and can take up to 1-2 business days to make and ship.  Customers who selected "Free Standard Shipping" should expect to receive their orders between 3-5 business days from the date of purchase.  

Tracking details will be emailed to you once your order has shipped. To track your order status online, visit our guest order tracking page. 

Can I change the shipping address once the order has been placed?

If the order hasn't shipped yet, we can still change the address for you. Changing order information will delay the shipment.


Customer reviews

96 Reviews
Greg and Cynthia Dines

I have been planning on getting this beach printed frame for a long time. I am very satisfied and will recommend it. I hope that the colors stay like now 🙂

TG

Exactly what i expected, Love the quality it is a beautiful work of art

Mary Darby

Well packaged

Jacqueline Zuger

We purchased the 28x58 Canvas and Frame. It is absolutely beautiful! We love it. It was sent fast & efficient, great company. Would buy from them again.

Steve Jones

So realistic! Very nice workmanship!

Joan Boylan

I am so enjoying this beautiful window view of the sunrise in my otherwise “windowless” bathroom!

Am now redecorating this room to coordinate with this very lovely seaside view!

Beth

Nice quality painting on wrapped canvas. Looks just like it is shown.

Cindy Jasperson

This is really pretty and relaxing.

View more
Lana DaCosta

Love the colors. Beautiful

Diana Wright

It’s a nice picture, but I’m not sure I like it as much in person. I made a mistake and ordered a much bigger size than I wanted. I haven’t decided if I want to send it back or not.

Carmel Atkinson

I have this sitting in my Kitchen area! It’s true to description and brightens the room how I like it!!

Sherry

I recently moved away from the ocean. This piece of art brought all the beauty back to my home.

Elizabeth Hutson

The Wall Art arrived today !! So excited!! It is so light weight !! The picture is really pretty!! Good quality ! I am really pleased with it ! I am thinking about ordering another one !

Julie Peters

Beautiful, And I just absolutely love it

Brown

Your product was better than I expected. Great quality & vivid colors. Finishes our remodeled kitchen

JdotTrotter

Love It.

Barbara P Brown

I like the bright colours beautiful in the hall way , as described, just what I wanted, thank you

Donelle Kincaid

We liked the product and it was as expected

JS

I thought the canvas was bigger, I thought I ordered 28 x 58

J. Newcomb

I was looking for something to hang up on the wall above my sofa…. I ordered the large print of the windows to the beach scene….

I was pleasantly surprised at how well it looked once I hung it up…. I’m curios to see how it looks in a few months, after the canvas/print has time to relax

So it looks great, it’s nice and tight around the wooden frame.

….lol

I would recommend this wall art, its not too expensive or to big and easy to hang up.

Dessiree Davis

I really like this picture in my living room. It enhances the whole room.

Lynn Johnson

it’s hanging over my sofa. i love it! It was in perfect condition because it was packaged extra carefully. I love the beach scene!

Deborah DuPont

Looks nice on my wall

Peggy

This worked beautifully decorating our vacation condo. Made well and happy with purchase!!

Pam Cunningham

I loved it and it was exactly what I wanted and went well with the room I ordered it for. It was for my adult daughters birthday as she was doing her living room in a beachy theme, it was perfect and she loved it and it was perfect for the other beachy things I ordered to go with it, great buy. Thank you

Timothia Vaiangina

product is as advertised, would purchase again

~Simply Me~

I put this in a basement guest bedroom that didn't have a large window. This painting made it seem as if the guests had a nice view.

Patricia N.

Framed nice

Rachel B

Love the picture. The view is great

Pamela Doehne

It’s a beautiful picture, love it

Verneen Duncan

I'd highly recommend this awesome product!! Beautiful ❤️

Cintia Chelles

AWESOME

Paula Mangan

Loved this addition to beach themed decor!

Tom

Just what I wanted I love it. It fits perfect where I put it.

Linda Dickson

I love it. Very good quality, nice and light. Looks great!

Denise Silvernale

Very happy

Darlene Koroly

Absolutely beautiful and I’m glad that I got this and it looks like it’s framed but it’s just on the canvas and it still looks great!

Lori Wyke

Went very nice in our new painted spare bedroom. We painted it a beachy color. Teamed up with this and other beachy decorations turned a dark room into a bright, inviting room.

Tina L Kelly

Honestly, it seems expensive for what it is- a printed canvas. However, - and thought I was looking for a bigger size, which is not available with this pic -- the pic is completely stunning, made the vibe of my office change for good. Unless it breaks, which I doubt, I am keeping it. Even a friend who saw it yesterday fell in love and ordered the same one immediately for her kitchen.

Diane

Would have liked the bigger size for my living room.

Jamie Dawes

Exactly what i expected, Love the quality it is a beautiful work of art

Stephen

This arrived while I was at work. My wife said took it out of the box and enjoyed it for 15 minutes...she was overjoyed!

Pam Cannon

I really like this canvas. I have a small kitchen and i this this helps to open up the room

Elizabeth Smith

Hung Picture in dining room it is just beautiful.

Suzi

The picture is lovely. Glad I got it.

Shelley M

I luv this !!!! I have it my bedroom and it's like looking out the window..

I might buy another one of these for a different house!!!!!

Linda

After reading all tge reviews, I was hesitant to open the package once it arrived. However, I love it. Brings springtime to the home.

Amy G.

Exactly what I expected

westloch

I wasn’t sure if I would like this picture at first but it turns out I love it. The soft colors really complement the beach theme.

Tom

There the inpiration and the relax view to study

Sherri Stanley

Making beach the theme of my sun porch.

Karen

Absolutely love this picture. Exactly as described and pictured

Paul H.

Love the picture. I may order again

Carl D

Nice picture, my wife liked it.

Seilbod

It is well made and great colors!!

Placeholder

Looks very nice in my office that has NO windows! It's beautiful and well made.

kuma

Nice and thin which helps it to look like a window. Simply beautiful in every way.

Michael

Turns out the bride and groom love it!

E Marxer

Exactly what I wanted. So happy with this

Kathy Brewer

I bought this for my small office. Working from home more, I wanted something nice to look at inside of my computer and blank walls. This is a perfect addition.

John Cryan

Perfect. Exactly what was expected

Martha Lee

I brought this for my sister.

Adrienne

it is on a canvas that's nice and sturdy. I wouldn't spend my last on it but i would by it again. Exactly as described in the description. Very realistic photo

barbara

I love the relaxing beach scene with the open window effect. Easy to hang light weight. I ordered and put in guest room so that my guests could relax and feel like they are really on vacation. Love it perfect size for over the bed.

Mary

I like the bright colours beautiful in the hall way , as described, just what I wanted, thank you

bob

We liked the product and it was as expected

Susan

It’s a beautiful picture, love it

Trisha Smith

Both 1st was too small... so figured out the right size and ordered two more... love these pictures

Donna Cooley

Beautiful and finished very well. Shipping was fast and package was well protected. Thank you

linda Betsekas

We have it in our kitchen behind the sink. The lights are perfect and it really looks like you’re watching the sun come up!

LD

This company is top notch! When ordering our Beach in the Morning, there was a hiccup whether it was the site or my error, I had mistakenly ordered 2 of the same item, they caught this and responded to an email I had sent and had already cancelled the duplicate… we received our item ahead of schedule and we love it! Highly recommend

GARY WILCOX

This is a very nice addition to our home. Everyone who has seen it has remarked about it. Fast delivery too. Thank you

Laura Sullivan

Great picture, looks Great. I was impressed with the quick delivery an packaging. 5star service.

Ben Marney

Really nice, great quality for the price very happy with purchase.

Elizabeth OBrien

This is a beautiful picture that makes you feel like you are looking out the window to the beautiful beach. We ordered this in the largest size, and placed it over our bed! We love it. Good quality too! It’s ALL good!

Brenda Simard

I purchased the framed picture as a birthday present for my friend. She LOVES it! Best gift ever. Now I'm trying to figure out which one of the great pictures available I would like for my home. Won't be long now....

john berry

Looks just like you are looking out of your window at the beach love this work of art.

Scott Nadratowski

Love my new painting. Really finishes off the bedroom. Thank you

Sally S.

I LOVE it! I feel like I could just walk through that window and be on the beach! So peaceful and inviting! ❤️

Joanna Parson

It gives me pleasure to look at it ! Beautiful 😍

Sandy Richmond

Love it !!!just what I was looking for

Nelson Haynes

Beautiful picture !

Jill Macnamara

I’m really impressed with the quality of this print. It’s transforming my bedroom into an ocean view.

Patricia Moore

I was a bit nervous when ordering my Morning Beach Window Canvas Wall Art if it would be as good as the advertisement. I am so happy with it, I walk in my front door each day and it just lifts my spirit.

Lyle Miller

Beautiful Beach In The Morning Through Window Wrapped Or Framed Canvas Wall Art

Charlene Kushler

Happy with picture that finally arrived!

Darlene Michalski

Got my picture & it was beautiful!!! Very happy with it!!!!

Craig Milner

Nice art

ANNETTE GARBINO

Very happy with my canvas. So much so, that I ordered another larger canvas. They dressup the walls and make them come alive. Highly recommend.

Sean Burke

She loves it!

John DUKE

We received the beautiful wall art we immediately went about hanging it.

Mark McClatchey

I love waking up to the beautiful beach scene in my bedroom. I have a lamp that sets under the picture and when it is on the sun really shines as though it were real!

Sara Marquiss

I love it! It's as if you are looking through a window, seriously! We have it hung above our fireplace.

Rita R.

I absolutely love my new canvas art. I put it on the wall opposite my Peloton bike so that I can look at it during my workouts. It helps to keep my mind off the especially difficult portions of the ride.

Timothy Koerner

Wish it were bigger but absolutely love it! Fast delivery. Good quality. Well packaged.

Linda Williams

Better than expected. Absolutely beautiful - looks like Pensacola Beach!

Any Questions? We’re Here to Help.

Why Choose Kikistore?

Made in the USA with premium canvas, trusted by 500,000+ customers.

Vibrant, long-lasting inks with 91% five-star reviews.

Fully customizable, quick to set up, and loved by thousands.

Fast shipping from New York, arriving ready to hang and display instantly.

This looks high-end... Why is it so affordable?

We get asked this a lot—most handcrafted, Canvas art like this would easily cost $500–$1,000+ in galleries.

But our direct-to-consumer model lets us cut out the middlemen, so you get:

✅ Handcrafted quality—not mass-produced prints

✅ Stunning depth, light textures, and fade-resistant finishes that highlight the divine scene

✅ Made in our NewYork studio by artists who care—not in overseas factories

If this was sold in a fine art gallery, it would likely cost double or more.

What size should I get?

Pick your size based on where you plan to place it:

🛋️ For living rooms or above a couch? → 58x28” or 48x32”  makes a bold, peaceful centerpiece.

🛏️ For bedrooms or entryways? → 46x23” or 36x24” offers a strong presence with a calming effect.

🖼️ For prayer corners, offices, or small spaces? → 32x16” or 24x16” adds a personal touch without overwhelming.

How do I know this is really selling out?

Fair question — but these canvas artworks always sell fast, especially during sales.

🚀 Our last batch sold out in just a few days.

🎨 Every piece is handcrafted, so production quantities are limited.

⏳ Once this batch is gone, restocks may take 6–8 weeks, or even longer.

💡 If you’re seeing this now, it’s still in stock — but we can’t guarantee how long it will last.