\r\n
\r\n","title":null,"picture":{"id":262,"url":"https://assets1.chainstoreage.com/s3fs-public/styles/portrait_gallery_item/public/pictures/2021-04/feather-pen.jpg?VersionId=CK.7CjaXWXIYnO3nfIhc.TE6URRCuetX&itok=4EAGsLbL","alt":"","width":362,"height":463},"phone":null,"contactForm":true},"date":"2020-04-10T00:00:00","digitalEdition":null,"hideByline":null,"teaserImage":{"id":3269,"url":"https://assets1.chainstoreage.com/styles/secondary_articles_short/s3/2020-04/coronavirus5.jpg?itok=j5lM9n2g","width":500,"alt":"","height":375},"topics":[{"name":"TECHNOLOGY","url":"/technology"},{"name":"ECOMMERCE","url":"/ecommerce"},{"name":"MARKETING/SOCIAL MEDIA","url":"/marketingsocial-media"},{"name":"News","url":"/news"},{"name":"Insights","url":"/insights"}],"attachedFiles":[]},{"title":"Survey: Overall teen spending plunges — except for food; fave online brand is…","id":80947,"bundle":"article","summary":"The nation’s teens have cut back their spending amid the COVID-19 outbreak with one noticeable exception: food.","showSummary":null,"url":"/survey-overall-teen-spending-plunges-except-food-fave-online-brand","date":"2020-04-10T00:00:00","author":{"email":"mwilson@ensembleiq.com","uname":"mwilson","firstName":"Marianne","lastName":"Wilson","bio":"Marianne Wilson is the editor-in-chief of Chain Store Age. With nearly three decades of experience at CSA, she is one of the most knowledgable retail editors in the industry. Over the years, she has been quoted in publications nationwide for her insights on retail, and has also served as a speaker at major retailing events in the U.S. and abroad. Marianne leads the CSA editorial team, overseeing content development across the brand’s online and print channels. She is also instrumental in the planning and execution of CSA’s Breakout Retailer Awards and Retail’s Top Women Awards.
\r\n","title":"Editor-in-Chief","picture":{"id":272,"url":"https://assets1.chainstoreage.com/s3fs-public/styles/portrait_gallery_item/public/pictures/2019-09/MArianne.jpg?VersionId=ni1uYSJlhCs56Z68lRynePcOz52aT0P7&h=8d5378fc&itok=WM9B5yRR","alt":"","width":350,"height":385},"phone":"(212) 756-5261","contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":{"id":22143,"url":"https://assets1.chainstoreage.com/styles/secondary_articles_short/s3/2020-04/millennial_genz_man.jpg?itok=oghRyC7N","width":500,"height":382,"alt":"man eating pizza near laptop using mobile phone"},"topics":[{"name":"FINANCE","url":"/finance"},{"name":"MARKETING/SOCIAL MEDIA","url":"/marketingsocial-media"}],"attachedFiles":[]},{"title":"How to reach consumers spending less during COVID-19 pandemic","id":80937,"bundle":"article","summary":"Retailers seeking to grow their share of shrinking consumer spend should pay close attention to their stock levels.","showSummary":null,"url":"/how-reach-consumers-spending-less-during-covid-19-pandemic","date":"2020-04-09T00:00:00","author":{"email":"dberthiaume@ensembleiq.com","uname":"dberthiaume","firstName":"Dan","lastName":"Berthiaume","bio":"Dan Berthiaume is a recognized expert on retail technology, having covered the space since 1998. He has been interviewed on National Public Radio and Coffee Break with Game Changers, and quoted by a variety of publications and news sites including CNBC. Dan also has served as a moderator and panelist at numerous industry events.
","title":"Senior Editor, Technology","picture":{"id":275,"url":"https://assets1.chainstoreage.com/s3fs-public/styles/portrait_gallery_item/public/pictures/2019-09/Dan.jpg?VersionId=Qh1sqqxXC3Ib6DbAB15yflwwvr93EjNL&h=602eadb4&itok=TQTqer_K","alt":"","width":350,"height":356},"phone":"(978) 994-1881","contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":{"id":22168,"url":"https://assets1.chainstoreage.com/styles/secondary_articles_short/s3/2020-04/smartphone_0.jpg?itok=u4Vf5hyq","width":500,"height":393,"alt":""},"topics":[{"name":"TECHNOLOGY","url":"/technology"},{"name":"MARKETING/SOCIAL MEDIA","url":"/marketingsocial-media"},{"name":"ERP/CRM","url":"/erpcrm"},{"name":"News","url":"/news"}],"attachedFiles":[]},{"title":"Nathan’s Famous upgrades enterprise platform for franchisees","id":80932,"bundle":"article","summary":"A quick-service restaurant retailer is serving up enhanced ordering and loyalty management for its franchise operators.","showSummary":null,"url":"/nathans-famous-upgrades-enterprise-platform-franchisees","date":"2020-04-09T00:00:00","author":{"email":"dberthiaume@ensembleiq.com","uname":"dberthiaume","firstName":"Dan","lastName":"Berthiaume","bio":"
Dan Berthiaume is a recognized expert on retail technology, having covered the space since 1998. He has been interviewed on National Public Radio and Coffee Break with Game Changers, and quoted by a variety of publications and news sites including CNBC. Dan also has served as a moderator and panelist at numerous industry events.
","title":"Senior Editor, Technology","picture":{"id":275,"url":"https://assets1.chainstoreage.com/s3fs-public/styles/portrait_gallery_item/public/pictures/2019-09/Dan.jpg?VersionId=Qh1sqqxXC3Ib6DbAB15yflwwvr93EjNL&h=602eadb4&itok=TQTqer_K","alt":"","width":350,"height":356},"phone":"(978) 994-1881","contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":{"id":22185,"url":"https://assets1.chainstoreage.com/styles/secondary_articles_short/s3/2020-04/nathans_0.jpg?itok=XupGCnCE","width":500,"height":380,"alt":"nathans"},"topics":[{"name":"TECHNOLOGY","url":"/technology"},{"name":"ERP/CRM","url":"/erpcrm"},{"name":"BUSINESS INTELLIGENCE/ANALYTICS","url":"/business-intelligenceanalytics"},{"name":"POS/PAYMENTS","url":"/pospayments"},{"name":"News","url":"/news"},{"name":"MOBILITY","url":"/mobility"}],"attachedFiles":[]}]},"title":"TECHNOLOGY","contentParagraphs":null,"sections":null}; const country = "US"; const language = null; const SITE_LANGUAGE = "en"; const siteName = "Chain Store Age"; const userRoles = ["anonymous"]; const userUid = 0; const indexName = "CSA"; const title = "TECHNOLOGY | Chain Store Age"; window.dataLayer = window.dataLayer || []; const data = {}; data.entityTaxonomy = {}; const contentTypes = [ "article", "blog", "bulletin", "embed_page", "landing_page", "event", "image", "page", "product", "whitepaper", "video", "tags", "author_profile", "buyers_guide_listing" ]; if ( routeInfo && "bundle" in routeInfo && contentTypes.includes(routeInfo["bundle"]) ) { data.entityBundle = routeInfo.bundle; data.entityTitle = title || `${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 taxonomy 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); } })();