CINXE.COM

Changes in Grocery Shopping Habits and Perception | PYMNTS.com

<!DOCTYPE html> <html lang="en-US"> <head> <title>Changes in Grocery Shopping Habits and Perception | PYMNTS.com</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta name="google-site-verification" content="ywo6cX-b4noB6WSEkiQRbhTNBsV3oDtuR2vuG7rh8Xs" /> <meta name="msapplication-TileImage" content="https://www.pymnts.com/wp-content/uploads/2022/08/favicon-270.jpg" /> <link rel="shortcut icon" href="https://www.pymnts.com/wp-content/uploads/2022/08/favicon-32x32-1.png" sizes="32x32" /> <link rel="shortcut icon" href="https://www.pymnts.com/wp-content/uploads/2022/08/android-chrome-192x192-1.png" sizes="192x192" /> <link rel="apple-touch-icon-precomposed" href="https://www.pymnts.com/wp-content/uploads/2022/08/favicon-180.jpg" /> <script src="https://www.google.com/recaptcha/api.js?render=6Le36I4kAAAAAMCdrtj4Jb9rq43eln5c4Zt33TLI"></script> <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="https://www.pymnts.com/feed/" /> <link rel="alternate" type="text/xml" title="RSS .92" href="https://www.pymnts.com/feed/rss/" /> <link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="https://www.pymnts.com/feed/atom/" /> <link rel="pingback" href="https://www.pymnts.com/xmlrpc.php" /> <link rel="dns-prefetch" href="https://www.google.com"> <link rel="dns-prefetch" href="https://stats.g.doubleclick.net"> <link rel="dns-prefetch" href="https://googleads.g.doubleclick.net"> <link rel="dns-prefetch" href="https://fonts.gstatic.com"> <link rel="dns-prefetch" href="https://www.google-analytics.com"> <link rel="preload" as="script" href="/wp-content/themes/flex-mag-sixspoke/2022/js/bootstrap.bundle.min.js" /> <link rel="preload" href="/wp-content/themes/flex-mag-sixspoke/2020/bootstrap-icons.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> </script> <link rel="preload" as="script" href="https://ak.sail-horizon.com/spm/spm.v1.min.js?ver=5.5.10" /> <script src='https://ak.sail-horizon.com/spm/spm.v1.min.js?ver=5.5.10' type='text/javascript' async></script> <script type="text/javascript" src="https://www.pymnts.com/wp-content/themes/flex-mag-sixspoke/2022/js/bootstrap.bundle.min.js"></script> <link rel="stylesheet" href="/wp-content/themes/flex-mag-sixspoke/2022/2022-style.css?92"> <link rel="stylesheet" href="/wp-content/themes/flex-mag-sixspoke/2020/bootstrap-icons.css"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet"> <!-- <link rel="stylesheet" href="/wp-content/uploads/pymnts-ai/instantchatbot.css?v=1"> --> <script> if ('serviceWorker' in navigator) { navigator.serviceWorker.getRegistrations().then(function(registrations) { for (let registration of registrations) { registration.unregister() } }).catch(function(err) { console.log('Service Worker registration failed: ', err); }); } </script> </script> <noscript> <!-- <link rel="stylesheet" href="/wp-content/themes/flex-mag-sixspoke/2022/2022-style.css?91"> --> <style> .lazyload { display: none; } </style> </noscript> <script> // ST vendor var tag = { "options": { "customerId": "067919d33ae6486b1e5a249a7b40663c" } }; window.addEventListener("load", function() { console.info("ST loaded"); if (tag.isCustom) { jQuery(function($) { Sailthru.init({ customerId: tag.options.customerId, isCustom: true, autoTrackPageview: tag.options.autoTrackPageview, useStoredTags: tag.options.useStoredTags, excludeContent: tag.options.excludeContent, }); }); } else { Sailthru.init({ customerId: tag.options.customerId }); } }); var deferredLoadImages = () => {} /*! lazysizes - v5.3.2 */ ! function(e) { var t = function(u, D, f) { "use strict"; var k, H; if (function() { var e; var t = { lazyClass: "lazyload", loadedClass: "lazyloaded", loadingClass: "lazyloading", preloadClass: "lazypreload", errorClass: "lazyerror", autosizesClass: "lazyautosizes", fastLoadedClass: "ls-is-cached", iframeLoadMode: 0, srcAttr: "data-src", srcsetAttr: "data-srcset", sizesAttr: "data-sizes", minSize: 40, customMedia: {}, init: true, expFactor: 1.5, hFac: .8, loadMode: 2, loadHidden: true, ricTimeout: 0, throttleDelay: 125 }; H = u.lazySizesConfig || u.lazysizesConfig || {}; for (e in t) { if (!(e in H)) { H[e] = t[e] } } }(), !D || !D.getElementsByClassName) { return { init: function() {}, cfg: H, noSupport: true } } var O = D.documentElement, i = u.HTMLPictureElement, P = "addEventListener", $ = "getAttribute", q = u[P].bind(u), I = u.setTimeout, U = u.requestAnimationFrame || I, o = u.requestIdleCallback, j = /^picture$/i, r = ["load", "error", "lazyincluded", "_lazyloaded"], a = {}, G = Array.prototype.forEach, J = function(e, t) { if (!a[t]) { a[t] = new RegExp("(\\s|^)" + t + "(\\s|$)") } return a[t].test(e[$]("class") || "") && a[t] }, K = function(e, t) { if (!J(e, t)) { e.setAttribute("class", (e[$]("class") || "").trim() + " " + t) } }, Q = function(e, t) { var a; if (a = J(e, t)) { e.setAttribute("class", (e[$]("class") || "").replace(a, " ")) } }, V = function(t, a, e) { var i = e ? P : "removeEventListener"; if (e) { V(t, a) } r.forEach(function(e) { t[i](e, a) }) }, X = function(e, t, a, i, r) { var n = D.createEvent("Event"); if (!a) { a = {} } a.instance = k; n.initEvent(t, !i, !r); n.detail = a; e.dispatchEvent(n); return n }, Y = function(e, t) { var a; if (!i && (a = u.picturefill || H.pf)) { if (t && t.src && !e[$]("srcset")) { e.setAttribute("srcset", t.src) } a({ reevaluate: true, elements: [e] }) } else if (t && t.src) { e.src = t.src } }, Z = function(e, t) { return (getComputedStyle(e, null) || {})[t] }, s = function(e, t, a) { a = a || e.offsetWidth; while (a < H.minSize && t && !e._lazysizesWidth) { a = t.offsetWidth; t = t.parentNode } return a }, ee = function() { var a, i; var t = []; var r = []; var n = t; var s = function() { var e = n; n = t.length ? r : t; a = true; i = false; while (e.length) { e.shift()() } a = false }; var e = function(e, t) { if (a && !t) { e.apply(this, arguments) } else { n.push(e); if (!i) { i = true; (D.hidden ? I : U)(s) } } }; e._lsFlush = s; return e }(), te = function(a, e) { return e ? function() { ee(a) } : function() { var e = this; var t = arguments; ee(function() { a.apply(e, t) }) } }, ae = function(e) { var a; var i = 0; var r = H.throttleDelay; var n = H.ricTimeout; var t = function() { a = false; i = f.now(); e() }; var s = o && n > 49 ? function() { o(t, { timeout: n }); if (n !== H.ricTimeout) { n = H.ricTimeout } } : te(function() { I(t) }, true); return function(e) { var t; if (e = e === true) { n = 33 } if (a) { return } a = true; t = r - (f.now() - i); if (t < 0) { t = 0 } if (e || t < 9) { s() } else { I(s, t) } } }, ie = function(e) { var t, a; var i = 99; var r = function() { t = null; e() }; var n = function() { var e = f.now() - a; if (e < i) { I(n, i - e) } else { (o || r)(r) } }; return function() { a = f.now(); if (!t) { t = I(n, i) } } }, e = function() { var v, m, c, h, e; var y, z, g, p, C, b, A; var n = /^img$/i; var d = /^iframe$/i; var E = "onscroll" in u && !/(gle|ing)bot/.test(navigator.userAgent); var _ = 0; var w = 0; var M = 0; var N = -1; var L = function(e) { M--; if (!e || M < 0 || !e.target) { M = 0 } }; var x = function(e) { if (A == null) { A = Z(D.body, "visibility") == "hidden" } return A || !(Z(e.parentNode, "visibility") == "hidden" && Z(e, "visibility") == "hidden") }; var W = function(e, t) { var a; var i = e; var r = x(e); g -= t; b += t; p -= t; C += t; while (r && (i = i.offsetParent) && i != D.body && i != O) { r = (Z(i, "opacity") || 1) > 0; if (r && Z(i, "overflow") != "visible") { a = i.getBoundingClientRect(); r = C > a.left && p < a.right && b > a.top - 1 && g < a.bottom + 1 } } return r }; var t = function() { var e, t, a, i, r, n, s, o, l, u, f, c; var d = k.elements; if ((h = H.loadMode) && M < 8 && (e = d.length)) { t = 0; N++; for (; t < e; t++) { if (!d[t] || d[t]._lazyRace) { continue } if (!E || k.prematureUnveil && k.prematureUnveil(d[t])) { R(d[t]); continue } if (!(o = d[t][$]("data-expand")) || !(n = o * 1)) { n = w } if (!u) { u = !H.expand || H.expand < 1 ? O.clientHeight > 500 && O.clientWidth > 500 ? 500 : 370 : H.expand; k._defEx = u; f = u * H.expFactor; c = H.hFac; A = null; if (w < f && M < 1 && N > 2 && h > 2 && !D.hidden) { w = f; N = 0 } else if (h > 1 && N > 1 && M < 6) { w = u } else { w = _ } } if (l !== n) { y = innerWidth + n * c; z = innerHeight + n; s = n * -1; l = n } a = d[t].getBoundingClientRect(); if ((b = a.bottom) >= s && (g = a.top) <= z && (C = a.right) >= s * c && (p = a.left) <= y && (b || C || p || g) && (H.loadHidden || x(d[t])) && (m && M < 3 && !o && (h < 3 || N < 4) || W(d[t], n))) { R(d[t]); r = true; if (M > 9) { break } } else if (!r && m && !i && M < 4 && N < 4 && h > 2 && (v[0] || H.preloadAfterLoad) && (v[0] || !o && (b || C || p || g || d[t][$](H.sizesAttr) != "auto"))) { i = v[0] || d[t] } } if (i && !r) { R(i) } } }; var a = ae(t); var S = function(e) { var t = e.target; if (t._lazyCache) { delete t._lazyCache; return } L(e); K(t, H.loadedClass); Q(t, H.loadingClass); V(t, B); X(t, "lazyloaded") }; var i = te(S); var B = function(e) { i({ target: e.target }) }; var T = function(e, t) { var a = e.getAttribute("data-load-mode") || H.iframeLoadMode; if (a == 0) { e.contentWindow.location.replace(t) } else if (a == 1) { e.src = t } }; var F = function(e) { var t; var a = e[$](H.srcsetAttr); if (t = H.customMedia[e[$]("data-media") || e[$]("media")]) { e.setAttribute("media", t) } if (a) { e.setAttribute("srcset", a) } }; var s = te(function(t, e, a, i, r) { var n, s, o, l, u, f; if (!(u = X(t, "lazybeforeunveil", e)).defaultPrevented) { if (i) { if (a) { K(t, H.autosizesClass) } else { t.setAttribute("sizes", i) } } s = t[$](H.srcsetAttr); n = t[$](H.srcAttr); if (r) { o = t.parentNode; l = o && j.test(o.nodeName || "") } f = e.firesLoad || "src" in t && (s || n || l); u = { target: t }; K(t, H.loadingClass); if (f) { clearTimeout(c); c = I(L, 2500); V(t, B, true) } if (l) { G.call(o.getElementsByTagName("source"), F) } if (s) { t.setAttribute("srcset", s) } else if (n && !l) { if (d.test(t.nodeName)) { T(t, n) } else { t.src = n } } if (r && (s || l)) { Y(t, { src: n }) } } if (t._lazyRace) { delete t._lazyRace } Q(t, H.lazyClass); ee(function() { var e = t.complete && t.naturalWidth > 1; if (!f || e) { if (e) { K(t, H.fastLoadedClass) } S(u); t._lazyCache = true; I(function() { if ("_lazyCache" in t) { delete t._lazyCache } }, 9) } if (t.loading == "lazy") { M-- } }, true) }); var R = function(e) { if (e._lazyRace) { return } var t; var a = n.test(e.nodeName); var i = a && (e[$](H.sizesAttr) || e[$]("sizes")); var r = i == "auto"; if ((r || !m) && a && (e[$]("src") || e.srcset) && !e.complete && !J(e, H.errorClass) && J(e, H.lazyClass)) { return } t = X(e, "lazyunveilread").detail; if (r) { re.updateElem(e, true, e.offsetWidth) } e._lazyRace = true; M++; s(e, t, r, i, a) }; var r = ie(function() { H.loadMode = 3; a() }); var o = function() { if (H.loadMode == 3) { H.loadMode = 2 } r() }; var l = function() { if (m) { return } if (f.now() - e < 999) { I(l, 999); return } m = true; H.loadMode = 3; a(); q("scroll", o, true) }; return { _: function() { e = f.now(); k.elements = D.getElementsByClassName(H.lazyClass); v = D.getElementsByClassName(H.lazyClass + " " + H.preloadClass); q("scroll", a, true); q("resize", a, true); q("pageshow", function(e) { if (e.persisted) { var t = D.querySelectorAll("." + H.loadingClass); if (t.length && t.forEach) { U(function() { t.forEach(function(e) { if (e.complete) { R(e) } }) }) } } }); if (u.MutationObserver) { new MutationObserver(a).observe(O, { childList: true, subtree: true, attributes: true }) } else { O[P]("DOMNodeInserted", a, true); O[P]("DOMAttrModified", a, true); setInterval(a, 999) } q("hashchange", a, true); ["focus", "mouseover", "click", "load", "transitionend", "animationend"].forEach(function(e) { D[P](e, a, true) }); if (/d$|^c/.test(D.readyState)) { l() } else { q("load", l); D[P]("DOMContentLoaded", a); I(l, 2e4) } if (k.elements.length) { t(); ee._lsFlush() } else { a() } }, checkElems: a, unveil: R, _aLSL: o } }(), re = function() { var a; var n = te(function(e, t, a, i) { var r, n, s; e._lazysizesWidth = i; i += "px"; e.setAttribute("sizes", i); if (j.test(t.nodeName || "")) { r = t.getElementsByTagName("source"); for (n = 0, s = r.length; n < s; n++) { r[n].setAttribute("sizes", i) } } if (!a.detail.dataAttr) { Y(e, a.detail) } }); var i = function(e, t, a) { var i; var r = e.parentNode; if (r) { a = s(e, r, a); i = X(e, "lazybeforesizes", { width: a, dataAttr: !!t }); if (!i.defaultPrevented) { a = i.detail.width; if (a && a !== e._lazysizesWidth) { n(e, r, i, a) } } } }; var e = function() { var e; var t = a.length; if (t) { e = 0; for (; e < t; e++) { i(a[e]) } } }; var t = ie(e); return { _: function() { a = D.getElementsByClassName(H.autosizesClass); q("resize", t) }, checkElems: t, updateElem: i } }(), t = function() { if (!t.i && D.getElementsByClassName) { t.i = true; re._(); e._() } }; return I(function() { H.init && t() }), k = { cfg: H, autoSizer: re, loader: e, init: t, uP: Y, aC: K, rC: Q, hC: J, fire: X, gW: s, rAF: ee } }(e, e.document, Date); e.lazySizes = t, "object" == typeof module && module.exports && (module.exports = t) }("undefined" != typeof window ? window : {}); const setValue = (form, target, value) => { let span, input; span = form.querySelector(target); if (span) { input = span.getElementsByTagName('INPUT'); if (input.length) { input[0].setAttribute('autocomplete', value); input[0].addEventListener('change', () => { //console.log('Setting storage for ', value); localStorage.setItem(value, input[0].value); }) let testValue = localStorage.getItem(value); if (testValue) input[0].value = testValue; } } } const ifInputValueSetLocalStorage = (form, target, value) => { let span, input; span = form.querySelector(target); if (span) { input = span.getElementsByTagName('INPUT'); if (input.length) { if (input[0].value) { //console.log('setting localStorage', value, input[0].value); localStorage.setItem(value, input[0].value); } } } } const setupAutoComplete = () => { // get the form element const inputs = document.getElementsByTagName('INPUT'); //console.log('inputs', inputs); if (inputs.length) { for (let i = 0; i < inputs.length; ++i) { let type = inputs[i].getAttribute('type'); if (type == 'email') { let value = localStorage.getItem('email'); if (value) inputs[i].value = value; } } } const form = document.querySelector('.wpcf7'); console.log(form); if (!form) return; setInterval(() => { ifInputValueSetLocalStorage(form, '.YourFirstName', 'given-name'); ifInputValueSetLocalStorage(form, '.YourLastName', 'family-name'); ifInputValueSetLocalStorage(form, '.YourEmail', 'email'); ifInputValueSetLocalStorage(form, '.YourTitle', 'organization-title'); ifInputValueSetLocalStorage(form, '.YourCompany', 'organization'); ifInputValueSetLocalStorage(form, '.YourCountry', 'country'); }, 10000); setValue(form, '.YourFirstName', 'given-name'); setValue(form, '.YourLastName', 'family-name'); setValue(form, '.YourEmail', 'email'); setValue(form, '.YourTitle', 'organization-title'); setValue(form, '.YourCompany', 'organization'); setValue(form, '.YourCountry', 'country'); } const pageLoaded = () => { deferredLoadImages(); setupAutoComplete(); } document.addEventListener("DOMContentLoaded", pageLoaded); </script> <script src="https://www.googletagmanager.com/gtag/js?id=UA-11167465-1"></script> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/5.4.1/echarts.min.js"></script> <script> //console.log('rtInfo load socket.io', window.location.pathname); //axios.get(`https://www.pymnts.com/user-settings/?url=${encodeURIComponent(window.location.pathname)}`); </script> <script defer src="https://cdn.socket.io/4.5.4/socket.io.min.js"></script> <script> let deviceIsBlockingAnalytics = null; let googleTracker = typeof ga !== 'undefined' && ga.getAll ? ga.getAll()[0] : null; if (!googleTracker) { let count = 0; let intervalId = setInterval(() => { ++count; googleTracker = typeof ga !== 'undefined' && ga.getAll ? ga.getAll()[0] : null; if (googleTracker || count > 5) { clearInterval(intervalId); console.log('tracker', googleTracker); return; } }, 500); } else { console.error('Google Tag Manager is blocked'); deviceIsBlockingAnalytics = true; } </script> <script> function pymntsUuid() { return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) ); } let testTemplate = '/var/www/wp-content/themes/flex-mag-sixspoke/single-study.php'; let template = testTemplate ? testTemplate : 'Template Unknown'; /* * Setup rt.pymnts.com connection */ window.socketIo = null; /* * Set Device Id */ function parseCookieHeader() { const header = document.cookie; // Split the header into individual name-value pairs var pairs = header.split(';'); // Create an object to store the cookies var cookies = {}; // Loop through the name-value pairs and store them in the object for (var i = 0; i < pairs.length; i++) { var nameValue = pairs[i].split('='); cookies[nameValue[0].trim()] = nameValue[1]; } // Return the object return cookies; } const cookies = parseCookieHeader(); let pymntsDeviceId; let storedId = localStorage.getItem('pymntsDeviceId'); if (cookies['pymnts-browser-id']) { pymntsDeviceId = cookies['pymnts-browser-id']; localStorage.setItem('pymntsDeviceId', pymntsDeviceId); } else { if (storedId) pymntsDeviceId = storedId; else pymntsDeviceId = 'unknown'; } console.log('pymntsDeviceId', pymntsDeviceId); if (!storedId || storedId === 'undefined') { localStorage.setItem('pymntsDeviceId', pymntsDeviceId); } /* * Setup UA and GA4 analytics */ window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); const { hostname } = window.location; let gtagCategory = hostname === 'gamma.pymnts.com' ? 'UA-11167465-10' : 'UA-11167465-1'; gtag('config', gtagCategory); console.log('gtag ua category', gtagCategory); gtagCategory = hostname === 'gamma.pymnts.com' ? 'G-NY60TDWHJ9' : 'G-3WHRCQ5780'; gtag('config', gtagCategory); console.log('gtag g4 category', gtagCategory); //gtag('set', {'user_id': pymntsDeviceId}); // Set the user ID using signed-in user_id. setTimeout(() => { gtag("event", "pymnts_device_visit", { path: window.location.pathname, }); }, 1000); let gaIsBlocked = null; let rtIsBlocked = false; let visitedPages = []; let connectionCount = 0; let maxConnectionAttempts = 3; const landingPage = window.location.pathname; const doNotProxyReport = pathname => { console.log('Do not report', pathname); let request = { url: `https://rt.pymnts.com:6300/dnr`, method: 'post', data: { pathname } } axios(request) .then(response => console.log(response.data)) .catch(error => console.error(error)); } async function checkIfGoogleAnalyticsIsBlocked() { let request = { url: 'https://www.google-analytics.com/collect', method: "post", params: { v: 1, tid: 'G-3WHRCQ5780', cid: pymntsDeviceId, t: 'web-view' } } console.log('request', request); let isBlocking; let response; try { response = await axios(request); deviceIsBlockingAnalytics = false; isBlocking = 'false'; console.log("Google Analytics is Allowed!!!!!!!!"); doNotProxyReport(landingPage) } catch (err) { // We are blocked!!! deviceIsBlockingAnalytics = true; isBlocking = 'true'; console.error('Google Analytics is Blocked!!!!!!!'); } } checkIfGoogleAnalyticsIsBlocked(); </script> <!-- Hotjar Tracking Code for https://pymnts.com --> <script> (function(h, o, t, j, a, r) { h.hj = h.hj || function() { (h.hj.q = h.hj.q || []).push(arguments) }; h._hjSettings = { hjid: 5081647, hjsv: 6 }; a = o.getElementsByTagName('head')[0]; r = o.createElement('script'); r.async = 1; r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv; a.appendChild(r); })(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv='); </script> <style> .scrollUp { position: fixed; top: 0; left: 0; z-index: 100000 !important; } /* search bar input container */ .pymnts-search { position: absolute; right: 0; z-index: 1; } .study-toggle { display: none; } /* search bar input container */ .pymnts-search { position: absolute; right: 0; z-index: 1; } /* search bar input */ .pymnts-search input.search-bar { border: none !important; padding-left: 10px; padding-right: 30px; width: 200px; height: 30px; vertical-align: middle; } .pymnts-search input.search-bar:focus { padding-left: 10px; padding-right: 30px; width: 200px; height: 30px; } /* transition effect */ .pymnts-search input.search-bar, .search-icon-btn { padding: 0px; border: none !important; -webkit-transition: all 0.5s; -moz-transition: all 0.5s; -ms-transition: all 0.5s; -o-transition: all 0.5s; transition: all 0.5s; } </style> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- This site is optimized with the Yoast SEO Premium plugin v22.7 (Yoast SEO v23.4) - https://yoast.com/wordpress/plugins/seo/ --> <title>Changes in Grocery Shopping Habits and Perception | PYMNTS.com</title> <meta name="description" content="Changes in Grocery Shopping Habits and Perception looks at shifting consumer shopping habits, especially use of online ordering or shopping in a physical store." /> <link rel="canonical" href="https://www.pymnts.com/study/grocery-shopping-habits-perception-online-store-digital-ordering/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Changes in Grocery Shopping Habits and Perception" /> <meta property="og:description" content="Changes in Grocery Shopping Habits and Perception looks at shifting consumer shopping habits, especially use of online ordering or shopping in a physical store." /> <meta property="og:url" content="https://www.pymnts.com/study/grocery-shopping-habits-perception-online-store-digital-ordering/" /> <meta property="og:site_name" content="PYMNTS.com" /> <meta property="article:publisher" content="https://www.facebook.com/pymnts/" /> <meta property="article:modified_time" content="2023-10-26T19:05:58+00:00" /> <meta property="og:image" content="https://www.pymnts.com/wp-content/uploads/2022/10/PYMNTS_2022_open_graph_1280x720.jpg" /> <meta property="og:image:width" content="1280" /> <meta property="og:image:height" content="720" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@pymnts" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.pymnts.com/study/grocery-shopping-habits-perception-online-store-digital-ordering/","url":"https://www.pymnts.com/study/grocery-shopping-habits-perception-online-store-digital-ordering/","name":"Changes in Grocery Shopping Habits and Perception | PYMNTS.com","isPartOf":{"@id":"https://www.pymnts.com/#website"},"datePublished":"2023-02-06T09:02:45+00:00","dateModified":"2023-10-26T19:05:58+00:00","description":"Changes in Grocery Shopping Habits and Perception looks at shifting consumer shopping habits, especially use of online ordering or shopping in a physical store.","breadcrumb":{"@id":"https://www.pymnts.com/study/grocery-shopping-habits-perception-online-store-digital-ordering/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.pymnts.com/study/grocery-shopping-habits-perception-online-store-digital-ordering/"]}]},{"@type":"BreadcrumbList","@id":"https://www.pymnts.com/study/grocery-shopping-habits-perception-online-store-digital-ordering/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.pymnts.com/"},{"@type":"ListItem","position":2,"name":"Studies","item":"https://www.pymnts.com/archive-studies/"},{"@type":"ListItem","position":3,"name":"Changes in Grocery Shopping Habits and Perception &#8211; February 2023"}]},{"@type":"WebSite","@id":"https://www.pymnts.com/#website","url":"https://www.pymnts.com/","name":"PYMNTS.com","description":"What&#039;s next in payments and commerce","publisher":{"@id":"https://www.pymnts.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.pymnts.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://www.pymnts.com/#organization","name":"PYMNTS.com","url":"https://www.pymnts.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.pymnts.com/#/schema/logo/image/","url":"https://www.pymnts.com/wp-content/uploads/2023/05/PYMNTS_2023_logo_black-1.png","contentUrl":"https://www.pymnts.com/wp-content/uploads/2023/05/PYMNTS_2023_logo_black-1.png","width":3329,"height":687,"caption":"PYMNTS.com"},"image":{"@id":"https://www.pymnts.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/pymnts/","https://x.com/pymnts"]}]}</script> <!-- / Yoast SEO Premium plugin. --> <link rel='dns-prefetch' href='//js.hs-scripts.com' /> <link rel='dns-prefetch' href='//stats.wp.com' /> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel="alternate" type="application/rss+xml" title="PYMNTS.com &raquo; Feed" href="https://www.pymnts.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="PYMNTS.com &raquo; Comments Feed" href="https://www.pymnts.com/comments/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.pymnts.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.1"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <!-- pymnts.com is managing ads with Advanced Ads --><script id="pymnt-ready"> window.advanced_ads_ready=function(e,a){a=a||"complete";var d=function(e){return"interactive"===a?"loading"!==e:"complete"===e};d(document.readyState)?e():document.addEventListener("readystatechange",(function(a){d(a.target.readyState)&&e()}),{once:"interactive"===a})},window.advanced_ads_ready_queue=window.advanced_ads_ready_queue||[]; </script> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='all-css-4' href='https://www.pymnts.com/_static/??-eJzTLy/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpobGxkZmBkYGQMARIMu1Q==' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <link rel='stylesheet' id='all-css-6' href='https://www.pymnts.com/wp-content/plugins/contact-form-7/includes/css/styles.css?m=1708458468g' type='text/css' media='all' /> <link rel='stylesheet' id='studio-fonts-css' href='//fonts.googleapis.com/css?family=Oswald%3ALato%3A400%2C700%7CWork+Sans%3A900%7CMontserrat%3A400%2C700%7COpen+Sans%3A800%7CPlayfair+Display%3A400%2C700%2C900%7CQuicksand%7CRaleway%3A200%2C400%2C700%7CRoboto+Slab%3A400%2C700%26subset%3Dlatin%2Clatin-ext&#038;ver=1.0.0' media='all' /> <script type="text/javascript" id="advanced-ads-advanced-js-js-extra"> /* <![CDATA[ */ var advads_options = {"blog_id":"1","privacy":{"enabled":false,"state":"not_needed"}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.pymnts.com/_static/??-eJyVjuEKwjAMhF/ImrmB/hKfJbaxy9ZmdWl1vr1VFPwhghAIXO67C1yTYbGhOFIY6pwLzbfXWkeW9aAr+GUykf2MmT7NdpJMkiGF4lkU0F1QLDmDTiGVY2ALqEr5Gfe+fkvIPcVaegq0mIjeKC+appEenJsi1rd6suM/mCKH3M/FSKi6l5IqfYj7za5r22bbtN1wBxwGZxE=" ></script><link rel="https://api.w.org/" href="https://www.pymnts.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.pymnts.com/wp-json/wp/v2/study/1461907" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.pymnts.com/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.7.1" /> <link rel='shortlink' href='https://www.pymnts.com/?p=1461907' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.pymnts.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.pymnts.com%2Fstudy%2Fgrocery-shopping-habits-perception-online-store-digital-ordering%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.pymnts.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.pymnts.com%2Fstudy%2Fgrocery-shopping-habits-perception-online-store-digital-ordering%2F&#038;format=xml" /> <link rel="alternate" type="application/feed+json" title="PYMNTS.com &raquo; JSON Feed" href="https://www.pymnts.com/feed/json/" /> <!-- DO NOT COPY THIS SNIPPET! Start of Page Analytics Tracking for HubSpot WordPress plugin v11.1.40--> <script class="hsq-set-content-id" data-content-id="blog-post"> var _hsq = _hsq || []; _hsq.push(["setContentType", "blog-post"]); </script> <!-- DO NOT COPY THIS SNIPPET! End of Page Analytics Tracking for HubSpot WordPress plugin --> <style>img#wpstats{display:none}</style> <script type="text/javascript"> var advadsCfpQueue = []; var advadsCfpAd = function( adID ){ if ( 'undefined' == typeof advadsProCfp ) { advadsCfpQueue.push( adID ) } else { advadsProCfp.addElement( adID ) } }; </script> <script> var userObject; </script> <!-- Begin comScore Tag --> <script> var _comscore = _comscore || []; _comscore.push({ c1: "2", c2: "39641934", options: { enableFirstPartyCookie: "true" } }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = "https://sb.scorecardresearch.com/cs/39641934/beacon.js"; el.parentNode.insertBefore(s, el); })(); </script> <noscript> <img src="https://sb.scorecardresearch.com/p?c1=2&c2=39641934&cv=3.9.1&cj=1"> </noscript> <!-- End comScore Tag --> <style type="text/css"> .post-cont-out, .post-cont-in { margin-right: 0; } .nav-links { display: none; } .nav-left-wrap { width: 60px; } .nav-logo-out { margin-left: -60px; } .nav-logo-in { margin-left: 60px; } .nav-logo-show { padding-right: 20px; width: 200px; height: 50px; } .nav-logo-show img { width: auto; padding-top: 5px; } .nav-left-width { width: 280px !important; } .nav-logo-out-fade { margin-left: -280px; } .nav-logo-in-fade { margin-left: 280px; } .share-count, .feat-info-views { display: none; }</style> <style type="text/css" id="custom-background-css"> body.custom-background { background-color: #f9f9f9; } </style> <link rel="icon" href="https://www.pymnts.com/wp-content/uploads/2022/11/cropped-PYMNTS-Icon-512x512-1.png?w=32" sizes="32x32" /> <link rel="icon" href="https://www.pymnts.com/wp-content/uploads/2022/11/cropped-PYMNTS-Icon-512x512-1.png?w=192" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.pymnts.com/wp-content/uploads/2022/11/cropped-PYMNTS-Icon-512x512-1.png?w=180" /> <meta name="msapplication-TileImage" content="https://www.pymnts.com/wp-content/uploads/2022/11/cropped-PYMNTS-Icon-512x512-1.png?w=270" /> <style> html { margin-top: 0px !important; } </style> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s);j.async=true;j.src="https://load.gtm.pymnts.com/4gb8jtcwxmzux.js?"+i;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','dzrxseq=aWQ9R1RNLVdWRldDRDk1JmFzPXk%3D&page=1');</script> <!-- End Google Tag Manager --> </head> <body> <div class="container-scroller" id="headerContainerScroller"> <div class="main-header w-100"> <header class="mb-5 main-nav "> <div class="container-fluid p-0" id="header-2022-bs-container"> <div class="row g-0 border-mobile bg-black"> <div class="col-10 col-lg-9 d-flex justify-content-start align-items-center ps-3 ps-lg-5 py-0 bg-black py-1"> <div class="logo"> <a href="/"> <img width="100%" height="50" src="/wp-content/uploads/2023/04/PYMNTS_2023_logo_white.svg?v=1.1" class="card-img-top" alt="PYMNTS Logo"> </a> </div> </div> <div class="col-2 col-lg-3 justify-content-end align-items-center d-flex py-0 pe-3 pe-lg-5 bg-black"> <div class="row row-cols-auto"> <div class="col ms-auto d-flex justify-content-end align-items-center navbar-dark utility text-white"> <div class="search-container hide-mobile" style="bottom:15px;"> <div class="pymnts-search"> <form method="get" id="searchform" action="/"> <div style="display: flex;"> <input name="s" id="s" placeholder="SEARCH" type="search" class="search-bar border-0 px-1 mx-n2"> <button type="submit" class="search-icon-btn border-0 mx-0 px-0"> <i class="bi bi-search"></i> </button> </div> </form> </div> </div> <div class="hide-mobile ms-2"> <a href="/streaming/" class="text-uppercase fw-bolder" style="color:#00A469">WATCH NOW</a>&nbsp;|&nbsp;<a href="/subscribe/" class="text-white">SUBSCRIBE</a> </div> <button class="navbar-toggler hide-desktop" type="button" data-bs-toggle="collapse" data-bs-target="#main_nav"> <span class="navbar-toggler-icon"></span> </button> </div> </div> </div> <div class="col-12 col-lg-12 align-items-center border-top border-bottom border-dark px-0 mobile-display bg-white"> <nav class="navbar navbar-expand-lg navbar-light p-0"> <div class="container-fluid"> <div class="collapse navbar-collapse" id="main_nav"> <ul class="navbar-nav flex-fill navbar-nav-scroll"> <li class="nav-item hide-desktop"> <form class="d-flex mx-auto" method="get" role="search" id="searchform" action="/" style="max-width:250px;"> <input name="s" id="s" class="form-control me-0 fw-normal smaller text-light" type="search" placeholder="Search PYMNTS..." aria-label="Search"> <button class="btn btn-outline-success text-uppercase small fw-bold border-start-0" type="submit">Search</button> </form> </li> <li class="nav-item border-end border-dark align-items-start noborder-mobile ms-lg-5 mt-3 mt-lg-0"> <a href="https://tv.pymnts.com/" class="nav-link"><i class="bi bi-tv-fill"></i>&nbsp;PYMNTS TV</a> </li> <li class="nav-item"><a class="nav-link" href="/today-on-pymnts/"> Today </a></li> <li class="nav-item"><a class="nav-link" href="/topic/b2b/"> B2B </a></li> <li class="nav-item"><a class="nav-link" href="/topic/retail/"> Retail </a> </li> <li class="nav-item"><a class="nav-link" href="/topic/fintech/"> Fintech </a></li> <li class="nav-item"><a class="nav-link" href="/topic/connected-economy/"> Digital Transformation </a> </li> <li class="nav-item"><a class="nav-link" href="/topic/crypto/"> Crypto </a> </li> <li class="nav-item"><a class="nav-link" href="/topic/ai"> AI </a></li> <!-- <li class="nav-item"><a class="nav-link" href="/tracker/"> Tracker<sup>&#174;</sup> Reports </a></li> --> <!-- <li class="nav-item"><a class="nav-link" href="/study/"> PYMNTS<sup>&#174;</sup> Intelligence </a></li> --> <!-- NEW DROP DOWN MENU --> <li class="nav-item dropdown noborder-mobile d-none d-lg-block"> <a class="nav-link dropdown-toggle fw-bold" href="https://www.pymnts.com/pymnts-intelligence/" role="button" id="intelligence-link" data-bs-toggle="dropdown" aria-expanded="false"> PYMNTS<sup>®</sup> Intelligence </a> <ul class="dropdown-menu w-100 rounded-0" style="border-color:#ccc;"> <li class="mt-3"><a class="dropdown-item mb-2" style="font-size: 0.85rem;" href="/tracker">Trackers</a> </li> <li><a class="dropdown-item" href="/study" style="font-size: 0.85rem;">Proprietary Data Studies</a> </li> <li><a class="dropdown-item" href="/study/?filter-type=category&filter-items=pymnts-data-lab" style="font-size: 0.85rem;">PYMNTS Data Lab</a> </li> <li><a class="dropdown-item" href="/monitor-edge/" style="font-size: 0.85rem;">MonitorEdge Series</a> </li> </ul> </li> <div class="nav-item d-block d-lg-none my-4"> <li class="nav-item"> <a class="nav-link fw-bold" href="https://www.pymnts.com/pymnts-intelligence/" role="button"> PYMNTS<sup>®</sup> Intelligence </a></li> <li class="nav-item"><a class="nav-link" href="/tracker">Trackers</a> </li> <li class="nav-item"><a class="nav-link" href="/study">Proprietary Data Studies</a> </li> <li class="nav-item"><a class="nav-link" href="/study/?filter-type=category&filter-items=pymnts-data-lab">PYMNTS Data Lab</a> </li> <li class="nav-item"><a class="nav-link" href="/monitor-edge/">MonitorEdge Series</a> </li> </div> <li class="nav-item"><a class="nav-link" href="/topic/markets/"> Markets </a></li> <li class="nav-item"><a class="nav-link" href="/events/"> Events </a></li> <!-- END NEW DROP DOWN MENU --> <li class="border-start border-dark nav-item dropdown has-megamenu noborder-mobile align-items-end me-lg-5"> <a href="#" class="nav-link dropdown-toggle no-border hide-mobile" data-bs-toggle="dropdown">More&nbsp;<i class="bi bi-three-dots-vertical"></i></a> <div class="dropdown-menu megamenu shadow border" role="menu"> <div class="row"> <div class="col px-0"> <div class="pb-2 pb-lg-0 g-0 d-flex flex-column flex-lg-row justify-content-lg-evenly"> <div class="mb-0 mb-lg-3 text-center text-md-start mx-auto mx-lg-0 ps-0"> <h6 class="fw-bold text-uppercase mb-2 mb-lg-3 small"> <a href="/topic">Topics</a> </h6> <div class="row row-cols-1 row-cols-md-3 g-md-5"> <div class="col"> <ul class="m-0 p-0"> <li><a href="/topic/ai/" class="text-nowrap">Artifical Intelligence</a></li> <li><a href="/topic/automotive/" class="text-nowrap">Connected Car</a> </li> <li><a href="/topic/buy-now-pay-later/" class="text-nowrap">Buy Now Pay Later</a></li> <li><a href="/topic/banking/" class="text-nowrap">Banking</a> </li> <li><a href="/topic/cloud/" class="text-nowrap">Cloud</a> </li> <li><a href="/topic/cross-border/" class="text-nowrap">Cross-Border Payments</a></li> </ul> </div> <div class="col"> <ul class="m-0 p-0"> <li><a href="/topic/gig-economy/" class="text-nowrap">Gig-Economy</a> </li> <li><a href="/topic/grocery-and-pharmacy/" class="text-nowrap">Grocery & Pharmacy</a></li> <li><a href="/topic/healthcare-payments/" class="text-nowrap">Healthcare Payments</a></li> <li><a href="/topic/insurtech/" class="text-nowrap">Insurtech</a> </li> <li><a href="/topic/smbs/" class="text-nowrap">Small & Medium Businesses</a> </li> <li><a href="/topic/social-platforms/" class="text-nowrap">Social Platforms</a></li> </ul> </div> <div class="col pe-0"> <ul class="m-0 p-0 mb-3"> <li><a href="/topic/subscription-commerce/" class="text-nowrap">Subscription Commerce</a></li> <li><a href="/topic/travel-payments/" class="text-nowrap">Travel</a> </li> <li><a href="/topic/techreg/" class="text-nowrap">TechREG<sup>&#174;</sup></a> </li> <li><a href="/topic/real-time-payments/" class="text-nowrap">Real-Time Payments</a></li> <li><a href="/topic/restaurants/" class="text-nowrap">Restaurants</a> </li> <li class="nav-item"><a class="text-nowrap" href="/emea/"> EMEA </a></li> </ul> </div> </div> </div> <div class="vr hide-mobile"></div> <div class="ps-0 mx-auto mx-lg-0"> <h6 class="fw-bold text-uppercase mb-3 small hide-mobile"> Featured </h6> <div class="row"> <div class="col mt-2 mt-lg-0"> <div class="row"> <div class="col"> <ul class="m-0 p-0 d-flex flex-row flex-wrap flex-lg-nowrap flex-lg-column justify-content-center justify-content-lg-start"> <li class="me-4 me-lg-0 hide-desktop fw-bold small"> SEE ALSO:</li> <li class="me-4 me-lg-0"><a href="/tag/editors-picks/" class="text-nowrap small">Editor’s Picks</a></li> <li class="me-4 me-lg-0"><a href="/author/karen-webster/" class="text-nowrap small">Opinion</a> </li> <li class="me-4 me-lg-0"><a href="/connected-economy-index/" class="text-nowrap small">CE100 Index</a></li> <li class="me-4 me-lg-0"><a href="/topic/working-capital-liquidity" class="small text-nowrap">Working Capital & Liquidity</a></li> <li class="me-4 me-lg-0"> <a href="/cpi/" class="small text-nowrap text-primary">Competition Policy International</a><br> <span class="text-secondary smaller"><i>A PYMNTS Company</i></span> </li> </ul> </div> </div> </div> </div> </div> <div class="vr py-2 hide-mobile"></div> <div class="mb-3 text-center text-lg-start hide-mobile"> <h6 class="fw-bold text-uppercase mb-3 small"> Stay Current </h6> <div class="row"> <div class="col"> <ul class="m-0 p-0"> <li class="text-nowrap"><i class="bi bi-calendar"></i>&nbsp;<a href="/events/" class="text-nowrap small">Events</a> </li> <li class="text-nowrap"><i class="bi bi-envelope-plus"></i>&nbsp;<a href="/subscribe/" class="text-nowrap small">Subscribe</a> </li> <li class="text-nowrap"><i class="bi bi-people-fill"></i>&nbsp;<a href="/partnerships/" class="text-nowrap small">Become a Partner</a></li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> </li> </ul> </div> </div> </nav> </div> </div> <script> /* * Handle Pymnts Charts */ function getChartType(option) { const series = option.series; const isArray = Array.isArray(series); if (isArray) { console.log("series is array"); if (series[0].type) return series[0].type; } else { console.log("series is not array"); } console.log("SERIES", series); alert("UNKNOWN CHART"); } function adjustTitleLength(title) { let titleStr = title.replaceAll('<br>', ''); const max = 35; const titleWords = titleStr.split(' '); const titleArr = []; let curLine = titleWords[0] let count = curLine.length; for (let i = 1; i < titleWords.length; ++i) { count += titleWords[i].length; if (count > max) { titleArr.push(curLine); curLine = titleWords[i]; count = curLine.length; } else curLine += ' ' + titleWords[i]; } if (curLine.length) titleArr.push(curLine); return titleArr.join("\n"); } function adjustTitles(option) { if (option.title && option.title.text) option.title.text = adjustTitleLength(option.title.text); if (option.title && option.title.subtext) option.title.subtext = adjustTitleLength(option.title.subtext); } function adjustMobilePie(chartDom, option) { delete option.legend.top; option.legend.bottom = 0; const currentHeight = chartDom.clientHeight; chartDom.style.height = currentHeight + 60 + "px"; option.grid = {}; option.grid = { top: -30 } } function adjustMobileLine(chartDom, option) { const currentHeight = chartDom.clientHeight; chartDom.style.height = currentHeight + 35 + "px"; option.grid.height = 350; } function adjustMobileBar(chartDom, option) { // If vertical bar chart if (option.xAxis.type === 'value') { option.yAxis.show = false; } } function adjustToMobile(chartDom, option) { console.log("ADJUST TO MOBILE"); const chartType = getChartType(option); console.log('Chart Type', chartType); chartDom.style.margin = "" adjustTitles(option); const numTitleLines = option.title.text ? option.title.text.split("\n").length : 0; const numSubtitleLines = option.title.subtext ? option.title.subtext.split("\n").length : 0; const increase = (numTitleLines * 16) + (numSubtitleLines * 14); const curHeight = chartDom.clientHeight; chartDom.style.height = curHeight + increase + "px"; option.grid = {}; option.grid.top = increase + 50; option.tooltip.position = function(point, params, dom, rect, size) { console.log(dom.clientWidth, size.viewSize[0]) return [(size.viewSize[0] - dom.clientWidth) / 2, point[1]]; }; switch (chartType) { case 'bar': return adjustMobileBar(chartDom, option); case 'line': return adjustMobileLine(chartDom, option); case 'pie': return adjustMobilePie(chartDom, option); default: console.error('No Mobile adjustment for Chart Type: ', chartType); } } function mcwParser(str, token) { console.log('str', typeof str, str) const par = JSON.parse(str, (key, value) => { if (typeof value === 'string' && value.startsWith(token)) { const func = value.substring(8); return eval(func); } return value; }) return par; } async function loadPymntsCharts() { console.log('loadPymntsCharts'); const charts = document.querySelectorAll('.pymntsChart'); console.log('loadPymntsCharts charts', charts); for (let i = 0; i < charts.length; ++i) { let request = { url: `https://charts.pymnts.com:6300/id/${charts[i].getAttribute('id')}`, method: 'get' }; console.log('request', request); let response; try { response = await axios(request); var chartDom = charts[i]; console.log('loadPymntsCharts response', response.data); if (typeof response.data === 'undefined' || !response.data.length) return; console.log('loadPymntsCharts ready to rock and roll'); var option = mcwParser(response.data[0].option, 'funcxyz_'); console.log('loadPymntsCharts option', option); option.title.textStyle.fontSize = 14; option.title.textStyle.fontWeight = 'bold'; option.title.subtextStyle.fontSize = 12; chartDom.style.height = option.info.containerHeight ? option.info.containerHeight + 'px' : '500px'; chartDom.style.width = '90%'; chartDom.style.maxWidth = '1200px'; chartDom.style.margin = '1rem auto'; if (window.innerWidth <= 768) adjustToMobile(chartDom, option); var myChart = echarts.init(chartDom); myChart.setOption(option); if (option.info && option.info.source) { const parent = charts[i].parentNode; console.log('parentNode', parent); const node = document.createElement("div"); const below = option.info.below ? option.info.below : ''; node.innerHTML = below + "<br />Source: " + option.info.source; node.style.width = '90%'; node.style.maxWidth = '1200px'; node.style.margin = '1rem auto'; parent.appendChild(node); } } catch (e) { console.error('loadPymntsCharts error', e); } } } window.addEventListener('DOMContentLoaded', loadPymntsCharts); let lastYScroll = -1000000000 const handleHeaderScrolling = () => { const container = document.querySelector('header'); let position = container.style.position; lastYScroll = window.scrollY; } window.addEventListener('scroll', handleHeaderScrolling); </script> <script> const intelligenceLink = document.getElementById("intelligence-link"); const handleIntelligenceClick = () => { window.open("https://www.pymnts.com/pymnts-intelligence/", '_self') } intelligenceLink.addEventListener("click", handleIntelligenceClick) </script> </header> </div> </div><style> .visa-color-gradient { background-color: #1434CB; } .visa-bg-info { background-color: #2C2C2C; } .gated-pymnts input[type=text], .gated-pymnts input[type=email], .gated-pymnts input[type=tel], select { width: 100%; border-radius: 0.375rem; height: 40px; border: none; font-size: 14px; } .gated-pymnts input[type=text], .gated-pymnts input[type=email], .gated-pymnts input[type=tel] { padding: 0px .5rem; } .gated-pymnts .wpcf7-spinner{ display: none; } select { padding: 0px .2rem; } input[type=checkbox] { margin-right: 5px; } input[type=submit] { width: 100%; border-radius: 0.375rem; height: 40px; border: none; margin-top: 1rem; font-size: 1rem !important; } .gated-pymnts a { color: #fff; } .gated-pymnts div.wpcf7-response-output { color: #fff; } form h5 { font-size: 12px; } .screen-reader-response, .wpcf7-response-output.wpcf7-mail-sent-ok { color: #8b0000; } .btn-dark:hover { background-color: #9e9e9e !important; } .gated-pymnts p { margin-bottom: 0px !important; padding-bottom: 10px; color: #fff; } .gated-pymnts h5, .gated-pymnts h5 a { color: #fff; text-transform: none !important; margin-top: 1rem; line-height: 1.4; } .report-desc ul, .report-desc ol { text-align: left; line-height: 1.5 !important; } .report-desc li { margin-bottom: .9rem; } .report-desc p { line-height: 1.5 !important; margin-bottom: 1rem; color: #fff; } .report-desc a { color: #fff; } .report-facts p { line-height: 1.5 !important; margin-bottom: 1rem; color: #000; } .report-facts a { color: #000; font-weight: bold; } .report-facts ul, .report-desc ol { text-align: left; line-height: 1.5 !important; } .report-facts li { margin-bottom: .9rem; } img.repThumb { box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 80%) !important; } h1 { text-transform: none !important; margin-bottom: 1rem; font-weight: 700 !important; line-height: 1.3 !important; font-size: 2.4rem; color: #fff; } .color-gradient { background-image: linear-gradient(to bottom right, #252F6B, #000000); } #downloadFormInputs p { width: 100% !important; } @media screen and (min-width: 768px) { #downloadFormInputs p { width: 48% !important; } } #downloadFormInputs input { margin-top: 15px !important; margin-bottom: 3px !important; } .wpcf7-mail-sent-ok, .wpcf7-acceptance-missing, .wpcf7-validation-errors, .screen-reader-response ul { display: none; } .screen-reader-response { padding-bottom: 0px; color: #fff; } .wpcf7-not-valid-tip { font-size: .9rem; } .form-check-input { width: 1em; height: 1em; margin-top: 0.125em; /* vertical-align: top; */ background-color: initial; background-repeat: no-repeat; background-position: center; background-size: contain; border: none; appearance: none; print-color-adjust: exact; } .wpcf7 form.sent .wpcf7-response-output { border: none; margin: 0px; padding: 0px; font-size: .875rem; } .wpcf7-not-valid-tip { font-size: .9rem; color: #ffb900; margin-top: 7px; } .wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output { color: #ffb900; border: 0; margin: 0px; padding: 0px; font-size: .9rem; } .wpcf7-list-item { margin:0px; } </style> <div class="main bg-white mb-5"> <div class="container-fluid color-gradient pt-5 pb-0 pb-md-5"> <div class="container pt-3 pb-0 py-lg-3"> <div class="row gx-0 gx-md-5"> <div class="col-12 col-md-3 text-center text-md-start py-3 py-md-0"> <img src="https://www.pymnts.com/wp-content/uploads/2023/02/PYMNTS-Changes-in-Grocery-Shopping-Habits-and-Perceptions-February-2023-Cover.jpg?w=768" data-src="https://www.pymnts.com/wp-content/uploads/2023/02/PYMNTS-Changes-in-Grocery-Shopping-Habits-and-Perceptions-February-2023-Cover.jpg?w=768" class="img-fluid shadow ls-is-cached lazyloaded border repThumb" style="max-height:350px;"> </div> <div class="col-12 col-md-9 my-auto report-desc ps-0 ps-md-5 py-5 py-md-0"> <h1>Changes in Grocery Shopping Habits and Perception</h1> <div class="fs-4 text-white"> <strong>7.2% of US Consumers Buy Groceries Online </strong> Brick-and-mortar grocery took a hit during the pandemic, and consumers aren’t looking back.<strong> “Changes in Grocery Shopping Habits and Perceptions”</strong> examines the grocery shopping habits of 2,426 U.S. consumers to understand who is swapping shopping in the store to shopping exclusively online for groceries. </div> </div> </div> </div> </div> <div class="container-fluid py-5"> <div class="container"> <div class="row mb-3"> <div class="col-12 col-lg-6 pe-lg-5 pt-5 pt-lg-3 report-facts order-2 order-lg-1"> <div class="fs-5"> <h6 class="border-bottom w-100 fs-5 fw-bold border-light border-3">Inside the February Report</h6> <ul> <li>62%: Share of shoppers who cite convenience as a reason for choosing digital channels to purchase their groceries</li> <li>52%: Share of consumers who say deals or benefits led them to use digital channels for their grocery shopping</li> <li>42%: Share of millennial shoppers who cite convenience as the top motivator for their use of digital channels</li> </ul> </div> </div> <div class="col-12 col-lg-6 mx-auto ps-lg-5 order-1 order-lg-2"> <div > </div> <div style="max-width:350px;" class="mx-auto"> <button id="downloadButton" class="btn btn-dark text-uppercase p-2 fw-bold w-100 small" type="button"> <i class="bi bi-download"></i>&nbsp;Download This Free Report </button> </div> <script> const submitDummyForm = async (reportTitle, downloadUrl) => { const ajaxurl = 'https://www.pymnts.com/wp-admin/admin-ajax.php'; const formData = new FormData(); formData.append('action', 'submit_lead'); formData.append('downloadType', 'study'); formData.append('reportTitle', reportTitle); formData.append('downloadUrl', downloadUrl); try { const response = await fetch(ajaxurl, { method: 'POST', body: formData }); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); if (!data.success) { throw new Error(`Failed to submit lead: ${data.data}`); } console.log('Lead submitted successfully'); window.open(downloadUrl, '_blank'); } catch (error) { console.error('Error submitting lead:', error.message); console.error(error); } }; document .getElementById('downloadButton') .addEventListener('click', () => { submitDummyForm( 'Changes in Grocery Shopping Habits and Perception', 'https://www.pymnts.com/wp-content/uploads/2023/02/PYMNTS-Changes-in-Grocery-Shopping-Habits-and-Perceptions.pdf' ); }); </script> </div> </div> <div class="row mb-5"> <div class="col-12"> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <!-- [each select_a_chart] {@top_html_block} <h3 class="mt-4">{@select_a_chart.heading}</h3> <p>{@select_a_chart.heading_description}</p> <div class="pymnts-chart" style="display:none;"> <iframe title="{@post_title}" src="https://datawrapper.dwcdn.net/{@select_a_chart.unique_data_wrapper_code}" scrolling="no" frameborder="0" style="width: 0px; border: none; min-width: 100% !important;" height="949"></iframe> <script type="text/javascript"> ! function () { "use strict"; window.addEventListener("message", (function (e) { if (void 0 !== e.data["datawrapper-height"]) { var t = document.querySelectorAll("iframe"); for (var a in e.data["datawrapper-height"]) for (var r = 0; r < t.length; r++) { if (t[r].contentWindow === e.source) t[r].style.height = e.data[ "datawrapper-height"][a] + "px" } } })) }(); </script> </div> --> <!-- <hr style="border-color:#efefef;" class="pb-1 mt-5"> {@bottom_html_block} [/each] --> <div class="pymnts_series row"> <div class="pymnts_series-title mb-3"> <h4 class="header-border text-uppercase mb-2 fs-6"><span class="border-layer">PYMNTS Reports</span> </h4> </div> <div class="pymnts_series-wrap row"> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="The State of Fraud and Financial Crime in the U.S. - November 2024 Cover" title="The State of Fraud and Financial Crime in the U.S. - November 2024" href="https://www.pymnts.com/study/the-state-of-fraud-and-financial-crime-united-states/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2024/11/PYMNTS-State-of-Fraud-and-Financial-Crime-November-2024-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/the-state-of-fraud-and-financial-crime-united-states/">The State of Fraud and Financial Crime in the U.S. - November 2024</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="Focus on Europe Cover" title="Focus on Europe" href="https://www.pymnts.com/study/global-appeal-everyday-app-digital-activities/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2023/09/PYMNTS-The-Global-Appeal-of-an-Everyday-App-September-2023-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/global-appeal-everyday-app-digital-activities/">Focus on Europe</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="How Consumers Want to Live in the Voice Economy Cover" title="How Consumers Want to Live in the Voice Economy" href="https://www.pymnts.com/study/consumers-voice-assistant-economy-hands-free-technology-adoption/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2023/04/PYMNTS-How-Consumers-Was-to-Live-in-the-Voice-Economy-April-2023-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/consumers-voice-assistant-economy-hands-free-technology-adoption/">How Consumers Want to Live in the Voice Economy</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="Traditional FIs Fight Digital Alternatives For Consumer Trust Cover" title="Traditional FIs Fight Digital Alternatives For Consumer Trust" href="https://www.pymnts.com/study/consumer-interest-credentials-vaults-stored-payment-information-shopping-online/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2023/03/PYMNTS-Consumer-Interest-in-Credentials-Vaults-March-2023-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/consumer-interest-credentials-vaults-stored-payment-information-shopping-online/">Traditional FIs Fight Digital Alternatives For Consumer Trust</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="Streamlining Bill Payment: How Frictionless Experiences Drive Customer Engagement Cover" title="Streamlining Bill Payment: How Frictionless Experiences Drive Customer Engagement" href="https://www.pymnts.com/study/recurring-bills-automatic-payments-consumer-finance/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2022/05/PYMNTS-Streamlining-Bill-Payment-May-2022-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/recurring-bills-automatic-payments-consumer-finance/">Streamlining Bill Payment: How Frictionless Experiences Drive Customer Engagement</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="Online Sellers: The Future Is Multichannel Cover" title="Online Sellers: The Future Is Multichannel" href="https://www.pymnts.com/study/online-sellers-multichannel-digital-marketplaces-ecommerce/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2022/05/PYMNTS-Online-Sellers-May-2022-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/online-sellers-multichannel-digital-marketplaces-ecommerce/">Online Sellers: The Future Is Multichannel</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="The Benefits Of Membership: Mass Retailers And Subscription Cover" title="The Benefits Of Membership: Mass Retailers And Subscription" href="https://www.pymnts.com/study/the-benefits-of-membership-subscription-services-retail-consumer-shopping/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2022/04/PYMNTS-The-Benefits-Of-Membership-April-2022-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/the-benefits-of-membership-subscription-services-retail-consumer-shopping/">The Benefits Of Membership: Mass Retailers And Subscription</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="Digital Care Connection: How Telehealth And Digital Payments Can Expand Mental Healthcare Access Cover" title="Digital Care Connection: How Telehealth And Digital Payments Can Expand Mental Healthcare Access" href="https://www.pymnts.com/study/digital-care-connection-behaivoral-healthcare-digital-payment-plans/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2022/03/Digital-Care-Connection-March-2022-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/digital-care-connection-behaivoral-healthcare-digital-payment-plans/">Digital Care Connection: How Telehealth And Digital Payments Can Expand Mental Healthcare Access</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="Mass Payments Cover" title="Mass Payments" href="https://www.pymnts.com/study/mass-payments-paycheck-to-paycheck-employee-incentives-consumer-finance/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2021/10/2021-10-Report-Tango-I-cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/mass-payments-paycheck-to-paycheck-employee-incentives-consumer-finance/">Mass Payments</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="Inspiring Trust In The New Digital Economy Cover" title="Inspiring Trust In The New Digital Economy" href="https://www.pymnts.com/study/how-merchants-can-inspire-consumer-trust-in-the-digital-economy-september-2020/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2020/09/Report-Cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/how-merchants-can-inspire-consumer-trust-in-the-digital-economy-september-2020/">Inspiring Trust In The New Digital Economy</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="AskPYMNTS: What Is A Bank? What U.S. Consumers Think About The Key Issues Driving The Connected Economy Cover" title="AskPYMNTS: What Is A Bank? What U.S. Consumers Think About The Key Issues Driving The Connected Economy" href="https://www.pymnts.com/study/askpymnts-brief-march-2020/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2020/03/2020-03-Report-Ask-PYMNTS-WIAB-cover.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/askpymnts-brief-march-2020/">AskPYMNTS: What Is A Bank? What U.S. Consumers Think About The Key Issues Driving The Connected Economy</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="VIRTUAL REALITY IN RETAIL Cover" title="VIRTUAL REALITY IN RETAIL" href="https://www.pymnts.com/study/virtual-reality-in-retail-study/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2019/02/2019-01-VR-In-Retail-Report-Cover.jpg?w=638" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/virtual-reality-in-retail-study/">VIRTUAL REALITY IN RETAIL</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="ENTERPRISE RETAIL GROCERY Cover" title="ENTERPRISE RETAIL GROCERY" href="https://www.pymnts.com/study/enterprise-retail-grocery-study/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2019/02/2018-10-Report-Enterprise-Retail-Grocery-V1-1.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/enterprise-retail-grocery-study/">ENTERPRISE RETAIL GROCERY</a> </div> <div class="pymnts_series-item col-6 col-lg-3 mb-4 text-center"> <a alt="Connected Consumer Cover" title="Connected Consumer" href="https://www.pymnts.com/study/connected-consumer-playbook-study/"> <img class="img-fluid pymnts_series-item-thumb w-75 border shadow d-block mb-3 mx-auto" src="https://www.pymnts.com/wp-content/uploads/2019/02/Connected_Consumer_Playbook_-_May_2018.jpg?w=768" /> </a> <a class="pymnts_series-item-link fw-bold" href="https://www.pymnts.com/study/connected-consumer-playbook-study/">Connected Consumer</a> </div> </div> </div> </div> </div> </div> </div> <script> console.log('Template: templates/report-template.php'); const I = id => document.getElementById(id); const Q = selector => document.querySelector(selector); const A = selector => document.querySelectorAll(selector); function changeIframe(iFrame) { console.log('iFrame', iFrame); const button = iFrame.contentWindow.document.body.querySelector('#autofill-button'); console.log('button', button); } function handleIframe() { const maxTries = 20; let count = 0; let theInterval = setInterval(() => { ++count; if (count++ <= maxTries) { theIframe = Q('iframe'); if (theIframe) { //console.log('got it!', theIframe); clearInterval(theInterval); changeIframe(theIframe); } } else { clearInterval(theInterval); } }, 2500) } function setupVisa() { console.log('setupVisa()') const visaPath = "/study/visa-growth-corporates-working-capital-index" const urlInfo = new URL(window.location.href) console.log(visaPath, urlInfo.pathname) if (!urlInfo.pathname.startsWith(visaPath)) return; const divs = A('div') for (let i = 0; i < divs.length; ++i) { const div = divs[i] if (div.classList.contains('color-gradient')) { div.classList.replace('color-gradient', 'visa-color-gradient') } if (div.classList.contains('bg-info')) { div.classList.replace('bg-info', 'visa-bg-info') } } } function pageIsLoaded() { setupVisa(); let theForm = Q('.gated-pymnts form'); if (!theForm) theForm = Q('.wpcf7s-form'); if (!theForm) return; let div = document.createElement('div'); div.style.display = 'flex'; div.style.justifyContent = 'space-between'; div.style.width = "100%"; div.style.flexWrap = 'wrap'; div.setAttribute('id', 'downloadFormInputs'); theForm.prepend(div); let paragraphs = theForm.querySelectorAll('p'); for (let i = 0; i < paragraphs.length; ++i) { let html = paragraphs[i].innerHTML; let loc = html.indexOf("<span"); if (loc === -1) continue; let br = html.indexOf('<br'); if (br === -1) continue; div.append(paragraphs[i]); paragraphs[i].style.width = "48%"; paragraphs[i].style.display = "inline-block"; let label = paragraphs[i].innerHTML.substr(0, br).replace('*', ''); let inputValue = paragraphs[i].querySelector('input').value; paragraphs[i].innerHTML = paragraphs[i].innerHTML.substr(loc); let input = paragraphs[i].querySelector('input'); input.setAttribute('placeholder', label); input.className += (' small mb-3 ps-2'); input.value = inputValue; console.log(html); } handleIframe(); } window.addEventListener('DOMContentLoaded', pageIsLoaded); const wpcf7Elm = document.querySelector('.wpcf7-form'); var description = `&lt;ul&gt; &lt;li&gt;62%: Share of shoppers who cite convenience as a reason for choosing digital channels to purchase their groceries&lt;/li&gt; &lt;li&gt;52%: Share of consumers who say deals or benefits led them to use digital channels for their grocery shopping&lt;/li&gt; &lt;li&gt;42%: Share of millennial shoppers who cite convenience as the top motivator for their use of digital channels&lt;/li&gt; &lt;/ul&gt;`; const parser = new DOMParser(); const html = parser.parseFromString(description, 'text/html'); // if (wpcf7Elm.length > 0) { // inputs = wpcf7Elm.querySelector('.wpcf7-submit'); // inputs.insertAdjacentHTML("beforeBegin", // '<div class="d-flex flex-row flex-no-wrap"><p class="me-1"><input name="optIn" type="checkbox" class="rounded" checked=""></p><p style="font-style:italic;" class="small">By checking this box, you agree to receive marketing communications.</p></div>' // ); // } wpcf7Elm.addEventListener('wpcf7mailsent', function(event) { window.open('https://www.pymnts.com/wp-content/uploads/2023/02/PYMNTS-Changes-in-Grocery-Shopping-Habits-and-Perceptions.pdf', '_blank'); console.log("Fire download!"); var inputs = event.detail.inputs; for (var i = 0; i < inputs.length; i++) { if ('YourFirstName' == inputs[i].name) { var firstName = inputs[i].value; } if ('YourLastName' == inputs[i].name) { var lastName = inputs[i].value; } if ('YourTitle' == inputs[i].name) { var title = inputs[i].value; } if ('YourCompany' == inputs[i].name) { var company = inputs[i].value; } if ('YourCountry' == inputs[i].name) { var country = inputs[i].value; } if ('YourEmail' == inputs[i].name) { var email = inputs[i].value; } if ('optIn' == inputs[i].name) { var optIn = inputs[i].value; break; } } Sailthru.init({ customerId: "067919d33ae6486b1e5a249a7b40663c" }); Sailthru.integration("customEvent", { "name": "reportDownloaded", "email": email, "vars": { "firstName": firstName, "lastName": lastName, "title": title, "company": company, "country": country, "optIn": optIn, "report_title": "Changes in Grocery Shopping Habits and Perception", "report_cover": "https://www.pymnts.com/wp-content/uploads/2023/02/PYMNTS-Changes-in-Grocery-Shopping-Habits-and-Perceptions-February-2023-Cover.jpg?w=768?w=620", "report_file": "https://www.pymnts.com/wp-content/uploads/2023/02/PYMNTS-Changes-in-Grocery-Shopping-Habits-and-Perceptions.pdf", "report_description": description } }); }, false); </script> <footer class="border-top bg-black mt-auto"> <div class="row mx-5 py-4"> <div class="col-12 col-md-4 col-lg-3 text-center text-md-start"> <a href="/" class="w-100"> <img width="185" height="69" data-src="/wp-content/themes/flex-mag-sixspoke/2022/img/PYMNTS_2022_logo_medium_green.svg?v=1.1" alt="PYMNTS.com" class="footer-logo lazyload" style="height:auto;max-width:185px;"> </a> <div class="d-block text-white"><a href="https://tv.pymnts.com" class="text-white text-uppercase fw-normal">PYMNTS TV</a>&nbsp;|&nbsp;<a href="/subscribe/" class="text-white text-uppercase fw-normal">Subscribe</a> </div> </div> <div class="col-12 col-md-8 col-lg-9 text-center text-md-start"> <div class="row row-cols-2 row-cols-lg-4 g-0"> <div class="col mt-3 text-center text-md-start"> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="/topic/b2b/" class="nav-link p-0 text-white small">B2B</a> </li> <li class="nav-item mb-2"><a href="/topic/retail/" class="nav-link p-0 text-white small">Retail</a> </li> <li class="nav-item mb-2"><a href="/topic/fintech/" class="nav-link p-0 text-white small">Fintech</a> </li> </ul> </div> <div class="col mt-3 text-center text-md-start"> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="/topic/connected-economy/" class="nav-link p-0 text-white small">Digital Transformation</a> </li> <li class="nav-item mb-2"><a href="/topic/crypto/" class="nav-link p-0 text-white small">Crypto</a></li> <li class="nav-item mb-2"><a href="/topic/ai" class="nav-link p-0 text-white small">AI</a> </li> </ul> </div> <div class="col mt-3 text-center text-md-start"> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="/pymnts-intelligence/" class="nav-link p-0 text-white small">PYMNTS Intelligence</a> </li> <li class="nav-item mb-2"><a href="/tracker/" class="nav-link p-0 text-white small">Trackers</a> </li> <li class="nav-item mb-2"><a href="/study/" class="nav-link p-0 text-white small">Proprietary Data Studies</a> </li> <li class="nav-item mb-2"><a href="/markets/" class="nav-link p-0 text-white small">Markets</a> </li> </ul> </div> <div class="col mt-3 text-center text-md-start"> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="/events/" class="nav-link p-0 text-white small">Events</a> </li> <li class="nav-item mb-2"><a href="/partnerships/" class="nav-link p-0 text-white small">Partner with Us</a> </li> <li class="nav-item mb-2"><a href="/about/" class="nav-link p-0 text-white small">About</a></li> <li class="nav-item mb-2"><a href="/contact-us/" class="nav-link p-0 text-white small">Contact Us</a> </li> </ul> </div> </div> </div> </div> <div class="container-fluid bg-black py-4 border-top border-white"> <div class="row"> <div class="col-12 text-center text-white px-0 px-4"> © 2024 PYMNTS.com </div> </div> <div class="row"> <div class="d-flex flex-row justify-content-center text-white px-0 px-4 mt-2"> <a href="/privacy-policy/" class="p-0 text-white smaller">Privacy Policy</a>&nbsp;<span class="smaller">|</span>&nbsp;<a href="/terms-conditions/" class="p-0 text-white smaller">Terms & Conditions</a> </div> </div> </div> </div> </footer> <script src="https://cdn.jsdelivr.net/npm/bs5-lightbox@1.8.3/dist/index.bundle.min.js"></script> <script>(function(){var advanced_ads_ga_UID="G-3WHRCQ5780",advanced_ads_ga_anonymIP=!!1;window.advanced_ads_check_adblocker=function(t){var n=[],e=null;function a(t){var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(t){return setTimeout(t,16)};n.call(window,t)}return a((function(){var t=document.createElement("div");t.innerHTML="&nbsp;",t.setAttribute("class","ad_unit ad-unit text-ad text_ad pub_300x250"),t.setAttribute("style","width: 1px !important; height: 1px !important; position: absolute !important; left: 0px !important; top: 0px !important; overflow: hidden !important;"),document.body.appendChild(t),a((function(){var a,o,i=null===(a=(o=window).getComputedStyle)||void 0===a?void 0:a.call(o,t),d=null==i?void 0:i.getPropertyValue("-moz-binding");e=i&&"none"===i.getPropertyValue("display")||"string"==typeof d&&-1!==d.indexOf("about:");for(var c=0,r=n.length;c<r;c++)n[c](e);n=[]}))})),function(t){"undefined"==typeof advanced_ads_adblocker_test&&(e=!0),null!==e?t(e):n.push(t)}}(),function(){function t(t){this.UID=t,this.analyticsObject="function"==typeof gtag;var n=this;return this.count=function(){gtag("event","AdBlock",{event_category:"Advanced Ads",event_label:"Yes",non_interaction:!0,send_to:n.UID})},function(){if(!n.analyticsObject){var e=document.createElement("script");e.src="https://www.googletagmanager.com/gtag/js?id="+t,e.async=!0,document.body.appendChild(e),window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},n.analyticsObject=!0,gtag("js",new Date)}var a={send_page_view:!1,transport_type:"beacon"};window.advanced_ads_ga_anonymIP&&(a.anonymize_ip=!0),gtag("config",t,a)}(),this}advanced_ads_check_adblocker((function(n){n&&new t(advanced_ads_ga_UID).count()}))}();})();</script> <script> (async () => { /* Start measuring the visit length. */ // const visitStart = Date.now(); /* Helper functions. */ const generateDeviceId = () => { let d = new Date().getTime(); let d2 = ((typeof performance !== "undefined") && performance.now && (performance.now() * 1000)) || 0; return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, c => { let r = Math.random() * 16; if (d > 0) { r = (d + r) % 16 | 0; d = Math.floor(d / 16); } else { r = (d2 + r) % 16 | 0; d2 = Math.floor(d2 / 16); } return (c == "x" ? r : (r & 0x7 | 0x8)).toString(16); }); } // const getVisitCounter = () => { // let visitCounter = sessionStorage.getItem("pymnts_visit_counter"); // if (!visitCounter) { // visitCounter = {}; // } else { // visitCounter = JSON.parse(visitCounter); // } // return visitCounter; // } // const updateVisitCounter = () => { // const visitCounter = getVisitCounter(); // if (visitCounter[window.location.pathname]) { // visitCounter[window.location.pathname]++; // } else { // visitCounter[window.location.pathname] = 1; // } // sessionStorage.setItem("pymnts_visit_counter", JSON.stringify(visitCounter)); // } const getDeviceId = () => { let deviceId = localStorage.getItem("pymnts_device_id"); if (!deviceId) { deviceId = generateDeviceId(); localStorage.setItem("pymnts_device_id", deviceId); // TODO: add pymnts_device_id cookie } return deviceId; } const recordEvents = async (events) => { const data = { user_id: getDeviceId(), events: events }; const reqURL = `/wp-json/pymnts/info?data=${JSON.stringify(data)}`; const resp = await fetch(reqURL); const respJSON = await resp.json(); } // const updatePageviewData = async (events) => { // const visitCounter = getVisitCounter(); // const data = { // user_id: getDeviceId(), // user_agent: window.navigator.userAgent, // page_location: window.location.href, // page_title: document.title, // page_referrer: document.referrer, // visit_count: visitCounter[window.location.pathname], // engagement_time_msec: Math.round((Date.now() - visitStart)) // }; // const reqURL = `/wp-json/pymnts/upd?data=${encodeURIComponent(JSON.stringify(data))}`; // const resp = await fetch(reqURL); // const respJSON = await resp.json(); // } document.querySelector("body").addEventListener( "click", (ev) => { const el = ev.target; const tagName = el.tagName.toLowerCase(); let linkTarget = false; if ( tagName === "a" || tagName === "button" || el.classList.contains("track-clicks") ) { el.addEventListener("click", (ev) => { if (!el.classList.contains("click-tracked")) { el.classList.add("click-tracked"); if (tagName === "a") { linkTarget = el.href; } else if (tagName === "img" && el.parentElement.tagName.toLowerCase() === "a") { linkTarget = el.parentElement.href; } let events = [{ "name": "pymnts_click", "params": { "element_name": tagName, "element_classes": el.className ? el.className : "", "element_text": el.innerHtml ? el.innerHtml : "", "source": window.location.href, "destination": linkTarget, } }]; if (el.classList.contains("pymnts-ad")) { if (el.classList.contains("pymnts-ad-sidebar")) { events.push({ "name": "pymnts_click_sidebar_ad", "params": { "source": window.location.href, "destination": linkTarget, } }); } else if (el.classList.contains("pymnts-ad-bottom")) { events.push({ "name": "pymnts_click_bottom_article_ad", "params": { "source": window.location.href, "destination": linkTarget, } }); } else { events.push({ "name": "pymnts_click_header_banner_ad", "params": { "source": window.location.href, "destination": linkTarget, } }); } } recordEvents(events); } setTimeout(() => { // prevent accidental double-clicks from being tracked el.classList.remove("click-tracked"); }, 600); }); } }, true ); // updateVisitCounter(); // updatePageviewData(); // setInterval(updatePageviewData, 15000); })().catch(err => { console.error("pymnts-info error:", err); }); </script> <script type="text/javascript"> // jQuery(document).ready(function($) { // // Back to Top Button // var duration = 500; // $('.back-to-top').click(function(event) { // event.preventDefault(); // $('html, body').animate({scrollTop: 0}, duration); // return false; // }); // // Main Menu Dropdown Toggle // $('.menu-item-has-children a').click(function(event){ // event.stopPropagation(); // location.href = this.href; // }); // $('.menu-item-has-children').click(function(){ // $(this).addClass('toggled'); // if($('.menu-item-has-children').hasClass('toggled')) // { // $(this).children('ul').toggle(); // $('.fly-nav-menu').getNiceScroll().resize(); // } // $(this).toggleClass('tog-minus'); // return false; // }); // Main Menu Scroll // $(window).load(function(){ // $('.fly-nav-menu').niceScroll({cursorcolor:"#888",cursorwidth: 7,cursorborder: 0,zindex:999999}); // }); // Infinite Scroll // $('.infinite-content').infinitescroll({ // navSelector: ".nav-links", // nextSelector: ".nav-links a:first", // itemSelector: ".infinite-post", // loading: { // msgText: "Loading more posts...", // finishedMsg: "Sorry, no more posts" // } // }); // $(window).unbind('.infscr'); // $(".inf-more-but").click(function(){ // $('.infinite-content').infinitescroll('retrieve'); // return false; // }); // $(window).load(function() { // // The slider being synced must be initialized first // $('.post-gallery-bot').flexslider({ // animation: "slide", // controlNav: false, // animationLoop: true, // slideshow: false, // itemWidth: 80, // itemMargin: 10, // asNavFor: '.post-gallery-top' // }); // $('.post-gallery-top').flexslider({ // animation: "fade", // controlNav: false, // animationLoop: true, // slideshow: false, // prevText: "&lt;", // nextText: "&gt;", // sync: ".post-gallery-bot" // }); // }); // }); </script> <script type="text/javascript" id="contact-form-7-js-extra"> /* <![CDATA[ */ var wpcf7 = {"api":{"root":"https:\/\/www.pymnts.com\/wp-json\/","namespace":"contact-form-7\/v1"}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.pymnts.com/_static/??-eJyVyzEOwjAMAMAP4VoFqsKAeItjB5QocaraoTwf2BhYGG843Bbgph7VcSn9ntSQRMAbMJWoQiuE7t4USwpIzmGoSYdsO/xRPyZ2uLW1woxJuXSJhrY9MNvbEp//3q93rZdx3k+H03Qcz/kF4U1EYQ==" ></script><script type="text/javascript" id="leadin-script-loader-js-js-extra"> /* <![CDATA[ */ var leadin_wordpress = {"userRole":"visitor","pageType":"post","leadinPluginVersion":"11.1.40"}; /* ]]> */ </script> <script type="text/javascript" src="https://js.hs-scripts.com/45558957.js?integration=WordPress&amp;ver=11.1.40" id="leadin-script-loader-js-js"></script> <script type="text/javascript" id="advanced-ads-pro/front-js-extra"> /* <![CDATA[ */ var advanced_ads_cookies = {"cookie_path":"\/","cookie_domain":""}; var advadsCfpInfo = {"cfpExpHours":"3","cfpClickLimit":"3","cfpBan":"7","cfpPath":"","cfpDomain":"www.pymnts.com"}; /* ]]> */ </script> <script type="text/javascript" id="advanced-ads-pro/cache_busting-js-extra"> /* <![CDATA[ */ var advanced_ads_pro_ajax_object = {"ajax_url":"https:\/\/www.pymnts.com\/wp-admin\/admin-ajax.php","lazy_load_module_enabled":"","lazy_load":{"default_offset":0,"offsets":[]},"moveintohidden":"","wp_timezone_offset":"-18000","the_id":"1461907","is_singular":"1"}; var advanced_ads_responsive = {"reload_on_resize":"0"}; /* ]]> */ </script> <script type="text/javascript" id="advadsTrackingScript-js-extra"> /* <![CDATA[ */ var advadsTracking = {"impressionActionName":"aatrack-records","clickActionName":"aatrack-click","targetClass":"pymnt-target","blogId":"1","frontendPrefix":"pymnt-"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.pymnts.com/_static/??-eJyVzEEKgzAQQNELGYdGqO1CPMuYBJk0mQRn1Ou7aUFwY9ef/2CvxhXWwAo1rTOxAPoN2QVv0IupSwEUCSoQr6nNxG2UBv5jJpRwe9UF3Yd4hrpOidyJ8SQKv/z1xjw8emtf9vm2XTwAih5R4w==" ></script><script type="text/javascript" src="https://stats.wp.com/e-202447.js" id="jetpack-stats-js" data-wp-strategy="defer"></script> <script type="text/javascript" id="jetpack-stats-js-after"> /* <![CDATA[ */ _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"225068944\",\"post\":\"1461907\",\"tz\":\"-5\",\"srv\":\"www.pymnts.com\",\"hp\":\"vip\",\"j\":\"1:13.9.1\"}") ]); _stq.push([ "clickTrackerInit", "225068944", "1461907" ]); /* ]]> */ </script> <script>window.advads_admin_bar_items = [];</script><script>!function(){window.advanced_ads_ready_queue=window.advanced_ads_ready_queue||[],advanced_ads_ready_queue.push=window.advanced_ads_ready;for(var d=0,a=advanced_ads_ready_queue.length;d<a;d++)advanced_ads_ready(advanced_ads_ready_queue[d])}();</script><script id="webpushr-script"> (function(w,d, s, id) {w.webpushr=w.webpushr||function(){(w.webpushr.q=w.webpushr.q||[]).push(arguments)};var js, fjs = d.getElementsByTagName(s)[0];js = d.createElement(s); js.async=1; js.id = id;js.src = "https://cdn.webpushr.com/app.min.js"; d.body.appendChild(js);}(window,document, 'script', 'webpushr-jssdk')); webpushr('setup',{'key':'BMzcFf1fR52znWSoBe3xcJO01lfIbaiaDprMl3loXvqa0yVwjT_xXSuRvMDUzFmI3-4ySQVgdcv9XPSURrxYktI','sw':'https://www.pymnts.com/wp-content/plugins/webpushr-web-push-notifications/sdk_files/webpushr-sw.js.php'}); </script> <script id="pymnt-tracking">var advads_tracking_ads = {};var advads_tracking_urls = {"1":"https:\/\/www.pymnts.com\/wp-admin\/admin-ajax.php"};var advads_tracking_methods = {"1":"frontend"};var advads_tracking_parallel = {"1":false};var advads_tracking_linkbases = {"1":"https:\/\/www.pymnts.com\/linkout\/"};</script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10