Lynn Petrak is senior editor at Progressive Grocer and a veteran of the food retailing industry with nearly 30 years of experience. Lynn is well-versed in all aspects of the industry and has also contributed to brands including Snack Food & Wholesale Bakery, Meat & Poultry, Dairy Field, Farm to Plate, Refrigerated & Frozen Foods Retailer and Store Brands. Lynn held key communications roles with dairy and beef trade associations. She has also taught journalism classes and earned a journalism degree from Northern Illinois University in 1991.
Follow Lynn on LinkedIn.
","title":"Senior Editor ","picture":{"id":253,"url":"https://assets1.progressivegrocer.com/files/s3fs-public/styles/portrait_gallery_item/public/2024-04/Lynn_Petrak.jpg?VersionId=ZWXAddW2DpyyQFxK5OIW2mlQDvLBM8Ul&h=b6e6155e&itok=W-JW-gzS","alt":"Lynn Petrak, Progressive Grocer","width":300,"height":374},"phone":null,"contactForm":true},"digitalEdition":false,"sponsored":false,"taggedPro":null,"teaserImage":{"id":32333,"url":"https://assets1.progressivegrocer.com/files/styles/secondary_articles_short/s3/2021-07/Pricing%20500%20x%20281.jpg?itok=zWuUjIq3","width":500,"height":281,"alt":"Datasembly, Numerator Pool Efforts to Help Grocers Gauge TPR Promotions"},"topics":[{"name":"Technology","url":"/technology"},{"name":"New Products & Promotions","url":"/new-products-promotions"},{"name":"Operations","url":"/operations"}],"attachedFiles":[]},{"title":"SUPERMARKETS AND COVID-19: Changes in Consumer Behaviors and Operational Shifts in North America ","id":62957,"bundle":"article","summary":"Learn to identify some of the changes and challenges, as well as present some solutions to help you better respond to the evolution of shopper behaviors.","showSummary":false,"url":"/supermarkets-and-covid-19-changes-consumer-behaviors-and-operational-shifts-north-america","date":"2021-07-26T00:00:00","author":{"email":null,"uname":"Anonymous","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":false,"sponsored":true,"taggedPro":null,"teaserImage":{"id":32526,"url":"https://assets1.progressivegrocer.com/files/styles/secondary_articles_short/s3/2021-07/PG-Sensormatic-500x281-0721.jpg?itok=ckMixbwF","width":500,"height":281,"alt":"a display in a store"},"topics":[{"name":"Special Reports","url":"/special-reports"},{"name":"Shopper Behavior","url":"/shopper-behavior"},{"name":"Operations","url":"/operations"},{"name":"E-Commerce","url":"/e-commerce"},{"name":"Coronavirus","url":"/coronavirus"},{"name":"Technology","url":"/technology"}],"attachedFiles":[{"url":"https://eiqeditor.progressivegrocer.com/system/files/downloads/2021-07/PG-Sensormatic-Supermarket-Report-FINAL_0.pdf","id":41158,"description":""}]},{"title":"The Checkstand Reimagined ","id":62982,"bundle":"article","summary":"Amazon’s Just Walk Out technology will transform the store experience in ways that are only limited by the imagination\r\n","showSummary":true,"url":"/checkstand-reimagined","date":"2021-07-26T00:00:00","author":{"email":null,"uname":"mlandini","firstName":"Mark ","lastName":"Landini","bio":"Mark Landini is creative director of Landini Associates, a global design and brand consultancy based in Sydney, Australia. Since 1993, Landini Associates has created and evolved retail brands, including McDonalds, T2, Aldi, Glassons, Sass & Bide, Jurlique and Coles. The firm’s new Aldi Corner Store, designed by Landini Associates, debuted in July.
\r\n","title":"Creative Director of Landini Associates","picture":{"id":19,"url":"https://assets1.progressivegrocer.com/s3/files/styles/portrait_gallery_item/public/pictures/2021-07/Mark%20Landini.bio_.jpg?itok=aJzbem6C","alt":"a man in glasses looking at the camera","width":500,"height":424},"phone":null,"contactForm":true},"digitalEdition":false,"sponsored":false,"taggedPro":null,"teaserImage":{"id":32466,"url":"https://assets1.progressivegrocer.com/files/styles/secondary_articles_short/s3/2021-07/Factoria_JWO_Exit_2_0.jpg?itok=rEw1h9eC","width":500,"height":281,"alt":"The Checkstand Reimagined"},"topics":[{"name":"Operations","url":"/operations"},{"name":"Guest Viewpoints","url":"/guest-viewpoints"},{"name":"Equipment & Design","url":"/equipment-design"}],"attachedFiles":[]}]},"title":"Operations","contentParagraphs":null,"sections":null}; const country = "US"; const language = null; const SITE_LANGUAGE = "en"; const siteName = "Progressive Grocer"; const userRoles = ["anonymous"]; const userUid = 0; const indexName = "pg"; const title = "Operations | Progressive Grocer"; 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); } })();