4th Annual Shopper Experience Study: Rise of the Individual Shopper

2,500 consumers. Download the 4th Annual RIS/Cognizant Shopper Experience Study to learn how the retailing paradigm has shifted from serving many customers to serving each individual shopper.","alternateLabel":null,"whitePaperDocument":"/secure-file/12516","teaserImage":{"id":22196,"url":"https://assets1.risnews.com/styles/secondary_articles_short/s3/ShopperStudy0613.jpg?itok=hYXny2XQ","width":100,"alt":null,"height":120},"heroImage":null,"heroImageSrcset":null,"sponsored":false,"sponsorship":{"overrideAds":null},"businessTopic":[],"contentType":[],"company":[],"marketSegment":[],"topics":[{"id":454,"name":"Mobile Devices","url":"/mobile-devices"},{"id":43,"name":"Business Intelligence (BI)","url":"/business-intelligence"},{"id":13,"name":"Point of Sale","url":"/point-sale"},{"id":72,"name":"Coupons","url":"/coupons"},{"id":7,"name":"Omnichannel","url":"/omnichannel"},{"id":15,"name":"Customer Relationship Management (CRM)","url":"/customer-relationship-management-crm"},{"id":5,"name":"Customer Service","url":"/customer-service"},{"id":22,"name":"E-Commerce","url":"/e-commerce"},{"id":50,"name":"Fulfillment","url":"/fulfillment"},{"id":41,"name":"Inventory Management","url":"/inventory-management"},{"id":453,"name":"Interactive Digital Services","url":"/interactive-digital-services"},{"id":65,"name":"Loyalty Programs","url":"/loyalty-programs"},{"id":155,"name":"Pricing Management","url":"/pricing-management"},{"id":40,"name":"Merchandise Management","url":"/merchandise-management"},{"id":31,"name":"Mobile Commerce","url":"/mobile-commerce"},{"id":195,"name":"Mobile Apps","url":"/mobile-apps"},{"id":74,"name":"Personalization","url":"/personalization"},{"id":12,"name":"Marketing","url":"/marketing"},{"id":138,"name":"Returns Management","url":"/returns-management"},{"id":30,"name":"Social Networking","url":"/social-networking"},{"id":33,"name":"Store Systems","url":"/store-systems"},{"id":48,"name":"Supply Chain Management","url":"/supply-chain-management"},{"id":62,"name":"Workforce Management","url":"/workforce-management"}]}; const country = "US"; const language = "en-US,en;q=0.5"; const SITE_LANGUAGE = "en"; const siteName = "RIS News"; const userRoles = ["anonymous"]; const userUid = 0; const indexName = "risnews"; window.dataLayer = window.dataLayer || []; const data = {}; data.entityTaxonomy = {}; const contentTypes = [ "article", "blog", "bulletin", "embed_page", "landing_page", "event", "image", "page", "product", "whitepaper", "video", "tags", ]; if ( routeInfo && "bundle" in routeInfo && contentTypes.includes(routeInfo["bundle"]) ) { data.entityBundle = routeInfo.bundle; data.entityTitle = `${routeInfo.title} | ${siteName}`; data.entityId = routeInfo.id; data.entityName = routeInfo.author?.uname; data.entityCreated = routeInfo.created; data.sponsored = routeInfo.sponsored; data.sponsor = routeInfo.sponsoringCompany; data.entityType = "node"; data.entityLangcode = SITE_LANGUAGE; data.siteName = siteName; data.drupalLanguage = language; data.drupalCountry = country; data.userRoles = userRoles; data.userUid = userUid; data.entityTaxonomyKeys = {}; data.entityTaxonomyHierarchies = {}; data.parentNaicsCode = {}; data.isPro = false; data.algoliaIndexName = indexName; // Add toxonomy data const taxonomies = { businessTopic: "business_topic", contentType: "content_type", company: "company", marketSegment: "market_segment", }; const getHierarchy = (term, terms = []) => { terms.push({ id: term.id, name: term.name }); if (term.parentTerm != null) { getHierarchy(term.parentTerm, terms); } return terms; }; const getTerms = (term, useApiId = false) => { return { id: useApiId ? term.apiId : term.id, name: term.name }; }; const getKeys = (term) => { return { id: term.id, name: term.apiId }; }; Object.entries(taxonomies).forEach(([key, item]) => { terms = routeInfo[key]; if (terms && terms.length > 0) { data["entityTaxonomy"][item] = terms.map((term) => getTerms(term, key === "company") ); if (key !== "company") { data["entityTaxonomyKeys"][item] = terms.map(getKeys); termGroups = []; terms.forEach((term, termInd) => { termGroups[termInd] = getHierarchy(term); }); data["entityTaxonomyHierarchies"][item] = termGroups; } } }); data["entityTaxonomy"]["tags"] = routeInfo["topics"] || []; // Primary Topic is either the business topic or the top tag. if (routeInfo["businessTopic"]?.length > 0) { data["entityPrimaryTopic"] = routeInfo["businessTopic"][0]["name"]; } else { if (routeInfo["topics"]?.length > 0) { data["entityPrimaryTopic"] = routeInfo["topics"][0]["name"]; } } // Primary and secondary entityNaicsCodes come from the MarketSegment if (routeInfo.marketSegment?.length > 0) { data.entityNaicsCode = {}; data["entityNaicsCode"]["id"] = routeInfo["marketSegment"][0]["id"]; data["entityNaicsCode"]["name"] = routeInfo["marketSegment"][0]["naicsCode"]; if (routeInfo["marketSegment"][0]["parentTerm"] != null) { data["parentNaicsCode"]["id"] = routeInfo["marketSegment"][0]["parentTerm"]["id"]; data["parentNaicsCode"]["name"] = routeInfo["marketSegment"][0]["parentTerm"]["naicsCode"]; } } else { data.entityNaicsCode = []; } if (routeInfo.taggedPro) { data.isPro = routeInfo.taggedPro; } window.dataLayer.push(data); } else if (routeInfo && "vid" in routeInfo) { data.entityBundle = "tags"; data.entityTitle = routeInfo.name; data.entityId = routeInfo.id; data.entityName = routeInfo.author?.uname; data.entityCreated = routeInfo.created; data.entityType = "taxonomy_term"; data.entityLangcode = SITE_LANGUAGE; data.siteName = siteName; data.sponsored = routeInfo.sponsored; data.sponsor = routeInfo.sponsoringCompany; data.drupalLanguage = language; data.drupalCountry = country; data.userRoles = userRoles; data.userUid = userUid; data.algoliaIndexName = indexName; data["entityTaxonomy"]["tags"] = { id: routeInfo["id"], name: routeInfo["name"], }; window.dataLayer.push(data); } })();